Gamebook and Other Help?

Has anyone even tried to mess around with the Gamebook?
It feels very simple especially making just a simple CYOA, yet I feel there is some complex things to make things easier if you know what your doing.

To simplify a lot of explaining understand my brain goes on overdrive...I have a vast idea on what I want to do for creating a game but I don't understand the small details to make it all work...even though I want to.

So if you will allow me to tell you a tale of what I am doing on Quest. I don't know diddly squat on a ham sandwich how to go about messing around with the Text Adventure. While I understand how to create a simple Text Adventure after going through the tutorial it doesn't tell me how to go about creating what I would like to make, to allow the player to create their own character, add in special stats, create classes NAME IT I have looked over these forums but by the second line of someone explaining how to create this stuff I freaking lose trace of what means what. So on the topic of Text Adventure can someone please direct me to a place that will explain in simple detail what everything means. I will happily explain where my confusion lines up if you really want to deal with a noobie like me but anyway moving on.

After hour of frustrating hour I decided that perhaps the best place to start would be trying out making a CYOA with the Gamebook. It seems so simple however it also seems tedious as once again I want there to be a vast story to every choice you make. I have this adventure set up to where you can sort of create your character, You can choose their gender and even their class in the first few pages of the story. However the problem I see first hand is right after the player chooses their gender, not only do I have to create a story for if they choose their character being Male but now I have to create a new page and rewrite similar spots to fit if they had chosen Female. I feel like a lot of time and effort could be reduced if i could use things like IF. Which Gamebook does have but no one has a tutorial on Gamebook nor have I really found anything else that would help...

Worse case scenario I have a lot of time to put into creating A LOT of pages and story elements...


Me, Monster, maybe can help!

Link help:
http://docs.textadventures.co.uk/quest/text_processor.html

Me, Monster. {either player.male:You, man.|You, woman. (Monster LIKE woman!)}


That do this:

If male:

Me, Monster. You, man.

If not male:

Me, Monster. You, woman. (Monster LIKE woman!)


Good links here too:
http://docs.textadventures.co.uk/quest/guides/character_creation.html
https://textadventures.co.uk/forum/samples/topic/4772/how-to-make-a-text-adventure-look-like-a-gamebook


Quest Forum Monster also say:

Simple game = easy to make

Complicated game = NOT so easy to make


*taking breaks to laugh at Monster's posts...!-
My first game was a gamebook. It wasn't what I wanted, so I started over.

I'm glad you've read the tutorials, it saves us a lot of trouble.

I looked at my game again. If I recall correctly, you use pages instead of... Everything else. The other stuff may be there, I don't know, I'll have to check. But the basics are, you write details along with a choice, player chooses, repeat.

Writing things down can be VERY helpful! Like when I made a maze to my "The Legend of the Secret of the Smelly, Stinky Fish"! I drew the whole thing in a drawing book! Do you think I could have made a maze without it?! ...Now, I probably could, but not then!
Here's some sample text from my own game:
Hiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii!

So, are you a boy, or a girl........
Go to page 2 (I'm lazy...)
Cool!

(I can't program a game right...)

What's your name?
Go to page 3
Righto. Gold.

Now, a Pokemon, they are... magical creatures. Sometimes they are animals. Sometimes they are objects come to life. and pokeballs. Depending on whether you watch the anime, play the game, read the manga, and etc., Pokemon are either magical animals that are so overpowered you enslave them, or they are magical animals that are your friends, and for some reason follow you because you beat them in battle, Greek or anime logic, or something.

You are.... um... in your room, I guess.

And so on. Generally speaking, you will have multiple choices! Especially if you put in the time and effort to make them!

P.S. There is the game script... Go to game, then script. You will do a lot of things there. I'd have to make a new game to find out the details!

I'm sure if you had anything specific, we could help! Just post it here on the forum!


P.S.S. You can make the page into a script type. You print a message, it does things, etc.! It really works!

I recommend playing around with that a bit.

This is about 3/4 of my start script... Game- Script for my previously mentioned, TLOTSOTSSF. It shows all my stats!

player.alias = "you"
player.hitpoints = 110
player.max = 110
player.damage = 3
player.attack = 1
player.defence = 0
player.armour = 0
player.exp = 0
player.level = 0
player.ammo = 40
player.potion = 1
player.hyper_potion = 0
player.gold = 0
player.statusattributes = NewStringDictionary()
dictionary add (player.statusattributes, "hitpoints", "Hit points: !")
dictionary add (player.statusattributes, "ammo", "Spare ammo: !")
dictionary add (player.statusattributes, "equippedname", "Weapon: !")
dictionary add (player.statusattributes, "ammonote", "Ammo: !")
dictionary add (player.statusattributes, "level", "level: !")
dictionary add (player.statusattributes, "exp", "exp: !")
dictionary add (player.statusattributes, "potion", "Potions: !")
dictionary add (player.statusattributes, "hyper_potion", "Hyper Potions: !")
spade.damage = "2d5"
spade.attack = 3
pistol.damage = 0
pistol.attack = 0
pistol.firearmdamage = "3d7"
pistol.firearmattack = 3
pistol.ammo = 7
pistol.ammomax = 6
game.notarealturn = false
dictionary add (player.statusattributes, "gold", "Gold: !")
player.changedhitpoints => {
  if (player.hitpoints > 0) {
    msg ("Hits points now " + player.hitpoints)
  }
  else {
    msg ("You are dead!")
    finish
  }
}

Yeah...Monster's post was...anyway...

Well as I said I was just wondering for the Gamegbook if there was a simpler way to go about writing everything...

For my adventure you wander through a dungeon. You wake up in your room and you look in your mirror and see

male or female is your choice. From that Alone, would there be a way to reduce the amount of writing I would have to create? That choice alone makes me write x2 from whatever I write alone.

I won't mind it, but it does put the tiny burden of I have sooo much to do.


What, monster? He's just a big loveable.... monster.

It took me a while to learn the ShowMenu/show menu, two similar but different functions. After I made a post about it on here, The Pixie updated his tutorial.

It does make things a little simpler, making sure you don't have to write twice the normal code just to get the pronouns right!
Edit:
Here it is.

msg ("What is your gender?")
options = Split("Girl;Boy", ";")
ShowMenu ("What Gender?", options, true) {
  switch (result) {
    case ("Girl") {
      game.pov.gender = result
      msg ("You are a girl.")
    }
    case ("Boy") {
      game.pov.gender = result
      msg ("You are a boy.")
    }
  }
}

It looks complicated, but it's not. There's just a lot of options and switches. You'll see what I mean if you use it.
I got some of the code from HegemanKhan, so excuse me if it doesn't change the game's pronouns. I think there's tutorials for it somewhere.

You can also type stuff in. "get input" is what the function is called. It's mostly used for names. I suppose you could use it for gender too, if somome wanted some weird option. "They" is a proper pronoun too.


Oh hey, the answer was on one of the tutorials monster linked!
You should really look at them!
Code:

      msg ("Let's generate a character...")
      msg ("First, what is your name?")
      get input  {
        player.alias = result
        msg ("Hi, " + player.alias)
        show menu ("Your gender?", Split ("Male;Female", ";"), false) {
          player.gender = result
          show menu ("Your character class?", Split ("Warrior;Wizard;Priest;Thief", ";"), false) {
            player.class = result
            msg (" ")
            msg (player.alias + " was a " + LCase (player.gender) + " " + LCase (player.class) + ".")
            msg (" ")
            msg ("Now press a key to begin...")
            wait {
              ClearScreen
            }
          }
        }
      }

(If someone can show us the correct way to change the pronouns, that would be great, thank you!)


I have looked at that one...I have done it in the Text Adventure but it is not EXPLAINED how to pull up player.alias in a simple speech when an NPC refers to the characters name or your character tells it...besides going with "You tell the person your name" which to me is lazy...

So give me an example on the following;

"You find a set of leather armor and decide to put it on, as you place it on you feel it squeezes around..."

Now I may need to change how that sentence works but to change the following so it changes for whether your character is male or female...for that example the armor would be a bit tight around your waist for if your character was male or your chest for if your character was female.

This is where I need to learn the code, because I would like to expand the game into more of a survival, if you shop for certain items you can bypass certain obstacles but if you lack them you may wind up having trouble around them or wind up dead...but with my lack of knowledge I can't figure that stuff out so I wind up just writing a bunch of stuff and hope the story is more compelling with its many many paths...


Print expression.

"You are " + player.alias + "."

I just call the player "you", or just name them myself. So I don't have this problem... anymore...

(And as I said, if someone can post how to change the players' pronoun, that would be great...)

You should be "writing a bunch of stuff" anyways. It's more compelling and more interesting than focusing on the player's gender!


https://textadventures.co.uk/forum/samples/topic/4772/how-to-make-a-text-adventure-look-like-a-gamebook


...or...
Print expression.
"You find a set of leather armor and decide to put it on, as you place it on you feel it squeezes around " + player.alias + "."

I believe the player's name is actually player... Which means....

player.name = player

jmnevil,

No ShowMenu in gamebook.

No way to type in name, either. Monster was wrong!

Look here: #d1ac75ab-cf93-4e8b-b135-81acc90980e6

Making gamebook with text adventure editor: GOOD!

Making gamebook with gamebook editor: GOOD TOO!


Oh. It seems you're right.


K.V.

Hello,

Are you creating in Gamebook mode?

If yes, I (reluctantly) agree with The Quest Forum Monster. You should use his or her last link, and make a text adventure that looks and plays like a gamebook.

Gamebook mode lacks most of the functions (like ShowMenu), and probably could get some input from the player somehow, but you'd be much better off with a text adventure engine under the hood, if you wish to go beyond the average gamebook.


This is a text adventure:

image

You can use the following to hide the text input field, the panes, and the location:

image

or, in Code View:

request (Hide, "Command")
request (Hide, "Panes")
request (Hide, "Location")

If you did it that way (TA like a gamebook), you could do pretty much whatever you wanted. You would have access to all of Quest's functions.


OR...

You could go with jmnevil54's method: using the pages to make things happen using the gamebook editor.

image

image

image


Uh-oh...

Monster learning things...

Player CAN type name in gamebook (NOT big, dumb text adventure)! (Monster rejoice!)

msg ("What is your name?<br/>")
request (Show, "Command")
GetInput() {
  player.alias = result
  request (Hide, "Command")
  msg ("Hello, {player.alias}.")
}

image


Monster help vimboof? (Monster hope so. Monster is good monster!)


Code View:

msg ("You look at your {either player.sex=\"male\":manly|womanly} armor, and you decide it is strong.")

Text input field way to write:

You look at your {either player.sex="male":manly|womanly} armor, and you decide it is strong.

See circle ellipse around blue text?

Click Text Processor Help, it TAKE you on magical journey to explanation!

image

http://docs.textadventures.co.uk/quest/text_processor.html


Monster change player.name one time...

Quest grow angry with Monster REALLY fast!

Quest tell Monster, "Error running script: Cannot change name of element when not in Edit mode"


(And as I said, if someone can post how to change the players' pronoun, that would be great...)

Change object pronoun in text adventure:

NPC.gender = "he"

Does not work on player. Quest will say, "You pick it up."

jmnevil54 need to change that in EVERY template:

image


I think they are saying to use pages and attributes, and something about text processing.
P.S. Thanks for the help!

(Hey look, I make faces! .n. .2. .S. .v. .u. .5. .&. ._.)


male or female is your choice. From that Alone, would there be a way to reduce the amount of writing I would have to create? That choice alone makes me write x2 from whatever I write alone.

I won't mind it, but it does put the tiny burden of I have sooo much to do.

Monster confused...

Vimboof wants to make one game with two paths, but Vimboof no like using {either player.sex="male":manly|womanly}, but Vimboof only wants to write one path?


I (reluctantly) agree with The Quest Forum Monster.

K.V. not nice to Monster. That big word is not nice.

Monster sad now.

Monster always be nice, and Monster is a monster!


K.V. not nice to Monster.

Same here.


I tend to use player.sex, only because player.gender is a default attribute, and I don't fool around with those unless I know what I'm doing (most of the time).

image


This page has many good explanations which pertain to such things:
http://docs.textadventures.co.uk/quest/text_processor.html

Here's one example:

{either condition:text|text} As before, but the second text is only seen when the condition fails. Note that the two texts are separated by a vertical bar, to ensure nesting works properly.

Here are some more:

{page:command}
As command (an alternative name that may be prefered for game books).

{page:command:text}
As command (an alternative name that may be prefered for game books).

Additional text adventure commands

{object:name}
Displays an object hyperlink, using the object’s display alias.

{object:name:link text}
Displays an object hyperlink, using text you specify.

{exit:name}
Displays an exit hyperlink. The name is the name you give to the exit (by default exits do not have names; you will need to give it a name yourself). The link will appear as the exit’s alias (“north”, “up”, etc.)

{rndalt:object}
Display a randomly chosen name from an object’s alt list.

{if attribute:text}
Display text only if game attribute is true

{if not attribute:text}
Display text only if game attribute is false

{select:object.attribute:text 0:text 1:text 2}
{select:object.attribute:text 0|text 1|text 2}
Selects one text to display, based on the value of the object attribute (you can have as many sections as you like). Note that the attribute must be an integer (whole number), and the sections number from zero. The second form, with texts separated by vertical bars, allows additional text processor directives to be nested inside the select directive. This is new to Quest 5.7.

Additional text adventure commands in Quest 5.7

{i:text} Displays the given text in italic.

{b:text} Displays the given text in bold. To do bold and italic, nest the commands, like this: {b:{i:very important}}.

{u:text} Displays the given text in underline.

{s:text} Displays the given text in strike-through.

{colour:colour:text} Displays the given text in the colour specified (you can also used “color”, by the way).

{back:colour:text} Displays the given text with the colour specified as the background. To show text as white on black, you can combine these like this: {colour:white:{back:black:some highlighted text}}.

{here object:text} Displays the text only if the given object is in the current room (but not if in the player’s inventory or in a container in the room).

The beach is long, and the sand almost white. {here mary:You can see Mary, building a sand castle.}
{nothere object:text} Displays the text only if the given object is NOT in the current room.

The beach is long, and the sand almost white. {nothere mary:You wonder where Mary could be.}
{popup:text:long text} Displays a link, with the first text (which cannot have text processor directives nested in it). When the player clicks on the link, a pop-up will be displayed, containing the long text. The pop-up will disappear when the long text is clicked on. This can be used with the img command to have an image pop-up.

{either condition:text} This works similar to the if command above, but with two important differences. The first is the the condition can be any Quest code that results in a Boolean (true or false). The second is that if you are comparing a string it needs to be in double quotes (as is true of normal Quest code).

{either condition:text|text} As before, but the second text is only seen when the condition fails. Note that the two texts are separated by a vertical bar, to ensure nesting works properly.

"You {either StartsWith(player.name, "play") and not player.flag:are the player}"
-> "You are the player",
"'Oh, {either player.male**flag:he|she} is not worth it.'"
-> "'Oh, he is not worth it.'",
{eval:code} The code is evaluated, just as normal Quest code is, and the result displayed.

{=code} This is a short cut for eval, and works just the same. The samples below show the potential, though by its nature this is rather less forgiving that the other commands available.

"You are in the {eval:player.parent.name}"
-> "You are in the kitchen"
"You are in the {=player.parent.name}"
-> "You are in the kitchen"
"You are in the {=CapFirst(player.parent.name)}"
-> "You are in the Kitchen"
"There are {=ListCount(AllObjects())} objects"
-> "There are 6 objects"
"You look out the window: {=LookOutWindow}"
-> "You look out the window: A figure is moving by the bushes"

Additional gamebook commands

{counter:countername}
Displays the value of an counter

{if flag:text}
Display text only if flag is set

{if not flag:text}
Display text only if flag is not set

{if countername=value:text}
Display text only if a counter equals a certain value.

{if countername>value:text}
Display text only if a counter is greater than a certain value.

{if countername>=value:text}
Display text only if a counter is greater than or equal to a certain value.

{if countername<value:text}
Display text only if a counter is less than a certain value.

{if countername<=value:text}
Display text only if a counter is less than or equal to a certain value.


Well Thank you Richard, you answered most of what I was asking. I can try some things out even try turning the Text Adventure into a Gambook. See which one I like better...


Richard Headkid is K.V.

Also you never once asked how to use text processors. I noticed confusion, but nothing beyond that.


Great, now you got me curious, and I want to make my own game book and look at your game. I don't know if that's good or bad. I'm currently trying to keep my game space as small as possible, only things I'll actually use!


K.V.

You're welcome, Vimboof!

It's no problem. Happy to help!

Quest has so much documentation, it's hard to sift through it. Especially at first.


I didn't even know I was under RH when I was posting that. I was updating a game. (Richard Headkid is my sad excuse for a pseudonym.)

At least jmnevil54 knew I have both accounts... otherwise, my 'same here' joke would have been wasted!

I thought it was posted by me, K.V. , saying that K.V. is mean to me sometimes, too. (Sort of a lame apology to Monster.)


I think he meant he didn't want the gamebook to not use the ShowMenu. And ha, he scratched out the word earlier! I thought it was obvious, though admittably it took me awhile, as my brain is sometimes slow at these things, and I have Autism.


This topic is now closed. Topics are closed after 60 days of inactivity.

Support

Forums