Hey Folks! Back on the NEO Scavenger port today. And it was a bit of a slow day, as I'm still stuck on maps.
Today's image pretty succinctly shows the problem: when the game changes resolution, creatures get offset from where they should be. The camera for the map is changing scroll values during resolution swap, and I have code to redraw the creatures based on their current tile position. However, it seems that might not be happening in the right order.
Hey Folks! Hope everyone had a good weekend. We did some honest-to-goodness labor, carting building materials around, laying cinder blocks, sawing posts, and lashing them together. All in the name of a fancy redneck sitting bench in our front garden :)
Hey Folks! We're getting there, after another day of tweaking rendering settings for (mainly) items.
As you can see in today's image, the Big UI mode is nearly rendering normally now. Container previews work, even with rotated items inside. Everything is scaled correctly. UI elements are mostly in place. There's still a weird green block in the top right which I haven't yet identified. Should be easy to fix, assuming I can find out what it is :)
Hey Folks! Another surge of progress today, as I tackled several scaling/rendering issues present in Big UI mode.
Since the mobile version never used Big UI, a lot was neglected in the port. And what's more, it's the only UI mode to mix 1x and 2x sprites, so there's a lot more complexity in getting things to display correctly. The mobile version just coincidentally avoided these issues.
Hey Folks! Can you guess what I did today? If you guessed "resolution stuff," congrats! You're right!
Almost half of the day was spent wrestling with a seemingly innocuous feature: container previews. When you roll over a container, it shows the stuff inside in the tooltip. Or it was supposed to.
Unfortunately, due to the way mobile differs from desktop architecture, the preview image generation requires a different code path. Particularly stacked items, which require bitmap fonts be generated and rendered wherever they are needed.
Hey Folks! Making steady progress here, as the main menu is working in all 3 UI modes now. Next step: fixing in-game UIs in each mode.
There were a few more tricks to getting the main menu working in all three modes, as well as able to hot-switch between them. I had to do some special handling when getting sprites at different zoom amounts, some font face changes, window fullscreen/resize event handlers needed restoring, and a new handler for stretch mode (since the old way only worked on Flash Flixel).
Hey Folks! Back from vacation, and I have the scars to prove it. My body wasn't really used to the sun, heat, dust, and abuse outdoor living provides. But I suppose I look a bit more rugged for the next few weeks :)
Back in the NEO Scavenger codebase, I was able to get resolution switching to behave a bit better. I went with the ScaleMode approach, as that only required a few tweaks to get the desired results. Namely, I also had to crop the camera after adjustments to get the screen setup when switching resolutions.
Hey Folks! Looks like this is officially a "difficult task" now, as screen aspect ratio and resizing rears it's head.
The old NEO Scavenger had a few graphics settings that could be changed: three different UI layout/aspect ratio choices, filtering, stretching, and fullscreen. Mobile, on the other hand, just has two: widescreen and 4:3. And what's more, mobile always uses the same layout on a given device, while desktop must switch at will based on window and monitor size.
Hey Folks! Think I managed to get mods working today! As you can see in the screenshot, we have a few of Kaaven's test mod items loaded into the starting cryo hex. Complete with stats and images!
The issue turned out to be the way the game was setting the sprite image for items (and other assets). It was sneakily still using OpenFL's Asset system, which fails when loading files added after compile time. A quick change to the code to funnel all image requests through a function designed to try Assets and then regular file loading did the trick.
Hey Folks! Making progress on restoring mods today.
When I started this morning, the game would crash upon trying to load Kaaven's "Mod of Doom." Usually as a result of trying to load a null, blank, or invalid ID from the mod system. I think a bug was introduced in the remapping code when it was converted from Flash to Haxe, which basically caused all IDs to remap to "0" in mods. Which, apart from not loading the correct data, also caused an index out of range error in most arrays (which assume in-game IDs of 1 or greater).
Hey Folks! Made a small amount of progress restoring mod support when I hit a pretty major speed bump: images.
Early on, I did some minor rewriting of the file structure to make modding work closer to the original Flash engine. OpenFL does some weird things with files when you try to load them through its asset manager. And one of these weird things is the inability to have two of the same filename in a single AssetPaths class.
Hey Folks! After nearly 2 days of banging my head against this map rendering issue, it appears to be fixed!
I think I basically had to try everything before I was able to get a hold of this bug. Rewriting image loaders, walking the code, debug output, wildly trying different inputs and outputs. Eventually, disabling huge swaths of the map renderer pointed me in the right direction. Because as it turned out, rendering one part of the map was short-circuiting the rendering of the rest.
Happy Fourth of July, Folks! It's officially mock warzone here in the States, with explosions both near and far. I wonder how many actual gun battles are happening right now because nobody would notice?
Since we have a vacation coming up, I decided to work through this holiday and see if I could make headway on the hex rendering issue. Short version: I did not.
Hey Folks! Been a bit of a rough day, as I wrestle with Asset caching in the engine in order to load assets.
Pretty much most of the day was spent trying and failing to get the game loading bitmaps into mod containers. In the PC version, the engine loads each mod into a separate data container, so when the game requests an asset by ID, it first checks which mod to get it from, then loads it from there.
Hey Folks! Hope everyone enjoyed their weekend. Ours was a little bittersweet as we watched Canada Day festivities on CBC live from afar. We miss our other home at times like these. I also suited up for vacuuming the 100+ year old crawlspace beneath our house. Darkness, cramped and hard to reach spaces, awkward equipment, and limited breathing. I imagine submarine mechanic work is worse, but not by much.