Inspiration
We were inspired by retro, nostalgic 8-bit platformers—the kind of games that are simple on the surface but deeply engaging through mechanics. At the same time, we wanted to explore a more meaningful idea: as you move through life, you gain new strengths but also lose certain abilities. Being young means speed and agility, adulthood brings strength and responsibility, and old age offers perspective and wisdom. We combined these ideas into a short experience that reflects how time shapes both who you are and how you overcome obstacles—whether they’re physical challenges or symbolic ones like coworkers and bosses. At its core, the game reflects the idea that you only get one run—one life—to figure it out.
What it does
Ages Apart is a short 2D platformer where players switch between three life stages—kid, adult, and elder—each with unique abilities. The kid is fast and can reach higher platforms, the adult is strong and can defeat enemies or move obstacles, and the elder is slow but can perceive hidden paths that others cannot. The levels are designed so that progression is only possible by choosing the right version of yourself at the right time. The game also includes dynamic voiceover hints that respond to the player’s current state and situation, enhancing immersion and guiding gameplay.
How we built it
We built Ages Apart using Godot as our game engine, leveraging its built-in physics and scene system to rapidly prototype a 2D platformer. The core mechanic is implemented as a state machine that allows the player to switch between the three ages in real time, modifying movement, abilities, and interactions dynamically. We integrated APIs with caching to enable game-state-dependent voiceovers, allowing us to trigger context-aware hints and narration without introducing latency during gameplay. Assets were kept intentionally simple and retro-inspired to prioritize functionality and clarity within our 24-hour development window.
Challenges we ran into
One of the main challenges was balancing scope with time—we had to be very intentional about what features to include and what to cut. Designing levels that meaningfully required all three states, rather than allowing players to brute-force through them, took iteration. Implementing smooth state-switching without breaking physics or collisions also required careful handling. On the audio side, integrating API-driven voiceovers in a way that felt responsive without slowing down gameplay meant we had to introduce caching and fallback strategies.
Accomplishments that we're proud of
We’re especially proud of how cohesive the core mechanic feels. The age-switching system isn’t just a gimmick—it directly drives gameplay and level design. We also successfully created a complete, playable experience within a very short time frame, including multiple levels, enemies, and a clear progression arc. The integration of dynamic voiceovers tied to game state added an extra layer of immersion that elevated the overall experience beyond a typical hackathon project.
What we learned
We learned how to scope a project effectively under tight time constraints and focus on building one strong, polished mechanic rather than many incomplete features. Technically, we gained experience with state machines, real-time gameplay systems, and integrating external APIs into a game loop. We also learned how important level design is—good mechanics only shine when the environment forces players to use them intentionally.
What's next for Ages Apart
Next steps would include expanding the game with additional levels that explore more complex time-based mechanics, such as rewinding or interacting with past versions of the player. We’d also refine visuals and animations to better distinguish each life stage and enhance player feedback. On the technical side, we’d improve the voice system with richer dialogue and more adaptive responses, and potentially optimize the game for broader platforms like web and lightweight devices such as the Raspberry Pi.
Built With
- godot
Log in or sign up for Devpost to join the conversation.