.png)
2023

1
DEMON TOWER
/ overview
Demon Tower is a text-based comedy adventure game about escaping a mysterious monolith. It was a solo project I made in 2023 at QUT using JavaScript in the p5js editor. The game was intended to be played on a specific arcade machine in front of a large audience, faciliating a more cooperative style of play, with many people trial-and-erroring their way through the game through multiple attempts. I was lucky enough to have the game showed off at the DXB211 showcase.
/ play
.png)

/ controls
-
Type using your keyboard.
-
Press enter to submit your response.
-
Make sure you have clicked on the embed.
/ work
-
narrative
-
level design
-
programming
-
visuals
-
graphic design
/ outcomes
Demon Tower was an incredibly fun project to work on, and was one of the more polished and complete projects I did at QUT. Some key take aways that I learned while working on it were the following:
​
-
Narrative / dialogue writing to incentivise player choice.
-
Complex level / encounter design.
-
Effective time management in a solo project.
-
Text-based input systems.
-
Playtesting and polish required for a finished product.​
/ details
Demon Tower was a fun experiment in a genre I had not attempted previously. Programming-wise, it wasn't too much of a challenge to get a simple input-based text game working, it was more about the narrative, style and aesthetic I was focused on to make the whole experience cohesive and intuitive for players. It was the little details, like the on-launch boot up sound, the text scroll, scan lines, flickering etc. that added a lot and contributed to the 80s command line aesthetic I was aiming for.

Progression Flowchart
One notable complexity I had was the overall structure of the game, and how the player's choices move them around the play space. It was important to keep track of the player's health, items, etc. and their impact on the world at all times since they are able to get to specific parts of the game in a different order on different runs. A specific example are the blue and orange locks on the above flowchart, which prevent the player from progressing depending on if they have interacted with various other objects in the level.


Summary & Core Functions
Although it was a pretty simple system to implement through code, there were a few intricacies that went into making it perfomant and intuitive to the user.
The program works by writing an array of strings 'dialogue' to the screen and then waiting for the player's response when the string runs out of entries, indicating it's the player's turn. The player is given a prompt based on the scenario, the players input is recorded with the keyboard, and then the player can use ENTER to submit their response. This response is then read, checked for validity, and then a number of other strings are appended to the original dialogue array depending on that response. This also automatically ends the player's turn and starts writing new lines to the screen.
This system allows many lines to be written easily and also allows the functionality for deciding the player's turn to be more streamlined. On top of this basic system many visual effects and quirks are added to keep the aesthetic coherent and understandable (e.g. the text scroll and scan lines.).