End of May Update - Big Pile o' Stuff
Added 2024-05-31 07:27:08 +0000 UTCHello everyone,
This month was mostly spent doing prep work for the mountain of non-player assets the game will need, and it's still not done, nor have any of these assets been implemented ingame. As there's been a bit of a design shakeup regarding the game focusing more on scrap-collection than in previous iterations of the game's design, that means we're going to need more scrap assets ingame, and since scrap is (obviously) made of disused items, vehicles, tools, etc, and since an isometric game like this is going to need some variety to avoid visual repetition, that means we're going to need a lot of scrap.
Now, the dumb, blunt way of doing this would be to just make each scrap pile individually. Model it out, texture it, make the sequence for the various levels of scrap (as in, the pile gets smaller as you harvest it), render it, put it ingame. Every pile, as insignificant as it seems, still has a bit of a process to go through to get it to be a functional asset with actual visuals ingame, and making every different variant of scrap pile from scratch would be as about an inefficient process you could get. So, the solution is to just make every scrap pile an actual pile of disused and derelict items ingame.


I already had a big pile of civilian cars and trucks I modeled a while ago, so I started with those, and worked up from there, making every type of vehicle I could think of to increase the variety of possible scrap piles that could dot every map. Players will encounter more obvious types of wrecks such as broken down cars, but will also encounter plane crashes, abandoned construction equipment, turned over semi trucks and trailer, and beached ships, all of which can be gobbled up by worker units and special scrap harvesting vehicles to be reprocessed into useful materials. It should also be pointed out that, as some of these are quite large, some scrap piles will be multiple-tiles in size. This will be another little feature we'll have to add, though under the hood, this just means big scrap piles are effectively a neutral building that scrap-harvesting units can harvest if ordered to.
The advantage of doing it this way is that we can also use these vehicles in their non-scrap form; some maps will, of course, have intact civilian cars and boats for added flavor, although these will be able to be scrapped as well (we want to include a towing mechanic at some point, which can be used to tow friendly units to move them around quicker, but can also involve towing neutral or enemy vehicles (or the disabled husks of vehicles, including your own) to be scrapped and reprocessed.
In terms of making new assets, some of these models can also be kitbashed into a lot of the Warband units and buildings, as we've done in the past for some of their units; for instance, it may make sense to throw a few of these civilian plane parts onto some of their vehicles, or make a structure from the partial hull of a boat.
Also, if you think some of these are a bit too simple, don't worry; some of these large models (such as the planes, zeppelins and boats) have a basic interior as well. This will make breaking them apart when we turn them into static junk piles that can be collected much easier.


Note that this compilation still isn't totally complete; we want to include some extra boats and ships, and maybe a handful of additional cars and trucks. Some non-vehicular machines would also make sense, such as household appliances and factory equipment, although we do possess a lot of these sorts of things already via stock model packs. I sometimes make use of stock mechanical and greeble packs, though only ever to decorate and kitbash existing models; using pre-made models purchased online for the entire object will often look out of place and too obvious. Of course, this aspect of the game itself is still a WIP, and these will all still need to be turned into actual scrap, textured, and rendered out, though this should be the easy part, as Substance makes making quick textures a snap. Most of the time spent making these is in making the raw models you see above.
On the more technical side, Gustas has continued work trying to sort out issues with shadows, making optimizations, and also getting specularity to work. As the current setup of having separate sprite sheets for XY normals, Z depth, and now specularity would eat up a ton of VRAM, Thomas devised a system for compressing all that data into a single sprite type, with Gustas creating a script to carry out the conversion process and altering DORF to read these new files. By expunging unused colors that would never be seen on our XY normal sprites, this new sprite type uses the red and green channels of a PNG to determine Z depth, while XY normal data is carried in the blue and alpha channels. Specularity is given a narrow range of data in the green channel (only 15 possible values, to be precise), however this shouldn't be too much of an issue as the difference from level to level in specularity wouldn't be too noticeable anyway. The result is what looks like complete visual nonsense, but I assure you is useable (and much more optimized) data.


The example used here is the Warband Tanklet. The first spritesheet is the Diffuse Sprite, while the second is the sprite that combines the various data types into a single image type, which we are dubbing an Auxiliary Sprite. To reiterate, the seemingly nonsense glitched out appearance of the Auxiliary sprite is working as intended; the seemingly invisible parts of the Tanklet are actually semi-opaque pixels, which as mentioned above, are used (along with the blue channel) to determine XY normals information.
We also have working specularity. I created a strange shape to test the specularity functionality on, to see how light would react on parts of the object with radically different specularity levels, and this is the result.
This solves a major problem we ran into after the introduction of the dynamic lighting system, where the baked in reflections and shiny bits of units no longer looked right (think the metal dome on top of the Tesla Tank, or most NWO vehicles). While this unfortunately means we won't really be able to include the chrome effect on NWO vehicles, at least they'll have proper reactive shinyness now.
It should be noted that technically, DORF has had specularity functionality since Thomas updated the game to include dynamic lighting, as the lighting/shading logic uses a Blinn-Phong lighting model, which inherently includes specularity, however due to initial issues with the specularity not working with the 2D, Thomas simply gave it a flat, non-adjustable value for all objects that could not be tinkered with. Gustas just did the extra legwork to get the game engine to recognize different specularity values on objects and to utilize the Z depth and XY normals data to get the specular highlights to fall along the surface of objects in a believable 3D way.
That's all for this month. Next month we hope to have more of these scrap resource piles actually modeled out, textured and ingame, as well as getting the ball rolling on putting DORF's resource logic systems to demonstrable use.
Thank you all for the continued support.
Comments
Really good-looking models
Harrison Varley
2024-06-20 05:49:31 +0000 UTCFucking excellent
Wiener Schnitzel
2024-06-06 20:53:45 +0000 UTC