Inspiration
This was created after my desire to improve the development on the Flutter framework, as I came across it about 2 years ago, and the idea of creating a good Flutter app was always on my to-do list. This year I saw the YouTube video promoting the contest and decided it was the best opportunity to try it. As someone who likes casual games, I decided to look for something that wasn't too complicated, where the player doesn't need to rush to complete levels or keep playing to achieve impossible things like high scores.
What it does
It is a casual game, which you can play whenever you want, without rushing. It also incorporates interaction with elements in a futuristic environment, where everything is a simulation of what was once there, providing small interactions, focusing on how those will affect the environment.
How we built it
It was built entirely on Flutter, with the Flame package being an incredible support to enable the gaming side. I used many of the tutorials in the Flame documentation to guide me, as someone who already has experience developing in other frameworks or languages, but unfortunately never for games or Flutter. The project uses Firebase capabilities for the Login/Registration process, and for storing the "Garden" functionality and progress data associated with the user. It is also supported by the "flutter_redux" package for creating a store and managing some of the state, switching between views, and consuming firebase services. The game focuses entirely on being web-responsive, and can be played on computers, tablets, and smartphones simply by accessing a web browser. Although it should be very easy to build on Android apk or other platforms, I think a web version is sufficient for the moment. The project is published where it already had a basic page, using GitHub actions to be automatically deployed.
Challenges we ran into
At first it was the curve to learn the Flame package, and improve my knowledge of Flutter and Dart (of which I have little to medium), I was worried about a month into the project, as I thought I was reaching too far and I wasn't going to be able to finish on time. Fortunately, and thanks to that extra week, I managed to come up with a functional game, a prototype at least, where almost everything I had in mind became a reality. And the biggest challenge of all for me, the artistic side, of course, I am not happy with the current art state and it would be the first thing I would change in the future. But to have a fully functional project, focusing on the technical aspect, I used my interior kid skills to create those artistic creations for the moment. And an additional specific challenge was the ability to auto-deploy with GitHub Actions, which, to be honest, I spent like 20 commits struggling with an issue, because I wasn't fully reading the output telling me the exact issue.
Accomplishments that we're proud of
I'm very proud of the game as a whole, I'm glad the game runs and functions almost perfectly on every web platform I've tried. I really like the functionality of the "Garden" and the ability to share it with friends. I'm also very happy with the starting grid, the basis of the game, which was made from scratch since I couldn't find something like what I had in mind in the documentation or on the internet.
What we learned
A lot, especially in developing Flutter, I learned how games are made and I'm looking forward to continuing to develop games in the future. I learn a lot by fixing things that come up along the way, things that wouldn't happen because I wasn't fully reading the functions or classes I was using. I also learned that I am not an artist, but I would love to improve that.
What's next for Time's an Adventure
As I mentioned, art is an essential aspect to improve. While the code is organized and mostly bug-free, I still need to keep an eye out if something happens, and some things could be refactored or cleaned up to get optimal, best-practice code. More levels and items should be added to make it a more interesting game!
Log in or sign up for Devpost to join the conversation.