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.



Sunday, September 29, 2024

File Caching, Animations and The World!

So, this weekend has been rather productive. The first thing I did was get stuck into that section of code I've been meaning to get on, where the app will download a file from the server, and then keep a cached version of it to re-use. It will recheck the server for newer files, but always default to using what it has already downloaded. Quicker for you, quicker for the server - and most importantly, it means when the world is updated, or new things are added, there's no need for an app update, I can merely update the server, and bam. Done. Champagne's popping all round.

The next thing was building on that. I removed al the files that I had built into the app itself that stored animations and the like and dropped em on the server. That took a bit of re-writing so that the app knew how to find the original files, and then to process things from a different location and the like. Anyhow, that's also done now.

Lastly, I've been looking around at my little world and checking a few things. I timed running from one end to the other, in the straightest possible manner. About two and a quarter minutes. That's with no combat along the way, and basically legging it as quickly as I could. Certainly enough for a nice bit of testing, but I think this will be a fantastic starting zone in the greater scheme of things. Or maybe one of the starting zones.

So that's where I'm at. Today's file work brought me a lot closer to being able to implement the on-the-fly bitmap loading for animations and the like, but I didn't get as far as I'd hoped I would. I think my next app focus will be to read and process animated objects (things like the player character and monsters) differently more inline with how this new animation code works. That will be the next few nights, in amongst finishing up the world for testing.

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 bee...