Multi Genre man

Project
Genre: Multiple


The project

This is a personal project whose purpose is to show off programming skills. The goal is to cram as many game genres into 1 unity project.

So far there's:
  • First person shooter
  • Action RPG (not playable yet)
  • Real Time Strategy (not playable yet)
  • Turn based Tactics

In this page I will explain the features found in this project. Some of the genres are more developed than others.

First Person Shooter

I first started a first person shooter. it currently has movement mechanics and 3 weapons. There are enemies to shoot at but they don't have AI yet. The mechanics are based on older FPS games like quake and half life.
Movement
The fps has standard FPS controls, WASD to move, space to jump and c to crouch. You can also perform a wall grab by jumping and then crouching while near a wall. From a wall grab you can either let go or jump away from the wall.
Weapons
You start without weapons and can pick up new ones by walking over the ones found on the ground.
Currently there's 3 weapons: Machine gun, shotgun and ricochet gun.
The machine gun uses the same mechanics as the machine gun from quake 3, as I based my code on the code from that game.
The shotgun is like the machine gun, but it shoots various shots at the same time. with a random factor to create the spead.
the ricochet gun shoots a laser that will ricochet out of any wall or floor that it hits.

Action RPG

The action rpg is a diablo-like game, with a top down camera and click to move controls. There are enemies without AI that the player can attack.
Controls
By right clicking on the environment, the player character will pathfind its way to that location. The camera will always follow the player, and can be zoomed in and out with the scrool wheel.
Right clicking on enemies will cause the player to move in range of attack. if the player is in range to attack, they will start shooting projectiles at the enemies.

Real Time Strategy

The RTS game right now only allows camera movement, unit selection and movement.
Controls
The player can move the camera with WASD or by moving the mouse to one of the edges of the screen. To select a unit, the player can either left click on it, or draw a square to group select.
To move a selected unit, right click on the environment. To deselect it, either select another one, or right click on the environment.
Technical stuff
To create the square selection box, the game calculates where the box's 4 points are hitting on the environment by using raycasts and saves those new 4 points. It then creates a mesh with the points created by the square and the ones created from the raycasts.
The mesh is turned into a meshcollider, and then waits 1 frame so that the engine calculates collision between the mesh and the environment's objects before being deleted.

Turn Based Tactics

The turn based tactics game is based on games like disgaea and final fantasy tactics. the player has its own team of units and fights agaisnt 1 or more teams of enemies. The game features AI that will advance and attack on the player's units
GamePlay
Each player takes turns to move their teams. The player can select a unit to move by right clicking on the square its on. When right clicking on a unit, the squares to where that unit can move will light up. Then, by left clicking on one of those squares, the unit will move to it. Each unit can only move and attack once per turn, to end the turn, press Enter. The enemy will then play out their own turn.
The game features a HUD that tells the player whose turn it is, and the stats of the currently selected unit. There is a also a floating text system that gives active information such as damage number or action information to the player.