2024-07-16: A Hot, Tired Summer Evening

Ythraverse Home

Gemlog Index

No major hobby gamedev updates today, so this will be another post that's more of a journaling entry. That doesn't mean I haven't made any progress on my MUD, VVO. I've been working on the event scripting system, which, like similar systems I've made for other projects, will basically be its own little Turing-complete mini-scripting language, specialized for creating interactive events for VVO, which will enable things like having extended conversations with NPCs with choices and dialogue trees, solving complex puzzles, etc.

I've finished the parser that reads the script files from disk into internal data structures, and the condition evaluation logic, but I haven't started building out the imperative instructions yet, and that will probably take a while because there's quite a few of them to implement. Unlike the work I've done so far, this is fairly complex work that lives 99% on the server side, so the best way to test it once it's ready will probably be with a unit testing suite. I haven't done unit tests in Go yet, so that will be some good experience. But, since the system currently being worked on is still in progress and I don't have any actual functionality to show off, that's why I say "no major updates" today.

I've worked with enough Go at this point I'm starting to discover some aspects of the language that annoy me (every language has them). At some point that might be worth a whole post by itself, but for now, my top three are:

(As an aside, it might be rather audacious of me to be making a MUD, because I've never actually played a proper MUD. I've played a few MMOs [though I never got super into any of them -- I remember when WoW first became a huge phenomenon that sucked in some people's entire lives, basically straight-up losing a few friends who abandoned their RL social lives to just play WoW every waking moment, and I recall being utterly baffled and turned off by that bizarre phenomenon], including some *really* old school proto-MMOs [Sierra Online's Shadow of Yserbius! ...I miss that game]; and I've played pure text adventures like Zork... but I've never played the combination of the two, an MMO that's a pure text adventure which, as I understand it, is pretty much what a traditional MUD is. I raise this point because I'm not sure if a typical MUD even has a complex scripting system for in-depth NPC interaction and puzzles like the one I'm building. Maybe I'm building a game that's actually not much like a traditional MUD at all. Is that a bad thing? I'll leave that to others to decide, but for my part, I think coming into it with very fresh eyes and no preconceptions might actually be a good thing since it means I don't have the "shackles" of wanting to emulate my idea of exactly what a MUD is based on actual examples thereof.)

Anyway, although I'm writing about it, I'm actually taking a break from working on VVO tonight. I ended up working late today (a rarity, which is something I should be thankful for, I suppose), because the ticket (or "story" if you prefer that parlance -- I don't) I've been working has been a total mess. We have a project that is accumulating some serious spaghetti code and technical debt (largely because of being forced to develop it under tight time constraints without any proper planning or design phase) and it's already at the point where doing refactors and adding new features is time-consuming and error-prone because of the poor quality of the codebase and unnecessary complexity.

Anyway, all of that led to me deciding I just wanted a break from programming altogether once I got done with work today, so instead I did some yard work and other chores and errands, and now here I am writing this rambling grousing post for my gemlog.

Part of me continues toying with the idea of returning to creative writing as a creative outlet I can indulge when I feel too fatigued with programming. The problem there is that my time and energy are already so limited as a result of work that splitting my creative energy between multiple projects makes me fear that I'll end up doing all of them half-heartedly and greatly reducing my chances of bringing them to completion. One possible solution would be to write microfiction, or short stories, rather than an epic novel as is my usual approach -- something I can do in small enough chunks that it doesn't feel like a big, full-size project competing with VVO.

That still leaves the question of whether I'd want to write stories in my fantasy world (Ythra) or my sci-fi setting (as yet unnamed), although I suppose there's no reason I'd have to limit myself to one or the other, and could just write in whatever setting strikes my fancy at the time. Of course, the whole idea of just writing in small chunks in whatever milieu strikes me at the moment is pretty contrary to my usual approach of plotting out a big outline for a full-length novel before writing a single word of the actual story -- but maybe stretching my creative muscles to write in a way that's so alien would be good for me, anyway.

Another idea I've been toying with is putting together some kind of simple game based on my sci-fi setting... one that might not even entail much programming, but rather be kind of like a choose-your-own-adventure with some light game elements. You know those old-school game books or solo board games that would have some simple mechanics and a bit of random event resolution? The Barbarian Prince is an example of what I'm talking about. I played a few games of it and it was reasonably entertaining:

The Barbarian Prince

I've considered making some relatively small "quests" or "missions" with such a system that take place in my sci-fi universe and posting them on a semi-regular (monthly?) basis. One downside to such an approach is that if you leave the random event resolution in the hands of the player, they always have the option of cheating and just picking whatever outcome they want, but I suppose that's not a particularly large downside. An upside would be that just writing the game mechanics in plain English and not implementing them in software would make things very simple, and I could post new quests or missions purely as Gemini documents, nothing required to play except a Gemini client. And if it doesn't require any specialized software to play, I could even publish the missions as physical books, which is an idea that holds a lot of appeal for me.

Of course, the temptation would very much be there for me to *actually* implement the game mechanics programmatically, and then it could quickly balloon into a much bigger project when I already have a big project on my plate in VVO...

I'm not committing to doing any of this in any case, just musing out loud. I usually have a lot of creative ideas like this stewing around in my brain, but never enough time and energy to implement more than a handful of them, sadly.

Continuing with random stream-of-consciousness topic shifts, I've been reading bits of the Marmoreal Tomb before going to bed, but I'm getting through it at such a glacial pace I don't have much new to say about it yet. I'll hold off on doing another review until I've read enough to have something substantive to say.

While I could find more random topics to chatter about, it's growing late and this post is already long. But it has helped me to relax after an aggravating day, so it has served a useful purpose for me, if for no one else. Hopefully work tomorrow will be less exhausting and I'll have the energy to do something more interesting than a rambling journal entry.

おやすみ。

Ythraverse Home

Gemlog Index