Cooking Game Course
Summer 2023
In this course, I learned how to create a cooking game in Unity, allowing me to grasp the entire game development process from start to finish. Additionally, I gained insights into implementing better and cleaner coding standards for larger game code bases.
Key Features Learnt
- New Unity Input System: This course demonstrated how to utilize the new Unity input system, which greatly simplifies the process of adding support for various platform controls. During the course, we integrated controller support into both gameplay and menu navigation. Furthermore, we implemented an options menu that permits users to rebind controls and save these changes. This approach can be adapted to any Unity game, and I believe it can also be reverse-engineered to achieve a similar outcome in a custom game engine.
- Complex UI: This course emphasized the significance of UI and visual effects. In this game, for instance, we incorporated progress bars for cooking and implemented warning effects, including color changes to indicate proximity to burning. These subtle effects and UI indicators play a crucial role in making game mechanics intuitive for players and reducing frustration by ensuring they understand how the game functions.
- Game Dev Life Cycle: This course provided valuable insights into the complete game development process, from inception to completion. I found the end polishing stage particularly enlightening, where the primary emphasis was on incorporating small elements to enhance the user experience and refine the gameplay loop. Additionally, I learned how to improve the quality of life for players through menus and customizable options.
Challenges, solutions and lessons learnt
While this course provided step-by-step code to accomplish various tasks, my primary goal was to learn. That's why, before tackling each task, I attempted to achieve the desired functionality on my own. Afterward, I would watch how the course implemented it and make adjustments based on what I considered improvements. Some aspects of the course were quite opinionated and I occasionally had different preferences. Nevertheless, I gained numerous tips and tricks for enhancing the maintainability of my code. One valuable lesson was the practice of separating functional code from visual code. In this approach, the visual code purely listens to the functional code, resulting in cleaner code and facilitating easier changes to either component.
Embedded Game
![](../Games/CookingGame/Preview.png)