Wednesday, 30 September 2026

Raven Errant Release And Update

 

The Varangian Guard Says Hello

 Raven Errant released on Steam at the beginning of the month, September Year Of Our Lord 2026.

It's my latest game, and it's a low poly medieval hack and slash RPG, were the player wanders around (that's the ERRANT bit) scavenging the dead (that's the RAVEN bit). 

The game is somewhat of a self-contained world, various historical warbands wander the world (that ERRANT thing again)  and stop off at campsites to loot the area for gold (that RAVEN thing again). These Raiding Parties clash with each other, flee if they think they might lose, and generally do their own thing without the player being required - though the player can join them on their expedition to get free XP from the loot sites. (if the raiders will have them, that is).

There has already been an update to the game, increasing the number of wandering (that E word again) raiding parties to 9, with the appearance of the Varangian Guard (late 11th to 12th Century version). As the warband factions are based on historical groups, and I have been creating them chronologically, we are just getting up to the "Transitional Period" of armour and weapons. The next group to be added in a not so far away future update, will be the Knights of the Tuetonic Order.

The game was always designed to moddable, like my previous games, Monsters Loot Swag and Airship Dragoon, but this one will eventually have Steam Workshop added to it - as much to see how Steam Workshop works for my own dev skills as anything else. 

So, with this in mind, I created Raven Errant specifically with a base game system to cover the majority of gameplay (wandering, fighting, fleeing) and have a seperate gameMode module for doing specific gameplay "objectives". These are specifically called "gameModeObjects", and when each warband has completed all immediate tasks (like life and death struggles, etc) then they move onto the gameMode objective.

I designed a loading system which gathers expected game data - such as the warbands, equipment, weapons, armour, and such which is referenced at the start of the game, and then the gameMode itself will ask for further modules which contain similar, for example; mods to create additional warbands. This also allows the gameMode to control things like spawning, respawning, mission updates and completion whilst communicating with the base game, and allowing the overriding of base gameplay logic.

And it all works something like this:

It affects you when I get Steam Workshop working later in the year

 The default gameMode revolves around the warbands moving to campsites to loot them, so once the warband think routine is satisfied that it is safe to do so, it calls the gameMode to inquire about what it should do with the gameModeObject and the "Main Task".

Currently I am testing to make sure it doesn't break everything before releasing Steam Workshop, probably in a couple of months (December 2026).

Apart from that,  there has been a number of tweaks and changes, and a lot more functionality added. Including factional prefered colour schemes. Previously if armour had colour it was randomized, but now it defaults to a prefered list of colours in the warband's factionData object. This also includes specific textures and materials for factions, very useful for knights showing off their loyalties with a team based tabard or surcoat. This will be show off soon when the Tuetonic Order arrive in a forthcoming update.

Enlist With Magyars And Your Clothes Change To Red, White or Green

 Previously when the player enlisted with a warband their shield would sport the faction emblem, but now their clothes also adopt the team colours. If the factionData does not have specified colours then it will be randomized as it was with the old system. If the player changes their clothes, the new clothes will randomize but still adopt the team colour system. When the player leaves the warband, clothing colour will return to randomized.

I also stopped the same colour coming up twice in a row when the player clicks on equipping armour in the inventory, so if you're wearing yellow and want blue, yellow will not apply twice in a row.

Headgear and body armour are now allowed seperate colours, and this gives greater variation in colour schemes. It has also allowed me to reduce the number of meshes a character has to load on creation ... which turned out to be the thing that hit fps when a warband spawned. Originally I thought this was due to the number of characters spawning together but it turns out it was the way I was adding seperate meshes onto the ShapeConstructor. More testing is required, but I hope to remove the warband spawning jitter soon.

 A major change to gameplay is that warbands that performed poorly would lose some troops each respawn. Warbands were created on a fair points system, so better equipped troops cost more, and lightly equipped troops (historically older factions) would receive more men to make up the gap in costs.  Respawning losses were capped at the original 10 warriors in the factionData lists, so was unfair on lightly equipped factions who could cost much less than later better equipped factions. Now all factions lose troops on spawning after a previous poor raid, and any faction that cannot field at least 5 warriors retires from the game. Previously retirement only occurred when a raiding party was wiped out in combat.

There will be more updates of Raven Errant, and more historical warbands are to come - we've only just got to the 12th Century and my favourite helmet type doesn't appear for another 200 years!


Monday, 31 August 2026

Raven Errant Releases Early September

 

Raven Errant will release on Friday the 4th of September 2026, to be precise. At 8:14pm British Summer Time (GMT+1), or just after midday on the US Pacific Coast. It is releasing in Early Access, with half the warband factions complete (up tot he 11th Century) for heady price of  THREE US bucks (-10% launch discount).

And here is the official Release Trailer that is on the Steam Store Page.

One thing that I noticed about the Steam Review system this time around, is that they have really tightened up on the "All Ages Content". In the past a bit of claret getting splashed about, or a red decal on the ground (yes I had to age restrict images with red decals) didn't matter so much as long as it wasn't gratuitous. Also in game images might not always have been from the player's point of view, but they were in game, but not anymore - and "devcam" screenshots are now not allowed, only what the customer sees when they play it.

Valve were also very keen on the Early Access description being as nebuluous as possible, so I to remove my planned development roadmap from it and replace that with "I plan to increase the number of available teams/factions" without actually mentioning what they will be. Which I guess is fair enough as they need to cover themselves from "store page said X is coming and X never happened, gib refund 2 years later plz". With all these tweaks my Store Page went through a couple of cycles before getting passed as fit for human consumption.

My game build also had a a review knockback, but most of that was completely self-inflicted as my brain appeared to have melted at some point and was expecting in-game auto-generated save files to synch with Steam Cloud Saves, which of course need to synch before game launch. The solution was to include blank *.sav file in the build (and if you're saving outside of the steamApp folder? Then not sure.) and once uploaded to the depot, set the depot build vdf file to "FileExclusion" to *.sav files or else it will replace the End User's save file and that would be catastrophe.

Of course it wasn't always like this, and back in Ye Olden Steamwerks Dayes you had to manually synch all the data, which was good in a way because I could have Steamworks synch whilst my game's startup screens were loaded. However now it is all automated and preloads between the End User launching the app from the Steam Client, and the Steam actually launching the game. This creates a number of seconds of the splash screen display and nothing else happening - to the point that I have put a disclaimer on my splash screen to warn the User that "Steamworks is loading - please wait". 

August ends, and with September, Meteorological Autumn begins! Note this isn't real Autumn which happens on the Autumnal Equinox late September, this is just some Weather Forecaster trying to make the seasons an even split of months.

So we shall see if Raven Errant manages to acquire more sets of viewers eyes upon release, remembering the Monsters Loot Swag barely made 10% of it's allotted one million front page views over it's full release Visibility Rounds during 30 days. 

Time to re-read up on how to do Launch Day Store Page Streams.

Friday, 31 July 2026

Raven Errant

Coming Soon™

 "Raven Errant" is the name of my new game, who's development I have been showcasing on this blog for the last 12 months. It's a third person hack and slash were roaming bands of raiders move about campsites looking for loot and plunder, often from each other. 

The player starts off wearing a pair of comedy boxer shorts with a love heart print, and steals the clothes off corpses, flogs them in exchange for XP, and then upgrades their stats to equip better clothing, armour and weapons.

The player can enlist in these roving warbands - if they will have then, or they can  wander alone, picking off stragglers and leveling up to become a one man master of battle. There are some good reasons for enlisting, firstly safety in numbers, ask any school of fish, but also that if you follow a team around you get rewarded with free XP, making stat upgrading a little less of a hardship.

Friendly Carolingians are friendly

 Raven Errant will be launching as an Early Access title soon™, initially featuring 8 Raiding Parties which is around half the planned number, and in chronological order is from around the 5th Century (Avars) and up to the 11th Century (Normans). When complete there will be twice the number of Warbands and much more equipment, armour and weaponry will be available.

Raven Errant is currently waiting in review on Steam, so the Store Page is not live yet, but will hopefully be available in a week or so. 

Tuesday, 30 June 2026

User Ergonomics 2026

Cute Feet

 Flaming June was particularly flaming, at least that's what the troglodytes of the MSM would want us to believe. At one point I found my father wearing a Christmas Jumper in the hope of staving off hypothermia ... admittedly that was only a single and abbarent occaision, and it has mostly been "PIGGING HOT".

So, ignoring straining CPU/GPU fans, we have still been productive on the development front.

This has mostly been about a continuation of enlistment with the AI raiding parties, and interfacing information of what the hecking doolalies the NPC are doing, so the player does not feel random embafflement as they just follow the Ai around blindly.

 This has all been part of upgrading the ergonomics, aka user comfort, of having an actual human bean, interfacing with the whole game environment, and not expecting them to be telepathic as to what my actual intentions were when designing the game. This has naturally been more of pain in the bottom than expected, and taken longer than desired due to faffing with GUIs.

There has also been some faffing with testing engine upgrades, due to Sony, that massive billion dollarooney corporation having created the model format the game engine relies on, somewhat ignoring it's own creation over the years, leading to Blender 3D dropping the exporter plugin recently. This has resulted in FBX becoming the dominant format, and a whole lot of engine rewriting to make certain that it actually works as intended.


 So after a month of mostly record breaking sweatiness, interspaced with a small period of freezing bloody cold, we have come to the stage of having to create the final parts of the User Interface, so the squidgy human (at least we hope it's going to be human but you can't tell these days) can actually get the game to work as the designer intended.

Next up, some branding images, and the long processes of a Steam submission, hoping that I have remembered all of the things required to pass said Steam submission process. 

Wednesday, 3 June 2026

Avoid The Draft - Enlist Today!

 I woke up drunk and found myself in the army, and that is why I forgot it was time for end of the month devBlog! A tale as old as time itself no doubt, personal experience not included, honest.

Well, here it is, a few days late. And what, pray tell was I doing that occupied my attention so much that I missed that fabled deadline which I had kept for the past 4 years? Enlisting of course! Enlisting in a favoured band of hardened warriors! Or maybe not even favoured, maybe any company of cut throat raiders that would have me. Because it's all an RNG as to how each and every warband will accept the player, and this RNG changes every time the player or that warband respawns.

Five Levels Of Diplomacy

 So there are 5 levels of diplomacy that each Raiding Party shows towards a neutral player. These range from; "Just find some pants to wear and we will take you", to the much more hostile; "Anything less than level 20 XP isn't good enough".

These responses also decide how that warband will treat the player when their blood is u, ranging from the friendliest avoiding the player at all costs, going through only engaging the player if they get in the way during combat, all the way to treating the player as a mortal enemy. It is usually best to avoid walking into someone elses pitched battle, and wait for things to calm down a little before inquiring about membership, or looting the corpses of the fallen for those all important pants.

But once you have enlisted in a warband, you get a cool motif on your shield, and every other warband declares you a sworn enemy. 

Blood Brother For One, Blood Vengeance For All Others

 You don't have to enlist in a warband if offered, and they will peacefully go about their business and ignore you - unless you cause them trouble, or until the player or themselves meet an untimely end and respawn.

But once you have enlisted, and become a sworn blood brother of that company of heroes, you get to follow them around on their merry journey and have pitched battles against many foes. This is when I discovered that the target lockOn system was useless in a melee as it would lock onto any target, friend or foe, and a melee was confusing enough without the camera sticking on the wrong target. A little bit of C++ later and the targeting system now only locks onto enemies which is a lot less confusing.

Me And The Danelaw Boys Heading Out To Cause A Ruckus!
 
The Ruckus Went Badly ...
 

Currently the player can only follow the warband around, or ignore them completely and go cause trouble alone on their behalf, but it is a shame to miss a pitched battle. In the future I do plan to code a ranking system, were the player can rise up the ranks and eventually lead the raiding party, with them then following the player around rather than vice versa.

Also allow me to introduce the Carolingians. They were supposed to be in from the start but the future planned warbands seemed a little Gallic heavy so I replaced them with the Lombards, but now they have been added in as well, bringing the current number of active warbands up to 8, which is about half of what I have planned, and I am still only up to the 11th Century.

Arming Yourself As A Warrior Involves More Than Just Finding Some Pants

 And here it is in video action! As my Saxon comrades and I take on the newcomers, the Carolingians. I have good weapons and armour, we have the high ground and our archers have superior range, and I was feeling quite confident ... right up to the moment I got staggered from a long axe blow coming in from the side and then skewered from behind when unable to defend myself. Ouch.


 So, that was the merry month of May. It started off with wind and rain, there was a bit of a heatwave over a weekend, and then it ended with wind and rain again.

This month will mostly be concerned with a bit of tweaking of code and assets, and generally making the menus more attractive, before finally sorting out a listing for Steam.

Thursday, 30 April 2026

Classic RPG Inventory For Classic RPG Attributes

 A little difficult to have a game that heavily features looting - without having an inventory to buy, sell, upgrade and equip that loot! So the last month has been mostly spent making an interactive inventory system.

The system is fairly simple, sell loot at campfires for XP, then upgrade your stats so that you can equip and wear better combinations of the weapons and armour that you have looted!

The game features a rather classic RPG attributes system of STR, DEX, CON, etc as well as two career paths, of High Knight Noble and Low Knight Errant, which increase the player's wearable AP stat. The High Path costs more XP whilst increasing Rage Bar buffs - when critical strikes in battle negate enemy defence and massively increase damage - whilst the Low Path allows for quicker AP increases for far less Rage buffing. No more running about in your underpants once you unlock an armour type.

STR and DEX stats allow ever increasing weapon equipment, whilst CON is HP and STA allows for more sprinting, dodging, jumping, and heavy attacks. There is also ATH(letics) for faster running and further jumping and dodging. All very classic RPG style statistics and behaviours that any gamer (video or tabletop) would recognize - to the extent that I've only used the 3 letter abbreviations for the names (except ATHlectics which could equally be called AGIlity).

Whilst I might keep saying "simple" in this blogpost, actually getting the inventory working was a huge mix of trial and error (especially with gamepad only usage) and took the whole month of development.

And here it is in video action!


 With the player now able to loot and gain XP from it, and spend that XP to enhance and equip their character, the next big development milestone is to allow interaction with the NPC warbands. Whilst the various factions happily play the game all by themselves that is not particularly interesting for the squidgy humanoid sat behind the screen - so next up is making friends and enemies of the roaming NPC raiders! And after that, it's sorting out a page on the Steam Store for early access release! (which looks like it will be after the summer sale with the vetting time).

Tuesday, 31 March 2026

Cute Warbands Doing Cute Warband Things

 

Smoke Signals, telling Yogi Bear the picnic table is occupied

So after much huffing and rather a lot puffing, and even more debugging ... warbands are running about doing warband things, in both day and night!

Warbands now move around from loot point to loot point, doing the lootening, as loot points suggest may happen, and light the bonfires on said loot points to signal to all nearby that the lootening is occurrening - and that this would also be a great time to raid that said specific loot point and try and slaughter all within to loot their loot.

Did I mention loot? 


 Well the player can now loot corpses, which was a main aim of the gameplay, and not only can he swipe the swag that the fallen is clad in, stripping them down to their underpants, he also buries said unfortunate recently deceased, leaving a small gravemarker to mark their passing. Failure to loot and bury said dearly departed, results in their equipment being lost to eternity, and their corpses rotting away to leave a skull, marking their departure from this earthly plane.


The Freshly Slain
 
The Not So Fresh After Remaining Unburied

I had a play around with the ScatterSky and TimeOfDay objects, and after some faffing in the code, decided the easiest way - at least in network overhead - to get really red dusks and dawns, was to use the built in TimeOfDay callback with a little custom C++ to change to change the rayleigh scattering and ambient colour. This callback also allows for the campfires to light up on sunset and extinguish at dawn, giving more markers as to places the warbands are likely to head. View distance for the warbands changes according to the time of day, and leads to some rather nasty surprise battles during the hours of darkness, when bands or burley warriors bump into each other in the pitch black.


 Archery now works rather nicely, though required considerable faffing due to the blending of animations for aiming, which threw off the IK animations which I had created for use with two-handed pole weapons (hello Dane Axe). After many huntings through C++ to try and find out WTF was going on (I still think it's all down to the laterally animation movement which the engine isn't expecting) it turned out easier to define a specific look/head arm animation for pole weapons and then manually alter the animation to get it to align to the IK by around -4 degrees on the XZ axis. Not the cleanest way of getting a working result but game development, and inface coding in general seems to be very much to be a matter of workarounds and use more duct tape. And duct tape fixes everything! (as long as you use enough)

Here's a test of leading aim with longbows at just short of 300m, which works a lot better on a flat surface than undulating terrain for obvious reasons of consistent direction and velocity.


 Currently all bows look like crossbows, due to this being the only model and animations I have currently made, whilst I decide on how best to animate traditional bows, with their hold in left and draw with right animations. As my current warband timeline only goes up the 11th Century at the moment, the English warbow/longbow has yet to appear, but researching some historical composite bows for the Magyars, it was interesting to  note that they used very light arrows on very strong composite bows to out-range their enemies at the expense of projectiles which were weaker in the strike, and would break when they hit the ground (which of course stops the guy you just missed from picking it up and shooting it back). To this result, the Magyar have by far the longest range (to be honest 400m is kinda pushing it but hey vidya gaemz), but with stopping power only marginly better than a 100m short bow.

Remember kids, when you see the horse archers run away, do not follow. 

 So, here's some edited highlights of archery, melee, point blank night battles, corpses rotting to skulls, and general AI powered gameplay in action.


 So all that leaves us with our not so heroic player, still running about in his underpants armed only with a Bollock Dagger.

Nice lack of kit you have there oh level 1 noob

 But, as shown in the first video far above, the player can actually loot corpses of their equipment, armour and weapons. So the next major job is to come up with a Game User Interface (GUI) so that the player can actually decide what stolen swag they want to equip, to boost their avatar's chances of survival in a good old fashioned scrap. Alongside that, I need to create interfaces for the leveling system and career progression, all of which is already coded, but currently inaccessible due to lack of tailor made input screens.

Behold, The Wonder Of Clothing! Coming Soon™
 

Speaking of input screens, I modified the visual performance settings, so things liek groundCover (that's grass to most people) not only increases and decreases in number, but also expands and ... er ... despans(?)  in range from the camera. I found that there was already a variable for this, originally created in mind to reduce the range, but with a little tweaking of code I could get the radius to which grass is drawn on screen to increase/decrease in line with element numbers.

In other news some dastardly swine stole an hour of my sleep in return for British Summer Time, so I sat out in the sun with a bottle of wine, and it was freezing cold and cloudy and I probably now have hyper/hypo-thermia ... which ever one involves a brass monkey dropping it's balls all over the place.
 

Saturday, 28 February 2026

An Arrow To The Knee But Then I Raised The Aimpoint

 

 I used to be an adventurer like you, but then - whizzzzzz ack! Since this video there is a cool motion trail effect courtesy of a ribbon particle behind each arrow as it cuts through the air.

So archery has been somewhat missing as I have been concentrating on devising an animation led melee combat system. This now work rather nicely (except when it inexplicable doesn't play the prepAttack animation and I have to throw in a safety call to get it back on track) so it was time to get on to ranged weaponry.

Cue Clannad and the greatest decade in history, the 1980s.


 Now, because I've upended the whole stock animation system, it turns out that mouse aiming system no longer works, because who wants mouse aiming to override a melee based animation system? Well no one, so that will take a bit of looking into to fix. However the actual aiming and shooting works, even if the AI and client Player doesn't currently animate correctly to look like it, due to the removal of most of the blend animation code.

I have a variety of ranged weapons coded, both differing sizes of bows and crossbows, with bows requiring greater stats in both STRength and DEXterity for use which make them much more expensive in XP spend to use, but having hugely quicker reloading than crossbows. 

Projectile damage is based on a singular strike to the target's hitboxes, so whilst a heavy melee attack can cause damage to multiple hitboxes with a wide slashing motion, arrows cause damage based on range to target to simulate increased velocity from loosing up close and the archer's ability to pinpoint weak areas in the target's defences. Getting struck at maximum range whilst wearing a full harness is most likely to plink off, but getting shot up close with 300lb of draw weight is another matter.

The main level has had a bit of a revamp, with more trees and shrubs in the open side of the map, but there is still plenty of nice open space for longbows to wreak havoc. 

I also converted my AiPlayer routines to use the new stock engine AiController system, which can be attached to any playable class including those usually restricted to clients, to turn them into Ai controlled - hence the new classname. This class has a lot of dynamic avoidance and automatic repathing systems, but even without those I found it to be very heavy on processing. Whilst still useful for being able to control the usual client based objects, it's clearly something to be used sparingly, and to keep the standard Ai based classes to themselves.

Archery is pretty much the final part of the Ai warbands and battle system, and with it now functioning materially (if not animating aiming perfectly) I need to integrate it's use into the AiPlayer combat routines. The most obvious example is for a warband that outranges an opponent is for them to stop, hold fast, and pepper the enemy at distance whilst they themselves seek to move to attack.

Whilst this is all in the works, here's a video of meeting engagement between the Norse and the Magyars, the latter of whom will be one of the more heavy ranged weaponry factions in the future.


 Aside from fitting archery into the individual AiPlayers' combat routine, I need to come up with a method of allowing the player to use archery effectively, regardless of their third person rotatable camera system. The obvious cop-out here would be to follow Elden Ring's lead and switch to first person for aiming. Maybe I can come up with something else which retains the third person view ... ?

Speaking of the player, to be honest they haven't really got a lot to do at the moment, as all my efforts have centered around making the AiPlayer's work as cohesive raiding parties, so next up after I tackle the blended aiming animations, is to give the actual client player something to play.

It's February, and it's ending early, somebody stole 2 extra days that I could have been coding! 

Saturday, 31 January 2026

The Great Debugging

Initial attempts at Inverse Kinemetics proved imperfect

 So THE GREAT DEBUGGING of actually trying to get our warbands to operate in a terrain environment has begun. And the good news is that it has almost™ ended.

Mistakes were made, and the good news is that it wasn't all be me, but also the data libraries which I use >>> I AM LOOKING AT YOU RECAST PATHFINDING. And I'm not even using AI (lol!), imagine how much worse it could have been!


So just pathfind across the RIVER OF DEATH and into the CLIFF OF IMPASSABILITY
 

Recast Pathfinding is a great resource, so great that I wrote my own pathfinding plan function that actually bothers to check if the pathfinding plan gets anywhere near the pathfinding objective ... not that I want to completely write my own pathfinding system you understand because I am not batshit insane.

But I did come up with a system of fallbacks, now that my own function actually bothered to tell me that the pathfinding library had, what we would call in layman's terms; FAILED, but for some reason it thought was fine to deposit everyone wearing heavy armour into a deadly deep river with unclimbable cliffs was some sort of mathematical success.

I want to get into the middle of the castle

Thankfully my own functions used something called basic reasoning that when the path ends hundreds of yards away from the goal position that it might actually have failed and we should try other things. Other things however still relied on Recast's "meh close enough" being ANYWHERE in the map rather than at the literal destination, so I came up with a level specific functioning system where I could direct the pathfinding to actual traversable waypoint paths to overcome the RIVER OF EVERYONE IS SINKING.

I want to get into the middle of the castle and I will use the waypoint on the bridge because I am forcing it to

And then there was the whitespace ... admittedly this was all down to me in the script files but "whoa laddy!" hunting down all those "objID" != " objID" has been a right royal pain in the Prince Andrew. So my apologies for a lack of interest but low fps debug build video of my multitude of warband troopers running about undulating, river obstacled terrains, knocking seven shades of the brown stuff out of each other. You will just have to "trust me bro™" that it really does work.

I also attempted some IK shenanigans to get the player's feet to actual transform to uneven surfaces, and as you can see from the first image is worked great ... but only if you want to stand like a sugar plum fairy ... and movement wasn't much better either.

 

Speaking of SHENANIGANS!

It had been brought to my attention, via SteamDB that Airship Dragoon had spiked in player count, a good 12 years after release.

 Bizarre.

 I had ignored this and thought that it must have been a bug, yet ... Steamworks verified the player count. 

 And the nations were somewhat surprising ...

I hope no-one is using this actual military tactics ...

 So ... there you go, highest consecutive play count ever, in 12 years ... so I'm thinking ... bots going for trading cards? Not sure anyone is buying those trading cards though ... so ... it's a mystery.

 Anyhow, just like Skeletor memes, until we meet again! When I will (hopefully) have some video of my warband game in full action over a real playable landscape! Not that there is anything for the player to do yet, but hopefully human fleshoids aren't as prone to fubaring everything up as a machine.

Hopeful, ever hofepul ... 

Wednesday, 31 December 2025

Space Year 2025 Comes To An End

There Is Gold In Them There Hills!

 Space Year 2025 comes to an end, and this month I have mostly been fleshing out the world of warbands. This has required some low poly rocks scattering at various intervals and a some ruins, bridges and castles. Gotta have a castle in a medieval hack and slasher.

Colourful Heather To Break Up The Monotony Of Green

 Whilst adding all these extra things help make the landscape more interesting, it also creates the more "stuff" means the more stuff for the Ai to walk into and get stuck. Behold navMesh for pathfinding!

Now it has been a good 10 years since I used recast, for Airship Dragoon, so I did need a bit of trial and error to get it to build reasonably sized grids. After a bit of pathfinding testing I determined it had a nasty tendency to fail to get to the target point on particularly long or complicated paths (bridge? What bridge?), and so ended up adding some waypoint markers which will (hopefully) act as a guide for the wonky path. However it looks like I will be having to check this manually as "we made a path but it doesn't actually go to the end point" does appear to happen some times, especially when a bridge is involved. 

Fun With Pathfinding
 

Apart from that it has been Christmas, which has required a certain amount of eat, drink and be merry ... all of which has been somewhat fatiguing and I will be glad to get back to normal service has been resumed and don't have to hear overly jolly Christmas music everytime I stop outdoors.
 

One Ruin, One Bridge, One Castle

Steam is having another NextFest at the end of February but I reckon that the time frame for getting a working demo out is too tight, never mind clearing the store and app review hurdles. I am not particularly concerned as I don't think that NextFest adds anything to discoverability and if you aren't already bringing your pre-collected audience over it's all potluck if you get a new following.

Bonfire Lit, Grace Touched, Do You Have A Permit For That Campfire, Etc

 Space Year 2025 comes to an end, and during it I made the final release of twin-stick catgirl carnage shooter Monsters Loot Swag and added NG+ ... neither of which garnered any attention and all visibility rounds expired long before they were used up. However that is just the nature of the beast now. 

So the plan from now on is smaller, faster development cycles leading to shipping every 18-24 months or so, rather than labouriously iterating on something on and off for a decade only to release and hope I make my 100 bucks steam app cost back. Knight Errant/Warband World/Whatever I am going to end up calling it, is the first test of this. Whilst Early Access did not garner any enthusiasm or bug reporting help, I am probably going to go down the Open Beta route and see if that helps gather any players, before perhaps another attempt at Early Access in the same vein as Vampire Survivors, sell it for a few bucks and then finish it off 6 months later.

Hello Space year 2026. 

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.

 

Friday, 31 October 2025

Cut And Thrust And Bleed And Ack-

A melee of Norse versus KievRus versus Saxons at the back

Warbands now look the part, with each individual faction having it's own style and shield markings, because in the middle of a disorganized melee it's not always easy to tell who the hell is who.

So, without further ado, let's have a quick rundown.


 
Avar Warband

The Lombards - could have been the Franks but France features more later on

The Saxons, featuring the cool Sutton Hoo helm

The Norse, not a horned helmet in sight thankfully

KievRus

The Magyars, pre-paprika

The Normans (boo!)

 And so we have our initial warbands, and I am only up to the 11th Century. Whilst shields and helmets tend to be unique to each faction, the lower ranking peasant levies do tend to rather look the same, so I might have to add warband specific patches. Back in the days of the Anglo-Scot Border Reivers warriors would wear the cross or saltaire on cloth pinned to their armour ... usually with the other flag on the back incase they wanted to swap sides mid-battle ...

With all the warbands now equipped - at least except for bows as I haven't out the code needed for archery just yet, but it is coming - I needed to bring home the awesomeness of hitting someone with a poleaxe. For this I hunted around for some of the old death animations which I had got for Airship Dragoon and modified them for the new rigging system which my current models use.


 And so the whole thing comes together with slashing sounds, the ring of parried metal, fountains of blood and the screams of the mortally wounded!

Pumpkin!

And of course it has been All Hallows Eve. Can you believe that there are some folks who carve a pumpkin but don't scoop all the food out? That was 1.5kg of seasonal veg going waste! I bag it up into portions and stick it in the spare freezer ... which turned out to still have last year's pumpkin in it because I'd forgotten all about it. More pumpkin on the menu now!

Next up for Untitled Medieval Warband Game - a land fit for heroes! Time to make an actual level with terrain and points of interest for looting, to give raiding parties something to raid.

Tuesday, 30 September 2025

Wearables

How it started

How it's going

Wearables are a thing. Technically we always had wearables ... but it was just a box that fitted on the head, now we have an array of helmets and various armour types.

And needless to say, all of these variations have ended up causing problems themselves ...

After making vast quantities of helmets, helmet variations for differing warbands, I discovered that mesh reskin was borked. Everytime I set a new skin on the mesh ... other skins would reset. After going through the shapeInstance code, I finally got it to agree with me that it didn't need to reset to base skin for all other meshes ... except it still did ... and this is when printf comes into play.


 And it was a lot of printf, but it did let me back-trace through the code to discover the well of embuggeration that was causing the issue ... the shapeInstance appeared to be reinstanced when changing the skin. I must admit, I was not expecting to recreate the human DNA sequence from scratch every time I wanted to change into clean underpants ...

This threw a somewhat annoying spanner of arseholeness into my previously anticipated slick engineering. The main annoyance of course being that I had already made a huge number of helmet materials base on reskinning, but now I had to save the reskinning function for a singular mesh, which would naturally be the main armoured body.

So a minor annoyance in the end, as I would be fearful of breaking MANY THINGS if I tried to change how the meshInstancing code worked. I can still use reskin for the main body, but headgear will now have to be individually exported, and I think the variations of colour schemes for cloth aventails and coifs will have to be reduced somewhat.

Did I mention lots of helmets? Well here they are ... prior to me discovering the resking instancing issue.

Saxons

Norse 

Lombards but could be the Franks

Avars 

Normans 

KievRus

Magyars 

Now obviously not everybody is going to start off in their love heart patterned boxer shorts ... well, except the player who actually is. The Ai warbands are obviously going to start off equipped with their customized armour meshes, all based on rank and faction.

As I have started off with the first half of the warbands, chronologically there are more to come in time periods up to around the 16th Century ... when war gets really boring due to the preponderonce of boomsticks. The current warband factions do not much get passed the 12th Century, so armour is somewhat reduced to the primaries of cloth, chain and lamellar. Technically there is some brigandine in their but only as a defence class rating for superior helmets, so now I'm just getting pedantic. And who doesn't like to get pedantic? I mean why would you even bother with doing indie game dev if you weren't pedantic? It would take all the suffering fun out of it.

Assert dominance over the battlefield by T-posing, it is sure to crush the enemy's fighting spirit

 I had also started to update my Collada format mesh files to FBX. Collada has always worked nicely but it's support is no longer being updated (thanks Sony), so changing to FBX seemed like the logical solution ... except that I had some errors with animations, like baffling errors, like it insisting on contracting the whole animation into the reduced key frames which it I had set, so that's going to require some more testing.

But, in the meantime, here's a video of wearables in action - cue Sabaton. 


 So, next up, is updating my wearable code to remove the skinning references to the helmets and use pre-exported headgear variants, and leave reskinning just for the main body armour meshes. Some sort of special effects for combat, most noteably sound and particles would certainly help too, and then it should be on to making a gameplay world which isn't a flat grey box.

 October is here.