Welcome to Cheese Tax! Previously named Mouse Adventure(working title), an intriguing text-based adventure game where you play as a little mouse on a quest to avoid any trouble from the notrious Mouse Mafia by collecting cheese from the Giant's territory.
Embark on a interesting journey through various destinations, facing challenges and overcoming obstacles along the way. But be cautious; danger lurks around every corner, and one wrong move could be your last.
You'll interact with the game world using text-based commands entered via the command line. These commands allow you to move, explore, and perform actions to advance through the game. As you progress, you'll unlock achievements that mark your accomplishments and add to the overall experience. Keep track of your cheese currency and lives, as you'll need both to survive and succeed in your quest.
When playing the game, you'll need to input text commands to control your character and interact with the game world. Some basic commands include:
- go [direction] (e.g., go north): Move in the specified direction.
- help: Display a list of available commands and their descriptions.
- quit: Exit the game.
- cheese: Check your cheese currency.
- look [object]: Look at targeted object
And more!
-
Immersive Text-based World: Players interact with various rooms, objects, and characters while exploring an interesting world through written descriptions.
-
Command-based Interaction: The game uses a command-based system that enables players to interact with characters, move between rooms, pick up goods, and move around the game world by inputting simple commands.
-
Achievement System: Players can unlock achievements throughout their journey, providing a sense of progression and accomplishment.
-
Death and Checkpoint System: When the player dies, they respawn at their last checkpoint, adding a layer of challenge and consequence to the game.
-
Intriguing Interactable Objects: Discover and engage with various objects that enrich the game world and provide unique interactions.
-
Responsive Interactive Enemies: Encounter and interact with distinct enemies, each providing unique challenges and experiences.
-
Multiple Engaging Endings: Uncover several possible endings, including a hidden easter egg ending, that add depth and replayability to the game.
Throughout the development of Mouse Adventure, I gained valuable insights and learned several lessons:
-
Design Patterns: Implementing design patterns including Singleton, Memento, Command, Factory, Decorator, Builder and Observer was shown to be helpful in managing game state, encouraging code reusability, and ensuring loose coupling between game components.
-
Text-based User Interface: Designing a text-based user interface (TUI) can be challenging, as it requires careful consideration of user experience and efficient use of text to convey information. However, TUIs can provide an engaging and immersive experience for the player.
-
Error Handling: Ensuring proper error handling and user input validation is crucial to prevent unexpected crashes and maintain a smooth gaming experience.
-
Project Structure: Organizing the codebase into a modular structure with separate classes for game entities, achievements and commands helped to keep the code maintainable and easier to understand.
-
Version Control: Using Git for version control allowed me to track changes, and maintain a clear project history.
-
Testing: Regular testing of individual components and the overall game helped to identify and fix bugs, improve game balance, and ensure a polished final product.
By reflecting on these lessons, I hope to continue improving my development practices and create even more engaging and enjoyable games/applications in the future.
You can share your feedback by opening an issue on the GitHub repository, sending an email, or contacting me through my personal website's contact form. I appreciate your feedback and look forward to hearing from you.
Contributions are always welcome! If you'd like to contribute, please follow these steps:
1. Fork the repository.
2. Create a new branch: git checkout -b your-feature-name.
3. Make your changes and commit them: git commit -m "Add some feature".
4. Push the changes to your branch: git push origin your-feature-name.
5. Create a pull request to merge your changes into the main branch.