Game Project

























Introduction to the Project

This was first team project, and the focus was on designing a video game that can promote the Sustainable Development Goal 7, "Affordable clean energy". This was roughly a six-week project with some opportunities to develop the games further in our own time.

We were introduced to this project with our group members and the brief of: "Working in teams, create a game design concept for an instructional computer game aimed at 11–15-year-old school children to communicate the need for energy efficiency and sufficiency in relation to Sustainable Development Goal 7".


The roles that the Game Designers would fill during this project We were also given some advice on the tasks that different roles would carry out. As I am in the Game Design course, I would focus on gameplay mechanics and level design, for example.

Our group consisted of 2 Game Designers, 2 Designers and 1 CAD Designer. We had no members that specialised in 3D environments, so our first decision was an obvious one; we were to create the game in 2D.






Stage One: Ideation Phase

In the early stages of the project, we mainly emphasised ideation, including name, characters, plot etc. We quickly devised a list of the fundamentals for the game:


We also wanted to find what style of gameplay people, especially school children, enjoy, so we could implement it into the gameplay mechanics. After doing some research online, and asking family members and friends, we came to gather the following statistics.

According to our research, Building and Action games are the most popular genres amongst most younger ages. This helped our group a lot, especially us Game Developers as it gave us our first sense of direction for the game when it comes to the mechanics and how the game will play and feel.



The Plot of Lilith

Most of the plot was designed at the start of the project but was changed and added to throughout the project. This is the final/current standing of Lilith's plot.

A small storyboard displaying the plot of 'Lilith'
'Lilith' is a cyborg created by a scientist in the near future, with the purpose to preserve and protect the environment for hundreds to thousands of years to come. She, and other cyborgs, helped communities across the world, making everyone’s lives safer and ensuring the planets sustainability. This story almost felt too good to be true.








'Lilith' would eventually rival an evil cyborg named 'MegaWatt' and his army of robots, created by an unknown scientist. 'Lilith's' creator protects her by disconnecting her power and hiding 'Lilith' in a facility that is almost unknown to the public. 'MegaWatt' and his minions caused destruction world-wide, with the aim of leaving nothing-left but robots and to overrule their very creators. Anyone who would try to defy him would meet a horrible fate, expect from one...





A rogue robot mechanic named 'Gears' is able to successfully escape the harsh work of creating 'MegaWatt's minions and stumbles upon the hidden facility where 'Lilith' was stored. 'Gears' uses his mechanic skills to reboot 'Lilith', who is shocked to see the aftermath of 'MegaWatt's apocalypse. 'Lilith' and 'Gears' adopt a new goal of bringing 'MegaWatt's reign to an end and they are willing to adventure and embrace the toughest challenges that are thrown at them.



Storyboard and plot created by Keenan, C




Time Plan

One of our first must-haves was a time plan. For this, we devised a Gantt chart that included the tasks that were to be carried out by different people. We installed this into our team's Trello board.

We created this Gantt chart with the intention of it acting as a constant guide to our time management throughout the whole project, while constantly updating and adding new tasks. Personally, I knew it was going to be a challenge to stick to this plan, as time management is one of my weaknesses, but I went forward into this project and the whole course with a plan to improve my time management.




Communication

In addition to time management, we wanted to sort out how we would communicate throughout the whole project. In our lectures we were introduced to Slack, a popular communication platform in the digital design industry. We started using this, developing it with specific channels for designs, questions and a GitHub extension. However, not too long into the project, we decided it would be easier for everyone if we just used Messenger, so that is what we did for the remainder of the project.




Starting my research

The last step of our ideation phase was to devise our own plan of the different tasks we would carry out. Mariia and I had the main tasks of level design and game mechanics. We came up with a plank to create two different area to each level. There was going to be a 'Safe Zone' area where the player would start and potentially end the level, as well as levelling up their character with new skills and better stats for example. The second area would the actual outer part to the level where the player runs through, defeating enemies and carrying out objectives. I took the role of creating the outer part of the level.

As for the mechanics, we came up with an idea, that was less of a mechanic and more of an event, whereas the player progresses through or beats a level, the area would turn from a post-apocalyptic setting into green, lush land filled with wildlife. We had faint ideas of game mechanics at this point as we wanted to create a first template to the level in Unity before anything else.

I started my research by looking into how 2D levels are made and how their enemies, objectives and objects are laid out. So, I decided the best way to do this was to play the games myself. Luckily, I had experience with two of my favourite 2D games, Hollow Knight and Dead Cells. In case you have never heard of them, I will give you a small introduction.
All the following images are screenshots I took in-game.


A screenshot of the video game Hollow Knight Hollow Knight is a 2D game created by the studio Motion Twin, situated in Bordeaux, France, released on the 24th of February 2017. The game has you play as the knight, an insect warrior as you explore the vast world of Hallow nest, that has been infected by a disease.
The game is stated as a 'Metroid Vania, fighting game' as well as a '2D action-adventure game'. There are many different bosses in the game, each with their own unique difficulty, that heavily encourage the learning of attack patterns.






A screenshot of the video game Dead Cells Dead Cells is a 2D, Indie, roguelike, fighting and dungeon crawler like game that has you follow the adventure of an unnamed prisoner. You travel through different randomly generated levels, with many levels branching off into new directions for the gameplay. The game will always end against the same boss, The Hand of The King, with the main goal of reaching and defeating him and repeating the process, with each time the adventure becoming more difficult.







So, after putting a few hours into each game, I came to learn and understand the level design and layout of both games. Starting with Hollow Knight, the game starts out with you seeing a small area of the map, that expands with each map piece you find and purchase, which eventually shows the game's true size.

A screenshot of the video game Hollow Knight's map A screenshot of the video game Hollow Knight's map zoomed in

Whenever I play this game, it starts to feel like an open world 2D game, as the different areas can change visually as you progress through the main storyline. The game also has you explore through each area to find new abilities and spells that make you stronger. These power-ups are in areas that fit the theme of the upgrade narratively and gameplay wise. For-example, after completing the 'Mantis trial' in 'Mantis Village', you gain access to a 'Mantis Leap' ability that allows you to double-jump. The path that you follow to leave the area test your skill to use the new ability by throwing some platforming puzzles at you that require double jumps to complete.


Dead Cells almost feels different every time you play due to the amount of different random mechanics in the game. For example, there is an upgrade that allows you to select a loadout of 5 items; 2 weapons, 1 shield and 2 skills, before you start the game.

A screenshot of the video game Dead Cells map

Each level is randomly generated in almost every aspect. This includes enemy locations, chests, gold and food pick-ups, markets and doors. However, it felt that each level had a consistent number of the aspects mentioned every time I played. Also, whenever you find a new weapon or skill, it is going to be random one selected from any of them you have previously unlocked. This causes each playthrough to adopt two different playstyles. One is to adapt to the loadout you get and build it up as best or possible, or, you have a specific loadout you want to earn on each run, and you do your best to get every item needed. This alone makes each run feel different.

I also wanted to look at a more classic 2D game, so I some digging into the old Super Mario games. I found that the level design was consistent in the fact that you would start at one end of the level and reach the other end to finish the level. I like to call this a 'Linear level design' as you essentially follow a straight line to reach the end of the level or game.



Stage Two:Production Phase


Level Design

 A skecth of an open level design for Lilith After carrying out the research surrounding level design, my next task was to sketch some concepts for the level design of Lilith. I created two concepts, the first being a more open focused level design, like the layout of Hollow Knight's different areas.
The idea that I had in mind when creating this sketch was that the player would explore the level with some visual direction, and they would find the enemies and objectives to complete before returning to the 'Safe Zone' to complete the level.






A sketch of a linear level design for Lilith The second sketch was of a level in the 'Linear' design I mentioned earlier. This, in my opinion, was the simpler level design, but I felt that it would be effective for the game that we were creating. I decided to stick with this design when going forward to create the actual level as I felt that it would fit the mechanic of the level becoming greener perfectly.









A sketch of a level map designI also was interested in creating a level map for the game. This would follow the same mechanic of becoming greener, but it would also show a brief introduction to what the player can expect in the level with visual objects or sprites. The map would be divided into areas with 10 levels per area. This wasn't achieved during the time but Is something we are keeping in mind for future development.














Tile Maps and Sprite Sheets

My next task was to create designs for sprites and tiles, which I would then use to create tile maps and sprite sheets. We decided in our group that a more pixel art design would best suit our game, so we created the tiles in a 72 x 72-pixel resolution.

A sketch of a tile map with the green aesthetic A sketch of a tile map with the post-apocalyptic aesthetic

As you can see, I created the left tile map with the greener level state design in mind, while the right tile map has the post-apocalyptic setting. I created a range of different tiles including floor, ceiling, wall and corner tiles as well as platform tiles. This is so I could make sure that each corner and divot in the level could be created without any weird looking cut-offs in grass or stone paths. I then used these templates to create a finished, usable version in Photoshop.

A finished green tile map A finished post-apocalyptic tile map

These are the finished versions of the tile maps. I did have to add some more tiles so I could fill in some odd-looking corners in the Unity level. I decided to go with the grassy and rocky tiles for the greener level design as I thought it was common, but also very true to the theme of the game. For the post-apocalyptic design, I was originally planning to create sandy and rubble tiles as I thought it would represent the word deserted. But I realised that going with a simple stone or concrete pathway would be less fantasy and more realistic as it would represent a broken-down city or town. The fact that I wanted it to feel more realistic is important as the message we are trying to convey with the game is something that is challenging our world in this present day.

A finished version of placeholder background tilesI also created some background tiles. I had plans for what I wanted these to look like, but as I was short on time, I created some simple, Mario-like tiles to act as placeholders. That is why, when you see the current standing of the post-apocalyptic level soon in this project, it will not completely represent that post-apocalyptic theme.



























Next, I sketched designs for tiles for each theme of the level. I did some looking around in the Unity Asset Store to see what kind of designs people had made of objects I wanted to create. For the green level design, I included the obvious things like trees and plants, but I also included some signs that would give players direction to the objectives.

A sketch of a sprite sheet for the green level designA sketch of a sprite sheet for the post-apocalyptic level design

A finished version of the level spritesA finished version of the level sprites

These are the finished sprite sheets, and each sprite is roughly 242 x 242-pixel resolution. I did this because I wanted to make the sprites look more detailed, but I soon found out when putting it all together that it didn't really fit in. It was too late to change this at the time as we were facing a deadline, but this is something I want to fix soon.





Creating the Level

A zoomed-out finished version of the first level of LilithWith this, I had everything I needed to create the first level, so I booted up Unity and got to work. I tried to follow my level sketch as closely as I could and came out with a product that looked like this.

The level starts on the surface and pushes you to move left where you face your first platforming challenge and combat challenge shortly after. (Note that within the time limit our Designers didn't have enough time to create finished enemy or Lilith sprites for the official deadline of this project). The level then moves down into an underground area, showing a change in scenery with flowers turning into mushrooms. Here is where the player faces their first additional mechanic, moving platforms (more on that shortly). The level ends in an arena style room where the player would either complete a timed challenge or a boss.

The blue looking area that you can partially see on the left is the 'Inner level area' that Mariia made. Here is what it looks like.


 an image of the inner part to the level



The Mechanics

The final step was to create the games mechanics. Mariia had created most of the core gameplay mechanics including checkpoints, a three-heart health system, movement and climbing controls, a game over screen and a key and door system. My plan was to create the game's first additional mechanic. These would be introduced every roughly 3 levels. The final of an area would collect all the additional mechanics in that area and combine them in one level to create added difficulty. Most of these mechanics will appear in later levels also, as it may be frustrating to learn a mechanic for 3 levels and then never having to use that skill again, however the mechanic must fit with the setting of level.

The first mechanic that I created was of course, moving platforms. This is a very common mechanic in 2D games, you could almost say it is a staple, so I thought it was a good place to start. Now, I couldn't do this off the top of my head, so I had to find a tutorial. I followed a video by Coding In Flow on YouTube that showed how to build these as well as solve a common issue that arises with moving platforms. To make these platforms we have 2 different C# scripts.


This is a section from the first script which is called waypoint follower. An easy way to make the moving platforms would be to create them as independent variables, but then we would have to make more any time we wanted to add this mechanic again. So, instead we created an array which allows more than one value to be stored. This way, if we wanted to, we could also implement moving platforms that move between more than 2 waypoints. After attaching the script, we can set the waypoints in Unity, which are empty game objects. Then we can attach these symbols to the script on the platform.

A screenshot of code for the moving platforms

Now, in the same script, we created the code that allows the platform to move between the waypoints. The following code essentially stated that as the platform bets close enough or touches the waypoint, it will start to move to the other selected waypoint. Therefore, it is important to have the waypoint objects on the same Y value as if they were different, the platform wouldn’t move in a straight direction.

A screenshot of code for the moving platforms

Now the platform can move between the waypoints, after adding some 2D colliders, the player can jump on them and follow them to the new destination. However, the problem is that the player does not move with the platform, so the player needs to stick to the platform. This is where the sticky platform code comes in.

A screenshot of code for the moving platforms

This code states that when the 2D collider of the player touches the 2D collider of the platform, the platform will become a parent, with the player being its child. This way the player can move with the platform. Now, with the first code and the fix combined the moving platforms look like this. Note that the red waypoints will not appear in game, this is just for testing purposes.

So, we were nearing the deadline to the project where we would have to present our concepts to our lecturers. This gave us some time to reflect and think about what want well and what we could do better, as well the future for the game.





Conclusion

This was our first major team project, so it was a big learning curve for everyone. This project was enjoyable, but it also highlighted the things I need to work on. For example, my time management was very poor, which I honestly expected as it has always been a flaw of mine. Trying to stick to a timetable can be very stress-inducing for me so I am trying to find a way to manage my time in a way that I am comfortable with.
I also want to briefly mention aspects about the game itself and what I could've done better. Firstly, my sprite resolutions where completely out of style with the tiles, but also were all different resolutions. This created problems when I tried to create the sprite sheets and slice them all at a common resolution, causing some to looked stretched or overlap out of the grid squares. The tile map itself appeared to have a grid effect still visible in-game, but this is probably an easy fix to remember going forward.
Also, as a team we all agreed that our communication could of been better throughout the whole project. Overall, the intention of this project was not to create an outstanding game concept, but more to introduce us into a realistic scenario of working with people all with different skill sets and trying to make something out of it.
That it is for this project. Below you can see the future direction of the game along with any updated we plan to make to it ahead of the project deadline.


An image of the post-apocalyptic version of the level


The Future of Lilith

As part of our presentation of Lilith, I created some information on the future direction of the game.

New Mechanics & Future Environments

An obvious addition to the game would be new and more unique mechanics. However, adding these to the game wouldn’t be as easy as making an idea and implementing it anywhere, as with any game. The mechanic must fit with the current narrative and visual scenery of the game. A good example would be the game Human Fall Flat, in specific the snowy level. In this level there is a focus on keeping ice blocks out of the sunlight, so they don’t melt. The aim is to push them to a location so you can use them to scale ridges/platforms etc. This is a way of creating a new mechanic, which is creating your own platforms, but making sure it fits with the current theme.

Replayability

Replay ability is a big thing in games. Some games chose not to create this and instead make multiple sequels. Destiny 2 is a game that has a seasonal model, with a new season occurring every 3 months. Each season introduces new activities, weapons and armour as well as updates to existing game features. Destiny 2 has been going on for roughly 5 years now and they still hold a strong player base, so they are doing something right.
So how can we add replay ability to Lilith if it is only a 2D platformer? Well, we can’t create replay ability on the scale of Destiny 2 for example, but we do have some options. A good example of a game that I would follow to do this is Dead Cells. This game consists of multiple different DLC which give the player access to different levels to take and new items to find. Dead cells also have aspects outside of its main gameplay loop. This includes a training area, but the big ones being alternate game types. For example, the daily challenge is a randomly generated course that gives the player 2 minutes to progress through as well as a choice between 2 starting weapons. The player can defeat enemies and collect scrolls and chests to add to their score and timer. One defeating the Concierge boss at the end of the course the timer and score counter will stop. Something like this as well as leader boards is one good one to keep players coming back, as some people like to compete to get the quickest completion or highest score of a level. This is particularly true in a large group in the gaming industry called the speed-running community.
Each game probably has one, and it can be very competitive. Having a leader board in-game of each level to show the fastest completions of levels from players across the world is one good way to keep this community satisfied.