Atomic Dawn

Project Description

This Python game is a simple adventure game, developed as part of my Year 10 Term 3 Digital Solutions assignment, for which I received a 100% (20/20) grade.

Installation Instructions

  1. Choose one of the download options below:
    • Installer: This is a setup wizard that will guide you through the installation process.
    • Source Code: Download the source code if you prefer to explore or modify the project manually.
  2. If you chose the installer, download the Installer and run the executable file. Follow the prompts in the setup wizard to install the application.
  3. If you chose the source code, download the Source Code and extract the ZIP file to a folder on your computer.
  4. For the source code option, navigate to the extracted folder and open the project in your preferred development environment.

Problem Description

We have been tasked to program a 2d game using the pygame library in python that satisfies users’ needs and preferences through conducting an informal interview.

Scope

The goal of this project is to develop a game using Pygame that explores and showcases gaming features such as level progression, enemies, and customization. The game will be designed based on insights gathered from an interview, focusing on implementing these key features effectively. Scalability and community viability are not required for this project, as the emphasis is on demonstrating core gameplay elements. The gaming industry has seen tremendous growth over the past few decades, evolving into a global business with approximately 3.32 billion daily users. The journey began with the creation of the first video game, "Tennis for Two," by William Higinbotham on October 18th, 1958. This project aims to contribute to this rich history by creating a game that reflects the ongoing importance of fundamental gaming mechanics.

Boundaries and Limitations

Boundary Limitation
Language: The game must be developed using Python and the Pygame library. IT limitations: Our computers have hardware and software restrictions which limit our ability to create high quality games or use specific tools.
Coding experience: The potential of the game is limited to my current coding knowledge and concepts. Time constraints: The project must be completed within a small timeframe which limits the game’s potential features.
The game must explore specific features: immersion, progression, social interaction, and surprise.
The game should be appealing towards 15-year-olds.

Survey Results

I decided to give survey participants the opportunity to construct ideas for their ideal game, incorporating all features they enjoy in gaming into one. These are the survey responses, simplified for analysis purposes.

What camera should be used? What style What environment? Combat mechanic? Visual style What makes a game engaging?
Top down Base defence Futuristic Real time Realistic Achievements
Front on Platformer Post apocalyptic Real time Pixel-art Replayability
Front on Sandbox Planet earth Real time Pixel-art On the clock
Top down Strategy Space Turn-based Cartoon Bosses

Analysis of Results

According to the survey results, it is clear that the preferred gameplay/combat mechanic is real time fighting, displaying a preferability for dynamic, fast paced gameplay. Next, most responses wanted to play a game with pixel-art visuals. Specifically, all the people who preferred front-on games chose to have a pixel art style. Front on camera was selected twice, often used in platformer games or sandboxes where it might provide a more engaging experience. The environments provided by surveyors indicates two general themes: High tech, and grounded dystopian. The choices futuristic and space are more speculative and higher tech whereas planet earth and post-apocalyptic are more dystopian. It is clear in the table that elements of a game that extent its longevity and challenge are enjoyed. “Achievements” and Replayability” illustrates how players want to be able to return to a game and still enjoy it. “On the clock” indicates time-based challenges or speed-running, and “Bosses” are a feature that adds excitement and milestones to a game.

Avatar

Avatar Image
  • Name: Nick
  • Age: 15
  • Future Pathway: Considering engineering or pursing medicine
  • BYO Device: Windows 11
  • Interests: Gaming, coding
  • Personality: Introvert, gamer
  • Preferred Gaming Styles: Shooter, Movement based, Turn-based, Real time, FPS, Level progression
  • What Makes a Game Enjoyable: Being on the clock, fast paced gameplay, intuitive movement

Review of Existing Game

60 seconds “A dark comedy atomic adventure of scavenge and survival.” (Gentleman, 2016). The game takes place in a town when a nuclear bomb is set to detonate and the themes are resource management, scavenging, survival, apocalypse. I am taking inspiration from this game and rather than using turn-based strategy mechanics, I will be using real time strategy and decision making.

Intended Game Concept

"Atomic Dawn " takes you to an interesting pixelated world where the fast reaction and intelligent use of resources contribute primarily. When you venture out into the vibrant world to explore, can you find the route to safety. Can you survive purely by scavenging canned beans and looking for water? Along the way, you will face various obstacles and intelligent enemies which challenge your platforming. At the end of the level, you are racing to get to an extraction point to escape the dangers around you. “Atomic Dawn” is an incredible survival experience packed with stylised graphics and fun gameplay that seeks to bring back some of the magic in what are often seen as just mundane side-scrollers. Will you collect all the resources, survive enemies and make it out alive?

UI Design

Showcase of key UI components:

Object/Asset Design

Object Name Static / Movable / Playable Image Description
Player Playable Player Image The player is a simplistic 32x32 character with fluid, well-transitioned animations between idle, run, jump, and death.
Enemy Moveable Enemy Image The enemy is a simplistic 32x32 character with fluid, well-transitioned animations between idle, run, jump, and attack while running.
Item Static Item ImageItem Image The two items, food and water, are simplistic and vibrantly pop out. In-game, these move up and down on a sine wave to get the players attention and mark them as collectible. The beans also spin which adds to the vibe.
Block Static Block Image The three block types, grass, stone, and dirt, were hand-drawn for artistic purposes and fit the pixel art aesthetic of the game. They are sized perfectly for the grid-based level editor.
Object Static Object Image The “object” is an asset that could use any texture but serves as the end of the level. The adaptability could mean players could have a helicopter, convoy, submarine, etc., to end their level. It would not be difficult for users to add this functionality to their own levels too.

Student Review of the Game

Student Aspect Review
Nick Gameplay & Survival Mechanic It’s a good game. I enjoy the gameplay mechanic of eating and drinking to stay alive. The AI are also pretty advanced, and it is a fun challenge.
Livv Game Complexity & Design The game is really exceptional and intricate, especially for the limitations of Pygame which highlight the true skill and effort put into coding it.
Darcy AI & Level Editor The AI are really good at their job, and it is impressive to see a successful level editor built into the program.
Ashton Level Creation I love how you can make your own maps and piece them together yourself so there is no need to make several maps by default.

Evaluation

Atomic Dawn was created after the influence of several students’ suggestions and the collaborative ideal game was established, matching a wide range of audiences tastes while still having unique aspects. Overall, the game development process went extremely well, with tens of hours soaked into the project and many tools being developed in the process that can be used in the future. This is the most advanced coding task I have taken up and it has certainly improved my ability to use python, json, file managing, sprite sheets, HUD elements, UI menus and interfaces, and find methods to achieve what I want to accomplish by finding online resources. The 2d pygame side-scroller survival sandbox that was developed was a success and it met the criteria of the task through having the following features. Firstly, due to the custom level editor, there are infinite possibilities for new experiences to be made, aligning with the scope of the task to include level progression. Next, through using algorithmic AI, the enemies of my game had high intelligence and spatial awareness without the requirement of resource intensive, high data caching for machine learning models, often high in disk size which is less than preferred when working with the already limited python ecosystem, as seen in the statement, “Python is widely used for machine learning but it can be slow and may need more memory compared to other languages such as C or C++” (What Are the Downsides of Using Python in a Machine Learning Project?, 2023). Customisation is one of the most important aspects of my game, allowing users to generate their own experiences and challenge their abilities, perfectly matching the scope of the project. After thorough reporting and review with other students, the feedback for Atomic Dawn is overwhelmingly positive and the future outlook of the game will only continue to expand.

Usability Principles

Principle Description
Effectiveness The game was effective in its job to immerse the user with fluid animations, detailed textures, and adaptive HUD elements such as health, hunger, and thirst bars. The game incorporates progression through custom level design, letting people make their own stages. High scores are recorded, allowing players to compete with each other and themselves, offering a fun challenge. The game has a unique gameplay loop with its resource management, surprising players with challenges they must overcome.
Learnability The gameplay mechanics are intuitive and simplistic, with a clear task and objective for the user, as the game is a side scroller with one direction of progression. While it may take time for the user to develop strategies to manage resources effectively, this is part of the fun. Although the game is easy to pick up and understand, the level editor would require a 10-second tutorial to learn its mechanics.
Safety Throughout development, there were several errors in the code, but the final product is flawless and stable for players of any kind. It runs with no errors and will not crash unexpectedly.

References