Showing posts with label boss fight. Show all posts
Showing posts with label boss fight. Show all posts

Friday, 28 February 2025

Gameplay Complete, Release Soon™

Hollólány The Final Boss of Monsters Loot Swag, and this isn't even her final form

 Monsters Loot Swag is gameplay complete. All the levels and the level bosses, and the playerable cosplaying catgirl characters are finished. All that remains is some rebranding for release - which is planned for April now, so as not to clash with the Steam Spring Sale - and make an intro and outro sequence with PLOT!

Currently I am finishing off the Souvenir Screen. Souvenirs are now coded and modeled, they are a collectable item dropped by Level Bosses with an RNG modifier based on level progress and game difficulty. Each level Souvenir collected, unlocks an item in the Souvenir Screen, in the "Stats And Achievements" section. With Souvenirs now available, the final Achievements can also now be unlocked.

Work In Progress - The Souvenir Collection Screen, currently devoid of Souvenirs

The Souvenir Collection Screen artwork will also feature as the basis for rebranding of the game box art and packages, as it is more in keeping with the 2D art style used throughout the game for characters, whether playable or enemies.

Once this artwork is complete, all that will remain is for an intro sequence to explain why there are monsters, loot and swag - and a game complete outro sequence when (if) the player finally emerges victorious. This will all be done in the same 2D art style that appears throughout the game, and will be displayed as semi-animated storyboarding.

Behold the tiniest amount of frogspawn

 In other news, frogs have arrived! I was wondering where the frogs had got to considering that they were 13 days overdue from last year's arrival time. Well, someone has turned up, and deposited the smallest clump of frogspawn which I have ever seen. And now it has ice on it because the nights have reverted to freezing clear skies, so I'm not expecting to see any more frogs in the next week, but hopefully normal service will be resumed shortly and there will be more tapioca pudding than pond.

🐸
 

Saturday, 31 December 2022

That Was The Year That Was: Space Year 2022

Level 6 Monster Boss, Kareu The Horticulturist

So, annoyingly, I somehow missed November devblog, being the first month missed in 4 years. Bloody Embuggeration!

Not doubt I was otherwise engaged with a number of updates to Monsters Loot Swag on Steam, and trying to get the new level knocked out. This not only had Level 6 and it's monster boss, Kaeru The Horticulturist, as pictured above, but also a final fix of a long running bug issue, the dreaded "Out Of Bounds Index Array" which I had previously narrowed down to some sort of audio issue. And, eventually I had it cornered and trapped, and finally fixed, Audio Emitters had been getting their ghosting out of synch. The simplest solution was to create a delay in turning them off and then deleting them, but this had taken months of investigation.

Literally ALL the printf

 With all the bugs - that I am aware of anyhow - finally vanquished, I could finish off the newest level, finalize the missing portrait artwork for the previous level boss monsters, and get on with expanding the game. I am now on the 9th Early Access update to the game, and the fourth major update.

Level 5 Monster Boss, Lula The Non-Resident Alien

And so that is where we are now, with the game running well and up to speed, waiting for completion of levels 6-10 and the remaining 4 unlockable catgirl cosplayers ... and a few other things such as the Souvenir system I have planned, where boss monsters drop a collectable via RNG with a difficulty setting modifier.

All that and more is planned for the new year, with a final completion of the game between late Spring and early Summer. After this I might code up a melee based combat system for a hack-and-slash-cum-Soulslike to see how that works, before deciding on whether to use that as my next project or the Aeronaut vertical slice I made a year or two back.


Happy New Year, and see you in 2023!



Wednesday, 31 August 2022

Monsters Loot Swag Steam Release

 

Monsters Loot Swag officially released as an "Early Access" title on Steam, and was immediately drowned under an ocean of gay, furry porn. Such is life. Early Access titles do not have access to Steam's marketing visibility rounds, which are only visible upon full release.

Naturally with any new title release, an emergency hot patch fix was uploaded within the first 24 hours, for a bug which had never happened in any of the previous years of development.

And thankfully was not too difficult to hunt down and squash

 Cue begging emails for free keys, including "pay us money and we'll give you a one word review on Steam's Curator system". lol no. I did send off a few keys via Steam Curator to groups which looked like they might fit the bill.

I did however get some feedback, that players in online multiplayer Co-Op mode wanted a radar so that they could find each other. And there wish was my command! Taking the ghosts from the local connection I could get the locations of the other players and their status, so dead players who need resusitating can be displayed with a different icon from alive players. I made the radar range fairly small, a couple of hundred metres and had players beyond that appear at the edge of the radar so that they are always visible. As the player gets closer the icons fade as they move towards the centre of the radar.

Here's the initial video of that in action, minus the fading.


So we shall continue, gearing up for the first month post release update, which will actually be 2 weeks after launch and thus a smaller update than the ones to come. This smaller update is mostly about some bugfixes and quality of life improvements, as well as the portraits of the Level 2 Monster Boss (above in desktop format), Lapin The Ranger.

Next month will be solely about working towards the first major update.

Sunday, 31 July 2022

Preparing For Release

This is a bunny. This bunny rides dinosaurs.

 So I have spent the month gearing up for Steam release ... which ended up with me failing Valve's build review. Part of this was due to the testers not realising that the player hosts games on their own box, whilst they had expected online dedicated servers ... and if their testers had not realized that, then I surmised players would also be likely to make the same mistake, and so I changed the whole multiplayer selection screens to be more obvious, state exactly how online play works and also tell them to unblock port 28000 on their router if they are hosting.

Resubmitting the build review I realised that time was ticking on, and with it taking around a week to get feedback, I moved the date of release back. It is now Thursday 18th August. Thankfully my build passed review once I had made a few more corrections based on Valve's feedback.

This is the dinosaur the bunny rides

 I had been working on boss monsters, level two has a bunny riding a dinosaur, level 3 has a sailor driving a mechanical spider called Mecha-Boris.

You can't stop Mecha-Boris!

Stop Boris was a game with a lightgun and spider when I was a kid. The advert was awesome and it's a shame I can't find it on the internet. Here's someone playing it though.

 Due to a deprived childhood I never had Stop Boris and this has led me to become the broken shadow of a man that you see before me. That and the PlayPeople(Mobil) Operating Theatre which I always wanted to finish off my hospital collection. From then on spiders were always known as Borises. The Who had a song called Boris The Spider.


 I also got footsteps and dust emitters working, finding some broken code that would lead to a crash to desktop if the emitter was invalid. Probably been there for 10 years. A quick check for nullptr fixed that and it got sent to someone who can actually use github to upload to the engine's master head build.

Insert Coins - now with added insert coins

A tester had mentioned that they had been unaware of how to trigger the exit node to spawn the level boss due to the GUI being transparent and a lot of action happening on screen, so I made the above GUI to make sure that players can actual see it.

Catgirl Golfgirl

Playable cosplay character four is a golfgirl. Everybody likes golf, except me who was around 40 over par on the crazy putting golf round the back of the pub.

Monsters Loot Swag releases Thursday 18th August 2022 - in the meantime here's a video of Mecha-Boris before I added dust puffs to movement.





Saturday, 29 February 2020

Leap Year Because Time Is Not Constant Enough

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

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


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

My Valentine's date could have gone better.


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

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



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


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

Before and After ...

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

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

Tuesday, 31 December 2019

The Boring Look Back Episode Nobody Likes

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

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

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

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


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

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


So onto the boring recap.

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



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


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

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

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


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

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

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


I made a start on boss monsters for each level.


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

I've made one ...

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

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



Monday, 30 September 2019

Big Boss Battles


The Big Lad

So after the joy/struggle/despair/awkwardness* (*delete as applicable) of learning how the new Blender3D works and then creating an actual character to replace the player's Small Yellow Placeholder Cube, it was time to go after the remaining Big Red Placeholder Cube which had been standing in for the level boss character.

As ever things went horribly wrong for seemingly know apparent reason other than the entire universe having it in for me.


I had split up animations from the actual mesh - that way it keeps loading times down whilst changing things on the fly during development, and means that multiple models with the same armature skeleton can share animation data and thus reduce file sizes - when suddenly everything stopped playing nicely and went back to mutating into a horrendous mess of twisted limbs and multiplied rotations.

The reason this time turned out to be because I was exporting the mesh model in the first frame of the root animation - which is what you would want for blended animations - but I should have exported it out in a copy of the rest pose ... regardless of the fact that this had previously been fine with another model ... which meant that the solution was far down my list of things to test to see if it worked ...

Exporting COLLADA/DAE format from Blender to Torque has become even more specific in Blender 2.8, mostly due to there being a huge number more options available and thus a huge number more things to possibly go wrong ...

https://pbs.twimg.com/media/EDtDhZyXoAApzaI?format=jpg&name=large
I before E except after C ... Also Hierarchy which breaks the rule, and hierarchy is very important ...

I ended writing a little explanation of Blender3D to Torque3D Collada exporting and the importance of hierarchy over on the forums.

Eventually I managed to get "The Big Lad" - as he is currently known unless I can think up a name later - into the game and working. Here's a quick look at him in action. I say "quick" because he squashed me in not too much time. Select quality 720x60fps manually or youtube's autoHD says it's selected it but it's telling fibs.

I fearsome foe! Especially as I end up as pate ...

Apart from that, I modified my laser-beam-wielding veclociraptors by adding helmets and power-packs to them so that they now look different from the other dinosaurs which just bite.

Sharks Dinosaurs, with frikken laser beams on their heads!

I also spent some time modelling industrial scenery, lots of pipes and stuff for a forthcoming level. This will be the fifth level in the game, out of a total of ten - though they will loop for long play. No actual pictures of that yet as it is still all in bits.

So, that was the month that was. It got really warm and now Autumn has truly arrived and I've put socks on. Lot's of other things happened game development-wise but I can't really remember them. Next up is the Overgrown Industrial Level which has been reclaimed by nature, and more boss monsters.

Tuesday, 31 October 2017

Mulit-Level Long Play Test

 Blast monsters, grab loot, buy swag powerups, unlock nodes, beat boss, run to exit. Rinse and repeat for next level.

Finally I actually got around to blocking out some level design. Nothing fancy, just a plan of walls and obstacles for the player to manoeuvre around (apparently that's maneuver for Americans).


It didn't take long before I realized that the whole thing was way too big and needed to be smaller. But that wasn't the only issue. As the game time increases in a level, so does the difficulty. And as the levels increase, the game gets harder. Obviously this is a tried and tested gaming concept, but I was finding that the difficulty curve ramped up very sharply. A little rejigging later and ... it was far too easy. Minor adjustment and too difficult again. Balancing this difficulty curve has taken up the vast amount of time this month.



It turned out that a lot of this difficulty stemmed from the player's powerups not reinitiating in later levels. I had made various changes to the powerup system and how it gets stored for reference and not all of it carried across correctly, and in one case I found that the variable being stored had received a name change at the other end which was no longer being referenced.

Going through the various powerups I fixed all the broken paths and references, and generally tweaked the strengths and effects. Gradius style "option" followers, or weapon satellites which follow the player and increase firepower were toned down in the amount of damage they did. "Static Heal" powerup was scrapped because the player never has chance to stop long enough to increase healing without getting swarmed by enemies. Enemies and their spawning routines were tweaked to give a more gradual rise in challenge but also to watch out for the player wiping the floor with them over a longer period of gameplay.



Each level has an exit, and each exit requires unlocking via activating nodes with later levels having multiply nodes to unlock. To make sure that the player understands this concept there are visual hints in the bottom right of the screen and the in the first level the node is next to the exit. Once all nodes are unlocked the level boss spawns (currently just a large cube with an aggressive charge attack) and once the boss has been defeated the exit opens. To prevent the player from lingering in the level to "clean up" cash and remaining swag I decided to stop the enemy from dropping loot coins once the boss has been defeated. Difficulty also takes a temporary increase both whilst the boss is released and also when they have been defeated to encourage the player to head for the open exit and progress the game. 

In the end it all seems to work rather well, and I am pleased with the result. Here's nearly an hour of playtesting the system. I also found an error at the end of it, as not statistical information was being passed to the end of level screen when the player was killed and the game was over - now fixed.




So, next up is adding a few more statistics to the end of level screen such as percentage of kills, cash, swag, etc that the player has gained that level. After this it will time to get on to actually designing art for the level, and eventually even the characters with a greater variation of enemies, bosses and enemy attacks. But hey, one thing at a time! ;)

Friday, 29 September 2017

Loot Crates And Swag Parcels

Loot Crates and Swag Parcels ... are actually the same thing. Previously they were just placeholder grey cubes, but now they have a final form.
Top row Large crate (rare swag items), middle row Medium crate (uncommon items) and bottom row Small crate (common and useable items). Each crate type has three models which are placed with a randomized rotation.

When the server loads the level, Loot crates are randomized throughout the game world. Initially I added an impact decal with each crate but realized that previously spawned decals do not get passed to new clients when they join unless they are first saved into the level's decal file. This seemed a bit of a faff, so I simply modeled the impact texture into the actual loot crate mesh.

I also replaced the Level Exit Node (which up until now had been just another Activation Node) with it's own model and updated the on-screen prompts to reflect this.

The post-level status screen has also got (yet another) change, replacing the text with icons though text explanations will pop-up via using mouseover. I was hoping that the icons would be fairly self-explanatory but decided to include the pop-up text for safety's sake. Nothing worse than a player wondering what the hell they've got 30 somethings of.


And here's how it all looks in the demo level I use for testing when the Exit is unlocked and the boss fight against Placeholder Huge Cube Boss begins.


Next up, either start to flesh out the remaining models for powerup special attack events - which will lead onto creating characters and the like, or it will be time to start creating some actual game levels - all of which will no doubt start out as whiteboxing.

Decisions, decisions, the pressures of command ...

Monday, 28 August 2017

Level Exit, Boss Fights, HUD, Statistics, Chaos Engine Reference

Busy month - well they're all busy months, it's just that sometimes more stuff end up working than others.

I coded a level exit system which ends with a boss fight, which is currently a big placeholder cube with a charging attack. The exit itself is shielded and the player has to find and activate a seperate node ("NODE ON!" Chaos Engine was a great game back in the ... er ... early 90s?). This unleashes the level boss, and once defeated the exit's final shield fails, the exit opens and all hell breaks loose whilst the player runs to escape the level.

Deactivated nodes have a padlock item above them and a single shield of falling energy particles (which is an animated texture mesh), whilst the exit can have multiple shields (one for each node and an extra one for the level boss). Exits have a revolving exit sign above them. Currently both nodes nad exits are using the same model but that will change in the future. so that exits look unique. In the first level the node will be next to the exit to teach the player the clear relationship between them. In all future levels the node and exit will be randomly placed away from each other and there may be multiple nodes which require unlocking. Nodes are unlocked in the same way SWAG is bought, stand over them and press BUY button and spend that cash.




After successfully completing the level, the player is shown a progress screen which displays multiple statistics and a big scroll list of all the swag that they have picked up.


Testing the gameplay for an hour and then viewing the statistics it became clear that the scoring system needed some tweaking. Sixty minutes of blasting the hell out of everything and collecting nearly 90 power-ups made the score not seem particularly charitable. To this end, I decided that doing anything would increase the score. Kill enemy score++, pickup cash score++, take damage score++, spend cash score++, etc. I also decided to throw in a score multiplier system. This works like a rage system in fighting games (or at least I "think" it does because I've never been a fan of fighting games). I called it "Momento Mori" because dead enemies boost the bar and it can go through 3 levels of muliplication for kill scores before sticking at level x4 for 30 seconds and multiplies all points from all sources. Using heavy attack boosts Momento Mori the most, light attack less and item kills the least.



Which brings me to changes to the HUD and general player interface. I added icons to all the bars and other player display objects. Cash and Points are animated meshes embedded in the HUD which rotate. Cash is a silver coin  - gold for a king, silver for a gentleman ;), score is a gold star in a ring (cos it looked better than just a star), health is a heart whilst energy is a lightning flash and Player Status is still a placeholder banana. Experience and Leveling was a little more awkward. Initially it was just "XP" though I eventaully settled on a bar chart with a small arrow at the end.


When the player exits the level - or dies, whichever comes first - their remaining cash is transfered into points at a rate of x10. Originally there was a whole load of text explaining this but I replaced that with an icon which hopefully does the same. This now displays for a few seconds before the whole screen fades out and the statistics interface fades in. I may in the future replace the text in the statistics with symbols.


I also declared a major victory in the on-going struggle against console spam. When a trigger was deleted, it would list the objects in it for a final onExit callback - except it didn't have a list anymore because it was being deleted. A quick "if ( gEvalState.thisObject->isProperlyAdded() )" put paid to these needless warnings and lines of red highlighted text in the IDE and console. Hurray!