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.

Friday, September 27, 2024

It's a Peaceful Life on Floren Farm

I had a very profuse language moment today, as I realized I had a bug in a single line of code in my editor, which meant that when I was placing down trees (technically any brushes, but trees was where the issue was precipitating) I was unwittingly changing every tile underneath them to make anything movable - so a rather than being stopped at the edge of water for example, the player was able to walk out onto the water. Oopsie.

The good news, it was literally one line of code that was pretty easily found and corrected, but there's a lot of trees that I've added to the world, which all need fixing to make the terrain the way it should be again. The editor will let me do that pretty easily, but it's still rather a pain. Could be time spent doing better things. Oopsie.

And with that annoying discovery, I am happy to say that I've pretty much built out the last of the initial test world. There's three islands, East and West Floren and the Blighted Isle. 

I've got two more building interiors to do, and then it's quest and NPC time I think. I've also been thinking about the rendering engine and memory management for more complex animated objects (players and creatures). I think as part of the work I'll be doing while alpha testing will be to look at improving it to make it more smarterer. Currently it's great for the various textures used in the world, but I should implement something similar for objects too. And do it so that it is only loading up the animations and directions it needs on the fly. Basically, I know what I want it to do, just not sure how I'll get it to do that neatly.

Anyhow, Floren Farmstead is done, complete with a delightful farm that was quite a bit of effort to get done, but worth the final outcome I think.

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