I spent rather a lot of time just trying to tackle the whole nature of how to present the story, the scenario, the missions, etc. I thought I'd make a post just about that, as it's been the cause of a long absense from actual hands-on coding in the project!...
Q: How does the player choose missions?
Q: How do they get a sense of where they are "up to" in the story, or in the world?
Q: How is progress shown and measured?
Q: What's your relationship with each faction?
Q: Is there a world map, and where are you on it? Is it literal, or abstract?
There are honestly tons of questions, and I've just dabbled so far, and I really don't know the final answers to most of these things!
But it has helped me in thinking about how the Scenario System needs to work, both in the backend, and how it needs to come forward and present to the player in the front end.
I thought I'd post a bunch of my sketches and scribbles along the way, mainly so I can look back on them here and remind myself of my ideas and ruminations! :D
This was the old Mission Select Screen. Overall, I don't like it much!
And in reality, most of it was just a mockup of text and images, and didn't actually DO anything. The different missions themselves didn't even do anything, but loaded into a random "blank" level.
But I do kinda like how it shows some broader context, like your own attributes, reputations and relationships.
It was now time to actually get this thing working! To have different missions the player can play, and also to show the world changing in response to their choices and actions.
So... I started to churn through tons of ideas about how the story and missions could be presented to the player... How would they choose between missions? Would would they sense progress? Would things be divided into "Chapters"? How would objectives work? What would be the different types of rewards for each mission?
After all, in many ways "The interface IS the game". And the player needs to understand things in a fun and intuitive way.
I still needed to figure out how Chapters would work, and how I'd try to make it clear to the player what the overall story and trajectory was about, even when they just found themselves in the middle of it all!
I don't think I've actually figured these things out yet, in reality! But this is all part of the process to getting there.
What would give a good feeling to an overall story arc?
This is how Thief: The Dark Project works. You can have numerous objectives, and tick them off as you get to them. I like this format. This led to more like what I've ended up with, down the track a way.
I realised that my current design thinking was perhaps a bit too rail-roaded, a bit too specific and kind of fragmented. Not open enough. Not general enough.
I realised I actually needed to get simpler and more atomic, in order to make it more versatile and more powerful.
Why are they buying the game? What do they want to get out of it?
What are their criteria for happiness and satisfaction with the game, and with the story and the missions?
What is their experience of getting the game, and going through the main scenario, and also perhaps delving into user made content, or even making some themselves?
What kind of value do I need to provide?
What would I expect from the main campaign if I was the player of this game?
This was all really part of "boiling down" the idea to its simplest component parts.
I later boiled this down to a more generalised system of having variables and tags, and checks and changes, that could be applied to achieve the same things, but in a much more open and general-purpose way.
I made a reference board of some of the key stuff that I kept finding myself wanting to reference.
I kept wanting to know: What are the mission types I want to support? What are the factions I have models for? What is my example story arc? How would the objectives system look in a mission?
I would need a scrollable list of "however many missions happen to be open", rather than being limited to "3 missions available at a time".
And I recalled a system I'd made previously for a Tile RPG game called The Age of Nothing, which had quite an open Quest System, that used Checks and Changes and acted on a table of variables to track basically "whatever I wanted".
This system had worked well, and really had many similarities to the Storylets Scenario System I wanted for Secret Keep.
I got into Diagrams.Net, and plotted out my whole system of data and logic in more detail, so I could present it to my coder friends. This process in itself was very helpful!
And then chatting it through with multiple programmer friends, I got excellent insights and advice into what looked fine about my plans, and where there were some issues or improvements or simplifications to be made.
It also lead to some chats (and more research) into the differences and benefits of Scriptable Objects versus normal Monobehaviours. I'll probably end up using a mix of the two, in different places.
Once I had a solid plan, for a nice generic system, it came together fairly smoothly, and I was really happy with how it came together. There's still more to do on it, but I think the foundations are good!
It's actually a pretty cool system, where the player can choose between 3 mission each turn. Each mission has an Objective Type, a Reward value, and also a Perk in the area, and a Distance travelled by taking that route (with your travel distance being important, as the game is a race against the clock).
I'm really happy with how that system worked, because there were many dimensions to consider each turn, with perks such as "well paid job" or "find cars here" or "there's a shop on the other side of this mission" being things that might be really valuable to you at the time, or not valuable at all, depending on how you're doing in the game.
So these factors all weigh against one another, and factor in differently depending on your current situation, such as: Do you already have a car? Do you have money to spend? Do you need more supplies? Are you low on health? Etc, etc!
These are all things I could consider further for Secret Keep, somehow!
This is something I should think more about for Secret Keep!
This is all done dynamically, so it needs to be able to take its cues from the Mission Data, and sort of "take care of itself" without any designer-hand-placement.
So this raises big questions about how much info the designer will actually specify in the Mission Data, and what this data will look like. How vague or specific can it be? What's the interface and data actually look like for specifying these things? All a big work in progress.
I quickly moved from my paper spreadsheet to a digital version, and things started to grow and shrink and get complex!
The main thing I needed to learn from this was what generalised variables I could use, across all mission types, to get the ball rolling, so I could actually start implementing ANY of the objective types.
There is Scenario Data, Mission Data and Rules, with Checks and Changes used across them.
It's a nice generalised, atomic system, that is versatile and powerful.
I've also implemented the in-game Objectives Dialog Box, which shows your objectives and their current status (complete or not complete).
I've only implemented 2 objective types so far, one of which is sort of just a placeholder "Find the Flag" objective.
I still need to implement at least 2 - 4 other objective types, which are more complex, and depend on me doing some other work first.
Working through this process, it really makes me realise, even though I've released many games, there's just so much to learn and tackle when designing and programming games!
Each new challenge can be so huge and daunting. And progress is very slow when combined in with all the other parts of my life!
It's nice to look back on a process like this and see the progress, and enjoy seeing it come together.
No comments:
Post a Comment