top of page
Logo1.png

Royal Odyssey is a top-down space shooter inspired by the classic Shmup genre. Designed and developed entirely in Unity, the game showcases my ability to manage all aspects of game development, from concept to final implementation. As the sole Game Designer and Developer, I was responsible for crafting engaging combat mechanics, immersive sound design, intuitive UI/UX elements and captivating visuals to ensure a cohesive and polished player experience.

Utilizing Unity’s Visual Scripting and C# programming, I developed and optimized core gameplay features, focusing on smooth performance. Throughout the process, I managed the project timeline, scope and marketing strategy to prepare for the game’s release on Steam. By balancing deadlines with high-quality standards, I ensured Royal Odyssey would offer a memorable experience to it's audience. This project highlights some of my creative vision, technical and project management skills. Demonstrating my ability to independently bring a complete game to life.

Role & Responsibilities
  • Sole developer responsible for all aspects of design and development.

  • Created core gameplay mechanics, scoring system, UI, visual effects, and sound effects.

  • Developed the game in Unity using C# and Visual Scripting for smooth, responsive controls.

  • Managed project timeline, scope, and marketing strategy for the 2025 Steam release.

Design Decisions

Initial Concept:

​

The initial idea for Royal Odyssey was born after following a YouTube tutorial for a simple game I wanted to make for testing purposes. Throughout the process, my creative side kicked in and I began thinking of many ways I could transform it into a complete game of my own. Something as simple as a sphere dodging falling blocks gave me a lot of ideas, which started my brainstorming process for what I wanted to ultimately create.

Core Gameplay & Mechanics:

​

  • Risk-reward survival system where players choose to avoid or engage with asteroids, with shooting unlocked through power-ups.

  • Two projectile types with distinct mechanics: Single Shot (+5 points per hit) at 50 points, and Laser Beam (+50 points per hit) at 200 points.

  • Energy-based shooting system, requiring players to manage ammo and re-earn points to respawn power-ups after depletion.

  • Design encourages challenge, resource management, and pacing, preventing stockpiling while maintaining player engagement.

​

Royal Odyssey’s core design revolves around a risk-reward system of survival. Where players can either avoid the asteroids or actively engage with them once they've unlocked the ability to shoot projectiles, via power ups that spawn after certain amounts of points are earned. Since there are no literal enemies, the challenge lies within spatial awareness, precision movement and timing which makes each decision impactful. I also felt the delayed introduction of shooting added some needed progression and pacing while ensuring players didn’t have their full offensive capabilities from the start. Something for the player to chase, and be rewarded for once they've earned it.

 

The two projectiles also have their own distinct differences. One is in the form of a single shot, earned after the player reaches a score of 50 points and rewards an additional +5 to the player's score for each asteroid that is destroyed. The other is a more powerful laser beam, earned after the player has reached a score of 200 points and rewards an additional +50 to the player's score for each asteroid that is destroyed. Neither of these projectiles are available unless they're collected, and they also have energy meters representing their ammo remaining. Once the meters are depleted, the player can no longer shoot until they collect one of the power ups again. The power up spawning logic is reset after the energy meters are depleted. Meaning at that moment, the player will have to begin earning another additional 50 or 200 points to spawn the bullet projectile or the laser beam, respectively. The power ups will also only spawn if the player does not currently already have it collected and active. These are design choices I wanted to specifically implement in order to keep a steady pace of challenge, decision making, resource management and player engagement.

Level Design:

​

  • Emphasized high-speed space travel by implementing a vertical parallax scrolling background for depth and motion.

  • Curated a specific color palette and nebula imagery, using references to guide the visual direction.

  • Commissioned a custom background from an artist to achieve a dynamic feel while maintaining visual clarity.

  • Designed an infinite scrolling effect to create a constant sense of movement and progression for the player.

User Interface:

​

  • Focused on minimal UI clutter to ensure the player's attention remained on movement and asteroid avoidance.

  • Adopted a retro arcade aesthetic to produce nostalgia and pay homage to classic space shooters.

  • Strategically placed UI elements (health bars, energy meters, and score) to avoid distracting from gameplay action.

  • Added particle effects to the score for each asteroid destroyed, color-coded by the active projectile, to highlight the player's scoring progress.

Screenshot (191).png
Screenshot (5).png

Audio Design & Music:

​

  • Customized royalty-free sound effects using FL Studio for pitch adjustments, splicing, and layering to enhance player feedback.

  • Balanced sound design by refining effects for projectiles, ship destruction, and UI interactions to create a dynamic experience.

  • Retro Synthwave soundtrack chosen to reinforce the arcade aesthetic and nostalgic feel of the game.

  • Collaborated with a composer, providing references and feedback to align the music with the game's pacing and intensity.

​

Royal Odyssey's sound effects were first carefully selected from royalty-free sources I found online, and then modified using audio software(such as FL Studio). This was done to further create the unique sounds I was looking for which also fit the game’s tone. I applied pitch adjustments, splicing and layering techniques to refine effects such as the projectile bullet, laser beam, ship destruction and UI interactions. Each sound was strategic in enhancing feedback for player actions and make the experience more dynamic overall. By balancing an engaging soundtrack with distinct sound effects, I ensured that the game maintained a cohesive and polished audio presence.

​

Speaking of the soundtrack, creating an engaging, immersive and fun experience was very important to me. I personally believe that a good soundtrack/score can add a lot to the overall entertainment experience. Whether that's in games, movies or television. That being said, I wanted to reinforce the retro arcade aesthetic as well and decided on the Retro Synthwave genre to be the game's soundscape. I personally enjoy it but it also has the energy, vibe and nostalgic feel I was envisioning for Royal Odyssey. I collaborated with an online composer who I shared my ideas with and provided references to. Then continued to provide specific feedback through multiple revisions to ensure the music aligned with the game's pacing, intensity and my overall vision.

Projectile Bullet
Laser Beam
Button Select
Projectile Loading
Laser Loading
Ship Explosion

Narrative Design:

​

  • Integrated a narrative to provide context, urgency and player motivation.

  • Story follows Prince Zayven, a skilled pilot rushing home to defend his kingdom while navigating a deadly asteroid storm.

  • Implemented a cinematic prologue, enhancing immersion with dramatic storytelling and synced music cues.

  • Seamless transition into the Main Menu, ensuring a smooth narrative flow and heightened player anticipation.

​

While I was aware that arcade shooters of this kind don't typically feature a story and narratively driven player motivation, that wasn't going to be the case with Royal Odyssey. Story is something I’ve always greatly appreciated, especially in games, and something I believe to be important no matter the size of it. So I created a short narrative to provide context to the game itself and more player engagement. I wanted to add a sense of urgency and make the player's actions feel more meaningful.

​

Synopsis: In Royal Odyssey, you’ll be taking control of Prince Zayven and his ship. Zayven, a skilled pilot, courageous warrior and heir to the throne, was on a brief excursion before getting a sudden distress call from the kingdom. During his rush to return home and help defend it from an unforeseen threat, he has come across a dangerous storm of asteroids. As the player, you must do your best to navigate through these asteroids and complete Zayven’s journey before it’s too late!

​

I also included this story in cinematic fashion, with greater detail, to the beginning of the game. To establish somewhat of a dramatic prologue, create some dramatic anticipation and excitement for the player. This was done in conjunction with the Main Menu theme music with specific cues between it and the narrative presentation. Leading directly into the Main Menu screen.

Challenges & Solutions

1. Parallax Scrolling Background​

  • Challenge: Implementing a seamless parallax scrolling effect while maintaining performance.

  • ​Solution: Optimized the background by utilizing three layers of images which looped seamlessly. Adjusting their movement speeds to all be different based on depth perception. This ultimately achieved the desired effect.

​

2. Risk vs. Reward System Balance

  • Challenge: Creating an engaging scoring system where players are incentivized to shoot asteroids but also rewarded for dodging them.

  • Solution: Designed a system where dodging earns a small score increase, but destroying asteroids with earned power-ups provides more. The stronger projectile grants even more points, reinforcing strategic decision-making. The speed of the asteroids makes the decision to shoot and destroy them a bit more risky. Since simply dodging them is relatively simpler to accomplish. Although the projectile bullet grants more points, it's also somewhat of a tougher task. The laser beam is most powerful, granting the most points in the game, but it's energy is also much lower in order to achieve a consistent balance.

​

3. Player Ship Movement

  • Challenge: Initially struggled with animating the ship to tilt left and right when the player moved in those directions. With the ship being a 3D asset, I wanted to enhance the immersion by adding this animation.

  • Solution: This led to a deep dive into Unity’s animation system, including it's Animation Controllers, animation clips, transitions and state machines. I did finally achieve my desired goal and implemented an animation where the ship subtly tilts left when moving left and tilts right when moving right. This helped in adding a natural feel to the movement while keeping the controls responsive.

​

4. High-Score System

  • Challenge: Managing the game's initial scoring system was relatively straightforward, but implementing a persistent high-score system proved much more difficult. I needed to store, compare and update the player's highest score across game sessions. Including representing these results in the UI of the Game Over screen.

  • Solution: I learned about saving and loading data between scenes using Unity’s PlayerPrefs system. This allowed the game to check if the player's current score exceeded the stored high-score and update it accordingly. This experience deepened my understanding of persistent data handling and scene management in Unity. Although I'd say I still have more to learn in this regard.

​

5. Soundtrack Transitions

  • Challenge: Ensuring the Main Menu theme played persistently during the intro cutscene while transitioning seamlessly to the Main Menu. Additionally, handling the transition from the Game Over screen back to the Main Menu without audio overlap or abrupt stops.

  • Solution: Implemented logic to detect when the cutscene had been skipped or completed, adjusting the music state accordingly. Utilized game instances, splicing and audio fade-in/out techniques to help create smooth transitions. Also, I ultimately edited two versions of the Main Menu theme. One for the normal menu transition from the introductory cutscene and another for if it was skipped by the player or returning from the Game Over screen.

​

6. Ship Animation Errors

  • Challenge: A couple of the ship's animations and their respective frames(such as a shield and explosion) were visibly present at the start of the game instead of triggering when prompted to do so. This happened because the animation was tethered to the ship itself.

  • Solution: Edited the animations so that their first frame was fully transparent, ensuring they were invisible when the game started. This way, the animations would only become visible when called through C# triggers. This approach ensured that animations played only when intended, rather than automatically appearing due to their default attachment to the Player object.

​

Tools & Techniques Used
  • Unity – Game engine used for development. Including physics, animation, UI and audio implementation.

  • C# Programming & Visual Scripting – Used for scripting core mechanics. Such as scoring, combat, power-ups, animation triggers and data handling.

  • Wondershare Filmora – Video editing software used to create and fine-tune the introductory cutscene and prologue sequence.

  • Unity's Sprite Editor & Microsoft Photos – Primary tools for modifying assets and imagery. Including adjusting transparency, cropping and sprite editing for optimized visuals.

  • FL Studio – Used for pitch shifting, splicing and altering sound effects to create unique and cohesive audio elements.

Lessons Learned
  • Gained full-cycle development experience, from concept to publishing. While learning scope management.

  • Developed strong time management and problem-solving skills. Balancing multiple responsibilities and overcoming technical challenges.

  • Learned the iterative nature of game development. Requiring patience, testing and revisions to achieve intended mechanics.

  • Focused on player engagement, refining risk-reward mechanics and balancing challenge with accessibility.

​

Developing Royal Odyssey as a solo developer was an invaluable experience. It gave me firsthand insight into the entire game development process, from the initial concept to a fully published game. One thing in particular that I learned was the importance of scope management. As I had to ensure the game remained achievable within my skill set, while still delivering an engaging experience.

​

Time management was also a crucial lesson as I balanced multiple responsibilities. Including design, programming, sound implementation and narrative development. I learned to prioritize tasks efficiently, by breaking down the workload into manageable milestones so I could maintain steady progress.

​

I definitely continued to develop my adaptation and problem-solving skills thanks to unexpected challenges along the way, some of which I've outlined above. Whether it was implementing the player ship’s movement and animations, handling persistent data for high scores or ensuring smooth audio transitions, I had to refine my ability to troubleshoot issues effectively.

​

Patience was another key takeaway since certain mechanics took a lot longer to implement than I anticipated. Requiring multiple revisions and testing before they functioned as I'd intended. I learned that game development is rarely a linear process and setbacks seem to just be part of the journey.

​

Ultimately, player engagement remained a focal point. Designing the game mechanics in a way that rewards both risk and strategy furthered my understanding of meaningful decision-making in gameplay. Ensuring a balance between challenge and accessibility helped shape Royal Odyssey into an experience that I believe feels both rewarding and fair. Overall, this project reinforced my passion for game development and provided me with a strong foundation in both the creative and technical aspects of design.

© 2024 by Sean Cooke

bottom of page