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.

Tuesday, September 24, 2024

The Blighted Isle

The last few days have been focused on putting together the last major section of game world together that I want to have for some initial testing. There's going to be a bunch to discover here, and as players get through this part of the world, it'll shine a good bit of light onto the overall underlying story, so it's been fun getting the initial design down.

While it is supposed to look very different (and well, blighted) it is still part of the Floren Islands, so it needed to still maintain a connection - so I've been using the same style assets in parts, but then did some significant modifications to some other assets I have, and in hindsight, looking at it, apparently channelled my inner Fallout styled landscape as I designed.

Anyhow, I'm enjoying the change of scenery as I pop this together. So a bit here, a few interiors, another cave thingy, some more East Floren Island and it's done for landscape. There's going to be a good bit of work zoning this up, but I think once the main land is done, that'll come easily (he said, hoping it would).

Friday, September 20, 2024

East Floren Continues (or Yaaaar!!)

I have to say, these evenings have been great. I've been hunkering down and just bashing out some world, bringing in new assets that I've been quietly amassing over the time I've been plugging away at the app and editor, and now I get to play with all the cool things.

This afternoon, after work, I put together more of the island itself, starting to lay out what's what, so to speak, but also did a design side-quest and added a dock, which makes sense thematically, as a nice way to connect the Floren Islands to the greater world.

Other than that, not a lot of updates, but it's enough. The world is coming along nicely, if a little slow. I'm very happy with the quality that is being generated and the assets I've picked up along the way are just a delight to work with.

Tuesday, September 17, 2024

East Floren Island Started

So, although the title says East Floren Island, I spent the majority of the evening still in the caves below the islands. However, that was yesterday's post, so today I'm posting the very start of East Floren Island, with another building that will be full of NPCs and quest starters in what's going to be the little nexus of the islands that is a hub for the start of the game.

I do feel that I am slowly getting quicker at building, and as I get into habits, I am avoiding more and more of the same mistakes over and over - like applying textures to the wrong layer and having to fix it all over again.

Anyway, as I've been building out these bits, especially finishing off the caves, I've had good thinking time to slowly plot out some basic story for this part of the world, and how I want to grow this up over time. As I'm designing the world, I'm adding little things that might come out in conversations, just in terms of what things look like - and the hope is that you walk past them any number of times, and never really notice, other than "that looks different" and if you talk to the right NPC, there might be an answer for WHY it looks different. Or, you know, it's also just as likely to sit in my head if I forget to add those backstory details in. Seems fifty-fifty to me currently.

Monday, September 16, 2024

When you Can't Go Up, Go Down

So, I've sort of finished up the Western Island to a point where I'm quite happy with it, and so I've kept at the cave system under the island. I have loaded up some more assets into my editor, and there's additional  cavey-stuff now for me to use which is great, just adds that little spot of difference.

I'm still getting into a good groove designing the areas, but I am getting more and more comfortable with the process I currently have, namely sketch out a basic layout in a base texture, get the flow and layout roughed out, then build up path blockers - in the cave, that means cave walls, above ground, that might be level differences, water etc, get those done, then do two or three passes of adding in flourishes, decorations and things to break up the plain-ness of it all. I am get to really work out the right place in the process to do the lighting and interactive elements.

I do also wish that it was easier to get the raw assets into the editor for use. Currently there's a LOT of chopping and saving of files in an image editor. Not sure on that one, and it's not a priority yet. The more I have built up in the library, the easier it is, but once I get to proper world building, not test area, it's going to get moved up the priority list quickly I think.

I'd love the world building process to be quicker too, but even the few weeks here and there that I've been properly building I've been speeding up, and I am very much finding the output quite satisfying, so maybe there's no quick way to get to the quality I want. There'll be plenty of time to work it all out.

Sunday, September 15, 2024

Yeah, so it's been a rough week

So, I got some utterly devastating news about a friend recently, which has basically been heart-wrenching. That's thrown a wet blanket on anything I've been doing in a most horrid way, but I've been using some world-building as a way to distract myself form the really ordinary news. So, the east Island of Floren is pretty much done. I might do a few more tweaks, but it should be there for alpha testing at least. There's enough there in a few distinct areas to make for a few different zones in terms of creatures and the like.

I did decide to make an effort today and add in some new app functionality, so when your app starts, it can see if the versions of files it has are the newest ones, or it what's online is newer - and if so, download and cache those. I'll need to extend that to all aspects of resources, but having it function for the main rendering assets is a great start.

This screenshot is of one section of West Floren Island, towards West Bridge.

Monday, September 9, 2024

Floren Islands Coming Together

I spent a good bit of time on the weekend working through some various bugs, mainly with good success. Nothing major, just little bits here and there. I made some editor tweaks (adding a sort of colour picker that I can use to select terrain from the map directly to use) and annoyingly, some issue came up with the website here with a certificate becoming buggy.

The big news however, is that I've been spending a little time finally playing properly in the editor, crafting the world slowly. I'm getting the hang of things in the tools I've built, and I'm also working out my processes better, which is speeding things up nicely.

So here's a few nice images of West Floren Island coming to life in the day/night cycle and also the dark caves on the island. Luckily my party has been spending hard earned goblin loot on some torches which provide a good light source. I may or may not have also needed them for testing out some lighting functionality, but lets not let that spoil the narrative!








Tuesday, September 3, 2024

Quests feel.... completed?

It's been a few days of bug-and-not-quite-right whack-a-mole over the last few days with how things have worked. When I tweaked the conversation interface in the editor, it let me set up more complicated conversations. That in turn then let me set up a few test quests in a more complicated manner. Something that involves different sections, and different goals and the like. And overall it wasn't quite right in terms of how it was working. I've solved issues with picking up quests between logging off the game, and coming back in later, keeping track of requirements that have completely different things to do. Kill some specific amount of creatures, find and hand in a certain amount of items and the rest. Each of them holds a specific state of completion and it's been quite challenging to keep the server up to date with all those things as they happen and let you pick back up at the right place when you load the game back up again.

I've picked up a few new bugs along the way that haven't been fixed yet, but a lot of other things also works amazingly well. Quest items were dropping in the right loot at the right part of the quest when needed, then stopped again later. They're actually dropping a bit too often, so I've got some code in the loot tables to trawl through, but that's small fries I hope.

The plan is again, keep building out the world a bit more, using all the features as much as I can, and testing that functionality as I go, both in terms of pure function and in terms of does it look good enough for the app itself.

Plink plink plink

So, I've just dropped another internal test build out, capturing another big bunch of changes I've been building up with particular ...