Elementalist

DEMO

The making of

Elementalist is a VR game where the player must use the four elements to defend themselves from relentless attackers. Use a wind tornado to blow the enemy away, water balls to move around the battlefield, earth walls to defend yourself and fire missiles to harm your adversaries. The game is currently in an unfinished state, the player cannot lose nor win, it is simply a small area where the you can play around with the elemental effects.

Goals and motivation

For this project we wanted to delve deep into graphics and visual effects. Heavily inspired by the TV-show Avatar: The Last Airbender we decided to design a game where the player can manipulate the four elements: water, earth, fire and air. The four elements seemed like a good starting point for creating interesting visuals and we also wanted to experiment with how these elements can affect the surroundings within the game.

Another key inspiration from Avatar: The Last Airbender were the movements that the character use to actually bend the elements to their will. Since Elementalist is a VR game we attempted to capture some of these movements and bind them to certain elements. For example the player can sweep the controllers along a vertical line, starting from the ground, to create a wall of earth in front of them. These types of movements added an interesting depth to the interactions of the game.

Technologies

Elementalist was designed for HTC Vive, but thanks to Steam VR, other VR devices such as Oculus should also be viable. The game was intended to rely on large motions for controlling the elements, so it was important that tracking was precise and independent of the player's facing. This is why the HTC Vive was chosen, because its external tracking allows the user to swing their arms behind their back without interrupting the tracking.

The game was developed with, and runs on, the Unity Engine. This is simply because it is the game engine the project group had the most experience with. Because this project was highly limited in duration, there was no time to bother learning a new system.

In order to create the elemental effects in the game, development made use of Unity's particle system and shader graph editor. While the effects are not perfect, they do their job and sell the experience.

The project team made use of the version control system Plastic SCM, which integrates nicely with Unity. It allowed most project members to conveniently work from home, despite not having access to the HTC Vive.

Blender was also used to create certain assets, in particular, the rising earth wall.

Challenges

One of the biggest challenges of this project was to get a consistent response in the movements performed by the player. We implemented a fireball and a wall of earth that were both controlled by physical movements and it was very important that the movements for the earth wall would not trigger the fireball and vice versa. This issue was solved quite naturally since we could map the fireball to a forward motion of the hands and have the earth wall be mapped to an upward motion instead. However, we had some issues getting each of the abilities to be triggered every single time the corresponding movement was performed; sometimes abilities would simply not register. We were able to improve the registration of these movements by checking for inputs each frame instead of checking for inputs with a constant time interval.

Another challenge was to get all the visual effects to look good. For example we had some lighting issues with the earth wall in which it became bluish when it actually had a brown texture. We also spent a lot of time getting the air effect to look right which involved tweaking parameters of the particle system. With the air effect we also wanted it to interact with the grass of the world for which we created a shader. Getting the sway of the grass to feel natural when blowing a strong wind through it was also quite difficult. In the end we ended up settling for something that looked decent rather than creating something very realistic.

Related work

The project team was mostly inspired by the VR game Rumble on Steam, made by Buckethead Entertainment, where two players fight each other with earth manipulating powers in a small arena. Other than that, the research paper "A simulation on grass swaying with dynamic wind force" by Yi Lo et al. gave spawned the idea of representing wind with grass and foliage moving in response to an implied force. This idea late became a secondary effect, just with grass, because drawing a tornado effect seemed more effective. You can find that paper here:

Link to paper
Yi Lo, Hung-Kuo Chu, Ruen-Rone Lee, and Chun-Fa Chang. 2016. A simulation on grass swaying with dynamic wind force. In Proceedings of the 20th ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games (I3D '16). Association for Computing Machinery, New York, NY, USA, 181. https://doi.org/10.1145/2856400.2876008

The project used a few assets from the asset store, such as the Nature Starter Kit 2 by Shapes
https://assetstore.unity.com/packages/3d/environments/nature-starter-kit-2-52977, and Basic Motions FREE by Kevin Iglesias.
https://assetstore.unity.com/packages/3d/animations/basic-motions-free-154271

The former provided the grass plain in which the gameplay takes place in, while the latter was used to animate the enemies. The hands shown to the VR player came from the Steam VR package for Unity. The different elemental effects were crated in a variety of ways, usually based on public tutorials. The wind effect consists completely of particle effects, as described by Gabriel Aguiar Prod.'s Youtube video. https://www.youtube.com/watch?v=_VG_if3saBw

The water effect comes from a Youtube tutorialhttps://youtu.be/3CcWus6d_B8 by A Bit Of Game Dev, using data from his Github repositoryhttps://github.com/abitofgamedev/water_vfx/tree/master/Water and textures from CADhatch.com.https://www.cadhatch.com/seamless-water-textures

The fire effects used originate from Youtube videos by Tvtig https://youtu.be/cvQiQglPI18 , for the explosion, and Gabriel Aguiar Prod.https://youtu.be/wvK6MNlmCCE, for the fire trail. The explosion effect also used an animation, supposedly from Unity's particle pack, but it was retried from Tvtig's Github repository.https://github.com/Tvtig/RocketLauncher/blob/main/Assets/Tvtig/Rocket%20Launcher/Art/Textures/Explosion/Explosion.tif

The 3D models used for the enemies and the player avatar come from mixamo.com, https://www.mixamo.com/#/?page=1&type=Character named "Crypto" and "Mannequin" respectively.

DISCLAIMER

Last updatedJanuary 13, 2023


WEBSITE DISCLAIMER

The information provided byKTH - AGI Group 3 - Shady Shaders('we', 'us', or 'our') onhttps://theelementalist.netlify.app/(the'Site')is for general informational purposes only. All information on the Siteis provided in good faith, however we make no representation or warranty of any kind, express or implied, regarding the accuracy, adequacy, validity, reliability, availability, or completeness of any information on the Site. UNDER NO CIRCUMSTANCE SHALL WE HAVE ANY LIABILITY TO YOU FOR ANY LOSS OR DAMAGE OF ANY KIND INCURRED AS A RESULT OF THE USE OF THE SITEOR RELIANCE ON ANY INFORMATION PROVIDED ON THE SITE. YOUR USE OF THE SITEAND YOUR RELIANCE ON ANY INFORMATION ON THE SITEIS SOLELY AT YOUR OWN RISK.

EXTERNAL LINKS DISCLAIMER

The Site
may contain (or you may be sent through the Site
) links to other websites or content belonging to or originating from third parties or links to websites and features in banners or other advertising. Such external links are not investigated, monitored, or checked for accuracy, adequacy, validity, reliability, availability, or completeness by us. WE DO NOT WARRANT, ENDORSE, GUARANTEE, OR ASSUME RESPONSIBILITY FOR THE ACCURACY OR RELIABILITY OF ANY INFORMATION OFFERED BY THIRD-PARTY WEBSITES LINKED THROUGH THE SITE OR ANY WEBSITE OR FEATURE LINKED IN ANY BANNER OR OTHER ADVERTISING. WE WILL NOT BE A PARTY TO OR IN ANY WAY BE RESPONSIBLE FOR MONITORING ANY TRANSACTION BETWEEN YOU AND THIRD-PARTY PROVIDERS OF PRODUCTS OR SERVICES.

This disclaimer was created using Termly's Disclaimer Generator.