In 2020, I decided to make video games my job, and in the process, to rediscover some games from my childhood. I then came across SkyWar, a 2008 flash game developed by Motion Twin that I had played a long time ago. This game combines strategy, aviation, floating islands, everything I love! I then thought for a while about how to improve and modernize this old flash game, and the first concept of UpperSky popped into my head!
During the covid, I started learning Untiy in order to make the first prototype of UpperSky. At the time the project was mostly a management game with a lot of ressources, grid-based building system with many different buildings.
I stoped working on UpperSky at the end of Highschool in 2021 in order to join my current School : SupInfoGame Rubika. I came back to it in the middle of my second year. After learning game design and game programming for one and a half year, I realised a lot of things were not working in my current game concept. So I started over, from scratch.
I wrote a 20 page long game design document about this new reworked version of UpperSky. I showed the paper to friends, did some changes, and went back to prototyping. The game will now be an online asymetric real-time strategy game in which you will fight for the UpperSky, which is a huge scope for a solo student developer, but I liked the challenge!
3D Rectangle Units Selection, the oldest footage I've got of the beginning of the "V2".
For the game's art, it was made by friends, online free assets and I made some models myself, like this island placeholder. At this stage, the networking was already working, along side the units mouvements, and the ressources system. As you can see in the video above, some UI and minimap was added to this prototype as well.
I've decided to dedicat all the summer to UpperSky. I wanted to see how far I could go in 11 weeks, working ~5 hours a day on the project.
In June & July I developed a lot of new feature in order to test the gameplay I had in mind. Here is a list of the features I made during this time :
Building System
Worl Procedural Generation
Units Formation Queue
Units Combat
Fog of War
Units Skills
In August, I improved the UI and polished some parts of the game. I took most of the time to develop a feature which was very important to me : Procedural Islands Generation. I wanted different types of islands that can be procedurally generated and synchronised in network.
This feature took me around 10 days of work, divided in fews steps. First, as you can see on this video, I made it so that the system randomly chooses a mesh for the base of the island and then places props in a random position on it. I'm using raycast to be sure props are not flying around the island.
For the next step, I added more props with different sizes. At first it was not very well optimised, as each props were checking if they were not colliding with one another, and if they were colliding they would search for a new position on the island. At least it was working.
I then used a package that allowed me to customize Unity inspector, allowing me to easily change the generation parameters and the list of props that can be generated on this type of island (on the video I am testing the system with the forest type island).
Finally, I added grass generation based on a random perlin noise. Next, I optimised a lot the generation and added the other types of islands, which was pretty easy to do through the customized Unity inspector.
I am happy with the results, and how fast it is to generate about 20 islands at the same time in a few seconds, all synchronised in network.
I then took one more week-end to procedurally generate island meshes instead of using prefabs. I did some optimisation later, by using only static class and no MonoBehaviour. In the last version, an island can be generated at any position by calling only one static method.
I then stopped working on UpperSky as I had to work at the same time on school assignement and projects. Nethertheless I still want to work on this project and I know I will do so at one time or another. For now I'm focused on another project, Oko Tactics!