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.