Friday, August 30, 2024

NPC Conversations gets the Editor Interface Glow-Up

I ended up continuing with the editor this afternoon after I wrapped up my Friday at work. Given that conversations and quests are intertwined, I thought I'd make it easier for myself and add in all the new fields into the conversations editor interface before I go building new quests and inject them into the conversations anyhow.

Long winded way of saying that the conversations editor now is rather shiny and fresh. There's a few visual things I'll add to make it even more intuitive, but the important stuff now works, so that everything that the app needs is a point and click interface to build in.

Quest building time tomorrow. Definitely. I mean, almost certainly. At the very least more than likely.

Thursday, August 29, 2024

Editor Questing Revamp, and More Quests

As I started building a bit of a quest yesterday evening I started looking at all the things that I was amending in the database, to cater for new columns that I'd added and extra functionality that I was using in the app.... and of course, I side-quested myself into giving the editor a refresh in how the interface for quests looks and works. And most importantly, added all the new fields and some nice dropdowns etc.

So, perhaps today, I'll use all the new functionality nicely and neatly, create myself a quest that will let me check all the functionality I want to make sure works together in the app and cross my fingers for everything to work delightfully. At the same time, I think I'll go through the editor interface for NPC conversations and give it the same loving, as there's a bunch of new functionality there as well - which goes hand in hand with the questing work.

It's Friday, there's a whole weekend ahead of me. I'm feeling good!

Again, no screenshots here, there's nothing fancy or worthwhile  to show.

Wednesday, August 28, 2024

Not to Jinx it, but Quests...

Things went rather right this evening. I had a reasonably decent idea of what I wanted to write and how it was going to work. And... it did.

Quests that require you to gather a particular number of items will now nicely track those items if you open the quest, they have an NPC to hand them into, the right action button pops if if you've enough when you walk past - and the code nicely handles it when you hand them in. They can be any mix of stacked, single items across multiple characters even, and it only takes what's needed, so quests will have the capability to either require particular quest items - or normal items.

Anyhow, I'm rather feeling like the dog that caught the car again tonight, cause I sort of did all that (fixed a few bugs along the way as always) and tomorrow is a whole new day for something else again.

Actually, perhaps tomorrow is a good day to test a quest with multiple quest sections that mix up all these requirement types to make sure it really REALLY works, while it's all still fresh in my head. Yeah, I think that'll be the plan.

Tuesday, August 27, 2024

Quests, Quests, Quests!

This afternoon, like yesterday afternoon, I've been at quests, tweaking the behaviour as well as server updates. Basically, it's tedious as heck, but it's functionality that needs to be there, and I'm getting through it at a decent pace. I've tidied up the way that quests maintain events on the server, how they interact with themselves, and this evening I got the code working to correctly track and identify quests were you will need to kill a certain amount of something. Then of course I had a "Huh... well..." moment as I realized that nothing in my database would keep track of that particular aspect, so that also got fixed.

It seems to be working, and I've logged in a few times, killed one creature of a quest I am on and things seem to be updating nicely as they should.

Tomorrow, I'm hoping to either find something not quite right in tonight's work, or move on to quests that require a certain number of quest items to be collected in some manner - there's not going to be any need to store that on the server luckily, the items are already there, so it should just be a matter of counting items from inventories on the fly.

Sunday, August 25, 2024

Questing and Conversational Weekend Work

I luckily managed to have a lot of time for programming over the weekend, and it was spent banging my head against the code-wall of how I wanted things to work. It was frustrating as every time I got 90% there, something else would break, and I went back and forth with this charade of almost-finishing a good number of times. But, with the whinging out of the way, I did in fact get there. Well, materially, there's a few things I want to clean up, but all the important things work.

When an NPC offers a quest, it drops an offer into the chat, you can click on it, see the gist and the rewards, and choose to accept or decline. Based on that, your next answer is ready in the conversation where you left off, and the conversation picks up from there. Secondly, I'd never written code to actually complete, nor hand in quests, so that's done too. That needed some extra thought placed around it, but each quest will be handed in to a particular NPC and that's what finishes it up, takes you to a reward screen if there's items, otherwise gives you the money and experience or whatever else and you're on your way.

Oh yeah, as silly as it sounds, I also wrote up some answers the ability to close the conversation entirely and drop you back to the main game. Again, just those tiny things that should be there as core functionality.

What's left? There's a few cosmetic things - the rewards displayed in a quest are pretty bare-bones and need to be improved graphically. I need to do some cleanup when a quest is completed to wipe out any old quest-events from the players history, but have just the right place in the code to do it already, it'll just be some cleanup. Oh, and with conversations, I want one more feature where a reply can circle back to an earlier part of the conversation. Currently, they are purely linear, and with what I was doing over the weekend, I thought it would be easy enough to add a field or two into the database, and then let those conversation threads circle back to earlier parts. Basically to let you get back to something you missed without needing to restart the conversation always.

So, all up, it was very laborious, but also really productive in the end, and certainly bringing me closer to what I think is ready for some alpha testing.

Friday, August 23, 2024

It's turning into a quest to get quests working so folks can go questing!

It's Friday after a long week of work, but I've put in some good time into Quests, how the are displayed, and a few other things. The good news is that I think I finally have worked out all the things I need to change in the app. The bad news is that there's actually a good bit there to do.

The biggest issue has been that so far, quests were sort of magically "inserted" into your game during conversations, which really wasn't good enough. You spoke with an NPC, and if you said you'd do something for them, it was inserted in. There wasn't a real way to display the quest, along with rewards and a sort of Accept/Decline option. I'd also somehow missed setting up the rewards in the app. They were there in the database and editor setup fine, but I wasn't doing anything with them, so that needed doing too - but back to the main issue.

How to flick from the conversation, to a quest accept screen, and then back to where you were in conversation. Oh also, of course there's more problems. With the way I had the code set up before, basically if you accepted the quest, it then loaded it into the app for you. - which means I need to also change that, so I can display it first, then let you choose if you want to do it or not. THEN set it up for processing and so on. Holy wow, if you're still reading this, thank you single reader. As always this is really to let me vent and clear my head for the next day.

So, I'll need to change the way that quests are loaded into the quest repository in the app, so they can load without the player actually accepting them (and running all the code that entails).

I've gone and done some of the code already to display the summary and have an accept/decline option.

And I think I have worked out how to return it to the conversation and let it pick up depending on what happened there. We'll see tomorrow.

Oh, and I'll need to then set up the code in a way that lets the player claim their rewards - and where that's triggered to happen - again, in a conversation maybe?

Thursday, August 22, 2024

Slowly Slowly

I'm continuing with a load of fixes, and generally getting the app back to a good functional state. Yesterday I managed to fix up a few bits and pieces and build out a little more world, dropping in a few NPCs and starting to write a few test quests. This evening I've managed to find a bunch of bugs in the app code for quests and conversations - like answers not checking for the right events and generally mucking up the story arcs as they should process. So, again, a bunch of tedious little fixes here and there. Some of them related to the major rewrite I did a few weeks ago of the app sections, but a lot simply there in code I've not touched in a long, long time and have been left behind as I made other changes.

One other thing that I am noticing very much, is that I probably need to improve my editor interface for conversations and for quests. Over and above the things above, I'm not finding it super easy to intertwine the conversations that NPCs have with where the player is up to at the right time currently. I can sort of get there in the end, but I can see I need it a lot more intuitive than it is now. More point and click. And better screen layout than I have at the moment. So I'll invest some time there too.

Anyhow, loads of small incremental and seemingly invisible updates, but moving in the right direction. I always expected (some) of this as I circled back to these very early sections of code that I'd written up.

This is Davos, you'll probably be chatting to him pretty early if you can find him.

Tuesday, August 20, 2024

So Many Bugs and Fixes

I was on a bit of a sugar high with the redone lighting system I'll admit, but boy did that rush come to a bit of a grinding end yesterday when I started adding in some fresh creatures to the world and tried to do something with them.

The editor animation creation tools are a bit buggy. So a few crashes cost me some time before I cracked it and wrote some extra checks to make it a bit better.  Then when I finally added a new animation (a grey wolf) and tried to set that up in the app, all manner of things went wrong. Like rendering completely incorrectly, and only after I'd worked out that my edityor interface wasn't updated with a bunch of logic and fields I'd added. As for the rendering going wrong, I mean, parts of the wolf were being rendered, but not the right parts. So I scratched my head for ages while working out what was going wrong, then finally realising that part of my code reading in spritesheets in the app was clearly going wrong. So I loaded up the older individual action sheets - and then it worked. So, with that finally working, I could finally start having some combat in the new world, and also the first time the new location rendering system was going to work in combat mode. It was also buggy. There's work there that I need to tweak with the updated code, cause right now it's a bit special to say the least. I then decided to keep up and build in some respawn points. More issues there. My patience is about to break at this point.

On top of that work has been quite needy and our team is generally feeling tightly wound and rather over it too.

So. Back to basics. I decided to just start fixing all the things as I needed to. I went in, added all the new fields to the editor for Creatures. That got Mr Wolf working. I then tweaked the code for zone encounters and that started working. Finally I just redid some of the code around locations and how they are saved, made it a nifty point and click in my editor to create a respawn location, then tie it back to a realm as needed.

So, here we are. I've fixed a whole bunch of things that used to mainly work, that got tweaked to the point where they didn't work, and then corrected to the point where they work again. And I still have to fix up the rendering in combat mode. But again, progress. Sometimes, like today, seemingly one step forward, one step back, one step forward, but ever so slightly more forward than before.

Oh yeah, this is the trading building on East Floren Island, with its shiny new functioning Respawn setting under the gaze of Vitalist Jeremy.

Saturday, August 17, 2024

The King is Dead! Long Live the King!

So, there's no update from yesterday because, for lack of a better term. I cracked it. I said I was going to try to work out what I needed to do for my lighting system in an image editor, as I wasn't really able to work it out on the fly in the code, and I opened up trusty GIMP and did a few screen shots, mocked up what sort of lighting I wanted in some layers - and proceeded to find out, why it was exactly, that I couldn't get the look I wanted from it. For the graphically minded, I had a composite layer of world (terrain, decorations, animations etc) then a world lighting layer, then a player/creature lighting layer. And therein was the problem. Once I applied the first lighting layer, I was potentially shading out parts of the world that I didn't want to put into shadow, and there was nothing that I could do with the second layer to bring it back.

I could make it look half-not-terrible with a medium lighting level, but as soon as things started getting dark, it went to the dogs.

So. It was time. The King (Lighting System) is Dead.

I did a complete do-over. I discarded the entire lighting system and rewrote it completely different from the ground up.

Long Live the King (Lighting System)!!

There is some bad news. My old system could do a "shimmer" which meant that lighting looked like it was dancing about within it's radius. And I've lost that. I can't get that working with the new system.

There's a lot of good news. Big good news. Most important by far, is that the new system actually does what it's supposed to do. The player lighting as well as stationary world lighting looks and works the way it should. When there is a lot of ambient light, and when there's basically utter darkness. There's more great news. The framerate has basically doubled. On my device, the framerate is now back up to about 35 frames per second, which means it feels completely smooth with the recent changes I did for the extra threading and subsystems. That means a few things. Firstly, I have some CPU cycles that I can use for other stuff. I can see some weather and particle effects in my future. (Seriously, future, not now). Secondly, as I was implementing it the new lighting system, I saw potential for doing a whole bunch of different effects that will open up really fun possibilities for character states or abilities that I wasn't really able to access with my old system. I know that's vague as buggery, but at the moment, it's sort of open ended in my thought process. Basically, I can do really cool stuff with the world view in ways I couldn't before, and I'm excited about all the ways I can use that to make a better story and game.

Also. I fixed a few bugs as always. Vendors were working perfectly well on my local setup, but weren't working in the online version. There was a good bit of faffing about with tweaking code to fix some warnings/error messages showing up in my deployed build compared to my local server install. Anyhow. Vendors work again. Again, getting closer and closer to an alpha test.

I think with these things now in, I'll look to build a little more world, set up some encounters and see if I can create a few starter quests and then focus on making sure quests do indeed do all the things they should do.

Thursday, August 15, 2024

Bug Fixes and Features Enablement Galore

As the title says, no major things done last night, but I did go through and fix quite a few bugs. The world re-renders correctly now when moving up a level, rather than only when you start moving. Some other bug fixes done too. The bigger part of work was actually going through and adding into the code features that I had placeholders for. A while back, I enabled the game colour to change with the zone you were in. Last night I went back and added all the code to the database, the editor and file interfaces to really send that data through. The day night cycle now announces to the game journal. Little stuff like that.

A big thing that I got stuck on was lighting though. I thought I had it right but then I Was tweaking some lights in a zone, and it's still not quite there. I've got two lighting layers, and it's not coming out quite like I want it. So I think I'll whip out an image editor today and try to work out what I need it to do with the layers, then try to make it happen in the game. There, targets set!

Wednesday, August 14, 2024

Conversations Bugs Fixed (ie - Back to Sanity)

This evening was spent on sensible things again. There was a bug that meant a conversation would reset if the phone was rotated from landscape to portrait mode or back again. Another one of these Android things that I didn't really understand all that well when I started this project, but understand much (or at least a bit) better now. At the same time, I was also remembering how to use my editor for conversations, which turns out actually isn't terrible. I still need to make one interface in there for adding events without having to dig into the database directly, but that's small fries.

I also added a few more NPCs to the world, so that things are starting to get closer to an alpha testing sense.

Tomorrow I hope to add some critters to part of the world, and test/tweak the code for quests so that I can tick off the required number of critters culled for those sorts of requests.

This is Greta by the way, she's setting up her little shop on East Floren Island.

Tuesday, August 13, 2024

Code Cleanup Continues

What an alliteration, and I wasn't even trying!

Anyhow, droll update from this evening. I've spent the last few hours moving some code from one thread to another, so that they can be more organized and make more sense in what they do to me. It's really boring and tedious work, but it's making the code cleaner, moving important operations from one thread to another - and generally making more sense.

So, that's all the update I'm posting tonight. I did stuff.

Monday, August 12, 2024

No more Jitters!

So, I was supposed to be world-building since Thursday. That did not happen. At all really. What did happen in its place was me rediscovering how annoying the jerky-rubber-banding-jittery-movement terrain bug was as I started walking about the world I was building. So that was enough of a distraction to completely sidetrack me.

And, the result is that after a monumental and gruelling effort where I was starting to question my ability to code, to debug and to understand logic, I've finally resolved it. It only took basically a completely rewrite of some logic and the bones of the engine in some parts. The good news is that this has however also set me up to be able to add in a lot of additional efficiencies as I now have yet another thread that does stuff. So, the idea will be to push a bunch of the heavier lifting around maintaining active files in memory and doing a bit of cleaning up in the app to this one from their current places.

So, doesn't feel like there's a big update, after all, I just fixed one bug when you move about, but it was a real show-stopper, so it feels like I should be celebrating. So here we are!


Wednesday, August 7, 2024

Building the World Slowly

So, building out the world takes quite a bit of time. I'm being pretty picky with it, especially the insides of buildings, and I'm really just feeling out the right scale, the right number of knick-knacks in places to keep them interesting and the like, so it's very much a touchy-feely hand-holding I'm doing with myself as I set these first places up.

Anyhow, it's quite fun. And it's a good activity to do after a pretty solid working day.

Also, Admurin is a fellow who I have been buying some assets from - and he's named one of them as him. So, there's a merchant in town with his name.

Tuesday, August 6, 2024

World Building and an Annoying Movement Bug

I'm pretty busy at work, but I did get some time in last night (and this morning) mainly focussed on trying to fix a really annoying bug when movement happens. I've improved, but not completely fixed it.

I'm going to try a few more things, but I'm not entirely sure right now how to fix if it they don't work. The bug itself doesn't interfere with game play itself, it just snaps the terrain view into the wrong place for a split second and it sort of looks jaggy.

Other than that, I'm having a good bit of fun building the world out slowly. My initial test snippet was built out as I was literally building the tools to build it, so parts of it looked okay, while other parts looked pretty grim. Here, I've got all the tools I need (though there's always ideas for more) and it's off to a much better start.

Thursday, August 1, 2024

New Day, New World

I've been working on a new world in the last few evenings. There's not a lot to see yet, but there's also not nothing.

I've been keeping the concept of different design in my mind, and the game is loading up a LOT quicker, and it's less laggy. So, I guess with this sort of thing in mind, it's basically going to be all-hands-on-world-building for a while.

It's feeling pretty slow at the moment, but I'll see what I can do to speed things up as I build out. Perhaps things will speed up considerably as I spend less and less time slicing and importing assets into the engine, and just building.

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