Showing posts with label art assets. Show all posts
Showing posts with label art assets. Show all posts

Sunday, 30 November 2025

World of Warbands

 

FromSoft eat your heart out

Work on an actual in-game level has proceeded, so my brave little warbanders of expendable warfighting warriors have somewhere to run about in that doesn't look like the default flat, grey plane when you load an empty level into the engine.

Grassy plains, perfect for archery - which I have not coded yet
 

To go with my low-poly warriors, I decided on a return to the art style of Airship Dragoon, and the same sort of colour scheme, eg: brighter and greater saturation of colours than drab old reality. It's still all very much a work in progress, as I was forced to spend a good week plus incapacitated after my lower back went one way whilst I went the other, and sitting for long stretches became unbearable.

You just know that there's gonna be a camp fire in here

Whilst I was planning on level desgin, I decided to relearn how to import heightmaps, specifically heightmaps from reality. To get DEM style heightmaps from around the world there are a few free websites available, such as https://tangrams.github.io/heightmapper/ which has the whole world as an open map and https://dwtkns.com/srtm30m/ which has it sectioned into blocks for convenience.

The Peak District from Spaaaaaaaace

 

The Peak District in Gaaaaaaame! With the heightmap overlayed as a texture

Whilst this all worked very nicely, I thought it was best to craft a level by hand and eye that would fulfill my needs for gameplay. So I created a land surrounded by mountains (the old trick to stop the player from falling over the edge of the world without needing to create the horror of invisible walls to block them in), with internal areas of flat plains (good for archery, which I have yet to code), rolling hills, scalable cliffs, marshy flatlands with small islands and dense woodland (good for ambushes).

Robin ... woo-hoo, the hooded man ... dun dun

As I say, all still a work in progress, I currently have a few models still to make, mainly rocks to give a bit of depth to the flat mountain sides, and various building parts. I am planning on module ruins, so I can have a Weathertop, and of course a bridge is needed to cross the deepest parts of the river, which will be a nice choke point when two or more competing warbands try to cross at once.

More than enough of the white stuff to bring the entire country to it's knees

 Autumn ends here, and it is officially meteological Winter. The UK has already had it's first taste of snow, a thing which happens briefly every November but for some reason is more than enough to bring the whole nation to the verge of hysteria and cannibalism. Remember when we ruled the world and strapping lads would volunteer to trek into the polar regions so they could show off how stiff their Imperial upper lips were whilst starving to death? Great days. We used to be a proper country. Now I was all a flap trying to get a mixed case of whiskies ordered before the budget went through last Wednesday - and don't even get me started on Christmas, I'm trying not to think about it.

So, next up is  finishing off the warband world, and then getting pathfinding operational, which is something I haven't tinkered with for a few years. After all, we don't want our hardened warriors ignoring the bridge and running straight into the depths of the river in full armour before a blow has landed ... them fleeing in routed disarray after a blow has landed and drowning in the river would be quite historically accurate though.

 

Monday, 31 March 2025

The Great Rebranding

Monsters Loot Swag - rebranded

 The Great Rebranding of Monsters Loot Swag is upon us.

I decided with full release from Early Access due soon™ that the main brand artwork would benefit from being in the same style as all the other character portrait art, and so set about coming up with a new paintings. This is also the style which the intro and outro sequences will take - and that itself is currently the immediate ongoing work, and really the last thing to do before full release.

Early Access has alas not worked out as I had originally hoped for, being immediately lost into a sea of being ignored, but then I expect that this is just how it goes for the average no-name indie devs launching early access games.

One thing modeling related which I have been doing amongst the veritable onslaught of drawing, has been to retopographize some of my earlier catgirl models. Previously I had used a Blender3D plugin to automate highpoly models down to lower tris counts. Whilst that had saved quite a lot of time, the tris count was still rather high considering the game is a top-down shooter with the characters being fairly small on screen, and the resulting UV maps were horrible strips, not the sort of thing that could ever be considered modder friendly.

Left: Automated; Right: Manual Retopology

 I had used the custom generic player character which I had manually retopologized from April 2024, and this itself reduced polycount by around 60% of what the automated plugin did, all whilst preserving human readable UV maps. I find that due to the small size of the player model on screen, that baking ambient occlusion into the albedo/colour map improves how it looks, even though ambient occlusion still takes place inside the PBR ORM map (occlusion, roughness, metal).

The generic retopologized human character model

So, once again it was a case of do not send a machine to do a man's job ... and all of the presumed labour-saving of yesteryear had been for naught. So now, I am the proud owner of 8 lowerpoly catgirls who all weigh in around 4-6K triangles.

In frog related news I have been forced to put netting over the frog pond as my local murder of corvids have been committing murder in the frogpond. 🐸 

I have been feeding the crows for a while and they've always been very friendly so this sudden turn of events was completely uncalled for. They're big fans of that awful US style burger cheese (wouldn't touch the stuff myself) and also rather fond of monkey nuts, when they're not getting gristly bits of steak or other cutoffs. Also I've seen them beat up Herring Gulls which is what I really want them hanging around for.

So that was the month of March space year 2025, and my efforts to finish off the fluff piece of explaining an actual plot for Monsters Loot Swag continues, taking up much drawing and GUI planning, with all still on course to ship in April.

 

Monday, 31 July 2023

Flaming July Raining July

 

Behold, 693 materials converted to PBR - but the models LOD out quick so you can't see that here - trustMeBro
July has ended as Flaming June started ... flaming wet. The chances of a good strawberry crop in August diminish by the second.

Work wise, every single object in Monsters Loot Swag has been updated to the latest engine version and the fancy-pants visuals of Physical Based Rendering (PBR). All 693 materials have been changed to get rid of the diffuse and specular mapping, and brand spanking PBR compiltable albedo and Occlusion / Roughness / Metallic (ORM) maps have been created. I also settled on a standard 512 pixel size for the vast majority of objects as they are not large enough during gameplay to warrant textures any bigger (except bigger boss monsters and the such which are now 1024 pixel maps). All of this should also help reduce the total memory footprint for texture loading.

This new version of Monsters Loot Swag will be initially available as a beta on Steam, before later becoming the standard game version.

Boris The Spoder-Tank reflecting a rather barren test level in real-time

All of the terrains for the already completed 7 levels (3 more to do) have also been updated to the latest engine build, and are now filled with reflection probes to simulate the area around specific features.

A reflection probe before I realized I had to embiggen the capture radius to get objects to reflect in it

Slowly and methodically porting the game to the new engine has caused a few issues, namely my previous disregard for naming conventions. Many files ended up being called "thing_x_new4_v08_redux_final_final2" and then added to a profile, but the new engine uses an asset system so suddenly naming is important, and the file's name becomes the profile name. This was further confounded by previously having multiple files of the same name in different folders, so a fair bit of renaming has occurred, especially in the 262 audio files which needed to be called the name of their profiles.

So, next up is getting the actual old gameplay logic to work with the new asset system. I am optimistic that this will not be too difficult and that the main issues will revolve around some renaming of server and client connection commands. As ever I prefer to work methodically so that I can actual see where things have changed and understand how the new processes work - which seems infinitely preferable to ham-fistedly ramming the whole game into the "convert to new build button" and then wondering why everything is a mangled arse afterwards.

Hopefully August will also see a return to some decent sunny weather and I can get back to shorts and a t-shirt rather than continue building an Ark in a jumper ... we live, as ever, in hope ...


Friday, 30 June 2023

Flaming June Raining June

June started with a jumper, June ends with a jumper

 June ends as it started ... wearing a jumper. Thankfully the bit in the middle was scorchio and I took advantage of the free vitamin D and got a nice tan. My veg patch also got a good soaking and the emergency water barrels filled up.

June has primarily been upgrading Monsters Loot Swag to a new engine build. This requires me to change all the materials from Diffuse/Spec to albedo/ORM for all of those fancy PBR reflections... and that means updating all 693 of them ... (note to self; next game go for flat shading).

Player Characters and bushes get the PBR treatment

Catgirl T-Poses over the nettles to assert dominance

HDR has proven to be somewhat of an issue in all of this - initially because I didn't realized that it was switched on by default, having not used it in previous version of the game or engine, and is now on as default. This led to some awkward automated changes in exposure for filmic tonemapping based on camera position.

Eventually, after a little fiddling with sliders and values I settled on an interpretation of ACES filmic tonemapping.

Stock ACES tonemapping with auto-Contrast - pass the light blub

Manually defined auto-contrast values for a sunny day

Whilst all of this was going on I ended up helping out with a new implementation of parallax mapping.

Old parallax mapping

New parallax mapping

Yes but actually no!

This is the start of a change in how parallax mapping works in the engine, with the original version being replaced with a brand spanking new Parallax Occlusion Mapping. And this is what that looks like! (minus the occlusion casting it's own shadowing).

Definately not the same picture ...

 The POM version required a total change of art pipeline where the alpha channel receeds from maximum height of white, downwards to lowest area of black, whilst the original parallax mapping built up and outwards from the lighter values.

So far I have the characters, bushes, trees, general vegetation, all of the level objects such as rocks completely transformed into PBR mode. So, still to do are the dynamic objects, animated explosion effects, most of the terrains and all of the monsters - and as it's a game about monsters, there are rather a lot of them ...

All that to do in Flaming July - which is not a painting by Lord Leighton.


Tuesday, 30 June 2020

Flaming June

It's summer, it's flaming June.

Expectation ...


Versus reality ...


But then eventually ...


And now it's back to wearing a jumper :/

Steamworks updated yet again, so it was back to the; "how do I update Airship Dragoon again?" Seemed less hassle than usualy so I must have remembered how to integrate the Steam Client C++ this time around. Whilst giving it a quick test drive to make sure that it actual did work, I started to look through some of the old spaghetti code I had written all those many moons ago.

Comment out the old code on my local distro - incase I suddenly needed to change it back - I changed how panic works, making it more aggressive so that the troopers will always panic shoot if available and only flee if not. I also tweaked some animations and got impact reactions to being wounded, so the troopers now flinch when hurt. People did ask for this when I first released it but messing around with animation code was all rather confusing at the time so I avoided it. Oh well, seven years too late et al but here it is. Luckily I still had a 14 year old version of Blender available - otherwise I would have had to re-export every character and animation into the new format and that wasn't about to be a thing that was going to happen.

I'd also like to change the box art, branding and main menu screen art some time ... but one thing at a time.

Back to the current world of coughs and chaos, I spent the sunny days lounging about with a bottle or two of plonk, getting a tan - or at least turning quite red at some point.

Eventually I did get back to devving on the current - or at least occaisonal - project. One main character does not make a game, except all those games with a single main character of course ... However I was rather planning on having multiple playable characters based on weapon playstyle, so inbetween freezing fog, scorching sun and heavy rain, I eventually got round too booting up Blender and making another character. Whilst the original "GunGirl" was a long range fighter, this character is more short to medium range, with heavy hitting but slow attacks. Still need to PBR the shotgun - not that the current gameplay build is PBR, it's still stuck in the land of Dx9.0c until I upgrade to DX11/12.


So, next up is to finish off LODs, create an atlas map of textures and materials to reduce the all important drawcall number, rig up some animations (based on the previous character animations) and then get the model working in-game. The code for the character is done and works fine, having been a placeholder box for some time already.

Saturday, 29 February 2020

Leap Year Because Time Is Not Constant Enough

It's a Leap Year, which is a thing that happens every FOUR years, apart from every FOUR HUNDRED years, when it doesn't.

Can I get a quick rundown of the month?
 
I continued to hike at least one half marathon a week but the bit between my ribcage and stomach still has the consistency of a water balloon.


Everything is flooded and there is a constant gale coming off the Atlantic Ocean.

My Valentine's date could have gone better.


I wrote some code to automate the currently selected boss to display health on the player's HUD and made it network safe. Then someone told me a method which did the same thing whilst using 90% less code lines so I used that instead.

I redid my "terror tower" special item to now look like a pile of skulls because feedback said it was hard to tell what it was before.



I started work on level 5, which is going to be  an ruined and overgrown industrial complex. So far I have the level layout, textures of mud and the foliage, whilst still working on the actual industrial ruins, expect lots of pipes.


I have previously finalized the enemies for this level, who will be plasma rifle wielding "Hive Warriors" and their "Genetically Modified Brute" slaves. However after running through a live fire test of the half finished level, I thought that the colour difference between the monsters did not make them look distinct enough, so I boosted the colour saturation and contrast somewhat.

Before and After ...

Apparently some other things happened too but I can't remember them all - save Valve introduced another Steamworks SDK update just 2 weeks after I installed the previous one for Airship Dragoon. I took this opportunity to try out their new announcement system which now allows small patches for changelogs.

So that was the month that was and it is still blowing a gale and the fire brigade are still pumping out floodwater downtown.

Friday, 31 January 2020

Space Year 2020 And CO-OP Mode Works

The first month of Space Year 2020 is over. Which is kind of annoying as I always bemoan a month passing in the face of my meagre endeavours. However January has been rather productive.

I created muzzle flashes for the stock player character's weapons. Apparently there is a way to do this in Max using mesh visibility animations ... but Blender3D doesn't appear to have that so I had to fake it with the good old "make it really small and hide it inside the gun when not in use" approach.

 The gifts that keep on giving ... but not this much ...

I also went back and restructured a lot of the power ups. There is a rare power up which drops other temporary power ups - however I found this to be very overpowered, so I changed it to drop a small gift box which contains a 20 second buff to a single attribute - "buff" apparently being the correct terminology for this sort of thing. I also swapped a common single attack damage multiplier for a temporary damage booster that lasts 60 seconds.


The '80s called to remind everyone that it was the greatest decade in history ...

I also channelled my 1980s childhood for an Aliens themed range finder. This finds the nearest unopened swag parcel or node and informs the player of the distance. Originally I tried to get this information via the GUI itself before common sense prevailed that I should be getting it from the player object on the server and then send the result to the GUI so it was networkable.

 Me, myself and I ... and me again ...

Speaking of networkable, I finally tested 4 player co-op mode and it worked quite nicely ... until it all broke but then I fixed it and now it really does seem to work quite nicely. I created a little leader board so all the players can see how they did at the end of the level relative to each other. I had to rewrite how levels are loaded as my previous level loading was very much based around single player mode, but at least I have had the foresight to make all aspects of individual player progression networkable so has been no hitches in spawning clients in a new level with all their old swag.

I have made various other tweaks and additions too numerous to mention, though refractoring the difficulty curve was one. It now works much better in co-op and endless mode, when the player has finished the game but continues to replay through the original 10 levels.

One thing I finally got around to finishing was the model for the Terror Tower item, which creates a zone of protection that the player can hide in. It's a tower of gibbets with severed heads that scares monsters away.

Too Spooky - even for monsters!

After putting on half a stone over Christmas, all of which seemed to congregate in a band around my waist I went for a good 70 miles worth of hiking this month. I am still the same weight but the middle tyre has gone so I guess it's turned into muscle somewhere and now my leg really hurts. More hiking tomorrow but it's only 5 miles to a pub.

Anyhow, roll on 2020.

Tuesday, 31 December 2019

The Boring Look Back Episode Nobody Likes

It's the end of the year highlights show - which I am fairly certain no one likes. So first, here's what happened in December.

I got PTSD from Christmas shopping. Shopping is a terrible thing at any time of year but when the entire country is in panic mode over a certain approaching date this gets amplified even more.

I put on half a stone (that's 7lb or 45grams in new money) in 4 days, and the amount of nibbles that I still have lying around doesn't look like it's going away anytime soon.

I got back into modeling - you know, that thing that I am actually supposed to be doing - and created an animation for the defensive airstrike powerup.


Here's an animated gif, which has been converted into an mp4.

And here's a video of it all in action. It's a defensive powerup so it has a chance to be triggered whenever the player takes damage.


So onto the boring recap.

With the addition of tentacles, I finally completed all the basic enemies and their various special attacks, finally relegating the need for the red placeholder cube enemies which had been the standard for x years too many.



Levels started to get designed (I am about half way through them) and the flat grid world was finally relegated to history.


I eventually upgraded to the latest version of Blender 2.8, after having previously been using the 2007 version which I had found more than adequate for the last 12 years - read as; I don't like unnecessary change for it seems to be a right old faff around.

This change was partially enforced as it deleted another Blender version 2.7 I used for editing normals when v2.8 installed and then it was a simple case of "oh bugger, no going back now".

Thus I was forced by circumstance and the slings and arrows of outrageous fortune to get with the 21st century and learn how to export models and animations anew.


The good thing about upgrading to the latest version of Blender was that PBR suddenly became available, though it was another thing to learn on-top of everything else. Whilst I work on PBR related materials and design, my main test engine is still Dx9.0c for the time being, but will be updated later to brand new fancy Physically  Based Rendering capable Dx11.

Ears go up ...
 
Ears go down ...

Placeholder Player yellow cube was also retired, and replaced with what will hopefully be the first of several playable characters. It's GunGirl, leggy catgirl strapped into a propeller driven harness.


I made a start on boss monsters for each level.


And that was the year that was. Somehow doesn't seem enough. Progress continues next year.

I've made one ...

tl;dr Some things happened, something didn't.

So onwards and upwards. Can't wait for the Olympics next year.