Tech demo. Opinions?

Hey folks!
I recently decided to try remaking the first computer game I remember playing: Circus by Brian Howarth and Wherner Barnes.

So far, it's a long way from complete, but I think I've got a modified placesObjects pane, working almost like the one in the original game. I'd be interested to hear what people think of this.
I haven't added all the object descriptions yet, and some of them are missing verbs, but I think there's enough there to act as a test of the underlying code.

http://textadventures.co.uk/games/view/umuqdjeccuuwu_eo27i8vq/circus


Strange, your game crashes Quest. I am going straight to south, get the flashlight, then back to the tent and whemn entering the text I am getting
"Sorry, your session has expired and the game has finished.
Press your browser's Refresh button to start again." in the onlineplayer. Using the offline version of Quest, the program freezes and dies.

I like the retro fealing when playing your game. The only thing that bothers me is the font of "-WHAT NEXT? Continue..." It is not possible to adapt it yet?


Weird… it was working last night, and I don't think I changed anything in that area.
I noticed this morning that it froze at that point a few times, but assumed it was just general server oddity.

I've been going back and forth between trying to get the look and feel right, and putting in the actual game elements. Yeah, the "Continue" thing is a bit ugly.


Wait ... that makes no sense.

The last thing I did before leaving the house this morning (~4 hours ago) was to test my game using the commands from a walkthrough for the original. I got as far as getting the fish out of the freezer (because the walkthrough had "look freezer" and my version required you to "open freezer"). After that, I gave the freezer a new script to automatically open it if you look at it while it's closed.

So what's changed since then, to break the tent?


*facepalm*

I see the problem. I also fixed the backdrop scope script, which seemed like a trivial change.

I can't refer to CheckDarkness() in the scope script, because it then calls ScopeVisibleLightsource() to see if you have the flashlight, which calls ScopeVisible(), which calls ScopeVisibleNotHeldForRoom(), which calls ScopeReachablkeNotHeldForRoom(), which calls game.scopebackdrop


I get the “Sorry, session expired/game over” message frequently if I spend more than 10-15 minutes on ANY game if it’s online. Never get it when downloaded games are played.


OK ... implemented my own version of CheckDarkness() that recurses down through the contents of the room, so it doesn't care about light sources outside the room even if they're in scope.

(I'd been playing with backdrop scope, putting the current room and its parents into scope, so you can look at the tent from inside it, look down at the rings when you're in a room above them, and similar. To test out this system, try looking at the tent from in the cannon)


I cant look at the rings from any position, I always get "I can't see that"

This is a technical demo so its not really playable? I found several bugs when playing.


I cant look at the rings from any position, I always get "I can't see that"

Fixed. Thanks.

This is a technical demo so its not really playable?

I'm trying to iron out all the bugs.
Turns out that in eliminating one edge case, I added quite a few more in places that I'd already checked.

I'm calling it a tech demo at this point because I'm focusing on the scripts and ironing out bugs before I finish the actual gameplay. There's two rooms, two items, and about 7 verbs not yet implemented, so you can't get to the ending.

I found several bugs when playing.

I'd appreciate notice of any that I missed.
(One that I'm aware of is mixed usage of "I" and "You". I can't find a way to edit templates on the online editor, so fixing that might mean downloading the published game and swapping out the default templates for ones that work)
(I also know that the "open boot" verb appears on the dropdown lists for both "I" and "back of my car". The only way I can see to fix that would probably cause more intractable bugs, but I'll get around to it soon)


Lots of display verbs are not correct. I think you dont need "kick" or "smash". Will it be possible to play the game without a keyboard?
Some other bugs :
in the closet when going 'out' -->
Error running script: Error evaluating expression '(not GetBoolean(game.pov.parent, "visited")) and HasScript(game.pov.parent, "beforefirstenter")': GetBoolean function expected object parameter but was passed 'null'
Error running script: Error evaluating expression 'GetExitByLink (oldvalue, this.parent)': GetExitByLink function expected object parameter but was passed 'null'
Error running script: Error evaluating expression 'GetBoolean(game.pov.parent, "dark")': GetBoolean function expected object parameter but was passed 'null'
Error running script: Error evaluating expression 'HasString (game.pov.parent, "description")': HasString function expected object parameter but was passed 'null'
Error running script: Error evaluating expression 'GetBoolean(game.pov.parent, "dark")': GetBoolean function expected object parameter but was passed 'null'
Error running script: Error evaluating expression 'GetAllChildObjects(room)': GetAllChildObjects function expected object parameter but was passed 'null'
Error running script: Error evaluating expression 'GetAllChildObjects(room)': GetAllChildObjects function expected object parameter but was passed 'null'
Error running script: Error evaluating expression 'GetBoolean(room, "transparent")': GetBoolean function expected object parameter but was passed 'null'
Error running script: Error evaluating expression 'GetAllChildObjects(newParent)': GetAllChildObjects function expected object parameter but was passed 'null'
Error running script: Object reference not set to an instance of an object.


LOOK AT CLOWN

A tall figure stands before me, dressed in a yellow and blue clown suit. The costume is thickly laden with dust, and the clown's white-painted face seems little more than a mask of horror. But I sense an intense sadness coming from this apparition.
The clown meets my gaze with empty eye sockets, and slowly points down to something in the dust at his feet.

TAKE NOTE

You pick it up.

read note

It says:- PLEASE, DESTROY THIS PLACE! WE ARE LOST SPIRITS, CONDEMNED FOREVER TO PERFORM OUR LAST SHOW TO EMPTY STANDS.
As I look up from the note, I realise the ghostly clown is no longer there. There are no tracks in the dust other than mine, and I wonder if he ever really was.
Error running script: Error evaluating expression 'GetObject (GetExitByLink (oldvalue, this.parent))': GetExitByLink function expected object parameter but was passed 'null'


LOOK AT LARGE CANNON

There is: a small lever , and a crash helmet.

PULL SMALL LEVER

I feel myself sailing through the air, through the hole in the canvas and back down towards the ground outside.
Error running script: Error compiling expression 'not GetBoolean(helmet, "worn")': Unknown object or variable 'helmet'


It's not possible to wear the helmet? How can i leave the cannon?


I am in a circus ring in a circus tent
To the east side of the ring is a sturdy-looking metal cage, and .
Things I see: a cage.
Exits are: west.
**

close cage

It is already closed.
Error running script: Error compiling expression 'result': RootExpressionElement: Cannot convert type 'Object' to expression result of 'Boolean'
Error running script: Error compiling expression 'Instr(text, "{")': FunctionCallElement: Could find not function 'Instr(Object; String)'


"kick" and "smash" I'm not sure about. In the original game, it's frustrating because on nearly every object, they give a message like "violence never solves anything". Which meant that it took us ages to realise there was one object where it's useful.
If the object it works on is the only one that has it on the list, it makes it a little too obvious.

I really should have put "kick" on all the other objects that you might think of kicking (tiger, tank, generator, car, wagon, etc); but to save time I just stuck it on a random selection of objects while I'm developing.

Will it be possible to play the game without a keyboard?

Should be. As I said, I've not filled in all the verb lists yet, because I'm focusing on getting rid of the bugs first.

OK ... leaving the closet, that has me confused for now. I'll have to step through it and add breadcrumbs, see if I can find the problem.
The code quoted in the error message isn't mine, so I assume I must have set an attribute to something odd that's blowing up the core functions.

Oh… GetObject ("") returns a non-null object. That's really weird.

The clown is completely messed up; I'm aware of this. I made him disappear because I was getting fed up of him walking around while I was testing other stuff, but then realised you need him later to help with getting the tightrope. I'll be ripping out and replacing his code once I get up to that point in the story.

The crash helmet is now wearable; can't believe I missed that. And also got the object name wrong in the script.

Thanks :D
Slowly sorting out all those issues


Ah... the weirdness around the cage was caused by {either someobject.misspelled_attribute: ........ } in the room description.

I need to remember that the text processor gives completely meaningless error messages.


I still get this bug:
I am in a ring_east in a circus tent
Things I see: a ladder.
Exits are: west east.


GO EAST
O.K.
Error running script: Error compiling expression 'result': RootExpressionElement: Cannot convert type 'Object' to expression
result of 'Boolean'
Error running script: Error compiling expression 'Instr(text, "{")': FunctionCallElement: Could find not function 'Instr(Object; String)'

And I still cant wear the helmet


I still get this bug:

Ooops. forgot to republish after fixing that.
And I also failed to give that location an alias *facepalm*

Next issue seems to be that the links aren't being created for objects whose only displayverb is "Look at".


SMASH ROAD

"SMASH" is not in my vocabulary.


Yep. I'm trying to fix bugs with the existing items/verbs before adding the new ones.
"smash" now works, as does the item you're supposed to use it on.

Verbs still to implement: smash, erect, short, lever, start, drive
Items still to add: metal bars, hacksaw, terminals, locker, blueprints

The clown's random movement algorithm has just been changed; I haven't tested it properly, but it looks like there may be an issue in some cases. Not 100% sure I've got his algorithm right, but I think it should seem natural enough.


OK, I think that's all the objects/verbs implemented. Now, getting into a much more involved phase of testing, to find all the situations where something might or might not work.

At this point, I've not touched any of the templates (online editor, bah), so there's still a fair number of places where it says "you" instead of "I". (To match the original, "you" are sitting at a computer typing commands, while "I" am following your instructions and walking around a haunted circus). I'll look into fixing those once everything else works.


Well, I've just played this game through to the perfect ending on my phone.

Changes made:

  1. Added wear/remove to display verbs
  2. Added read to display verbs
  3. Fixed "a water" and "a slippers"
  4. Allowed "wear snorkel"
  5. Added a description for a couple of items
  6. Created "dust" as a scenery object

I think that's everything working now.
(Note: It is still possible to die after getting the perfect ending. This is not a bug. I'd call it an easter egg, and probably add an achievement "Snatching defeat from the jaws of victory", if I cared enough to make an achievement system)

Outstanding issues

  1. The information pane doesn't work on versions of Chrome earlier than 56. This also seems to affect Quest's desktop player ):
    Any suggestions would be welcome, but I suspect there's not much I can do to get around this.
  2. Are there any other problems I've missed?

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

Support

Forums