REPO
FINAL BUILD
In a Galaxy Far Far Away ...
“Space Game” is a 3D game where the player has a controllable spaceship. There will be a planet that needs protection from the player because other spaceships and meteorites are trying to destroy the planet.
There Are Some Gameplay Elements
Player Has a Spaceship
Player’s only controllable gameobject in “Space Game” is a spaceship, it can move freely almost everywhere the eye can see and it is most important tool to defend a planet. The player can:
- control a spaceship (like a 3rd person character with FPS accuracy);
- fire projectiles in order to destroy meteorites and other enemies.
Some Enemies Are Going to Attack
There are different enemies that are trying to destroy planets:
- meteorites (random movement);
- enemy spaceships.
A Planet That Needs Protection
The planet is one of the most valuable object in “Space Game”. When a planet is destroyed then that means “GAME OVER” for the player. So it is necessary to protect planets at all cost.
Is Located in Deep Space
“Space Game” takes place in deep space where there is only a planet, player’s spaceship and different enemies who are trying to destroy the planet.
And is Going to Look Really Awesome
The game has 3D low-poly like graphics. We are trying to create some VFX with shaders. Here’s a list of VFX we currently foresee:
- Spaceship:
- Thrusters;
- Shield VFX;
- Projectile (shooting);
- Explosion.
- Enemies:
- Meteorites explosion;
- Projectile (shooting);
- Thrusters.
- Planet:
- Damage indicator;
- Explosion;
- Idle (some clouds rendering) - different shapes, etc;
- Shield VFX.
Using the Greatest Technologies Out There
- Unity
- Blender
- Audacity
- Bosca Ceoil
- Inkscape, Illustrator
Initial Progress
We managed to create most of the game logic and some visual effects (using Unity shaders and particle system).
Final Release
Gameplay
In the beginning the player starts next to the planet. Player can control its spaceship and fire projectiles with left mouse button and laser with right one, for movement WASDQE keys are used. Enemies come as waves and every wave creates one extra enemy. Meteorites are randomly generated around the planet. Meteorites can hit the planet and make damage. Goal is to last as long as you can defending your planet and yourself.
Effects
Player
For player we created spaceship model and some textures. We targeted low-poly style but in the end got something completely different.
For thrusters we use Unity's particle system, projectiles use emissive material. We decided that our spaceship doesn't need shield.
Enemy
For enemy we used Daniel's practice session task spaceship (because we really liked it) with minor updates. Also this spaceship has some textures and doesn't really look so low-poly. For thruster like things trail renderers are used, projectiles use also emissive material.
Meteorites
Meteorites are created in the beginning of the game. Each meteorite is different and shader for them is created after their initalization. For meteorites we used and edited scripts we found online (every script has reference to original author).
Shield
For shield we used Voronoi noise to give it nice looking effect. We also added rim light to bring it out a bit and make it look better. Shield damage detection can handle only one bullet a time. It doesn't mean, that bullets drive through it, but it just wont animate it. Damage animation creates line on sphere, that is calculated from hit point over time. Damage detection just calculates distance over time and decreases damage line diameter until it reaches one second. Only planet has shield and it is not replenishable.
Planet
Planet ground is created with different layers of perlin noise and color is applied accordingly to Perlin noise values. At the beginning it is shaped as sphere and noise is used to change vertex points of sphere. Currently there is five different color of heights from blue to dark green. We added rim light for planet also so it would be a bit more realistic. We managed to add damage effect to planet aswell, so that if something hits planet, it will leave mark on the planet. The mark is made with Voronoi noise so that it would look like cracks on earth. Color of the hit is also tilted to red so that it is a bit more visible.
Planet has explosion animation at the end. The color is animated aswell so red color fluctuates about 10 percent.
Portal
Aliens entering portal is made with Voronoi noise. Under the portal there is plane. It is shaped as circle, since we are making points, that are further than 0.5 (half of the lenght of UV coordinates) invisible. There are multiple layers of noise function so that it would look like space entering in most of sci-fi movies. First the portal opens and then enemy comes through it. There is also variable that shows how opened the portal is. The visibility (alpha channel) is calculated from it so it appears like it's changing scale.
Explosions
Explosions are created using Unity's particle system component. First we started to do this with shaders but in the end found that particle systems are more comfortable for creating explosions.
Unity's Post Processing Effects
In order to make our game look even more better we used Unity's post processing effects: motion blur and bloom (that's why emissive materials look like that).
Conclusion
Overall we managed to create everything we planned without making big changes to the initial plan. Our team worked together well and we learned new things about Unity and computer graphics in general.