Inspiration

As a software developer who loves Flutter and has always been fascinated by space, creating Astroguardian was a natural step. I wanted to combine my passion for technology with my concern for our environment.

The hackathon proposal inspired me to delve deep and explore how I could mix a game with educational content. This led me to realize the potential of games as tools for teaching and raising awareness. With Astroguardian, this vision becomes a reality. Now, players can explore space, clean up debris, and learn about the issue of space junk, all in an educational and entertaining context

What it does

In Astroguardian, you follow the adventures of space navigator Captain Dash and his companion Dartina as they explore space, cleaning up space junk to improve our cosmic environment. The game's focus is peaceful, with no possibility of losing, and I designed it as a personal challenge to push my limits in game development. I aimed to create a virtually infinite, procedurally generated game that is compatible with all platforms.

How we built it

To build this game, I extensively explored the workings of the Flame engine for game development, along with optimization techniques, as the game encompasses a vast map and generates all its content procedurally. Additionally, I researched and employed shaders to enhance the game's visual effects. I made extensive use of isolates to ensure a smooth and enjoyable experience for the player. Furthermore, I made an effort to divide responsibilities as much as possible, resulting in the project containing different modules, each handling a specific task.

Challenges we ran into

The challenges I faced in developing this game were primarily related to data management. The game procedurally generates information to render planets, their terrains, and atmospheres – all without using assets! This means that no two planets or maps are alike in the game.

Additionally, I encountered various performance issues which I had to address by finding alternatives and optimizations. I believe I managed to achieve a smooth experience for the player. However, when migrating the game to the web, I ran into the problem that the experience was not as fluid as I had hoped. This was due to the inability to execute isolates on that platform.

Accomplishments that we're proud of

I'm very proud of the result of the planets I've created. I managed to generate them procedurally, and each one has its own unique identity that makes them feel real. There are no two identical planets.

Furthermore, I'm surprised to have achieved creating a virtually infinite map. It's practically impossible to reach its limits.

What we learned

I have learned a lot about handling background tasks in Flutter using isolates. Additionally, I have gained knowledge on how to structure a game in a scalable way. I have also learned how to organize information to later generate images using this data.

What's next for Astroguardian

I still need to add sound to the game, and I believe it's a significant omission. Additionally, I would like to enhance the map by adding satellites and various celestial bodies.

Built With

Share this project:

Updates