Synopsis
Ok so my idea for a LD48 game this time around is to build a multi-level alternate reality challenge game.
A challenge prompt is displayed to the user in a web browser. The player must correctly answer the prompt to proceed to the next level.
Tech stack
I want there to be a good degree of security, so players can’t just cheat to get to the next levels, so I want to use SSR for all sensitive responses. For this reason I’ll go with what I know. express-hotwire
Also despite my habits of open sourcing everything, the git repo will need to stay closed source until the first several players win the game.
Story
A great story is a pivotal part of any good game. I would like to come up with some kind of story, perhaps related to the LDJam theme, or perhaps related to my previous ld36 game Agents of D.E.C.T.I.L.E: The Rotchford Incident
Challenges/Levels
Beat a series of increasingly difficult levels, to arrive at the final difficult level.
I think it would be good to allow players to skip ahead to different levels, in case they get stuck on a certain level. Perhaps it’s the final 3 levels which require all levels prior to be completed before they can access those levels.
Here are some potential challenges.
Music notes spell out the answer
A song is played which using note letters A-G, spells out the answer
Riddle
A classic riddle is asked. The answer to the riddle is the password to unlock the next round.
Steganography
The challenge answer is hidden in the metadata of a photo.
base64
The answer is hidden in a base64 image which is sent via chat
Phone number
I will purchase a phone number through Twilio or Plivo which players can call or text. A response is given to them which reveals the answer to the challenge. This could be a voice prompt such as a fake voicemail.
Video
I upload a video to a new odysee channel which has the answer hidden within. I could RP as a character from the ARG world.
Tweet
The player must @ a twitter account, which responds with the challenge answer
Web page
The player must visit a webpage which reveals the challenge answer. I could use Neocities for this.
Security Camera Feed
A clue appears on a video stream at regular intervals.
Morse code in PDF
Mose code encoded in the margin of a PDF. Perhaps mimicking the yellow dots that some printers put on every paper to better track potential printer use in a crime
NFT
A $0.01 NFT which the player must have in their wallet to unlock the next round
rot8000
An answer is hidden in rot8000
rot13
An answer is hidden in rot13
Cron
A cron definition (https://crontab.guru/) is displayed in chat which shows the player at what time of day the answer is visible. A 5 minute window is all they get!
Persistence is key
At some point in the game, the player’s progress is intentionally reset by the server. The player is meant to be dismayed, and rewarded with the answer only if they choose to continue
Player from the past
At an early level, the player’s KB & mouse input is recorded and saved while attempting to solve a problem. Later, the player encounters a time dilation where they see their past self trying to solve a problem. The current player must give the answer to their past self.
Player from an alternate universe
A player must assist a player from an alternate universe by creating an answer and giving it to them.
Stow-away
A player must use a code which was not meant for them in order to get an answer
Ghost chatter
The chat is shown on-screen (video chat), but there’s a person who’s messages appear in video chat that isn’t a player. This ghost chatter reveals a clue/answer
Player count
The level starts at 0 with 0 players
1 player joins chat, the level becomes 1
2 players in chat means level 2
3 players in chat means level 3
… and so on
For each level, a sound track is played. Additional levels add a sound track. The stacked tracks playing simultaneously create a progressive ambiance as the levels increase
emote
Players are shown a single emote on the screen. They must type the name (keyword) of that emote in chat to advance. There could be several rounds of this, starting with easy (global) emotes and working up to more obscure (small channel) emotes
Collaboration
The players will probably get stuck. It might be good to have a subreddit or comment system where they can collaborate to get through the game
Prizes
Prizes are awarded to the players beat the game in the fastest time.
First Prize
Large amount of Bitcoin & leaderboard
Second Prize
Small amount of Bitcoin & leaderboard
Third Prize
Smaller amount of Bitcoin & leaderboard
Twitch Stream
OK new idea. Instead of finding clues, players must exhaust their in-game lives. 9 lives, for example.
The whole game is played via a Twitch.tv stream using chatbot commands
Players get prompts using !<number>
(prompt command)
Players answer prompts using !<number> <answer>
(answer command)
If a prompt is successfully answered, the player loses a life. To win, players must exhaust all lives and have a NDE.
Same sort of puzzle challenges as the notes I put above.
once a player reaches a certain level, the chat bot mentions them in chat @ with a link to the final challenge, which is a website that awards the prize. The website will require Twitch sign-in so the correct player is the only one who is allowed to enter. Naturally, other players who have not won are also trying to sneak a win by visiting the link. This could cause them to lose a life which is meant to be part of the game. Of course I would have to seed this somehow because there has to be a player who gets through in order for the first player to get through. Maybe an auto-bot that unlocks the final stage every 1 hour.
The answers are unique for every player. Player edgelord666
can’t use peter_taco4
‘s answers because each answer is generated using some entropy from the user’s name or their ID.
Other players can watch and see how challenges are solved, but for them to actually make progress in the game, they must get their own prompt and solve their own challenge.
using a prompt command such as !1
queues a job in the software which is rendering the display. Jobs are executed as quickly as possible and the appropriate prompt displays on-screen for all livestream viewers to see. Along with the prompt is an overlay which shows the prompt number and the player who triggered the prompt. This way, the players know which puzzle belongs to which player.
Checklist
- [x] Disable VODs on Twitch so I can play whatever music I want
- [x] Change homepage settings so e-Mail tab doesn’t show up automatically
- [x] Have snacks
- [x] Tune the Pomodoro timer. RESPECT the Pomodoro timer!
- [x] Disable syncthing
- [x] Increase wifi bandwidth limiter
Code
I’ll be using glitch so I can easily share code if people want to see
also it’s a badass af editor!
https://glitch.com/edit/#!/shorthaired-elegant-rainstorm
THEME
The theme is UNSTABLE
Conclusion
I got way too stressed out during the jam, so I dropped out. I’ll try again in April!