Inspiration
Inspired by the theme of nuclear apocalypse, we came up with the idea that pokemon, with their unique characteristics, would have survived. This project is brought from this idea. Before humans died, they tried their hardest to save their favourite creatures, and they created you to do so. You are a TR-ai-N-37, a robot whose only aim in life is to catch these pokemon and bring them back to the sanctuary.
What it does
This is a pygame project, which is controlled by mouse and keyboard. Styled similar to a top down point and click game, you wander through the maps and find the pokemon. They won’t come easily, so you need to battle them to bring them to safety.
How we built it
We all have a background in Python, which we used to select a language and a library.
Then, we broke the task down into smaller parts, and agreed between us who would work on each part. Initially, we mob programmed on live stream, before we uploaded the code to GitHub and created branches to work on.
Initially, we wanted to get a window working and an environment for the team to work on their individual parts. Once we had this, we split off to make parts such as a working sprite (main player character, and NPC pokemons), map design, map creation and navigation, textbox creation and a pokemon database. Along the way, we debugged and merged these branches where appropriate, adding features carefully to ensure they worked alongside each other.
Throughout our time working, we stayed in close communication so that we could assist one another where necessary, and so we could check in for compatibility.
Challenges we ran into
Git, our main tool for working on the project, collapsed right as we hit our flow. This made us think creatively, as we needed to rely on other collaboration tools. We relied on Replit and Gitlab (the university hosted Git), along with the code people already had in their repositories. Often this meant losing over 30 minutes of work as some code was stuck on other branches.
Accomplishments that we're proud of
We are incredibly proud of the map work that our team put in. This project has over 5 maps with different areas of interests and unique features. The pokemon battling scene was incredibly hard to implement - it involved having another scene over the current one, and this involved going back and re-writing a lot of our code.
The main thing, though, was the fact we worked together and in 24 hours, wrote something we never would have otherwise.
What we learned
We had very limited experience with pygame before we started this project. So, we had a big learning curve. However, we did have experience with Python which helped greatly. Throughout the project, we enhanced our knowledge of OOP. Some members of the team had never created a game from scratch before, others had never created a game using Python before.
Another important thing that we learned was the importance of regular revisions and scoping within a project. We struggled to know how much work we would have time to fit in, due to our lack of experience. By the 10 hour mark, we realised we would not have time to implement all which we planned to. If we had the chance to do another project, we would have gained planning experience; we would likely plan just the initial stages at the beginning and then plan the rest at set periods throughout the 24 hours. We did try to do this, which led to the presentation of a viable prototype of the game, however we would’ve liked to have added more features.
What's next for Pokemon Sanctuary
There are a few features we discussed adding that we were not able to implement. We would have wanted to add more of our story. There is a lot the world doesn’t yet tell about our character, in particular their belief they’re the last human. We would also have added stronger pokemon, and more ways to battle them. An extra feature uses the pokemon themselves, and you use the pokemon you’ve captured so far to help you save more. We would’ve loved to have developed an AI guide system to guide our player character throughout the game. This would use the decisions the player has made throughout the game to give feedback, possibly humorous and deliberately unhelpful feedback, in order to add character to the game, and to give the user a challenge to remember the effects of previous actions.
Log in or sign up for Devpost to join the conversation.