Super Noob: change the way the game does descriptions/lists objects and exits

Hey there, I've been messing around with a practice game for probably less than two hours. Been through the tutorial and next in the docket is the scripts intro. But I'm a bit flummoxed by like, basic options.

At present, when a player enters a room, the game presents information in this order:

  • prefix for entering the room
  • 'prefix for seeing objects' object, object, and object
  • 'prefix for potential travel directions' direction, direction, or direction.
  • basic description of room not like this, and am really not sure how to modify it. I want it to ideally go

  • prefix for entering room (configurable based on game events, i.e running if being chased, sneaking if not)
  • basic description of the room
  • And then I want further first-time description explaining what the player sees re: visible doors, objects, and so on. (e.g. 'At the end of the hallway is a stairwell', where 'stairwell' is an exit)

I also don't want the game to announce most objects; I'd prefer the player have to look around to see anything that's not right in front of their face. Seems more immersive that way. I've been messing around with the main room, object, and exit options, and can't seem to figure out how to change how the game presents this text.

Any tips? So far all I can do is change the prefixes (e.g. 'you see' an object), when what I really want to be doing is saying something like 'to your right you see an overburdened coat hanger. At its base is a pair of dusty boots' with the coat hanger and the boots being objects. Maybe it would be best to just prevent the game from reporting objects and exits to the player at all, and have it all be in description?

It's late, but everything you've described is easily sorted out in the Desktop editor. Are you using it, or are you using the online web-based one? If you can use the offline one, it gives you a lot more freedom. (They can technically both do the same things, but online requires a lot more code-based solutions for things as simple as flicking a checkbox in Offline.)

For example, if you click on game, you'll see a tab called Room Descriptions. There, you can assign the order of the prefix, object list, destinations and description.

Above that, you can do things like turn off the automatic generation of room descriptions, turn off the 'you are in' automatic prefix of the room name to just display the name in bold instead, etc.

as for first-time things, you can either do that in the room's scripts -- you'll find 'after entering for the first time' and 'before leaving for the first time' -- or you can use the text processor in the room description window with

Here is text that will always appear. {once:Here is text that will only appear the first time this message is printed.}

Everything else you specify is possible, but my brain's sludge and I need to remember how. Someone else might pop in with other answers.

If you set an object to be scenery it will not be automatically listed, but the player can still interact with it by typing its name.

If you want, you could make part of the room's description something like {here boots:There is a pair of battered old boots under the stairs.} - so it will only display if the player hasn't removed the boots.

Or, if you give an object an "in-room description", that description will be added to the end of the current room's description when the object is present. I think you have to enable this on the game's 'Features' tab before you can use it. You can use {if or {either to vary this based on which room the object is in; as it would make no sense to say "At its base is a pair of dusty boots" when the player has taken the boots and put them in a different room.

In order to prevent the player moving objects and then losing them, the scenery flag is removed when an object is picked up. this means that objects the player has moved will reappear in the "You can see:" list. There are two ways to work around this:

  1. Disable the "You can see:" list by setting its number to zero on the game's "Room Descriptions" tag.
  2. Give the object an "after dropped" script which does this.scenery = true - and possibly also changes its inroomdescription depending on which room it is in.

Thank you to both of you for your help. Used Pykrete's advice to rejig the description element orders, which made a huge difference, and working on using mrangel's suggestions to give life to the descriptions.

The notes on in-room descriptions seem extremely useful. The scenery flag as well. For now I've opted to prevent the game from listing objects at all, as I think I prefer my players to have to specifically look for things that aren't directly in their faces.

I'll see if I can figure out how to do exits using the description too. This seems like it'd be trickier, as you'd want to lay it out differently depending on which entrance to a given room the player enters through. using descriptors like 'east' and 'west' is extremely immersion-breaking for a building-exploring sequence imo, because no one in life ever categorises exits based on their cardinal direction unless they're a realtor.

There are a few ways to do this.
The easiest, or hardest, would be to have 4 descriptions of every room, based on which door the player entered, or is facing.
For this, you would need a player.atribute, IE: player.D.
If player.D="N" then the player is looking north, and you show the "north facing description".
Same for other directions.
You would need to disable the N,E,S,W movement directions, and replace them with Forward, or move, or go, forward...
Turn left and turn right would change the player.D facing.

So you'd disable the standard 'you can go NESW' descriptions in favour of having the room output set descriptions based on player.d?

Would this complicate move commands? E.g. is it possible to make the game accept variable aliases for exits based on player.d? Or would you have to just have the player navigate via the name of the exit, e.g. 'lounge door'?

My Dark Halloween, I used NESW for exits first, but after you went through, the exit name changed to "new room name"...
IE: Go north
"You are now in the kitchen."
The south exit now lists' "Front room" as the name, and when you go back, the north exit says "Kitchen"...
(Actually, I don't recall if the NESW were disabled...)
(P.S. I was informed that Dark Halloween will not play under Quest 5.8, but still works under Q 5.7)

"Or would you have to just have the player navigate via the name of the exit, e.g. 'lounge door'?"
If the player remembered that the lounge was to the north, then "go north" should still work.

Naming the movement options according to the room the exit leads to does sound simplest, yeah. Cheers.

Log in to post a reply.