June 19, 2025
Finally finished!! Rewrote the entire game logic in html/Javascript and deployed it on GitHub Pages. The game can now be played on the web by anyone, without having to install anything.
Almost done with rewriting the code in javascript. Still got to work on the mute/unmute logic and a few other minor fixes, everything else works!
Spent the last 2-3 days trying to use pygbag to deploy the game on the web so that it can be played without having to download anything. First I tried to deploy it on Github Pages and then on itch.io but neither of them worked as I just kept getting errors.
Finally decided to use javascript for deploying it on the web. I got some of the basic game functionality to work already, now working on making everything else work properly too.
Added keyboard input support. You can choose the difficulty by pressing E,M or H respectively. On the gameplay screen, just press the letter you want to guess. And press R on the end screen to replay/go back to the start screen.
Added a score system where you get 300, 600 and 1000 points each for winning (in increasing order of difficulty level) and lose 100, 250 and 500 points respectively on losing. The message shown for the points won/lost is different each time and is chosen randomly from a list of custom messages made to match the theme of the game. Your score can go in negative too.
Added a border highlight to the three difficulty buttons which shows on hovering the mouse over them. Also made the Try again line on the end screen into a button, which also has the hover highlight effect. And added a replay icon to the try again button.
(Adding the replay icon inside the button and then centering the icon and text took me way too long)
Added sound effects to correct and wrong letter clicks. Also added the bush movement sound at the end of the win/lose screen.
The API I was using suddenly went down and I don't when will it come back up so I switched to another API. I also added a check to see whether the API is working or not and if it isn't, I fallback to a locally saved file to fetch the word. I also display a message on the screen (without ruining the theme) to let the player know that the API failed and that I am using a fallback list of words now.
(I purposely failed the API in the easy level by giving a wrong parameter for now to show the message, it is working otherwise)
Updated the code for the win and lose screens to make the lines fade in for a better look instead of just blitting it onto the screen using delays.
Added the option of muting the background music and sound effects. They stay muted throughout the game till you choose to unmute it. The music of the current screen starts playing on unmuting, no matter you mute it on whichever screen before.
Added background music and sound effects to the game. They fade in and fade out every time so it doesn't sound abrupt. Also adjusted the timings of the win and lose text appearing on the screen.
Changed the winning and losing screens. Also added time delays between the lines so that each line shows one after the other. I also disabled mouse clicks until all the lines appear so that you don't skip the screen if you click by accident.
Decided to make the game horror/dark themed. Changed the name to The Last Whisper and also designed my own custom backgrounds in Canva to use in the game.
Integrated an API which fetches the words based on the difficulty level (The length increases with difficulty). The API takes like a second or two to fetch the word so also added a Loading... text at the bottom.
Added a starting screen at the beginning of the game and also gave the option of choosing the difficulty level. The length of the word changes according to the difficulty level.
Next planning on integrating an API for fetching the words instead of using file handling to get the words from a locally stored text file.
Colour-coded the letters to turn green on clicking if they are correct and red if they are wrong.
Made separate screens for winning and losing. Next working on trying to colour code the letters after they are clicked instead of making them disappear.
The screen updates as you play the game. Working on making separate screens for when you win and lose.
The Last Whisper is an immersive Hangman-style horror adventure game built with Python and Pygame (And JavaScript for the web version). Embark on a mysterious journey which tests your vocabulary and resilience as you attempt to escape the darkness by uncovering cursed words, all set against a haunting backdrop with atmospheric sounds and visuals. (P.S. You might have to click on the screen once to start the background music for the first time)
This was widely regarded as a great move by everyone.