Video game engines
What is a game engine?
A game engine is software that is used by game developers to create videogames.
A game engine is not necessary to create video games but it can make the whole game developing process easier.
Fun Fact
Back in the early days of video games nobody used game engines to make videogames and they made games out of pure code and electronics nothing else.
Learning Unity
As I was already very interested in making games with unity I taught myself some Unity and C# thanks to some tutorials online over the summer holidays and I made a basic 2D pong game which you can play HERE and I made a basic 3D maze game where you play as a cube who goes through maze levels with enemy and coins to collect, it's not available to play is it is unfinished.
Making a 3D game
On our first day of the unit we were told to follow some tutorials online on the unity website to make a basic ball rolling game, where you go around collecting green cubes to win.
HERE is what i made thanks to the tutorials.
For fun i decided to add a jump mechanic.
Making a 2D game
With Unity we made a 2D platformer game thanks to some tutorials from the unity website.
HERE is what i made thanks to the tutorials.
For fun i decided to add visual props for aesthetics and I added a coin counter so the player called record their high scores.
some images of the paper prototype I made
concept art for the player boat.
I will be mixing up these designs to create one good boat and right now I'm thinking of mixing up boat 3 (bottom left) with boat 2's (top right) gun.
The pillars on this are supposed to represent the cranes of the Mshed
while I was texturing the boat a friend suggested that the main colour of the boat should be orange so I tried it out and it actually looked a lot nicer than what I had planned so I went a long with it.
I created a quick scene with all the 3D models in cinema4D to kind of illustrate what I want my game to look and feel like when it is complete. And I think it looks nice and cool.
Placing them in a way that they look broken and destroyed.
What is a game engine?
A game engine is software that is used by game developers to create videogames.
A game engine is not necessary to create video games but it can make the whole game developing process easier.
Fun Fact
Back in the early days of video games nobody used game engines to make videogames and they made games out of pure code and electronics nothing else.
Nowadays almost every game is made using some kind of game engine and big video game companies have their very own (private) custom game engines built to make their very own types of games. But you don't need to work in a triple A (AAA) company to get your hands on game engine as there are many game engines out there that are completely free such as Game Maker and Scratch for beginners and children willing to learn to make games, Unity and Unreal for indie companies and individuals who are interested in creating games. Unity and Unreal are probably the most popular game engines at the moment because they are both free, very powerful and easy to use.
Learning Unity
As I was already very interested in making games with unity I taught myself some Unity and C# thanks to some tutorials online over the summer holidays and I made a basic 2D pong game which you can play HERE and I made a basic 3D maze game where you play as a cube who goes through maze levels with enemy and coins to collect, it's not available to play is it is unfinished.
Making a 3D game
On our first day of the unit we were told to follow some tutorials online on the unity website to make a basic ball rolling game, where you go around collecting green cubes to win.
HERE is what i made thanks to the tutorials.
For fun i decided to add a jump mechanic.
Making a 2D game
With Unity we made a 2D platformer game thanks to some tutorials from the unity website.
HERE is what i made thanks to the tutorials.
For fun i decided to add visual props for aesthetics and I added a coin counter so the player called record their high scores.
Some quick challenges that we had to do
Challenge 1: Create a scene in unity for a 3D game level and a 2D game level. Just
put a few simple objects and a plane in each scene. Find a way to
switch between scenes using Gui Buttons so that you have 1 3D
scene, 1 2D scene and 1 quit button
Here is what i did.
This was quite easy to do as i already had some experience creating working UI buttons within unity.
But i still needed to search up a few bits of code.
Challenge 2:Create a first person 3D scene with a first person controller, a plane for
the ground and some cubes for boxes. Make a projectile gun which
shoots the boxes and makes them fall over.
And here is what I did.This challenge was actually quite fun and easy to do.
I already knew how to use and place a first person controller but the challenging part was to find out how to make it shoot blocks, so I did some searching around the internet and I found a basic tutorial on the unity website that I could easily apply to my FPS controller.
Challenge 3:Create a 3D scene with a controllable ball character, like the first 3D
tutorial. Make the 3D ball character jump and create a simple ramp,
plane for the ground and a hole. When the ball goes through the hole
trigger an event with another object, it could be that another object starts to move in a particular
direction
And here is what I managed to do.
I recreated the ball controller from the first tutorial i followed from this unit and added an extra function: the jump button. i then created a simple level that consists of a ramp, a hole and a door.
I made it so that when you fall into the hole and collide with the bottom of the hole that would trigger the doors to move by a bit. I also added a respawn system in case the player fell down but I forgot to show it off in the video.
Adding sounds to a unity game
So i decided to add some sounds in to my basic first person shooter so I used the laser sound from the "Sound in interactive media" unit that i did and make it so that whenever the player shoots you hear the laser beam sound. I thought that it was weird to have a shooting sound but then not be able to hear the "Bullet" impact and collide with the boxes so i created some new boxes that had a impact sound whenever something would collide with them. The sound of the impact is just a recording of me hitting my desk.
The boxes with impact sounds |
I think it actually sounds alright, the only problem with it is that it stays the same volume wherever you are within the world.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Making a game prototype
In this part of the blog i will be documenting my work on the final assignment of this unit.
The Assignment Brief: Bristol Harbourside Game
In this assignment i will be building a Game prototype that is based around the Bristol Harbourside.
The game needs to have a 3D and 2D element to it, Example could be that the main core of the game is a 3D first person game and at times you need to play a small 2D minigame to advance within the 3D game world. Both game elements 3D and 2D need to have obstacles and hazards for the player to overcome and some sort of objective to motivate the player to play the game.
To make a game like this i am going to need to do research on the Bristol Harbourside, possible game engines that i could use to make a game like this and I'm going to need to think of some good game ideas that can be built using the engine of my choice within 5 or so weeks.
Researching Game Engines
To make a game that involves and connects both 3D and 2D elements means that i need to use a Game Engine that supports both the 3D and 2D dimensions and elements so there is no way that i will be making my game with an engine that only allows the creation of 2D games like RPG maker.
A list of possible game engines i could use:
Unity3D:
First off let's start with the game engine that I will be using for this unit and that is the most well suited to help me build the game prototype. Unity3D is a very, if not the most popular game engine there is out there at the moment and it's not surprising seeing that it's free and it is quite powerful.
But the main reason that i'm going to be using Unity is because it's the only game engine that I am most comfortable with.
Unreal Engine:
The Unreal Engine is a very popular engine and it has recently gotten a free version of it released called the UDK (unreal development kit). It supports 3D and 2D well and has a very good 3d rendering engine making the games created with it look really nice but it is known for being quite complex and the programming language that it supports is C++ which is know for being a very tricky language to learn.
CryEngine:
CryEngine is a very good engine for it's ability to produce huge beautiful, highly detailed landscapes. It is an Engine that is commonly used for very high end graphical looking games. It has a monthly subscription version on the steam. and it's main programming languages are Lua and C++
LeadWorks:
The LeadWorks engine is known for being a very quick and simple game engine to create very quick prototypes but it only supports 3D game development. It's available on steam for £76.
The Unity Editor Explained
1: The scene tab is used to
edit a Scene (Game Level) in real time. It is used to create and edit game
levels, maps, UI/menu systems.
2: The game tab is used to
view and play the current Scene (Game level) that is being made/edited.
3: The Hierarchy tab is used
to view a list of all the game objects and scripts within the Scene so that the
user can keep track of what is within the Scene.
4: The Project tab is used to
view all the game files such as game level files, prefabs, scripts, sounds,
music, textures and more.
5: The Inspector tab is used
to preview and edit the properties of a game object or other game files.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Game Proposal
Section
1
Working
title: Attack on Harbour
Target
Market
Young people aged 10 to 17 who
enjoy small challenging action games.
What
you will work towards producing:
A unity game that contains both a 3D action
game and a 2D puzzle minigame. The basic idea of the game is that it is just
one "big" boss battle and nothing else. The game will have you
playing as Captain Eric the Harbormaster of the Bristol Harbourside and you
will be controlling a weaponized boat to fight a giant alien Robot that is creating havoc around the harbor.
Section
2
Influences,
starting points and contextual references:
Titan souls as it is a
game that only consists of challenging mini boss battles.
Early ideas research and sources:
My early ideas was to have the boat fight a giant
squid/octopus alien that came out of a falling meteorite but then I later
thought that it would take too long to create and animate good looking alien
squid and have its tentacle attack the player's boat. And i also had to change
my approach to the 2D minigame as I didn't find a good enough solution to
create exactly what i had in mind but i still ended up creating something similar
to the general idea of fixing the boat and still have it been a good puzzle
game.
Section
3
Intended techniques, non digital and digital processes:Paper prototyping the 2D minigame, creating concept art of the alien and other things, creating 3D models and assets with the help of cinema 4D and ZBrush(maybe), making the game with Unity and programming in C#.
Intended techniques, non digital and digital processes:Paper prototyping the 2D minigame, creating concept art of the alien and other things, creating 3D models and assets with the help of cinema 4D and ZBrush(maybe), making the game with Unity and programming in C#.
Timescales:
Week 1: creating the 3D
models and getting a basic boat controller on water setup. Week 2:creating the 2D
minigame and connecting it with the 3D game Week
3:creating fighting mechanics to fight the boss and make basic AI for the boss Week
4:finishing touches and finishing what has not been finished.
Section
4
Proposed methods of evaluation:
I will have some
friends to test out my game and get some feedback from them to see what they
think of it.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Researching the Bristol Harbourside
Going around the harbourside to take pictures and possibly come up with some ideas of potential games that could be made.
Here is some brief history of the Bristol Harbour taken from Wikipedia: Bristol Harbour is the harbour in the city of Bristol, England. The harbour covers an area of 70 acres (28.3 ha). It has existed since the 13th century but was developed into its current form in the early 19th century by installing lock gates on a tidal stretch of the River Avon in the centre of the city and providing a tidal by-pass for the river. It is often called the Floating Harbour as the water level remains constant and it is not affected by the state of the tide on the river.
Game Ideas ?
1. A 3D first person game were you play as a bomb disposal unit trying to find and defuse a bomb within a boat/ship at the bristol harbour side. Once you found the hidden bomb(s) you need to solve a 2D puzzle game to successfully defuse it.
2. A basic 3D boat driving game were you get to go around the Harbour side with a small boat and explore the Harbour side. there could be hidden 2D minigame levels within the environment that you have to find and collect to finish the game.
3. A 3D game were you control a armed boat with a canon(s) to fight and shoot at a giant octopus that is attacking the harbour side. But the game starts of as a 2D top down map where you need to find a good place to position you boat or when the boat get's hit by the octopus you enter a 2D minigame were you repair the ship.
Idea 3 is the idea i will be going for but first i need to further get an idea for the 2D minigame.
1. A 2D puzzle game where you need to repair the boat engine to get back to the 3D game, In the minigame you need to replace old broken engine components with new ones and to make it harder you are timed and when you run out of time you lose because the alien octopus destroys your boat.
2. A 2D puzzle game where you need to reset valves of the boat engine in a certain amount of time. This idea isn't as good as the first.
3. A 2D action game where you need to fight off the tentacles that are attacking the boat with a handgun or some kind of weapon. it would be played a platformer.
I created a quick paper prototype of idea 1 and it was successful, so i am planning on making this game part of the main game.
some images of the paper prototype I made
Here is a video of a comrade testing out my paper prototype.
I gave him the pieces he needed to use to fix the engines and some duds to confuse the player and then i gave the player 15 seconds to complete the mini-game but I soon realised that 15 seconds was not enough time, what would of been better would be 45 - 30 seconds depending on how challenging the game should be.
Marios's thoughts on the paper Prototype:
what i thought about it was that i like the idea and it was quite fun to do, but the time i had with it was WAY too short for me to complete it but i did like the idea of having a few fakes as well (dat pac-man)
Concept art and art style of the game
Some concept art for the Alien Squid/Octopus monster that will be attacking the Harbourside.
I was also thinking that the Alien that was attacking didn't have to be organic it could potentially be a giant robot.
squid/alien designs
robot designs
After thinking about it a bit more i decided i wanted to make a giant robot attack the Harbourside instead of a giant squid so i did some concept art for the robot and after hearing some feedback from some colleagues i decided that i will further develop the robot on the right of this picture.
concept art for the player boat.
I will be mixing up these designs to create one good boat and right now I'm thinking of mixing up boat 3 (bottom left) with boat 2's (top right) gun.
Game Design Document HERE
Making the Harbour map in cinema 4D
In game location of the Bristol harbour side
basic layout of the game map. The idea is that the monster will be in front of the M shed and the cranes and with the boat you will only be able to move around within the battle area.
Cinema 4D map prototyping
I quickly and roughly created the map I want the player to fight the enemy
this was useful for me as I could visualize and plot out my ideas better.
Making the cranes that are in front of the Mshed
I used blueprint like photos of the cranes as reference to create it.
This took quite a bit of time as I still wasn't quite use to the way Cinema4D works but after a while I did get the hang of it even after encountering some weird mesh issues.
When making the Mshed i wanted to make sure it looked some what accurate and to scale so it did my best at plotting down the main pieces of land and buildings in the right positions thanks to the Google maps map screenshot that I took and overlaid in cinema4D.
I then created the Mshed which took a lot more time then expected as I was still trying my best to keep it to scale as I was looking at many different images of the building and then i placed the cranes.
when making the Bristol harbour side and Mshed I tried my best to actually make it to a decent scale with accurate representation with a clean style and look but of course it's not perfect.
In the end I think I made a very good representation of a part of the Bristol harbouside.
Making a very basic boat with cinema4D originally i was planning to use this as the main player boat but I think it's way to basic, boring and crude to use so I ended up just scraping it and never using it again.
Remaking the player boat as the first one i did wasn't good enough.
while I was texturing the boat a friend suggested that the main colour of the boat should be orange so I tried it out and it actually looked a lot nicer than what I had planned so I went a long with it.
After remaking the boat again i was a lot more happier with the way it looked and it felt a lot more unique and cool as t actually felt like some kind of boat a hero character would have.
Modelling the Enemy alien robot boss with cinema4D
when I modelled the alien robot I of course based it off of my concept art but I did end up changing some slight things in the design.
This enemy robot actually turned out really well and I'm happy with the way it looks.
The red crystal looking gem in the middle of it's body will be it's power source, laser beam weapon and weak point for the player to shoot at, once the crystal has been shot enough times it will break releasing so much pure energy that the robot will explode.
The story behind the appearance of this robot will be showcased in my 3D animation that is part of my animation unit.
I created a quick scene with all the 3D models in cinema4D to kind of illustrate what I want my game to look and feel like when it is complete. And I think it looks nice and cool.
Adding all the models into Unity by exporting the 3D models as a .fbx file which works a lot better than all the other files I tried. And I also ended up creating some nice water that went well with the game.
quick gif showing off the controller for the player boat
Working on the 2D engine minigame.
after a lot of thinking and trying to figure out how I was going to remake my paper prototype idea into my game i finally decided that i was going to change the design of the game but still have the same basic concept. So now instead of trying out different pieces to see if they are of the right shape you need to keep on testing the pieces to see if they have the right name.
This 2D minigame was made with unity UI system and most of it was quite easy to create thanks to a tutorial I followed but I then got stuck when I started to implement my own features as I had close to no idea of how to make them work in code, for example the code that checks whether the right pieces are in the right slots and order took a long time to figure out and I only was able to manage it thanks to user on a forum where I had asked the question of how I could achieve a certain small piece of code.
Here is a video that shows all the latest things that have been added to the game.
In this video you can see the shooting system and the way the turret follows the mouse cursor so as to be able to aim and shoot were ever you want, the enemy's head looks towards the player's boat as to show the player that the boss as eyes on you. This video also shows the 2Dminigame.
Working on the health system of the Enemy/boss.
The way you defeat the boss is by shooting at it's red energy crystal that it above it's head, when you do some health get's deducted from it's health bar that is hovering above the boss so that the player can visualize and approximate how many more hits is needed to win the game.
Having some fun and testing out the enemy's shooting script.
Creating a basic boat to bloke the player's exits so the player is stuck with the enemy.
Placing them in a way that they look broken and destroyed.
Winning and Losing scenes
The text was made in cinema4D
Making an explosion particle effect for when the robot is defeated.
I had a friend test out the pre-final game and this is what he said: A timer would add more of a challenge, did not encounter any game breaking bugs and when playing the mini game it's easy to memorise the slots, and perfect timing on the explosion. I liked the Win and Lose screens.
Final Game
Final Evaluation
In this Unit we were basically told to get familiar with what a game engine is and how to use so we all made a small game that involved a 2D and 3D part to it. For my game I decided to create a exciting and challenging 3rd person boat shooter game where the player gets to fight a giant robot boss, so basically it's a mini Boss fight of some sort. and the 2D aspect is that whenever you get hit by the robot's powerful lasers you will need to repair the boat in a 2D puzzle mini game.
I personally think that my game has been very successful as it is pretty much exactly what I was hoping it would be, I also had a lot of fun making it which was great.
But if i had more time to further develop my game i would definitely want to polish my 2D minigame a bit more and create the art for it, I would of also liked to further develop the enemy's AI as it was quite simple.
No comments:
Post a Comment