GAM150 Week 10 – Final Levels, Terrain and Environments

I finished up the levels for my 2D game mod this week. There are now five completable levels, each escalating in difficulty from the last . As well as this, there is a title and end screen. I am happy with how the levels look, and hope they are varied enough to keep the player engaged throughout the play time. When designing the levels I took great inspiration from the level designs of classic platformers such as Super Mario Bros. (1985) and Rayman (1995). Aside from wanting to replace the character with my own design in order to make this mod a ‘total conversion’ (something I will do as a stretch goal), I am mostly happy with the result of this mod. I am now able to give the FPS mod my full attention within this module.

Within the 3D mod, I have created a large piece of terrain for the player to progress through. Using the terrain tools, I sculpted a mountainous region, which will serve as natural barrier to the player so that they cannot escape the play space. I then went over them with ‘smooth height’ and ‘erosion’ tools to make them look more natural, and used the ‘lower terrain’ tool to carve out a winding canyon, leading to an open area with a plateau where the boss fight will be situated (figs. 1 & 2). Using the textures from the terrain asset pack I downloaded last week, I was able to add dirt to the ground level, and make the mountains look rocky, with the tallest having snow-caps. I like this effect as it makes the level feel more believable than it had previously.

(Above, left) Figure 1: The level’s topography, with textures painted on. (Above, right) Figure 2: A closer view of the plateau, from the canyon.

Moving on from this, I populated the canyon with the low-poly nature assets I downloaded last week, as well as positioning the enemies (figs. 3 & 4). I found this to be the most fun part – tailoring the player’s experience by guiding them through the level using the environment. I have strategically placed trees, logs and boulders to be used as cover and block lines of sight so that the player can’t exploit the enemy AI by shooting from too far away. I have also made sure to think carefully about environmental  storytelling when placing these objects. For instance, I make sure that there is a tree stump nearby each log to indicate where it once stood (fig. 5), and mushrooms grow in the shadowed sections of the level (fig. 6).

 

(Above, left) Figure 3: A closer look at the object placement, designed to add visual variety and gameplay gameplay functionality. (Above, right) Figure 4: A top-down look at the (mostly) populated level.

(Above, left) Figure 6: Mushrooms placed in shade beneath a log. (Above, right) Figure 6: A fallen log, lying below a tree stump.

I then populated the level with enemies, spacing them out in a logical way, and gradually increasing their concentration to raise the difficulty as the player advances. At first, I ran into some trouble with the AI travelling through objects. I was unsure of how to fix it but after some research (Unity, 2020) I found out it was to do with the something called ‘NavMesh’. I had to ‘bake’ all of the static objects into the NavMesh so that the enemies would know to go around them. Once I had done this they functioned perfectly.

Before fully jumping into designing this level, I watched an interesting GDC talk on level design (ref). It detailed some great points to keep in mind when aiming to create engaging levels, but there were two that I particularly followed – keeping ‘flow’ within the level and rewarding players for exploration.

The design of my level is essentially one large flowing corridor, leading into an open arena. This promotes forward momentum and gives the player little reason for backtracking, unless they missed an enemy. I like this as, coupled with the staggered collectibles, it gives the player a feeling of constant progression as they move through the level.

I have also placed certain pickups out of the way of this central corridor, rewarding the player for going off the beaten path. For instance, the launcher weapon is hidden behind the plateau, amongst some fallen boulders (fig.7). This gives the player a reward for being curious and taking the time to explore the level, especially as this weapon is effective in the final fight.

(Above) Figure 7: The hidden launcher weapon, situated behind the plateau.

Next week, I am going to create a structure with ProBuilder to sit atop the plateau, where teh boss fight will take player. I like the idea of a circular arena, with scattered pieces of cover and the enemies able to shoot down from above, to keep you moving.

References:

Rayman. 1995. Ubisoft Montpellier, Ubisoft.

Super Mario Bros. 1985. Nintendo.

TAYLOR, Dan and GDC. 2018. Ten Principles for Good Level Design [online talk]. Available at: www.youtube.com/watch?v=iNEe3KhMvXM&feature=emb_logo [accessed 23 November 2020].

UNITY. 2020. ‘NavMesh Baking.’ Unity Learn [online] Available at: learn.unity.com/tutorial/navmesh-baking#5f8fa452edbc2a3616f57157 [accessed 25 November 2020].

GAM150 Week 9 – Enemies and 3D Preparations

After some playtesting and experimenting, I have changed the structure of the 2D mod to be based around a more linear progression, rather than open-ended levels. I found that players got lost more easily and had to do more backtracking in the original version. The new format requires the player to get a single collectable at the end of a level before progressing on to the next one. This way I can more easily devise levels with advancing difficulty and the player will have a more concrete feeling of progression. Unfortunately this means that I have had to take out the UI which counts the number of teddy bears collected, however I am still happy that I learnt how to implement it during the Unity workshops.

I have made a handful of levels throughout the week, which was a quick process thanks to the modular tiles I made earlier on in the project. I started by making a simple tutorial level designed to introduce the player to the core mechanics/features of the game (running, jumping, shooting and collecting teddy bears) with guiding messages written using text meshes. Following on from that, I have made some distinct levels designed to challenge the player’s aiming and platforming skills. Once the player collects the teddy bear at the end of the level the build index is accessed and the game will load up the next level in the sequence.

Another big addition made to the game is the introduction of enemy spiders. I felt that the gameplay was missing an element of risk and danger outside of the pools of acid that the player has to jump over. Using Aseprite, I created some sprites (fig) made to play as a simple two-frame animation. I made sure to stick to the same colour scheme as the acid, to signpost their danger to the player. Having implemented them into levels, I am happy with what they add to the game, as a moving obstacle and another target for the player to shoot at, besides the logs that block their path. I used two colliders on their game objects, one as trigger that detects and kills the player, and one as a collider that detects if the player has shot them. I created their walk cycles using the record feature in the animation window, having them move between two positions and flipping them on the x-axis when they reach these positions.

(Above, top) Figure 1: Screenshot. The two spider sprites. (Above, bottom) Figure 2: Screenshot. The spiders placed in the level. They walk between two points to provide a moving obstacle to the player.

I have also been brainstorming ideas for my 3D mod and preparing to use Unity’s 3D tools. I know that I would like to combine elements of terrain sculpting with structures made in ProBuilder. I have been watching Brackeys videos, to better understand both ProBuilder (Brackeys, 2019) and Unity’s terrain tools (Brackeys, 2019). My current idea is based around the player fighting their way through a canyon, picking up power ups along the way, possibly ending in a boss fight within a building. I would like to employ a low-poly aesthetic, as that would fit in with the assets already provided within the mod. Below is a low poly asset pack (JustCreate, 2020) and terrain asset pack (Unity Technologies, 2019) which I have found on the Asset Store that I will likely utilise to create the environment.

(Above, left) Figure 3: Unity Technologies. 2019. Example made using the terrain tools from the asset pack. (Above, right) Figure 4: JustCreate. 2020. The assets contained within the low-poly asset pack.

Next week I would like to start creating the level within the 3D mod stub we have been given. I would also ideally like to finish up on the 2D mod so that I can give this first person shooter my full attention for the final two weeks.

References:

BRACKEYS. 2019 How to Make Terrain in Unity! YouTube [YouTube user-generated content] Available at: www.youtube.com/watch?v=MWQv2Bagwgk&t [accessed 19 November 2020].

BRACKEYS. MAKING YOUR FIRST LEVEL in Unity with ProBuilder! [YouTube user-generated content] Available at: www.youtube.com/watch?v=YtzIXCKr8Wo [accessed 19 November 2020].

JustCreate. 2020. ‘Low-Poly Simple Nature Pack.’ Unity Asset Store [online] 24 Aug. 2020, Available at: assetstore.unity.com/packages/3d/environments/landscapes/low-poly-simple-nature-pack-162153 [accessed 21 November 2020].

Unity Technologies. 2019. ‘Terrain Tools Sample Asset Pack.’ Unity Asset Store [online]. Available at: assetstore.unity.com/packages/2d/textures-materials/nature/terrain-tools-sample-asset-pack-145808 [accessed 21 November 2020].

List of figures:

‌Figure 3: Unity Technologies. 2019. Example made using the terrain tools from the asset pack. Unity Asset Pack [online]. Available at: assetstore.unity.com/packages/2d/textures-materials/nature/terrain-tools-sample-asset-pack-145808 [accessed: 21/11/2020]

Figure 4: JustCreate. 2020. The assets contained within the low-poly asset pack. Unity Asset Pack [online]. Available at: assetstore.unity.com/packages/3d/environments/landscapes/low-poly-simple-nature-pack-162153 [accessed 21/11/2020]

GAM150 Week 8 – Menus, UI and Goo

This week’s Unity workshop was all about UI interfaces. Paul went over, canvases, panels, text and images, as well as appropriate methods of scaling and anchors/pivots. This was helpful as Unity’s UI tools have confused me in the past. With the knowledge from this session, I was able to make a menu screen for my 2D mod (fig. 1). The background was made in Aseprite (along with the text and buttons) with the line and paint bucket tools, using an Autumnal colour palette. Creating this menu meant that I also had to come up with a good name. It may be simple but I like ‘Alone in the Woods’ – it conveys the mood I’m going for with the game. Using the animation window (fig. 2) and the ‘record keyframe’ feature I was able to add some motion to the title, making it bob up and down for some visual intrigue.

(Above, top) Figure 1: The menu screen with background, title, and play/quit buttons. (Above, bottom) Figure 2: The animation timeline used to create the bobbing effect on the title.

Paul was also able to guide me through creating a piece of UI in the game itself which tells the player the number of teddy bears they have picked up and how many they have left to find (fig. 3). I also applied an outline component to the text to make it stand out against the background for ease of readability. This required a chunk of coding that I was unfamiliar with such as ‘singletons’ and ‘instances’, and I still don’t fully understand what each does but it was helpful to be go over it step by step with Paul.

(Above) Figure 3: The text overlay displaying the number of bears collected.

The final addition I made was an obstacle for the player to avoid in the form of toxic goo. I created them in Aseprite using a limited, bright colour palette that differs from the overall colours to signify that it must be avoided. I also added a collider which, when hit by the player, kills them and sends them back to a recent position. I’m really happy with this as it adds an extra layer to platforming, with added stakes and visual variety.

(Above) Figure 4: The pools of acid inside a cave, with a skull sign to signify their danger to the player.

Next week, I want to find a use for the shooting mechanic (possibly to clear obstacles in your way?) as I think that it will make the game more compelling with this extra mechanic in action. Then I’d like to lay a large level with lots of teddy bears to find. I might add a timer too, so the player can see how quickly they were able to pick them all up.

I have also spent a bit of time getting familiar with Unity’s ProBuilder package as it is what I’ll be using for the level design mod. I followed a Brackeys tutorial (2018) which went over each of the tools and how they can be used to construct 3D spaces. Next week I’d like to put more time into this, as so far I’ve definitely been focusing largely 2D mod.

References:

BRACKEYS. 2018. MODELING IN UNITY?! – ProBuilder Tutorial [YouTube user-generated content]. Available at: https://www.youtube.com/watch?v=PUSOg5YEflM&feature=emb_logo [accessed 11 November 2020].

GAM150 Week 7 – More Tilesets and Collectables

This has been a very challenging week due to some technical difficulties. My PC froze up halfway through the week and is currently in the GA awaiting repairs! As such I have not been able to do as much work on the 2D mod as I would have liked to, but prior to the crash I did make some progress on the game.

Firstly, I have expanded the tileset (fig. 1), to allow for interior cave-like systems. I’m really happy with this as it adds some much needed visual variety to the environment (fig. 2). At first it was difficult to create each tile so that they can be placed seamlessly without looking out of place (you have to be careful with repeating art so that patterns aren’t obviously spotted by the player) but I eventually I got there. I have now used this tileset to replace the example level layout with one of my own design (fig. 3).

(Above, left) Figure 1: The expanded tileset which allows for cave systems. (Above, right) Figure 2: An example of the caves that are able to be made with the new tileset. (Above, bottom) Figure 3: Part of the new level layout, I tried to add more verticality and platforming challenge.

Another addition to the game was the ability to collect lost teddy bears (figs. 4 & 5). Following along with an official Unity tutorial (Unity, 2020), I wrote some code that made it so the bears disappear when the player enters their trigger. Eventually, I would like to create some UI that shows how many collectables you have picked up/how many you are yet to find, but in the meantime I am displaying it in the debug log (fig. 6) – which serves the same function. I would also like to create an effect when they are picked up, possibly a particle system or new sprite, to make it more visually satisfying than them just disappearing. I don’t yet know how to do this so I will have to look into it soon.

  

(Above, left) Figure 4: A teddy bear before being picked up. (Above, right) Figure 5: A teddy bear after being picked up. (Above, bottom) Figure 6: The message displayed in the debug log as a temporary replacement for UI.

Moving forward, I would like to continue to expand the level. I’m yet to decide whether or not to have multiple levels or one large, sprawling level. I think after some experimentation with level layout, I will have a better idea of what best suits the game.

This week’s GAM150 lecture was on character controllers and how they change dependant on the context of the game they are part of. While this is seems obvious to most people, there are many nuances and subtleties to this. For instance, Shadow of the Colossus‘ (2005) control scheme and camera positioning are all in service of making the player seem small and insignificant to the colossi and the desolate landscape they inhabit. This led me to increase the camera’s size so that the player character is smaller on the screen and players can see more of the environment. This solved some issues I had experienced where you were unable to see the platforms you are trying to jump onto.

Due to my computer issues I was unable to join this week’s Unity workshop unfortunately, so I’ll catch up with what was covered by going over the worksheets on Learning Space.

Soon, I would like to implement some UI to my game to display the number of bears found, as well as potentially adding a menu for when the player first loads up the game.

References:

Shadow of the Colossus. 2005. Team Ico, Sony Interactive Entertainment.

UNITY. 2020. ‘Collectable Objects’. Unity Learn [online]. Available at: https://learn.unity.com/tutorial/collectable-objects [accessed 6 November 2020].

GAM150 Week 6 – Aseprite and Tilesets

Much of my work time this week has been spent creating new assets for my game mod. Having decided on a pixelated art style, I decided to buy Aseprite (which was luckily on sale on Steam!), and started experimenting with the program – within a short space of time I was comfortable with it. Having previously used Photoshop for pixel art, I appreciat Aseprite’s simplicity and clean interface, allowing for more creativity in art creations. In particular, I am a big fan of the feature which allows you to enter tiled mode, which makes it much easier to create repeating patterns. Following along with a YouTube tutorial (MortMort, 2018), I was able to create a basic tile set with which I can construct levels (fig.1). I am happy with the end result, and I think it has a fun, chunky style which fits the aesthetic I had in mind. As well as this, I made some basic sprites, including small and large bushes and a teddy bear which will operate as a collectable (figs. 2, 3, 4).

(Above, top) Figure1: The basic tile set made in Aseprite. I would like to eventually add more tiles to allow for different environments, such as caves. (Above, left) Figure 2: Small bush made in Aseprite. (Above, middle) Figure 3: Large bush made in Aseprite. (Above, right) Figure 4: Teddy bear collectible made in Aseprite.

Thanks to Unity’s tile palette feature, I was able to replace all of the tiles in the 2D game stub within a matter of moments (fig. 5). I am really happy with how it looks overall, and the tiles all repeat seamlessly. When playing, the character now looks especially out of place, so I will need to begin working on replacement sprites that fit in more with the pixelated aesthetic.

(Above) Figure 5: The 2D game stub with all tiles replaced with my own created assets and some collectables / scenery implemented.

This week’s lecture was on developing systems and the concept of emergence. I had never considered the recursive nature of systems, and how they can be imbedded within one another. It was also fascinating to study emergence, and how by definition, it is impossible to design for this, rather it is a ‘by product of intentional design’. I would love for my game to be able to allow for some form of positive emergent gameplay (without being considered a bug), but that will be largely dependent on the amount of systems I implement, which will likely not be a lot due to it being my first game. Additionally, the examples shown of cellular automata and flocking algorithms were mesmerising. It is very impressive what can be achieved from basic principles; weather effects, water currents, fire spread, moving crowds and traffic to name a few.

The Unity workshop had a lot of new information. I have been largely working in 2D, so ProBuilder was a lot to take in. From the demo given by Paul, it seems to be a very powerful tool in aiding with 3D level creation. I took some time to experiment with the FPS game example provided, and moved around some enemies, changing values such as health and speed, however I would like to give the project more dedicated time when I have the chance to. I had been thinking of creating a Skyrim (2011) dungeon using the Bethesda Creation Kit for my 3D level mod, but depending on how I get on with the engine, I may likely decide to create my mod using this versatile package.

Moving forward with my 2D mod, I would like to implement a collectable system, where the player can pick up the teddy bears, and have a counter tracking how many they have left to find. I would also like to create new sprites for the player character and extend/change the level’s layout. Lots to do!

References:

MORTMORT. 2018. My Tileset Workflow (Pixel Art & Gamedev Tutorial) [YouTube user-generated content]. Available at: https://www.youtube.com/watch?v=btnH0x7_1g8 [accessed 29 October 2020].

The Elder Scrolls V: Skyrim. 2011. Bethesda Game Studios, Bethesda Softworks.