How can you make a game of great complexity using ChoiceScript?

Hi, I’m somewhat new to ChoiceScript, but from what I’ve seen most of the games seem to be very story driven. I’ve yet to play anything that feels like an actual game. I don’t understand this because when i go to write up the code for my story, it seems like it would be very simple to make a game out of it. I think this would be good for me since I have a tough time writing and I love games. I imagine it would be heavy on stats and there’d be some randomness involved. Like a die roll or card game. Those are boring, but I’m surprised no has done it. How would you guys feel about a complex game though? There would still be writing involved, because you would have to describe what’s happening in the game without visuals. It would be interesting.


That sounds interesting, but of course a good game has to have a story behind it, games with no storyline or end goal to them have good graphics to make up for lack of content. Since this is Choice script you would have to explain many things Vividly or at least make it interesting to the players / readers.


There is a BIG reason that was not done. It has been trying to. The code for a sandbox RPG has been started the code is so ludicrous complex and long to do that is simply not practical.

Imagine a 2,k words game with a 50k code for it.

There are other engines for what you are describing Like Adrift that are designed for Parser games.

Or even better than that Graphics engines Like Ren’py or RPG maker. Each language has been designed to fulfil some role. Choicescript goal is text games story-driven with normally romqnce and LGTBQ positive.


I agree with @poison_mara … It’s generally not worth it in choicescrip…

Having said that, I couldn’t prevent a part of my brain starting to work on it… So I have a WIP that is kind of like you say. I hope I can keep my motivation long enough to release it, as I’m aware that most RPG type things are quickly discontinued when their authors realize how difficult it is…


Well, you have several books published so you can succeed as you know what it takes. However, my advice remains, and I recommend you use another engine.


You might be interested in this racing game made using CS:


Missing Wings is very much a “gamelike” game in choicescript (I haven’t played it though):

Some choicescript games have luck-based minigames; Donor has a few different minigames, and Relics of the Lost Age also has a blackjack minigame. A lot of the stuff that @choicehacker has made are minigames.

Of more “game-like” published games: Choice of Rebels has a major management component. War for the West, and I think some of the Swamp Castle/Great Tournament series (I haven’t played them) are basically management sims with some RPG elements.

Maybe a full-blown RPG might be difficult, but there’s no reason you wouldn’t be able to set up some interesting game mechanics in choicescript (see the examples above). If you use *script, then choicescript can be just as powerful as twine or renpy (published games cannot use *script though). Also, something like a location/inventory-based puzzle-filled adventure game should be doable.

Anyway, what would your hypothetical game be about?

1 Like

I absolutely agree with you… Another engine is certainly better. However, sometimes it’s difficult to control one’s brain, and another WIP is started… Even when you know it’s a bad idea! (I wonder if I’ll ever finish this one… Though I’m currently having fun… Though that makes 3 WIPs I have going, and I’m still to finish the first one I ever started!)


As you can see by the responses, there are plenty of “game” type CS stories out there. Personally, I love complex games since I got a paper-and-dice CYOA game as a kid.

Actually, funny story, the paper book ones always had a tell “If you roll 6, go to page 100, otherwise turn to page 84” so you could just pretend you rolled the dice :stuck_out_tongue: That’s why I love writing computer versions of those types of games!

May I ask? What type of game elements were you interested in putting into your “complex” story? Some of us really love skill/game challenges, and we’d be happy to help you with any coding assistance, should you need it.

PS: That race track game linked to above by @rose-court really is awesome


Hi @Riley_Dockery. As many have mentioned, CS is not the most suitable language for complex programs. To get my stuff done, I have built a preprocessor (it gives me support to functions, loops and arrays, all missing in CS). I also resort to some Javascript here and there. It’s a fun challenge, but you may have an easier time with more sophisticated tools.

I believe Missing Wings showed the possibilities. You can also look up Interactive Science Fiction Novel | Paradox Factor, for a nice story-based puzzle, or Lunchtime at St. Expeditus by aetheria for a more interactive interface to the story.

If you want to go that way, you will find that the forum is very supportive, as @Sam_Ursu said. Keep us posted!

PS. Some of my projects are listed here GALLERY , with links to the discussion, if you are curious. They explore some of the ideas you mentioned (randomization, cards etc).


I dream of the day we see a fantasy game from you!


Choicehacker thanks! Just to be clear, my original title was “An actual game”. I hadn’t seen any until I went through your games. I have no idea how you do those interactive/ randomized images but they are awesome.

What I was originally thinking about was something with descriptive text like Missing Wings (thanks autumchen) that told you what was happening around you. But with less story and more action. Now I see it’s maybe not rare at all.

So instead of a mini-game like your games (too much foreign coding for me) or any kind of rpg, I now have my mind set on a sort of third person omniscient military (or maybe not even that) strategy game. My main inspiration is the idea of RTS games. I want to to do that kind of thing where you are looking over an area and giving orders, but with writing. The scenes would be narrated as detailed as possible (my constant writers block will make that hard) and you can do just about anything with what resources you have been given. Those could be randomized to a point to give it more of a “game” sense. Or possibly not. There will have to be a story at the beginning behind whatever war you are fighting or whatever the case is.

Sorry if this made no sense. A lot of it came to me as I was writing the reply. If anyone knows of anything like this that’s already made, please tell me so I can either get inspiration or change my idea again. I’m just trying to bring something new to the table.

And thank you to everyone who has replied, you all helped a lot!


Thanks for your help Sam! The racecar game is amazing. If you read my reply to choicehacker, I answered your questions.

1 Like

Two of my WIPs are fantasy :wink:

1 Like

To put it into CS terms, what’d be a lot easier to code would be menus for the “giving orders” bits. Menus can be customized so they adapt to the situation, too.

The rest, such as updating where troops et al are, as well as resolving some kind of combat situation(s), would be fairly easy by manipulating variables.

Definitely doable, if you’ve got the endurance because it’ll take some time to code it.


Could you please explain more what you mean by menus? It sounds like I good idea but I don’t understand.
I have the endurance and time no problem. As long as it takes I’ll do it

Sure! Menus look like this in CS (the *choice command):

   #Move more units into the field
      *goto move_units
  #Withdraw troops from field
     *goto withdraw_troops
   #Tell troops to attack
      *goto attack
   #Tell troops to defend
      *goto defend

For the user, this will look like a multiple-choice menu in which they can select one of the four options (options start with the # symbol).

Oh yah, mos def. There is a small group of us who are HARDCORE into complex CS games.

Write a “werewolf goes to wizard school in Regency England and falls in love” story if you want to be popular, though :stuck_out_tongue_winking_eye: