Solani Header


The Game

Solani is an atmospheric adventure and exploration game. With light being your only source of guidance, you're slowly guided through an unknown realm. As you progress through the game, you will gain access to magical powers that empower you to use and control light.

The game was created for WebGL with support for keyboard/mouse and Xbox controller. It's a single player campaign, and can be played in your browser (button below). To have the best experience, I recommend running your browser with the best GPU you have, and preferably use Mozilla Firefox's 64 bit browser.


The Development

For this project a team of randomly-selected game developers was selected. This game was developed in 2 months time, but was stretched over 5 months. Unity3D with C# scripts, combined with 3ds Max and Photoshop were the used software.

Progress on this game was also posted on Solani's development blog. However, since the server is offline, content such as builds and videos can no longer be viewed.

Solani was created by a group of 5 junior game developers. The team consisted of 4 programmers and 1 artist, although everyone has a good understanding of the entire workflow. To alleviate the workload of our artist, the developers helped out where they could, by for example designing the level and particles.

My Role

Being one of the programmers of Solani, I was responsible for the camera and the UI. Later on I helped out with the enemies as well. As a team member, I tried to help out where I could, which included optimizing and improving code and other various bits such as fog.

UI: Settings Menu Camera Script Inspector

Acquired Skills

During this project I mainly learned how to work in a group. We split up the work and had weekly progress updates. We communicated on a daily basis, discussing features, work in progress posts and ideas. Working in a team taught me to be flexible and communicative.

I also researched different types of cameras (such as smooth following camera with auto rotation or manual rotation, interpolated and instant movement, and so on). The camera developed along with the project, going through many iterations. To avoid breaking the immersion, I researched camera collision, and how to reduce jitter. Camera Script Snippet: Collision

Figuring out the aim direction was also coded by me, as the aim direction is viewed from the camera, but starts from the player. Using raycasting, the aim direction could be deduced. Camera Script Snippet: Aim