Stanislav Mõškovski, Stanislav Belogrivov
About the project
A small “horror” game with dark and gloomy atmosphere set in ancient times. Place where action takes place: an old abandoned castle(something like amnesia). You (main character) play a role of a bad guy and are playing as a ghost of a king who once lived in this castle. You set up traps for the soldiers who are trying to invade your castle and steal your treasures.
- Area: Gameplay area revolves inside an ancient castle which was built long ago. The place is very dark because no one has entered the castle for over three hundred years. There are a lot of items in the rooms which can be used as traps and you as the main character can interact with them.
- Gameplay: You play as a ghost who is the owner of the castle. Your goal is to kill as many soldiers as possible and prevent them from entering your vault. You are going to be using traps to kill the soldiers since you are the king and it is your castle, so you know your living place the best. The soldiers cannot see you since you are an invisible ghost. Also since you are a ghost, you can move freely in the room.
Soldiers will be played by an AI and they will be exploring each level meaning that they won’t be just rushing from one room to another giving you enough time to explore the traps and set them up.
As a ghost you can interact with different objects: you can throw small stuff around (cups, dishes, etc.) so soldiers will be annoyed by that and eventually become scared. For traps you can for instance collapse some walls make the chandelier fall or even make someone fall into the pit of death.
- Characters: The King of the castle (main character), Army of soldiers (AI)
- Minimum viable product: Moving around in the room and being able to interact with objects.
Requirements and rules.
Goal of the project: Create a playable level for a game, where you can move around the game world, interact with objects and also implement some kind of AI(be it dumb or smart) . The goal to complete the level is to kill all of the AI players, using the environment so there would be different ‘traps’ around the level which player himself can trigger.
To do this complete our goal, we have to fulfill following goals:
- Create a level in Unreal Engine 4, which will at first contain placeholder models so that we will have more flexibility in level design.
- Script the level: give player ability to interact with objects and trigger the traps and move freely around the level.
- Create models using blender to make some of the objects look more unique and implement some simple audio.
- Implement some kind of AI so that there will be something to kill on the level.
- Implement game mechanics !!!
Creating and designing level in Unreal Engine 4
To start off we need to have some kind of a concept for the level. As a starting point, we decided to create a hard coded level, meaning all object places will be predifined.
Here is a picture of a level we will be trying to design. Please note that this is in very early concept stages and things will change and might become more complex as we move on.
We decided that our level should look like a big hall, like it would look in the castle. On the northern side of the room there will be an entrance, where "victims" will enter the room and on the other side there is an exit, which "victims" have to reach. In the center of the room there will be a big medieval lamp, which can be used as a trap. There will be a trigger that makes the lamp fall from the ceiling. There will also be some candles so that player can see something in the darkness.
The place must be dark, but lit up enough so player can see his movement.
So we started creating the level. Started off with creating an entrance and exits to the level, simply using additive and subtractive brushes. After that, I decided that it would be cool if the pillars would be fully destructible. So it took some time to learn how to make destructible mesh. After creating the mesh and placing the pillars, it was time to work on the lightning a little bit because we needed to know how the scene would look like and where to place the light sources. I decided to create candle light.
How I made candle light:
- I created a candle material to make particle emitter. As a candle needs to be somewhat transparent it didnt need any base color. So I found some random candle picture on Google and took the flame part and used it as a texture. And to make it look more realistic added some rotation to the texture.
- After that I created some particles adjusting their lifetime, size and adding light that they produce. After that I tried to adjust particle light color so it would look more realistic.
- Then we found some medieval light assets on the internet and decided that they would look very good in our scene. So after importing the models, adding the particles and pillars scene looks something like this:
Scripting the level
Scripting the level turned out to be much harder than we expected. Although we have learned alot in the practice sessions about the Unreal Engine creating this project was a challenge.
We needed to create a level in which player should be able to interact with the AI. So where to start?
First we decided to create a simple path for the AI so he would walk around the room and we could work around that.
After that we had a question so how exactly do we kill him? We started with simple implementation where AI dies to the falling chandelier. After that we decided that we also need to make interactable traps that player can place around the level. Traps can be placed by pressing 'G' while facing the ground. AI will die when he steps on them. Currently using a placeholder model because our bear trap was not yet finished (needs some work with animation)
Level is very simple, but still playable.
Some models - candles, chandeliers, tables - were downloaded from different open sources. Links to respective owners - TBA.
As of 30.11.2016, 3 fully functional custom models have been created from scratch - a picture frame, a burning wooden log, a bench.
Picture frame. Currently has only 1 model available - vertical frame. Currently designed in such a way that it has no canvas as it seems easier to create a plane in Unreal Engine 4 and attach a texture to it directly, then fit in the frame.
- Frame model untextured:
- Frame model textured + UV map:
- Frame with created canvas in a project:
Wooden Log. As of this moment, only has one model. Possible to add more later.
- Wooden log mesh without any textures. Note that it is not a perfect cylinder:
- Wooden log mesh with textures applied + UV map:
Bench. A Bench adjusted to the size of the table mesh. NOTE: currently has no images.
NOTE: As of the moment, the model for a bear trap is ready in Blender, however, due to export/import issues with animations, is yet to be imported into the game.
- A bear trap mesh:
- Bear trap mesh with bones visible:
NOTE_2: The work on normal maps is in progress. No practical implementation in the project yet. Needs more research.
We decided to use some background music so it wouldn't be so boring. We decided to use some copyright free music for our project.
Implementing it was pretty simple, yet time consuming because we had to find an appropriate tune and learn how to inject it into the engine and make it work. Nonetheless it works!
Implementing the AI
AI implementation is pretty basic. Right now it can only walk down a certain path and does not interact when play is too close. But AI does interact with traps, which make him die when he overlaps with a trap that can be placed by the player.