Saturday, 30 November 2024

New Playable Character STARSHIP

 

New Playable Character STARSHIP brings the 1950s sci-fi vibe

Monsters Loot Swag got a new update on Steam, with the seventh playable character - and third unlockable - STARSHIP, who arrives with a cheesy 1950s sci-fi vibe. Duck Dodgers eat your heart out.

Starship is a high mobility and range-based character, and the only Monsters Loot Swag character who can truly run-and-gun without needing to slow down and aim to shoot.

And here she is in action.


And whilst we're talking about sci-fi cheese ... feel free to sing-a-long with ex-Pan's People cum Hot Gossip dancers, which I had on 45 speed vinyl ... which was a thing when I was a kid. I pity the younglings these days who will never know such joys as Gen-X took for granted.


 They don't make them like that anymore ...

Lord and Protector Gaben released a new Steamworks SDK build, which streamlined how player stats and achievements were obtained by the game app, with all player statistics now loading via the Steam Client before the game is even launched. Naturally thsi broke all my code which communicated with Valve's servers, so that had to be fixed ... especially for Airship Dragoon which meant hunting through C++ which I had written over 10 years ago ... whew lad.

10 years later and Airship Dragoon has achieved "Mostly Positive" reviews

And it wouldn't be a devblog without complaining about the weather! Err Nerr Snerr!


It didn't last long, just long enough for me to almost go arse-over-tit on an icy path, before a tropical storm came in and rained winter off again.

Monsters Loot Swag and Airship Dragoon are both on sale in the Steam Autumn Sale right now.

Next up, probably the final playable character for Monsters Loot Swag, after which I only have the last level to make and a few extra bits to tidy up before full release next year.

Thursday, 31 October 2024

Many Many Things

Homegrown Pumpkins vs Big Pumpkin Corporation

Many things have happened this month, many, many things ... however I cannot remember most of them. Not the most auspicious start to the monthly devblog is it?

Monsters Loot Swag got another update on Steam.

Many of those many things are maths, and I'm certain non of them were helped by my filter coffee machine going the way of the dodo. Naturally it waited until it was a year out of warranty befoer it decided to pine for the fjords, but pine it did. The light was came on but nothing useful happened, a feeling which I can relate to.

The Median Between 2 Vectors
 I had spent a good week fighting maths, wondering why I was seemingly receiving a torrent of gibberish - when I realized that I had forgotten to normalize the first returning vector. Rookie mistake, but with that out of the way I suddenly found more of them, and some of those had been lying in my older code for some time ... like the one were the formula was clearly missing half of the maths that the code comment was describing. Needless to say, everything that ended up being based off this function was gibberish but I just hadn't noticed ...

Eventually I managed to get the AI to try and surround the player and attack from the sides. This still led to a lot of wild swinging of swords which meant rather a lot of whacking their own team mates. They do not fully envelop the player, but at least make a decent attempt at out numbering for multiple attack directions. I might end up making the combat a little like Sleeping Dogs, where the player is attacked in a quick but orderly manner rather than the current free for all. I speeded up the thought process of the AI after I made the test video below.


I've also hammered a good 200 hours of play in Kingdom Come Deliverance, which I bought some time ago. The graphics are nice, the forests really well made, the dialog is witty and the first person melee combat autistic and janky - but I have had a lot of fun as a Cuman bowman riding around on a horse and nailing arrows into folks.

It's that time of the year again!

I bought 2 supermarket pumpkins, as the homegrown variety didn't quite get big enough to scoop out. I got a kilo of vegetable flesh from each one, so 2 kilos for 3 quids worth of pumpkin, now bagged up and in the freezer ... where I found some bags of last year's pumpkin ...

Anyhow, here's the WORLD DEBT CLOCK - don't have nightmares!

Monday, 30 September 2024

Autumn Arrives And Ai Attack

 The big Summer fan has been put away - not that it got much use anyway - and the Autumn duvet (which is just a second Summer duvet doubling up) is out. The slow cooker has been dusted off for comfy one pot meals, and the hot water bottles are at the ready.

And it finally rained, and my parched veg patch was happy, and all the water barrels got filled up, and now it won't stop raining and the veg patch is flooding.

Code wise, I've been working on my Melee Combat Demo, getting the Ai to fight one another.

The first problem was, well, the other Ai, and them getting in the each others way. In Monsters Loot Swag this was a more simple problem, as I could just have them jostle each other out of the way, with a variable to succumb to any charging monsters who were "coming through no matter what", like bosses.

In Melee Combat Demo I don't really want to shoving everyone and everything out of the way so much, especially if all the people in front of Mr.Ai are already engaged in combat. It's not very helpful to shoving your comrades onto the sharp pointy bits of your foes' weapons.

I came up with a simple; "is there a better target?" check. And if not; "can we easily get around the side?" of the queue in front of us, and if not then just wait. And if no useful data comes back, then to hell with it and go charging through like a bull in a china shop.

Ai use an alert system for readiness, which decides on how fast their thinking routine is called. It starts off at "chilled", increases to "look for trouble" and hits the summit of "oh shit things are kicking off" ... also known as 1 to 3. All these schedules for looping the think routine are modified by the skill or leveling of the Ai, and that is currently based on what weapon rank they are using.

Starting alert looks to do something, but at the moment all I want them to do is test combat, so they move to search mode and head towards any enemy that they can find. There is a brief lull between this and going into combat alert which means that in the test they do make physcial contact between the two teams before all hell breaks loose.

And here is the result of the testing, after I inserted many, many lines of debugging to the console to find out which bits of my maths were bad. Team Bill the blocky blue guys massacre Team Bob the purple-ish LODed guys with a score of 5-2.

Needs more work but it's a decent start and at least does work as team based melee combat.

In non-dev news, I actually played a game recently - shock horror.

Not since Ace Combat 7 came out have I actually played anything, but I got Kingdom Come Deliverance on sale some time ago, and took a couple of weeks out to hammer a good 130 hours into  it. I wasn't really playing the story much, just bimbling around medieval Bohemia accidentally finding side quests and generally shooting bad guys with arrows to slow them down and then stabbing them in the neck if they got too close. It's a strategy I'm sure worked in the 15th century too.

The game world is quite pretty to look at, the first person combat is autistic but passable.

So to the future, more getting Ai melee combat to work nicely, and then start thinking about equipping the characters with more kit. I'll probably also start thinking about making another playable character to be unlocked in Monsters Loot Swag, and probably complain about the weather more, but that's probably called sport to my Saxon blood. Also three probably's in one sentence is terrible grammar, so I'll probably stop writing there ...


Saturday, 31 August 2024

Anniversary 10 Years On Steam

  

Airship Dragoon has been on Steam for 10 whole years. Even Albert Spier only got 30 years in Spandau ...

To celebrate this monumental event I put the game on discount of a whoppinh 95% ... but Steam only allowed a 94% discount due to transaction charges converting into US dollars. So 94% it was, slightly odd number that it is.

One of the interesting things that I found was that the Far East of Korea, Japan and China did make the top 10 for sales. This was especially gratifying as I knew there were plenty of pirated copies in the early days floating around China due to the amount of traffic my website got to download the additional map pack.

In other news, August draws to a close. A month of scorchio sunshine, sitting out by the veg patch, absorbing vitamin D in non-capsule form and sewing myself a medieval bag hag (summer pattern), going to make a winter one with felt to ward of hypothermia later. 

Alas the baking sun meant that the veg patch was going bone-dry, especially as the water barrels had been emptied. Roll on some rain, in fact after the utter soaking for the first half of the year, if it could just have kept a bit back for mid-August instead of swinging from "I need to build an Ark" to "I need a Thumper to distract the sandworms", it would have been appreciated.

Behold my mighty carrot crop! That was it ...

 When it finally did rain it did at 3.30am, so I was outside changing water barrels over with a coat over my jim-jams. If anyone has a working weather control machine who is not CIA, please could I have some more rain.

I also updated the demo for Monsters Loot Swag, to the most modern working build of the game. The old version of the demo had been removed due it being built with Ye Olde game engine version which predated Torque3D 4.0 and the fancy asset system and PBR (Physical Based Rendering) materials.

In other indie game dev news, I finally fixed all the networking jitter I had previously been fighting ... by simply ripping out the custom player class code I had written and using an actual seperate camera system. I had always had a sneaking suspicion that trying to go through the player class and directly use the player object's own cam/eye node might not be the best way of doing things, and in the end, said sneaking suspicion was more jumping up and down suspicion with total loss of stealth abilities.

I decided to use the Open Source 3D Action Adventure Kit camera system as a base, and after a bit of modding I got it to work with my existing lock-on target system. Behold - moving AI who have been locked on by both hosting client and remote client - now without any jitter!

So that was August, and now we will be onto September, named after the Greek "sept" meaning seven, because it's the seventh month ... or at least was until two despots added new months after the sixth one, and conveniently named said months after themselves ...

Anyway, next up on the dev frontier, Monsters Loot Swag only needs 1 more level with enemy boss, and 2 more unlockable players making, before a bit of tidying up to finish it off. I am not in a rush however, as I would rather ship in early to mid 2025, and thus give myself time to get the next game concept furthered more, hopefully to the point of having some real gameplay and a store page available for coming soon™.

As my previous attempt to drum up interest with the Monsters Loot Swag early access release didn't achieve any support, I might try an open beta next time.

Wednesday, 31 July 2024

More Third Person Melee Mayhem

Finally, summer has arrived in the dreary part of grim northern climes, though July started as June ended, with weather best described as "crap", and a sudden return to wearing jumpers.

Game development-wise things have continued much as before, with the vast majority of effort being aimed at the third person melee project demo.

I had long wondered what the best way of getting different clothing and armours onto a model would be. Many moons ago there was a turn-based RPG there was a post-apocalyptic neo-Roman game ... who's name escapes me ... and they literally had to load every piece of armour that the player could wear onto a single model and use the "hide/unhide" commands. 

Well many moons on from this and it looks like the only way to accomplish such things appears to be in the same manner, as you cannot just mount meshes and have them conform to the character's skeleton and mesh weight painting. Deciding that making a single model with EVERY PIECE OF CLOTHING that could ever be considered was not a great method for potential later updates, I delved into the engine to see how best this could be accomplished with code and script. The answer was to add a list of meshes to the character model's constructor, though this did mean it all had to be done at preload and was thus impossible on the fly, so once again, we are back to "hide/unhide" commands. However, at least this way it could be automated to search for all available meshes (and their LODs, which have to be added seperately per mesh), rather than sticking it all in the model and never being able to change it later.

Behold The Hat Of The Ages!

The Shape Constuctor code for adding meshes was somewhat out of date and relied on directory locations, so I updated it to deal with the engine's asset system. I'm thinking it would be best to have a function look for all relevant assets - probably from a folder naming system - and then add them all at runtime preload to the character mesh, followed by immediately hiding the added meshes and then only displaying them on the model when specifically called for; eg: when the player slects clothing or armour. I am not currently certain what the limitations on numbers of meshes would be this way.

Orientated Box Outline In WorldSpace

 Speaking of coding, it took long enough to get my custom code and the debug drawer to agree exactly how an oriented box works in world space. I had an idea for testing for blocking and parrying by using the actual strike/bounds box of an object, except weapons are not actually objects at all but are virtual due to the FSM system. After some testing I decided it was going to be difficult enough to make a successful parry this way and will probably go down the Dark Souls route of using animation frame timings - though unlike Elden Ring, I very much want to avoid this being tested on the client side as that appears to highly exploitable to hacks.


 Whilst I had coded a lock-on target system a few years earlier, in practise at melee attacks it was not always easy to actually strike the target, regardless of it being screen centre, and quite often I could miss and my strikes would go just wide. I decided to code a toggleable "face target" system, thus allowing the player to decide whether they wanted to absolutely aim for the enemy at the loss of movement speed due to circling side to side or backing away.

This worked fine but seeing the player spin in place to face the opponent seemed very 20 years ago, so I went back into the animation system and coded a speeded up sidestep when doing it.

Artifacting gif is artifacting ...

Whilst adding things to the lock-on system, I thought it might help to distinguish which target it was by having a health or status icon. I started off with a health bar over the target that reduced in size the further away, eventual throwing the lock-on off if the target was too far away. After this I thought I might create a central lock-on icon, for instance Elden Ring has a tiny white dot at the centerpoint of the target. I found this and the opponent health bar to be a little too busy on screen, so made the central icon a circle which changed colour depending on the target's health.

Whilst testing lock-on I discovered an issue with my original code from a few years back, I had always tested it with the player moving around the target, but not the target moving. This turned out to cause some nasty jitter due to the client being a tick behind the server. Rather than mess around in the depths of prediction I just took some old "target heading and velocity aimpoint" code from my old Aeronauticals air combat demo, and retrofitted it to have the client look 0.064 ahead, 1 server tick and 1 extra tick for the client being an engine tick behind. I added this code to my resource on the Torque3D website and slightly rewrote some of the original lock-on code to make sure that everything was using the render transforms that the client was seeing rather than the actual server positions of objects, something which I had previously noted in code about displaying names above objects whilst looking into coding the health bar for the target.

In other news some muppet crashed half the world's computers and offered discount pizza as way of apology. It turned out at some point other computer systems had been updated too, and Monsters Loot Swag no longer worked on Linux due to changes with Wine and so the DirectX driver needed updating ... but apparently no one mentions these things and you just have to use The Force to find out. Turns out there was a slightly larger D3dCompiler47.dll which needed to replace the slightly smaller one. Monsters Loot Swag now once more works on SteamDeck.

And that was pretty much July, numerous other things happened which I cannot remember, I got a tan when summer eventually arrived because you just don't know when the free vitamin D is going to disappear around here. After months of drowning in a seemingly perpetual deluge of rain, I am back to hoping for some wet stuff coming out of the sky as my water barrels are empty and the veg patch is parched.

Next month is the 10th anniversary of Airship Dragoon being on Steam. I thought about maybe doing "something" but the models were all exported using a system which doesn't exist anymore (pre-Collada), so anything new would not be compatible with older animations ... which is a bit of a bummer. The past is a foreign place where they do things differently ... so I think I will just let sleeping dogs lie on that one.

Sunday, 30 June 2024

Melee Working Redux

 

Last Month's Blender Animations Are This Month's Game Animations

I cleaned up my dev folder system, mostly because it had no particular system at all, and was just a mess of folders dumped into a single directory. Over the years this had grown to a somewhat considerable number of test builds, most of which were pointless duplications. Tidy all of this up into a few folders based on simple concepts such as "Game Builds", "Test Builds", "Modules", etc has made everything a lot easier to find.

The only casualty to all of this was the deletion of my Melee Build Test Area, which I had thought was just another test area, however it included some more up to date melee code than the named Melee Project. However it was not particularly advanced so came as no great loss, and whilst redoing the now deleted extra pieces, I actually improved them.

I imported my previously rotoscoped animations into the game engine, and set up a character to use them. With a bit of tinkering all worked as intended, though I have since edited the standard run animation as it contained quite a sharp hip flick which in turn sent the character's butt cheeks into rather a frenzy. This has since been toned down.

Next up was to reinstate hitBoxes to the character limbs. Unfortunately some of the bones rotations had developed a nasty roll , which sent the hitBoxes for the legs into a strange position and so I proceeded to fix this, and annoyingly all the animations which I had previously made had to be redone. Thankfully it was only the legs which needed retuning.

From Hell's Heart I Give You A Good Pokey-Pokey!

HitBox testing worked well, and I even changed the code as to how strikes work. When I had first written the melee code last year, I had for some reason had great trouble trying to get a box mounted on the weapon to use as a strikeBox against the target's hitBoxes, and had in the end settled for an armature bone system to measure between the bones for the length of the attack. 

I say "for some reason" because it all seemed quite straightforward now to set up a box on the weapon for collision, get it's measurement and offset from the handle/mounting point. So the hacky bone node system was retired in favour of the collision box size and offset being automatically stored on datablock preloading. And if there is no box to provide collision for the weapon, it will fallback to using the bounds box and work out it's offset from the mountPoint. So, not sure why all of this proved hugely difficult last year, but I expect "tunnel vision" which seems to happen quite a bit in game development.

The Cold Steel! They Don't Like It Up 'Em!

Expanding the original melee code, which already had a fatigue and rage system, I added stagger depending on how much damage the target had taken versus how much they had remaining. Stagger breaks the target's attack and defence, potentially leaving them open for a free strike. The lower the target's HP, the more they will stagger.

It took a bit of trial and error to prevent the code getting stuck in certain animations, but after a while I ironed out all the obvious bugs. I also rewrote how falling damage works, introducing a plummet system were the player just drops face first, and if damage on impact is high enough a custom plummetDeathAnim plays.

Elden Ring Style Stat Bar Reduction

The player Stat Bars on the GUI got an overhaul, when health or energy is lost the original level is now shown as a different colour and reduces until it meets the current Stat level, a bit like it does in Elden Ring (no I haven't played it, but I am aware it is a thing, and a thing with Stat Bars which do this).

The weapon FSM system got a whole overhaul, and light and heavy attacks now trigger in a way which does not require the player loop to count, freeing up a couple of write/read stream vars. A quick released attack button sets the FSM to interrupt the state and send a light attack var, whilst holding it allows the state to complete for a heavy attack.

There was probably a lot more "stuff" that got done, but I can't remember it all off the top of my head here.


Flaming June was more damp squib June for the second year running, and the strawberry patch appears to have already given up the ghost.

It's halfway through the year already which only goes to show how painfully slow game development is. 😩

Friday, 31 May 2024

Aurora Borealis And Prancing About For Rotoscoping

Chalmers: Yes, I should be--good lord, what is happening in there?!
Skinner: Aurora Borealis?
Chalmers: Ah- Aurora Borealis!? At this time of year, at this time of day, in this part of the country, localized entirely within your kitchen!?
Skinner: Yes.
Chalmers: ...May I see it?
Skinner: ...No.

But see it I did and it was spectacular. Alas I was only armed with an unfamiliar camera and had no tripod set up so the pictures were dark and grainy.

Monsters Loot Swag got another update, available on Steam here.

Much of the month revolved around me being ill with some sort of random stomach issue which has resulted in a detox diet, which isn't as bad as it sounds, though caffine has been kicked into touch.

When not feeling like death, I have spent the month testing more of my rotoscoping concepts for animation, still with only one camera. There has been much prancing around the vegetable patch. Cue list of gifs.

Two-Handed Lunge - The Disembowlment Special!

Wide slash with chopping followup ... The Double Whammy!

Two Handed Sweeping Uppercut - They Won't Be Expecting That!

With various attack types done, both single and two handed strikes, I needed more video of myself prancing around like a demented elf for standard movements, such as forward, back, sides, etc. This was however postponed due to WEATHER and lots of it. It had bucketed down days, possibly weeks, it's hard to tell when you lose all sense of the Space-Time-Continuum due to being excessively soggy.

Whilst waiting for the biblical deluge to wash the sinners into the gutter, I added a shield to my hack-and-slash base character model. Whilst I had posed with my arm out, pretending to have a shield - bokken I can muster, Viking rond alas not - I had not been too aware of sword or body penetration. Thankfully my sense of spatial awareness was quite good, and changes and rotations were kept to an absolute minimum.

It did finally brighten up today, and so I spent more time running about on the way too small available area next to the veg patch. After a quick rotoscope I have some basic forward movement.

Tip-Toe, Through The Meanies ...

After some consideration on forearm and hand deformation I thought it was getting a little too mangled at the wrists, and so edited the base character model to include wristTwist bones, which proved to give much better deformation than twisting the forearm and hand along the Y axis.

Slash With Shield

Skewer With Shield

Reverse Cut With Shield

So that was a very wet May, hopefully it will fair up come June, though ... how the hell have we got to June already????

Tuesday, 30 April 2024

Terrors Of Retopology Part Two

New UNLOCKABLE Character: Introducing POLARIS

 Monsters Loot Swag got a new update on Steam, this time featuring a new playable character named Polaris, who is a close range, melee based character with a pechant for saying; "Omae Wa Mou Shindeiru".


 Polaris utilizes the cleaned up auto-repology I created last month, with the character weighing in at around 8K tris, with a lower LOD of 4K - down from the standard 12-16K of the other characters. However that did get my thinking that I could probably make a perfectly decent lower poly base mesh with some decent deformation at the joint from scratch.

Base female mesh created from scratch with 8 face limb edge-loops

This weighed in at a mere 3K triangles and had fully working fingers, something I had not really bothered with in the previous character models. I had started off by deciding to have limbs with edge-loops of 8 faces and built it from there, using the silhouette of my previous base character, which was a chunky 20K tris. After creating this first LOD, I made another from scratch, this time basing the limb edge-loops on 6 faces, which weighed in at ~2K tris, including fingers and some other details which probably be removed for an in-game model.

2K tris LOD with 6 face limb edge-loops

After this I decided to make a base male character model using the same technique, something which I could plan my next game project with.

Next game project base male mesh idea

With that done I wanted to have another attempt at animation using rotoscoping. This would probably work best with multiple cameras, but I could only rustle up one working camera for a side view, so had to ad-lib for a facing angle. Initially it looked a bit wonky due to lack of space and cutting my own feet out of view, but when it eventually stopped raining for 5 minutes, I could go outside and refilm myself acting out some movements.

Rotoscoped Animation

And behold the end result was not too bad. The downside is that without exaggerating some foot movements, it tended to look like the back foot was getting dragged and just blending to position, but then the exaggerated movement looks a bit twichy. Either way, bottom dollar motion capture is perfectly feasible, and I may go looking for a second old camera, so I can get a front-on view as well as the side angle, which would help bone positioning in the other viewport. I don't think it's neccessary to glue ping-pong balls all over myself whilst doing this, but maybe not wear baggy trousers next time - but hey, Gen-X here, we even had a song about them.

The next game project is going to be the hack-and-slash concept I've had for a while, and whilst I would like to do another ridiculously giant project with an RPG, I have decided on a more contracted gameloop idea. I was tempted to make it a side-scrolling arcade style slasher, but have gone back to my original free-cam idea, were the player can rotate the camera view as they please.

In other news I was clearly too optimistic about the weather and whilst the Spring duvet remains, I quickly ditched the Summer pyjamas and went back to the Winter fluffy jimjams. It has been bloody freezing, but hopefully this will change. Fingers crossed for May.

Sunday, 31 March 2024

Terrors Of Retopography

4K tris versus 8K tris

 Amongst a slew of bug fixes I have been designing a new unlockable playable character. This has once again led to problems of topology - or more accurately retopology from a not very high poly character to a much lower poly character.

You would think that there would be some automated plugin that could do all of this for you, that it could take a mesh with a lot of triangles and reduce it whilst keeping some semblance of the vertex point weightings. And there is, and it can ... except you have to kiss goodbye to your nicely laid out UV map. Now you try modding this ...

Behold the computer generated horrors beyond your comprehension

It does a really good job of decimation and a really terrible job of UVs, textures and materials in general.

The problem appears to be that my starting mesh is some +20K tris, which is great for an up-close viewing of the character - especially in the viewports of Blender - but not so great when you want it reduced auto-magickally. Especially as I hate manual retopology due to it being the utter epitome of donkey work.

If only you could just remove edge loops in a sensible way - but wait! You can! Blender has it's own decimate modifier, and surely loops can be reduced just as the can be increased? Yes but no.

Just auto-reduce loops bro! Yeah but nah, but really wtf is this?

However this is something that could be cleaned up, and in the end I did, thus using that as a new basic mesh to work from, and it's a much more reasonable 6K tris. And after customizing that to a new character, it can be manually reduced by merging loops to keep the bone weights and UV maps intact.

Try and spot the difference from the actual game camera height

 Once again the real problem seems to be the tunnel vision of working up close in the modeling editor, and I am sure that that 4K mesh could get some more reductions without anyone ever noticing. However it appears to be not just me that goes overkill on character meshes ...

Squint percentage per eye ...

Dragon's Dogma 2 character creator allows for squints by percent per eye ... but in-game, your character is barely a third of the screen in height. Not sure that is going to be all that visible when your character's head is only 64 pixels.

My new playable catgirl cosplayer is called Polaris, and does that 北斗百裂拳, Hokuto Hyakuretsu Ken thing minus the waaa-ATATATATATA battle cry, so you'll have to shout it yourself. The character portrait isn't completed yet and I'm still balancing the stats and attack attributes, so update to Steam should be next week.

It's British Summer Time, at least horology wise, I am removing the winter duvet, so naturally the weather has taken a turn for the worst. Maybe with April here Spring might finally start, as it seems to have done nothing but rain and be generally miserable since October.

 

I also had a thought about the methodology of making a roaming brawler, one where the player could upgrade to the move sets and customize their own controls based on fighting styles and how to code this as combat events. This brought me back to thinking about the melee combat system I coded an example of previously which uses hitboxes, and whether that would be good gameplay system; a (probably side) scrolling roaming hack and slash where you level up your character not just with attributes but also armour and weaponery, restarting each "run at the game" with all the new stuff you earned in previous runs. This way the player would start off very weak and get killed quickly, then spend whatever XP you acquired on better stats or kit and go again, eventually leading to the player becoming massively OP in early levels. It would work a bit like reverse permadeath, with the player's XP being permanant and allowing the unlocking and equipping of better weapons and protections but also melee based move sets that could be customized to control binds.

As Monsters Loot Swag near completion, 1 more level with enemy boss, and 2 more playable characters to add, I am beginning to think more of what the next game will be, and after having created the proof of concept for MLS NINE FUGGING YEARS AGO I think I need to work on a shorter development cycle for my next project.

Thursday, 29 February 2024

Leap Into The Future

Monsters Loot Swag Now With HDR And PBR

February has arrived ... and by the time you are reading this, it has also gone. But not before Monsters Loot Swag got a huge update on Steam, and has been ported to a completely new engine build.

This included finally retiring the old engine build and replacing it with the latest game engine build, complete with all of those 21st Century shiny things like an asset system, HDR lighting, Physical Based Rendering of reflections and so much more. The changlog itself ran to some 36 items.

In other game development news, I also ported my old "Aeronauticals" proof of concept demo to the latest engine version. You can download and play that here and watch me do just that below.


 February 2024 is a Leap Year! And soon to be leaping are what is in this pond! 🐸

However since this arrived there has not been much froggy activity due to the weather reverting to being bloody freezing for the last few weeks. Thankfully it looks set to become milder and much croaking was heard earlier.

So that was the month with a strange number of days, and all because two despots mangled the perfectly working 10 month calendar by inserting their egos into new months and totally throwing time out of order every 4 years.

Wednesday, 31 January 2024

Space Year 2024 Is Go

 

DIY gambeson, with padded arming cap (not visible) to stop sallet wobbling on head - it's everything you need to keep warm on a cold winter's night ... or possible prepare for the GREAT HAPPENING when modernity crumbles and all is returned to the ashes ... 

Monsters Loot Swag has received it's 24th Early Access Update, available here.

Speaking of which, I ran some of the game engine's internal debugging tools - which I have previously been unfamiliar with - to see what was happening with networking. Alas these debugging options were not as helpful as I had hoped ... 

TORQUE_DEBUG_NET for NetConnection packet logging, DebugChecksum guards to detect mismatched pack/unpacks, and Detection of invalid destination ghosts. Link to PacketDataChecksum disagree code.

TORQUE_DEBUG_NET_MOVES for detailed console logging of net moves. Link to moveChecksum disagree code.

What I got was kind of annoying and much less useful than I had hoped ...

Test1:

Spawning into a loaded level, with the randomized gameplay assets unbuilt (the Swag), I got 6 packetData and 17 moveChecksum disagrees, all from loading the level to the client and then spawning the player object.

Shooting 6 times gave me 3 packetData and 3 moveChecksum calls.

Moving around in a small circle had no effect.

Test 2:

Spawning into a loaded level which had then been populated with the randomized gameplay assets (the Swag), gave 4 packetData and 38 moveChecksum calls.

Shooting 6 times have the same 3 calls for each.

Moving around in a small circle for a few seconds gave 57 calls for both packetData and moveChecksum.

Conclusion; everything that gets loaded AFTER the level has been loaded is going to throw checksum disagree calls with every update of the client's position just because it wasn't in the original level file. Now add hordes of monsters, explosions, projectiles, etc and there is a huge amount of console spam with very little debugging value for networking ... :/

The good news would be no packet dropping showed up.

Anyhow, we perserve.