Spacecraft

spacecraft_clip.gif

A solo game project developed in Unity and C# for a design class. I focused on improving my technical design skills by building modular systems that could adapt to any design decisions I made. Several of the technical systems I implemented involved dynamic UI elements.

Project summary

  • 5-week project

  • Built in Unity

  • Code was written in C# using Visual Studio

  • Implemented modular systems for player weapons, enemy spawning, health UI feedback, and directional waypoints.

LESSONS LEARNED

  1. Write a detailed plan of the game’s content before starting to write code

    I went into this project with a lot of grand ideas of the technical systems I wanted to implement, and did not spend enough time outlining the content that would work alongside the game’s systems. As a result, I reached a point in development where I had implemented all of the gameplay systems but had no plan for the content the player would play through. This forced me to put together content that could have been significantly better if it had been built hand-in-hand with the systems from the start.

  2. Level design for a space environment is incredibly time-consuming to get right

    I initially wanted to design linear levels that guide the player through hand-placed obstacles. When I began putting together level layouts I ran into many problems with guiding the player to the right place without restricting them too much. I still wanted to capture the feeling of open space, but without deliberate guidance I knew that many players would get navigationally confused easily. After judging how much development time it would take me to create a strong linear level for this game, including playtesting and iteration, I decided to stick with a single arena level where the content is introduced through an enemy wave system.

  3. Evaluate all aspects of a built-in tool before starting to integrate it into systems

    Towards the start of this project I chose to allow the player to select their ship’s parts through a dropdown menu. I looked into creating a dropdown menu in Unity and found that they had a built-in dropdown system already in engine. I chose to use their system to implement my dropdowns, which worked fine at first. At the end of the project’s development I chose to add tooltips that would display when you hover over parts, showing the attributes of that part. I wanted players to be able to hover over every item in the dropdown and see its values. Unfortunately, with the way that Unity’s built-in dropdown system works you can’t add custom functionality to specific options. All you can do is check the value of the dropdown after it has been selected. This limitation was a roadblock for implementing my desired functionality, and unfortunately this was on the last day before submission so I didn’t want to dedicate my remaining time to implementing this specific feature. Had I spent more time initially evaluating the limits of the built-in system, I would have seen that it would be worth building my own dropdown system to meet my specific needs.

Previous
Previous

VALORANT