Friday, October 18, 2024

Rendering Redux

I've been meaning to for a while now, change the way that sprites are rendered, switching from the current concept of "render and prepare each one to a tile size" to "render it in the tile, to any size you want". And today, was finally, the day when it happened.

So, that's a quick update. It's enabled a lot that I wanted to do around bringing in some images in a higher resolution and so on, as well as some other assets that I have where the asset itself is normally surrounded by a good deal of clear space - which would have shrunk the final output needlessly and so on. Blah blah, code stuff, code stuff.

Is good. Is better. Is success for tonight.

Here's an inn in the starting area, with the newly much larger party sprite for my party. The final one will end up probably somewhere between this one, rendered at double the size of the original and merely a higher resolution original.

Oh, and I'm off for a break for a few days. Loads of cold weather and hopefully good food in my future!

PS. Quick thought. This works for the normal scale creature (supposed to be as large as the party animation. I'll need to validate my numbers still work for things that are supposed to be multiple tiles in size.

Wednesday, October 16, 2024

Stabilising and Bugfixing

There's been a good bunch of things in the app, that I've known about, known that were broken or unfinished, but I've simply been avoiding them as I know I can circle back to them. One of those things is reagents for spells and abilities. It's certainly a to-do to be able to give an special boost to an ability or spell with the right ingredients on hand. So, there's a button for it. If you press the button, right now, the game hangs. Whoopsie. I know I'll circle back to it at some point soon and fix it out, but it's an example of, well, something sharp on the workbench I know about, but shouldn't be there if someone else is coming to use my stuff.

So, I've been hurriedly fixing all manner of such things, to get the app crashing much less, and getting the game stable. Doesn't mean I'm implementing all the things, just taking the sharp stuff off the bench and putting it in a drawer with a "Fix me" sign.

At the same time, I'm looking to add in some content into the world. The quests that were there, were purely for me to test out all the features I wanted in quests. Not to actually do much else, so as I start having folks running about, I really do need to add some content for them to do. "Here, play my game, there's one section with some wolves, and one section with some goblins! Have fun!" ... ... ... really doesn't go as far as it should. So that needs urgent attention too. If only I didn't have a full time job and work around the house and maybe a team of developers to work on all these things... Well, if I had all those, I'd probably be bored. So here we are.

Oh yeah, and at some point, the sound stopped working properly. I think I need to fix that urgently too.

Monday, October 14, 2024

I'm Doing My Part!

Yes, there's been that many bugs that it could be a new instalment of Starship Troopers -PS, nothing after the first was worth a dime).

There's an annoyingly high number of server bugs that I'm finding. Things that I already solved for in my dev machine, but that didn't get copied over properly to prod in the different environment. Dumb little things. Annoying little things.

Things that I'm fixing pretty quickly and getting back to where things should be.

I'm also paying more attention to some things... like Goblins not moving in a particular encounter... investigate code... look though combat logs... scratch head.... discover that I've set up the goblins with zero move. So yeah, working as expected - and the moment I updated it to what it should be, things just worked again. A whole bunch of things with Quests too were flagged and fixed.

So loads of those little things, but quickly found, quickly fixed. I've even started updating conversations and quests again, so the folks doing the alpha testing aren't standing about scratching their butts with boredom.

So, it's been a super productive start to testing. Super chuffed!

Saturday, October 12, 2024

Today is a Special Day Indeed

So. Today is a special day. But lets start a few days ago.

I created a set of install files from my development server and did a good bunch of testing to make sure that generally things that should work, do in fact work. And they did in fact... work. So, I sent them out to a few friends to test. And.... whaddya know. Doesn't work.

So, I'm scratching my head, trying to work out what's gone wrong. I install it on another physical device I have. Works. I run it using a different email address, thinking it might be some artifact from my login. That too, works. I do a bunch of trouble shooting, and I find that it's not working when I drop off the wifi at home and use mobile data. Now, if you're really clued on, you're probably solving this already - but that's not where my head was at. I was thinking that there might be some weird certificate issue between hosts that's for some reason showing up when I am on a different network, so I'm playing with stuff online, and no luck. More head-scratching follows.

I eventually dig into the code. And find that while I thought that all my code was working perfectly online, it was in fact secretly still happily dialling into my dev server for some aspects of communication. Okay, so there's that to fix. I'll cut to the chase, but a lot of code fixing and development of new code to handle certain functions was done and deployed online to my prod server. It's quite different as the tech stack online is different o what's at home. Anyhow. Not important. I finally got those parts properly online and deployed.

Huzzah.

Great Success.

My friends can log into the app, and finally start running about. And a lot of stuff doesn't work. So I've now been madly running about, arms flailing and the like making fixes to the code and deploying to the prod server. I've mainly fixes most things that are/were different. I seem to have completed a quest properly finally, which means quests are completable. I also broke something in combat. All the player characters seem to vanish in combat and not exist. So that's a tomorrow thing to fix. I played with a few things today, so I'm sure I borked it then.

Anyhow. Tonight I can enjoy and bask in the warm glow of no longer being the only person playing Torn Realms.

A huge thanks to Nath and Abhi who are installing my stuff, testing for me and dealing with many more app crashes than they should.

Wednesday, October 9, 2024

In the Weeds, but Important (aka While I remember!)

So, boy oh boy, this is an update that's deep in the code. The code that no-one will ever see, other than the game should stay running nicely and not hog up more and more memory on your device.

I've finally written up the code that will load needed bitmaps for all the monsters and player characters on the fly, and just as importantly, drop them back out when they are no longer needed (until they are needed again, when this starts over). Similar code also works for the various animated landscape things (torches, trees etc).

I'm not getting into any deeper discussion on how it works, cause it's just not needed. The good news for me, is that it finally, does, indeed work. Which in turn means that you, or me can go legging it around the world, and there can be all manner of different monsters and things about the place, and the app will happily render all that's needed without the Android system underneath it cracking it with how much memory is being used up as more and more is loaded into various things.

With some luck, tomorrow I'll tweak the lighting system to make a few changes to how lights are displayed. I'd like to have a max differential between the ambient lighting in an area and a light source as well as a cap on a light source luminosity. That will make for better looking effects, but also allow me to make some items better in different areas. It makes sense in my head currently, and that's what I'm working towards!

Oh, and we're looking at the Floren Lowlands just to the north of one of the starting zones.

Wednesday, October 2, 2024

Character Inventory Updates

So, quick update. I've been chipping away at various bugs (Read; BUGS BUGS BUGS!!) and generally enjoying the process as it lets me not only fix bugs, but give things a quick polish while I am at it.

Case in point, the Character Inventory screen would cause a crash if the phone changed orientation in some contexts. Great. I'll fix that, and at the same time, tidy up some of the other layout items, implement text colour identification of item quality and tidy up a few other things in the vendor/loot screens. Winning all round.

Also, this is Grumpster, one of my terribly named test characters on my development server, along with a mix of bought and looted items and equipment.

Monday, September 30, 2024

Monster and Encounter Thread and Syncronisation Issues Resolved. And a Tour of Floren

If you write code, anything to do with threads and object synchronisation issues probably strikes a chill down your spine. And kudos to you if it doesn't! If you don't write code, picture this, you're walking along in the game world. There's a wolf in the shrubs, about to leap out and attack you! There's a split-second of panic, your characters aren't all that healthy, this could mean disaster... and then.... everything just stops. The game hasn't crashed, at least not as far as Android is concerned - but it's frozen. The only way to resolve it is to kill the app and restart it.

And that is a problem no more. I seem to have resolved it through using some new (to me) concurrency tools that I wasn't even aware of before.

So, that's the utterly boring development stuff. Now for the good stuff. I've built out pretty much all of my test/starting zone and although there's a bit of work yet, properly zoning things out, adding in world lighting and so on, that's probably going to take (I can see myself already writing "Actually, it took much longer than I thought it would..." at a later date) not too long comparatively. And the good news is that it's big enough. I did a lap, basically legging it non stop, doing the slightest bit of sight-seeing if things were nearby and it took just over eight minutes. That's a decent sized place. And it looks good. At least I think it does. There's a few things to look into as I did my lap. I'm not sure why one NPC's name wasn't showing when I ran past them, but that's all small fries.

So, what's the world look like you ask? Well, see for yourself in this little tour of the Islands.



Rendering Redux

I've been meaning to for a while now, change the way that sprites are rendered, switching from the current concept of "render and p...