Arvutiteaduse instituut
  1. Kursused
  2. 2018/19 sügis
  3. Arvutigraafika (MTAT.03.015)
EN
Logi sisse

Arvutigraafika 2018/19 sügis

  • Main
  • Lectures
  • Practices
  • Projects
  • Exam
  • Results
  • Links

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.

  • Arvutiteaduse instituut
  • Loodus- ja täppisteaduste valdkond
  • Tartu Ülikool
Tehniliste probleemide või küsimuste korral kirjuta:

Kursuse sisu ja korralduslike küsimustega pöörduge kursuse korraldajate poole.
Õppematerjalide varalised autoriõigused kuuluvad Tartu Ülikoolile. Õppematerjalide kasutamine on lubatud autoriõiguse seaduses ettenähtud teose vaba kasutamise eesmärkidel ja tingimustel. Õppematerjalide kasutamisel on kasutaja kohustatud viitama õppematerjalide autorile.
Õppematerjalide kasutamine muudel eesmärkidel on lubatud ainult Tartu Ülikooli eelneval kirjalikul nõusolekul.
Tartu Ülikooli arvutiteaduse instituudi kursuste läbiviimist toetavad järgmised programmid:
euroopa sotsiaalfondi logo