The time has finally arrived (!) for implementing the story of Vex. I need this in order to guide gameplay further, because it's too hard to balance gameplay mechanics without a solid understanding of where the player will start out, and where they will need to go.
I will have to implement a special "story" mode into vex, but for now this will be very simple, consisting only of textual descriptions of events. So for now, in umake, I have an event structure that is basically a function mapping a set of named people, places, things, as well as other events, to some unknown implementation of the story in the game. The output of this function will probably end up being the structures that drive the story play mode in the vex engine.
I also need to re-organize how systems are laid out, since right now it's using a somewhat wonky ring-based system, which seemed like an interesting idea at the time but now I think is just a little bit silly.
Ah yes, there is a slightly subtle point remaining. Ordinarily, the story in a game is a sequence of events that happens to the player. In this case however, the story is a sequence of events that happen in the world the player inhabits, which the player must piece together as they travel through the galaxy. So in other words, the gameplay model is more or less a "wild goosechase", with the player chasing down people, places and things (who played a role in the story that the player is investigating). Each time the player finds some person, for instance, this person will be able to fill in missing details, and give the player new leads to follow. So eventually the player will find what they are looking for.
So the story structures I guess have to be able to output quests as well, which actually will interface nicely with the existing quest system now that I think of it. When the player reaches a key point in his/her investigation, they will get a special story narrative to read. So I guess I was a little confused back there, the main output of the story structures is actually quest nodes for the player to chase down.
Of course this is all a little bit difficult to talk about here without giving away the basic story. But the bottom line is, each character the player might create (or, indeed, other characters existing online in the same universe) will be after the same goal, and have the same overarching objectives, and (importantly!) will be piecing together the same storyline as they chase across the galaxies, however each character can have wildly different backgrounds and abilities. You might be an 85 years old female chemist who could never be taken seriously by a space pirate, but would have very advanced powers of persuasion with politicians and the like owing to her years of experience and grandmotherly charm. How many space adventures let you play as a grandmother?
One thing that will be fun is to put more and more age-specific things. When you think of variety of character classes in a game, you normally think in terms of job. Warriors can do fight well, wizards cast spells, etc. But I think age is quite fascinating too. In Vex I've set the youngest possible age at 15, but in reality playing anything younger than 20-25 will be very hard because no adults will take you very seriously. Likewise, it would be fun to implement some kind of senility penalty if you choose a very old person (yes, not all old persons get senile but, most of them do and besides, it's extra fun and challenge!)
Having a little bit of backstory for characters would be fun as well. Maybe something very simple with respect to children/spouse, I don't know. We shall have to see, for now I just have to work out these story nodes.