text-based gameplay loop system for designing stories
If you have ever played a MUD -- or, Multi-User Dungeon as us old folks like to call it -- you know what I'm going for here. The major difference in this single player experience is the concept of time limits; purely enforced to force the player to try and complete certain tasks. Complete the task and a future "room" might be easier to solve or present different opportunities to trail down different storylines. Combine the idea of a MUD with an escape room and you get the idea.
I just wanted to design a storyline like this for myself, but creating a system that allows for anyone to create these simulated storylines is much easier than coding an infinitely recursive set of IF/THEN/ELSE loops on a personal project.
Starting with SYSTEMS.md for laying out the necessary systems for the gameplay loop to function; creating project management system via PivotalTracker. Main stories to complete are:
- core code
- Eventually contain skeleton for: what room am I in, what objects can I interact with in the room, what objects can I interact with on my person, an awareness/help injection system for informing player of task timelines and updates, a skills system for allowing an easier completion of tasks based on what was chosen in character creation.
- main loop
- time loop for time spent in a room before MOVING to a new one.
- room system
- object that contains a description, and is a container for interactable objects. Tasks (with previous completion / failure trees contained) inject themselves into a room based on previous actions in previous rooms.
- verb system
- commands for user to interact within certain room with certain objects (room first, then inventory)
- object system
- items within a room that if interacted with correctly, can change the state of a task's future trajectory.
- object in room / object in inventory system
- Objects you can take from a room and allow you to interact with in every room.
- task system
- Tasks "start" upon entrance to a certain room; likely, a bunch will start on the first room. Then if you REVIEW TASKS or something along those lines, you have a roundtime to remember all of the tasks to complete. If you don't interact with a certain task via a verb or interaction with an object by a certain time, the memory becomes hazier and the first revealed details of the task start fading away from your REVIEW TASKS remembrance. Eventually, just falls off the list and you can try to remember it; possible context clues appear in the room instead that might help you. Or if you CHECK PHONE you may see texts / calls / calendar reminders to do something.
- timeline system for counting down on tasks
- These could possibly be basic tasks to remind you to do essential functions before leaving a room - IE; put clothes on before leaving to work. If not even that is done, you get a STRONG FAIL that will have serious consequences for later tasks, may have them skip altogether and enter new situations with a negative comeuppance further down.
- character creation intro
- Something giving the storyline some variability based off of initial context. Also allows skills to help with tasks.
- skills system
- Skillcheck to see if you have the skills from the character creator to either bypass a task completely, lower the roundtime of completing it, or let you simply USE SKILL to not have to figure out the verb to objects needed to complete the task.
- twitch skillchecks
- Would love to create some creative text-twitch gameplay, a la Heavy Rain for PS3 or God of War style press-button-in-timeframe scenarios. Have pattern generators for ASCII noise with hints of commands leaking through, IE: coworker says something snarky and you catch the words HUMILIATE ASSHOLE revealed in ASCII noise, then successfully type it in, and update task flags or take different story directions.
- emotive typing display
- Best example of this is the Nintendo Switch game Golf Story; the chatboxes themselves will animate somewhat as well as the timing of revealed text to mimic emotive storytelling. Can set a -esque tag for a task action or mob action for how to "read" or display the text to the user. Could also create separate "animations" as text-color-shift/growth-in-size/shaking for tags around words or phrases.
Feel free to reach out to firstname.lastname@example.org to talk about anything, or see what I'm working on next.
This project is licensed under the MIT License - see the LICENSE.md file for details.
- Thanks to AOL 1.0 for keyword: games at age 10 which provided DragonRealms - a text-based massively multiplayer online RPG before there were MMORPGs with graphics. Still a few hundred players online during peak nowadays, but back then... 2500-3000, easy.
- Everyone involved in getting us to the point where computers can be used to create stories and connect people.