Inspiration
This project was inspired by our love for simple shoot 'em up arcade games. We wanted to recreate the same fast and reactive gameplay inside a modern engine. The idea of taking a retro concept and modernizing it inside of Unreal Engine 5 motivated us since it let us mix our nostalgia for old games with a real technical challenge.
What it does
Starship Swarm recreates the core experience of our favorite classic arcade space shooters while adding modern movement systems and update visuals. Enemies form organized patterns, break from the pattern, and loop around the screen using spline-based paths. The player can maneuver and shoot the enemies in face-paced combat that feels familiar but refreshed with smoother motion and new effects.
How we built it
The project was built in Unreal Engine 5 using a hybrid approach where C++ established the core actor classes and formation data structures, while Blueprints implemented nearly all gameplay behavior. The formation manager was written in C++ to control how enemies spawn and how each formation row is configured. Once enemy Blueprints were created, we implemented their state changes, movement logic, firing interactions, and transitions in and out of formation using Blueprint graphs.
Enemy looping behavior was created using spline components directly in the editor. Blueprints controlled each enemy's movement along the spline using adjustable movement speeds and timing logic for when an enemy should leave formation and when it should return to its assigned slot. Player controls, shooting mechanics, projectile spawning, and enemy damage were also implemented in Blueprints using event-driven logic. This setup allowed us to combine the structure and stability of C++ with the iteration speed and visual clarity of Blueprint architecture.
Challenges we ran into
Our largest challenge was getting the C++ portion of the project to compile consistently, as we ran into repeated UnrealHeaderToll issues and Xcode build failures that slowed development and forced us to learn the engine's build system in depth. Structuring our base classes so that Blueprints could inherit from them without breaking also required multiple attempts. Once we established the C++ foundation, the rest of the development went mush more smoothly. We quickly found an effective workflow and after a couples of ours, we were fully aligned on how to structure Blueprints, test gameplay changes, and iterate on enemy behaviors. From that point forward, building out the logic and movement of the characters was clear and productive.
Accomplishments that we're proud of
We are proud that we were able to build a fully working arcade-style game loop in Unreal Engine 5 within a short timeframe while overcoming the early C++ and workflow challenges. Getting the formation system, spline-driven enemy loops, player functioning, and high quality skins all together was a big accomplishment, especially since most of the Blueprint behavior and graphic design was created from scratch. Watching everything come together into a polished, playable experience was easily the highlight of the project.
What we learned
We learned how to combine C++ and Blueprint scripting in a way that keeps development fast while still maintaining a strong foundation for gameplay logic. Working through build errors taught us how Unreal Generates code, manages modules, and handles inheritance between C++ classes and Blueprint subclasses. Beyond the technical skills, we learned how to establish an efficient workflow, divide responsibilities, and persevere through different challenges. The project gave us a much stronger grasp of UE5's tools and how to build scalable gameplay systems under time pressure.
What's next for Starship Swarm
Next, we want to expand Starship Swarm with features that push the gameplay beyond the classic arcade style. One of the first systems we plan to add is a player upgrade and power-up progression that lets the ship evolve over time with new weapons, abilities, and visual effects. We are also interested in experimenting with a blockchain backed global leaderboard so scores can be verified, stored, and accessed across all platforms, so everyone will know you're the best. These ideas were outside the scope of what we could complete during the hackathon, but they are the natural next steps for growing the project into a more complete and scalable game.
Log in or sign up for Devpost to join the conversation.