Friday, 31 July 2020

My Feet Hurt, New Character And Goodbye DX9

So, apparently the new Blogger interface has been eating my images for the past 2 months ...
So expect to see a blank image leading to a 403 page soon™.

It's been the hottest day of the year here, so naturally I went out for a half marathon route march ... and now my feet hurt.

I finally finished off another playable character model, a shotgun wielding, propeller-powered catgirl, currently named "Southern Hospitality", complete with Daisy Duke hotpants. She has a short range playstyle with slow attack rate but high damage and medium manouverability. After each shot a new shell is loaded with a single handed pump-action for the obligatory "rule of cool".

And here's some video of gameplay.

Apart from finally completing a second playable character I have been porting over my project to the new and shininess which is Dx11 and OpenGl 3.2 (might be 4.0 I can't remember). This meant a final farewell to the much loved DirectX9.0c which I could just about write a shader with. No such luck on Dx11/OGL with such things as of yet.

This has required me to finally defeat the spaghetti code which I had previously wrote, slimming things down in C++ and removing bloat for the porting. I have only ported to the pre-PBR branch of the engine - so really 2019 code - as a stepping stone to entering the latest shiny stuff once I know what the hell is going on. So far so good. Everything seems to run fine - except for my broken Dx9 shaders but that was to be expected.

I've also stuck my hand in my pocket and made a new, capital purchase. Only had it out of the box once for a quick test. If Google hasn't yet fubared my images, here's a quick pic below.

It's been an awfully long time since I've done any drawing.

I also used a 14 year old camera to get some pics of Comet Neowise.

It was my parents Golden Wedding Anniversary. 50 years! Albert Speer only got 20 years in Spandau Prison!

Tuesday, 30 June 2020

Flaming June

It's summer, it's flaming June.

Expectation ...

Versus reality ...

But then eventually ...

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

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

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

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

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

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

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

Sunday, 31 May 2020

Doing It Wrong

Doing it wrong! The story of my life. An act in 3 parts - hopefully ...

I had forgotten how to make characters.

How did I make this? Absolutely no idea.

I hadn't written anything down. I knew the software involved but the actual steps? No idea. So I started again from scratch, intending to make a better system and this time wrote everything down.

I ended up writing a long thread on how I got a model from makeHuman, into Blender, and ready to import it into open source game engine Torque3D. You can veiw that here.

Now importing a mesh into Blender tends to come with a whole lot of transforms which Torque just doesn't like. The main being facing the wrong direction as in-game, negative Y is forward. So for the last nth years I have been seperating meshes and armatures and editing them so they face the correct way and then aligning them manually. This gets rid of all the wonky transforms and sets everything to a nice default 0, 0, 0. That way I can - hopefully - put any other animation into the armature.

This is all very faffy.

Whilst changing the default pose by using the "apply visual pose as rest pose" I was struck by a sudden thought; wouldn't it be nice if object mode had an apply transforms option? Thus I could pose the model with the correct facings and just apply  each object, armature, mesh, etc with a click to default it all to zero. And guess what? It does have that button already.

Well ... crap. I've been causing myself unfathomable amounts of problems for god knows how many years by manually rotating everything by selecting all the vertexes of each object, turning them, and trying to line everything back up by eye - when all I had to do was click a button.

So ... talking about doing it wrong, there's more.

I've been going about making my game wrong. Or avoiding making it would be more accurate. This is partly - or even mostly -  due to a helpful blogpost by a developer that talks about Steam. Why is it helpful but made me lose focus on actual development? Because of wishlists on Steam and drumming up future sales. He pointed out that his previous and very successful games had a Steam store presence 1.5 years prior to launch which meant that he had managed to accrue 33,000 wishlists. So when he was finally ready to ship, 33K people got an email telling them it was available. Even steam suggests getting at least 50K before release.

I have half my levels completed, all my monsters for each level save the bosses, and complete working game code that makes it all playable even if some pieces are missing. But I don't have anything public facing. I have no cool box art or even working main menu screen. I could have done this previously but I was too fixated on making the actual game work that I never even took into account that I needed to get potential player support early on and that means having a working Steam store page with nice artwork that brings people in, adds backstory and concept. I don't even have a title for my game other than the temporary working one. In fact my previous game; Airship Dragoon had no final title until the month it went on sale.

Here is a link to the full article. Here's another one on wishlists.

So ... doing it wrong ...