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.
No comments:
Post a Comment