You can do this in Inform. "One room" games where the focus is a puzzle in a single room are not uncommon. It's fairly simple and straightforward to create objects in Inform that affect one another, and to create puzzles where the objects interact with one another. So if you don't mind doing a text-based version Inform is still an option.
Any game that isn't an Inform game will have to be hosted on your own webpage. That's because, basically, I do not want to open up the can of worms of supporting multiple submission types. You will have to host the story file and provide links to interpreters or instructions on how to run it.
This poses an interesting discussion question. What should be the "boundaries" of the contest? I guess my gut feeling is that there has to be some actual written words in order to qualify, but maybe we should just let people submit whatever they want and let the votes and judges settle the issue.
"The robocop_is_bleeding scenario" by Deathalicious Turncount is a number variable. There is a carcass. The description of the carcass is "The limp carcass of a once happy chicken. Hopefully its death was for a greater cause than soup." Before turning the idol: if turncount is greater than 2: say "The idol is stuck and won't turn any further."; stop the action. Instead of turning the idol: increase turncount by 1; if turncount is 3, say "As you turn the idol for the third time, it makes an odd click."; otherwise say "You turn the statue. It makes a grinding noise as it scrapes across the floor."; The Scary Room is a room. "This is scary". In the scary room is a golden idol, a pedestal, a ruby, and a chicken. The pedestal is a supporter. The chicken is an animal. Before putting something on the pedestal: if turncount is less than 3 begin; say "The idol sees you approaching the pedestal. Its eyes turn firery red and white-hot beams shoot out of its eyes towards the pedestal. You quickly move away before you get burned."; stop the action; otherwise; say "Fortunately, the idol's face is now facing the corner of the room, so it cannot see you approach the pedestal."; end if. Before touching the pedestal: if turncount is less than 3 begin; say "The idol sees you approaching the pedestal. Its eyes turn firery red and white-hot beams shoot out of its eyes towards the pedestal. You quickly move away before you get burned."; stop the action; otherwise; say "Fortunately, the idol's face is now facing the corner of the room, so it cannot see you approach the pedestal."; end if. Understand "sacrifice [something]" or "slaughter [something]" as attacking. After putting the ruby on the pedestal, say "The ruby begins to glow with a fearful brightness." Instead of taking the chicken while the ruby is not on the pedestal, say "The chicken resists your attempts to grab it." Instead of taking the chicken while the ruby is on the pedestal: now the player has the chicken; say "The power of the ruby makes the chicken strangely docile. It hops into your arms as soon as you near it.". Instead of attacking the chicken while the player does not carry the chicken, try taking the chicken. Instead of attacking the chicken while the player carries the chicken: say "With your sacrificial knife you (gory details removed)."; remove the chicken from play; now the player has the carcass.Just a note: notice the way I enforced the action was by making steps undoable unless the other steps had been done first. This is generally considered good form in IF. The idea is you don't want gamers to arrive at an unwinnable state simply because they didn't know the order you wanted things done in. It works better for the gamer if you block them from doing something out of order.
if (cow=red)
echo('Your cow is red');becomesif the cow is red: say "You cow is red."For one line statements like this, you can also replace the colon, return, and indent with a comma (
if the cow is red, say "You take the cow".).if the cow is red, say "You take the cow".Here the period is outside of the quote, so it does not get output and no additional linebreak is output.
if (cow=red) {
cow=blue;
echo('The cow was red, now it is blue.');
}becomesif the cow is red: now the cow is blue; say "The cow was red, now it is blue.".Pseudocode:
if (cow=red)
echo('You take the cow');
else
echo('Not now, the cow is not red yet!');becomesif the cow is red: say "You take the cow."; otherwise: say "Not now, the cow is not red yet!".Note the semicolon in line 1; this lets the program now the whole statement isn't done yet. The period in line 2 ends the statement.
if (cow=red) {
cow=blue;
echo('The cow was red, now it is blue.');
} else if (cow=purple) {
cow=green;
echo('The cow was purple, now it is green.');
} else {
cow=brown;
echo('Just to be safe, I made the cow brown.');
}becomesif the cow is red: now the cow is blue; say "The cow was red, now it is blue."; otherwise if the cow is purple: now the cow is green; say "The cow was purple, now it is green."; otherwise: now the cow is brown; say "Just to be safe, I made the cow brown."The most important thing is indentation. Basically, Inform is not white-space blind, similar to Python. If you use this indentation format, use tabs only. Assuming you are using the Inform IDE, the best way to ensure proper indentation is to use the "Shift Selection Right" and "Shift Selection Left" options in the "Format" menu (command-] and command-[, respectively).
Agent Howie, your recovery of the Magnetic Entropy Device from the craven Dr. Ming has gone awry! Zoldara, his deadly assassinatrix, has foiled your infiltration of Ming's armored hovercraft. You must escape her clutches and destroy the Device before Ming's ship reaches Hong Kong Harbor!
You awaken in a small closet. The thrumming of a powerful engine can be heard somewhere far below you. You have been firmly tied with stout rope.
> look
It is too dark to see anything here.
> leave closet
You have been trussed like a roast goose. You cannot move even a bit.
> cut rope
What do you want to cut the rope with?
> break rope
The rope is far too strong to be broken.
> cut rope with teeth
I see no teeth here.
> inventory
You are empty-handed.
> fuck
Such language in a high-class establishment like this!
>
posted by Deathalicious at 11:19 PM on February 26, 2009