Inspiration
Open to exploring all types of projects, our team decided to make a game for our first Hackathon. A commonality between all team members is being a UCI student, so when ideating our project, we were inspired by our fun experiences at UCI. In order to express our enthusiasm and encourage incoming anteaters to engage in the same, we created a simple game called Petr Run. Not only will it introduce the concept of Petr Drops, but it can also help familiarize incoming anteaters with the campus.
What it does
Petr Run starts by allowing users to read instructions, start a game, or quit the program. If instructions are pressed, they are given the opportunity to do a tutorial and get comfortable with the control keys. Once done, the user can start a game. While a one-minute timer counts down, users are notified of where the Petr drop will occur and shown a campus map. They are prompted to click on any area of the map which takes them to a zoomed-in map so they are aware of where they’ve clicked. Once in a specified location in that area (of 4 total locations), they must avoid zotbots so as to not lose health (where a sum of three contacts causes the user to lose). If Petr is not in the selected location, users can navigate to another side of campus by moving toward the sides of the screen. As the UCI campus is round, the locations can be entered multiple times if the user keeps moving in one direction. When the user spots Petr, they should try their best to come into contact with them before the time runs out. Regardless of if they are able to get a sticker or not, users are given the option to play again.
How we built it
To create Petr Run, our team used Godot. We created multiple scenes, maps, variables, scripts, and other file features. Starting with the character movement and moving on toward the layout, we created each map before adding the functionality of switching between them, later utilizing the RandomNumberGenerator class to randomize the location of the Petr drops.
Challenges we ran into
As no member of our team had prior experience with Godot, we ran into multiple roadblocks. It was important to be able to navigate the software, so multiple hours were dedicated to learning the features and functionalities. Despite the fact the programming language Godot used was similar to Python, GDScript syntax is not a common language and there were many times when neither mentors nor tutorials gave us the guidance we needed to proceed with our code. We had to work around the differences in that GDScript had to Python, One specific challenge we had was including a timer that would be present on all maps. By default, the timer would reset every time we went to a new location, so we had to find a way to work around these issues. We were able to solve this problem by introducing a global variable, allowing for more consistency across scenes. We also had some challenges with working asynchronously when it is very important for all members to be in the loop of what has been added/edited/removed. To work in a synchronized manner, we periodically exchanged updated codes through GitHub. On another note, we had some challenges with using GitHub as we weren’t well acquainted with creating repositories, so consolidating the code took several hours of working through redundancies and ensuring new code added was functional. However, we were able to figure it out after.
Accomplishments that we're proud of
We made notable progress with using Godot and created our first game. The theme and game itself are fun and could be very useful if users wish to learn more about the UCI campus. Getting over our roadblocks was the biggest relief, and having our game done by Saturday night was something to be proud of.
What we learned
As mentioned before, we were able to acquire basic Godot, GDScript, and GitHub skills. We learned the importance of team communication even when each member was working on an individual project file. Dividing up work in the beginning is efficient, but towards the final stages of the project, it could be very useful to switch to one device so that the file size updates are not too big.
What's next for Petr Run
It would be very gratifying to see Petr Run being played by its intended audience: UCI Anteaters. Future versions of the game would include multiple Petrs dressed up in attire that real Petrs have been seen to have worn, rather than the one Spiderman Petr that we had, as well as additional maps for each building at UCI, rather than one map for each quadrant of campus. Additionally, redimensionalizing the game to 3D would be a step we would gladly make going forward.
Built With
- gdscript
- github
- godot
Log in or sign up for Devpost to join the conversation.