Two long questions about game mechanics before I start with my project

Hello,
Two years ago I found Zombie Exodus on Google Play, downloaded it and had a blast. That was my first contact with text-based games and made me fall in love with the genre. So, after playing a few more games, I came to an idea about writing my own. I was always a decent writer, through my high school and college I wrote for the school/college newspaper (mainly so I can avoid some classes and get few extra credits) and people generally liked it. I always love sci-fi but never thought about writing it seriously until I found about Interactive Fiction. So last year and a half I spent reading and listening to dozens of sci-fi books so I can better my writing and I am satisfied with it for now. So first, I started writing base for my game and wrote around 75.000 words before searching for a program to help me actually write a game. After some time I found Choice of games and since my first contact was with Zombie Exodus it’s exactly what I was looking for (not looking to copy it in any way, but the whole concept based only on text, stats, etc., you get the idea.)

So before I actually start adding my text into the game itself and continue with my writing I have a few questions I need help with:

  1. I would like to make 2 difficulties, normal and hardcore.
  • Normal would be your standard gameplay, you still need to make smart decisions but you can play it casually. You could buy additional stats, or not and still finish the game either way. If you die you could probably rewind to last chapter or decision that killed you or just revive yourself (with some option don’t know how yet, but it’s not that important right now). So basically casual gameplay where you can enjoy (hopefully) a story, relax and play.

  • But hardcore would be something really, really hard to finish. First, you would not be able to buy any skill points, you would get less of them through the game and you would need more of them to make your choices. For example, if in normal gameplay you needed your marksmanship to be 35 (out of 100 for context for the rest of the story) to hit the target and survive/escape/save someone, in hardcore you would need at least 45 + maybe an additional skill to be at least 20 (like endurance or something like that). For now, it doesn’t appear to be anything too hard to implement but that is where the main gimmick of the hardcore mode comes in, skill/stat by the name of the decision making.

Decision making would be very important, but not your savior, so you would have to keep an eye on it, you also could choose to ignore it but might feel big consequences later when the time comes and it would work like this:

Let’s say you are presented with a block of text that says something along the lines that your friend is held by the “Villian” at the gunpoint (this is not related to the story, just an example).
So after you read the text you would normally get presented with 2-4 choices and have all the time in the world to make them, but that’s where the decision making skill comes in hardcore mode. Instead of the choices, you will be presented with just continue to decision (keep in mind you still don’t know what your options are). So let’s say that the decisions will be as simple as 1) shoot at him, 2)surrender), 3) talk to him, 4) stall. Those are short choices which you can read in 5 seconds tops, and that’s where the decision making comes in, it simply limits your time to make a choice. And it could work like this:

If DM (decision making) >80
set timer to (5+30) seconds
else if DM > 50 && < 80
set timer to (5+20) second
else if DM > 35 && DM < 50
set timer to (5+13) seconds
else
set timer to (5+5) seconds

So this would basically limit your time to make a decision based on your decision-making skill, with “base read” time (enough time to read all the choices) + time to make your choice depending on your skill. So basically if you know that you are a perfect marksman you could choose to ignore DM and let it sit below the lowes mark (which will change depending on the situation, number of the choices, etc.) and just try to shoot your way out of the things since you know that you will hit stuff, or maybe you are all-around guy so you need to actually think about what is the best decision (skill to use in that situation). Keep in mind you will not always be able to shoot or talk you way out, so you might want that clock to keep on ticking for a longer time.

I don’t know if already exists in some game (probably does), but I think it would be a fun feature to put in Hardcore mode, or maybe even as an option in the normal mode. Also, not all decisions would be time-based, if you need to decide if you are going to sleep or continue talking with someone, you can probably take your time, but if someone is shooting at you need to think quickly.

To add, if time expires the game would randomly choose an option for you. So you are left with RNG Jesus deciding on your or your friend’s fate.

  1. The second big question I have is something I also want to be the core of my game.

While you will be the main protagonist of this story, the heavy accent will also be on your “friends”.

To not reveal too much of a story, you will be basically be put in a fantasy/apocalyptic world with your friends and that’s where the story will begin.

Now, what I want to be able to do, or what I want is my player’s to have the ability to name those people/friends. So if want to go thru story with you real-life friends you give them your friends name. If you want to keep it completely fantasy you can go thru your story with John Wick, Batman, Elon Musk, Bugs Bunny, Potato, etc.

While I could give those characters some generic names, I want my players to be able to give them names since they will be a big part of the story and even if they give them some random they could still feel close to them thru the story.

So, all of those characters would be introduced in the first few chapters or just at the beginning of the game. What I want to be able to do is, once the Character is introduced, like:

“Someone knocks on your door, you feel tired yet you let them know it’s fine to come in. The door opens and it’s ______:”
Now the game would say something like this is one of your best friends/long-time friend/childhood-friend, etc.
Choose your friend’s first name:
Choose your friend’s last name:
Choose your friend’s nickname: (nickname not necessary)
Chose your friend’s Gender: (not sure about this, but might also be cool to add for additional customization)

Once you chose the name it would stick thru the story.

What I want to know is this possible to add, so when I write the story I just write like: “friendname1 approaches you with the wine glass and a smile on his face.”, So if a player at the beginning chooses the name “Dave”, while he plays it will read: “Dave approaches you with the wine glass and a smile on his face.” You get the idea.

I would really like this to be a part of the story and people I talked about this also really liked it.

I want this story to stretch through years of a real lifetime, and millions of words so if you chose your real-life best friends/brothers/sisters/lovers name as one of the “main” characters, you wouldn’t want to end up on the wrong side of the history from them in the endgame or you wouldn’t want for one of them to die IN-GAME, etc.

I just feel like this option would make you even closer with the story.

Sorry for the long post, I just want to know if these options are possible and how hard they would actually be to implement if they are possible.

Just so you know, I am Business major, but 2 months ago I started a 9-month journey to become a certified Java Developer (android), projected support by our Faculty of Electrical Engineering and Government. While right now I only have a basic knowledge of Java (we spent the first month learning about general stuff and only a month on actual Java), it is going really well and hopefully, I will become much more competent as time passes which could help possibly help with the functions of the game. I am only writing this so you know that I have some basic knowledge right now and can write some “code”, and understand a lot of it.

6 Likes

In answer to your first question, no, there is no timer.

Your second question is whether string variables exist, and yes, they do. I highly recommend searching around and finding some New to Choicescript threads–you’ll learn a lot. Good luck working on your game!

Start here: Master List: Links for Beginners

Dream big! But I recommend starting with a more bite-sized project for your first game in Choicescript.

8 Likes

Welcome to the community @Lukhsa – this was quite the introductory post.

To further explore @Gower’s answer to the first question, I do not foresee a timer like function being enabled within the Choice Script engine. The philosophy involved has to do with the meaningfulness of a reader’s choice. A timer would endanger the meaning of having a choice if it was used as a mechanic – this goes against every principle that the CoG company is built upon.

There are other ways of adding weight to the decision-making process, so I do not think you will find yourself at a loss when designing your game further.

Unsolicited Advice:

Shooting for a deep all-encompassing game is a noble endeavor, one that many of us here have shared with you upon joining the community. I myself entered the game contest hosted by CoG and originally was shooting for a game much like yours in scope. After one full year of writing and development, I was lucky to get my vastly scaled down game completed and submitted.

That should be your first priority – finishing the development of a game and submitting it, either for publication under the HG label or for consideration by the CoG team for their official label. If you do this, you will be able to use your experience to design whatever type of game you desire.

In addition to my contest entry, I worked with JimD on Zombie Exodus: Safe Haven, and I have been helping other authors with their Works-In-Progress (WiP). As a result of this experience, I can tell you, the bigger the target word count, the harder the actual design and execution of that game designing is.

@MichaelMaxwell can perhaps give you insight into writing and designing a game with such a large word count. It took him three years to complete a game of 800,000 words and even then he decided to break his game down, from one huge endeavor into a series of three games.

Another thing to consider: the price-point of these games is not that high.

The amount of time, effort and cost you invest in making your game does not set you up to recoup your expenses right away, let alone actually making a profit.

I am sure many here will continue to provide you with perspective and thought.

Again, welcome to the community.

11 Likes

Thank you both for answers and welcoming me to the community, right now I am in the middle of the reading this tutorial. If you have any additional links that I should look at please post them here.

I know that my project looks too ambitious and that most people probably started that way, but I am in no rush right now. But I will probably aim to cap out the first “part” of the game on some reasonable word count and playtime.

And I am aware that profits (if they even exist) are not massive but right now that is not my priority. I honestly really like writing stuff and it generally makes me happy. I used to write on r/writingprompts from time to time (two years ago) and it was always well received and writing interactive fictions feels even better.

So, for now, I just want to see if I am even able to make a somewhat playable game with my already written content. That in itself is a big project right now since I have to get to know how this program works and get used to its functions and stuff. After that, it will be time to expand on the functions I asked about and the story.

2 Likes

I don’t exactly know what I’ve done to gain enough trust to be giving out insights into writing with CS, but I’ll do my best. Thank you @Eiwynn for the mention.

I’m currently working on another game, but the only game I’ve ever submitted took me way longer than I expected and was way bigger than I anticipated it to be, but it was all worth it. So my experience is not the best out there but I know that there are many out there who are willing to help.

Choicescript can be very limiting as to what you can and what you can do, but with enough creativity (and decent math skills) you can make it do practically anything narrative wise. I’ve successfully made an entire system of dice rolling with modifiers, varrying difficulties, fully customizable characters and all that stuff… It took me 3 years to fully flesh everything out, and I had the help of my co-author.

Maybe it’s because I’m lazy, but it took me that long because I wanted to add more and more to the ever growing game with the pressure of the readers telling me what they’d like to see and the proof-readers pointing out every bits of flaws I’ve missed. It pretty much drove me near insanity… I’ve added a Nerf Blaster that my players can use to kill people with, so I think I’ve gone past that point already :thinking:


As for question one, I’ve made my game with multiple degrees of difficulty from easy to medium to hard. And then, there’s the nightmare difficulty where the dices are less forgiving and the players actually get to see a few extra titbits that they won’t get playing it on any other difficulty.

Usually, I would set a difficulty token and a few other constant variables that would determine how hard the game might be and what mode the game is playing on. You can really do a lot in ChoiceScript but there are some limitations for doing anything that has to do with features that are outside the narrative realms of the CS commands.

As @Gower said, there isn’t any timer system yet.


For question two, this is very much so possible by simple making many variables for that one specific character that would dictate it’s gender, name, pronouns, personality and such.

In my game, the players don’t really get to pick a name but they get to choose two different starting companion. They’re similar but each have their own personality. I don’t make them too different than one another so that I won’t have to constantly do an *if
command every time their character talks or does something.

Again, knowing how to use CS comes incredibly handy, but you have to be creative in how to use it to unlock it’s full potential. The tutorials will let you know what it can do, but it’s up to you to stress test it and figure out what it can’t do.


I am absolutely happy to see someone with as huge of an ambition as I am, maybe even more than me. But you have to set a limit, and be careful to not overwork yourself. You don’t need a huge game to bring about a great story… but a huge game is a big plus.

The thing to note about writing a big game that’ll many months maybe even years of development, is that you need to keep yourself flexible and listen to feedbacks, but never lose sight of your original goal. Stick close to it and don’t let any critics deter you from writing.

I’m glad to know that writing makes you happy. I know that making a big game wouldn’t really effect the profits and I knew that I would just be putting more effort into the game if I wanted to add more and more. But I was stubborn enough to go through with it till the end. I’m not much of a writer, but I do love to tell stories, and it made me happy to know that I’ve told the story how I wanted it, and that people liked it.

Don’t be afraid to look at other people’s work and ask how they set up their codes or how they develop their game. This is a community and there are some very helpful people.

P.S: It’s late at night and I just realised how long of a post this was. I’m very sorry…

9 Likes

Thanks for the very detailed answer, this community has already proven to be better and willing to help than 90% of the internet.

I am/was a consultant so people needed to listen to my feedback if they wanted to better their business, so it would be hypocritical from me not to listen to the community, so I definantely plan on doing that, as long as it doesn’t change the core purpose of my story and end goal, I will be open to everything.

Last year, I had a projected where I wanted to make a website for sports news via WordPress.org and same as now I didn’t have any idea how to do so and how to make dozens of functions I wanted. But I took some time reading/watching tutorials and made it exactly how I wanted it, even tho a lot of people told me most of those functions would not be possible to make. I ended up developing some decent following for it on FB, Instagram and the site itself. I ended up selling it to one of my friends that actually wanted to be a sportswriter.

So I will probably take a similar approach, take a month or whatever time it’s necessary to go over all tutorials, then actually try out everything I read about and so on. All that while setting a goal to write at least x number of words per day for my story.

Luckily for me, my schedule is pretty clear for the next 6 months or so, and by them, I should definantely know if I am actually able to finish the story, etc.

Again, thanks to everyone for lending a hand and I hope that I will be able to return the favor in the future.

3 Likes

The Beginner’s Master List contains all useful links – not only for beginners but also for those who are already acquainted with CS itself (I found myself still looking for the thread multiple times).

And personal opinion, but your plan for hardcore mode seems… too hard. Even ignoring the potential timed-decision mechanic, the restriction is too high; you limit the amount of skill obtained and increase the skill requirement. Keep in mind that number-based balance issue is exponential and is not simple addition.

Balancing is not about setting up arbitrary numbers. You need to consider your difficulty curve, mechanic and narrative progression, and setting up interesting end-state (winning or failing must be satisfying, unless you know what you want to do).


And in case someone brings up Dark Souls

From Software understands their audience and their product, so they intentionally make their game with a mountain Everest as its difficulty curve. They know what they’re doing.

3 Likes

I would strongly advise against timed choices altogether. I say this not because it’s impossible (it isn’t), but because it puts a harsh onus on slower readers even when you have a reading time variable. There’s no way to account for different reading styles and conditions that affect reading speed (drunk, high, low mental energy, distracted by environment, frequently interrupted, dyslexic, etc.). I’m a very fast reader, but on days when I have low mental energy, I read at a snail’s pace.

Naming your friends and choosing their gender is 100% possible and a pretty common trope for COG games. You just have to code it using variables. Here’s the method I use for creating gender variables for the player, which can easily translate to NPCs.

I will say that “millions” of words is… honestly not super realistic for your first WIP. You’ll find that the average full-length COG/HG is around 80k-250k with some major outliers, primarily on the upper end, with an average playthrough length of 30k-45k. Honestly, a game with a million words might actually be too big to submit! :sweat_smile: If you’ve got an idea for a game like that, I definitely recommend breaking it up into a few different games so you can give sufficient attention to the details without having to worry about dealing with a buttload of variables, states, and conditional texts.

I’m not super sold on the hardcore mode only because I don’t like difficult games haha. It’s certainly possible, but just know that it will expand your workload significantly to have two difficulty modes. If you’re going to pursue a game that’s the size of what you’ve planned, that will significantly increase your workload and the time it takes to release. I tried something similar for a game, where I had three difficulties that affected how much starting supplies the MC got, and I dropped it quickly because the scope was too large.

My only other suggestion is to limit your scope. I get that it’s super enticing to make a huge, expansive world, and some people are better suited for that than others (case in point, I am decisively not suited for that). However, the best games usually have a tight focus with interesting characters. I’m part of the “characters > plot” camp, but everyone is different and someone is going to like one thing over the other.

Good luck! I hope my advice and the advice of others helped you out!

3 Likes

Just a small comment about genderflipping lots of characters. The more times you do it, the more likely you are to start getting unintentional mis-pronouns. Not only do you have to remember not to write he/she, but it’s “characterAhe” “characterbshe” or whatever you want to name your variables. If you’re flipping a whole lot of characters it’ll get messy. It might not sound like a big thing, but unless you’re really careful they can be annoying to track down if you’ve made mistakes.

4 Likes

That was also my initial thought, that it could become messy later on. So I might, predeterminate supporting character genders and just let players chose their names, that way it will be less messy and it still won’t affect the story in any way.

Thanks for the explanation of the variable, adding it to my tutorial folder. I kinda explained my goal with hardcore mode a little bit above, so you can check it. But to clarify it further it would be completely from a normal mode without any pay to win mechanic (buying additional skill points, revives, or any other thing that might end up in the game itself). And that difficulty mode would just be for people who like to torture themselves (I am not one of them, but know a lot of people who actually prefer it that way).

As for the timer mechanic, that is just something I was thinking about, so decided to ask about just to see how complicated it is. That is something that can wait and be implemented later, or never. For example, if the game actually becomes loved and people want that mechanic in, then I could look to add it later on. And yes, I was also worried it would give people with reading disabilities an even more difficult challenge, so that is something that, if I decide to put it in, I will have to carefully think about and probably work alongside someone with such disability to make it playable.

Regarding my million word comment, I definantely worded it wrong. Million+ word count would be for a completed series years in the future. The plan is to make it my only IF project since the universe I have in my head is really, really big and definantely has potential for it.

So, if I name it “The Essence”, the first part would be " The Essence: Fall" with 200-300k words total, 40k per story branch or something along the lines. The second, coming like 6 months later would be “The Essence: rise”, with the same or similar amount of the words, and etc. you get the idea. But I would like to keep it in the same game just update it as the next part comes in. That is kinda an idea for now, but I still have a lot to learn.

2 Likes

Thanks for the link.

Regarding a hardcore mode, it was just so you can get a rough idea of how it would work. For now, disregarding the timer mechanicks, I don’t want to make it impossible to beat the game in hardcore mode just very punishing if you try to do everything in once.

For example, as in most games, in normal mode you could be a jack of all trades, a good marksman, fighter, diplomat, leader, lover, etc, basically James Bond on steroids, in hardcode mode you would need to spend your skill points more carefully. While you could, for example, spread them out and again be kind of a jack of all trades again, you would be pretty average or below average at everything. Meaning, you could definantely shoot your way out of dicey situations, talk your way out of trouble or lead a small group of people, you wouldn’t be able to kill 50 foes alone, negotiate an intergalactic treaty or lead an army.

So that’s what I was talking about, I wouldn’t decrease the income of stat points too much or put the limit tondo something to high, but just low and high enough to make it very interesting. But that will be a problem if balancing where it would have to be tested 100s of times to make it work smoothly. So, in the end, you can end up as a charismatic leader who can talk his way out of anything and can kill a few alines/zombies/dragons/whatever but you woulndt be anyone’s first choice for combat missions, etc.

1 Like

It wasn’t the pronouns that bit me on making it possible to randomize NPCs genders… it was the verbs for use with the pronoun “they” instead of “he” or “she”. So that’s something else to consider if you make genders variable.

There are times I’m really glad I’m not dyslexic with this project, because the variable genders can cause code like the following paragraph I’ll offer as an example for you if you do want to consider still doing it.

Rory glances at your shipsuit.  "Ah, Harper's savior arrives early," ${Rory_pronoun1} @{(Rory_pronoun1 != "they") greets, | greet,} offering you a cheeky grin as ${Rory_pronoun1} @{(Rory_pronoun1 != "they") takes | take} the seat next to Harper and @{(Rory_pronoun1 != "they") bumps | bump} shoulders with ${Harper_pronoun2}. 

The easiest method is to use a variable that tracks whether pronouns are plural so you can use multireplace more efficiently.

"I just think you're acting foolish for no reason," ${kayla} barks, crossing ${kayla_his} arms to indicate that ${kayla_he} @{kayla_plural don't|doesn't} approve.

It especially helps if you name your pronoun variables with the actual words instead of a vague reference, since it can help you envision the actual structure of the sentence as you write it. It also cuts down on how much you need to type. I use this method on all my WIPs and it drastically reduces how much time I spend writing and prevents a lot of errors that would be hard to spot with more code getting in the way. (I also tend to limit the number of gender-flippable characters I use, but that’s just my preference.)

3 Likes

The Timer could also make the game mode unplayable for foreign readers. In German I am a fast reader, but not in english. And when there are words I would have to Look Up, to really understand them, that would be really frustrating. But that is Just my opinion, no need to stick to it.

5 Likes

I appreciate every bit of feedback, and that is a completely valid point. English is not my first language either so I definitely understand.

For now, the timer is sidelined, that might be a gimmick to be added much much later if the game is a success, people want it in and it might even be optional for players that really like to struggle.

3 Likes

I am not native and read games when I got free time on the train. In bus… breaks in work So time makes the game unplayable for me. Then I am a roleplayer I play in character I need think what my character will do and is written in another language. Only could be worse if I have to solve a Rubric cube and dance over flames.

Then what times add to a story?
.Absolute nothing except considering skip all text to have time and choose randomly a feature.
It is unrealistic people doesn’t have ten seconds to plan to invade Russia as Napoleon.

2 Likes

Jacic is of course correct. I have a WIP that, from the start, I worked very hard to limit in scope. I have a gender-choosable MC, and two NPCs with dynamic genders. Each of the NPCs requires seventeen gender-related variables to be set. A quick math of the number of gender variables my 60K word game has: (17 * 3) + 12 + 5 + 11 + 6 = 85. That’s not counting sexual and romantic orientation, which have eleven variables all on their own.

It’s important to remember that when you add choices to your game, the effect is not linear but logarithmic. That’s my first piece of advice to you.

My second piece of advice is the same that I give to any writer: read more. Read more COG main line games, and especially Hosted Games, since their structure is less strict and they can play more with what the language allows. Read more of other people’s WIPs and pay attention to their update schedule. This will give you a healthier idea of what people are experimenting with, and what the cost is in time and labor. Read more in general, so that you can understand when you’re being truly original, and when you’re trying to reinvent the wheel.

As a last note, I want to say that I’m truly not trying to be discouraging. You’re at the design phase now, and that’s the point in the dev cycle where you have to set realistic expectations. Every mistake you make now will be more expensive to fix later. Take it not as a stricture, but as an opportunity to do a favor for your future self.

8 Likes