GAMES DEV - EXERCISES


24.08.20 - 28.09.20 (Week 1 - Week 6)
Piyaphon Inthavong (0337589)
Games Development
Exercises

INSTRUCTIONS



LECTURES

Week 1 | August 24th, 2020 (Intro to Module)

The class went through a quick round of an introductory session to the Games Development module. Mr. Razif suggested that additions of project variety will be added in the semester to provide more options and opportunities for the New Media students to be exposed to new platforms. Rough project outlines were then carefully explained before proceeding to our first exercise in the practical sessions (see Exercise 1 in the bottom section of this blog for more details). At the end of the sessions, we tested a few VR demo games together on the Oculus Rift before dismissal.


Week 2 | August 31st, 2020

Today's lecture incorporates a few theory and the crucial understanding on building games.

Processes of Building a Game:

  1. Game design (preproduction phase: ideation, rules, concept, gameplay, storyline, characters, documentation & blue print for the game).
  2. Game art (assets, character design, environment design, ui design).
  3. Game technology (games development platform).
5 Core Gameplay Elements:
  1. Challenges makes it challenging for the player to reach their objectives)
  2. Chances helps the player go through difficult challenges by increasing the odds that gives them the advantage in reaching their objectives)
  3. Choices provides different pathways to the player, hence building different character/personalities to the game.
  4. Luck are subjective/surprising elements that provides the player with a boost in their favour, although they're not guaranteed in the game.  
  5. Strategy makes the player think against overcoming certain obstacles or challenges in the game. These are usually patterns in which helps the player to understand how they could develop a way or plan to overcome particular levels.

Week 3 | September 7th, 2020

As class began, Mr. Razif briefed us on a popular brainstorming method used in the industry to stimulate ideation process to build games, applications, and softwares. SCAMPER features the following:

  • Substitute - take existing product and choose which u want to improve on?
  • Combine - combining 2 products to create new and innovative products
  • Adapt - what can I adapt from my problem/process?
  • Modify - change look & feel
  • Put to use - could the product be useful somewhere else (or for a wider audience)?
  • Eliminate - Is the product as streamlined as possible? What can I eliminate or simplify in my product?
  • Reverse - what would happen if you did the exact opposite to what ur doing now?

SCAMPER article: https://www.mindtools.com/pages/article/newCT_02.htm

Alternatively, Mr. Razif suggested the simplified version SCAMPER to make idea generation faster and more straight forward. The simplified version consist of 3 components:

  • Incorporate
  • Improve
  • Invert

Week 4 | September 14th, 2020

We started the class with a Unity tutorial on the basic of platform games, which includes the mechanics of ground, character input controls (movement & jump), and door opening/idle animation. We also learned to manipulate gravity, physics, and components such as the Rigid body, and the Collider, which is essentially the boundary that defines the collision position of a game object.

Mr. Razif instructed us to create our own mini game as a part of an in-class exercise for us to understand the mechanics of physics and gravity on Unity. The following video is a quick game I made in class:


Week 5 | September 21st, 2020

Today's session is a continuation from the last weeks tutorial. As we left off from the opening door animations, we're going to work on the door trigger, the key mechanics, key input to open the door, and the game brain that controls the record of what the player has collected.

In the first part, we utilised an empty game object as a door trigger so it opens right at the moment the character is near the door, or logically when the characters' collision point collides with the object. This is to make the experience of opening doors much smoother from not having to bump it first. Next we created a key and linked its data to the "gameBrain" through script to allow the game to keep record of the keys collected in the game (same goes to the coins, and other collectable objects). We then scripted for the door to open only if the player has a key by using the bool statement player.hasKey == true. In the last few sections of the tutorial, we assigned the door to open only after a key is pressed using the input value of whichever key we choose to assign to. We reversed the process to let the door close itself automatically when the player walks through the door and added coins in the game before ending the session.

Figure L5.1. Week 5 tutorial session.


Week 6 | September 28th, 2020

The agenda of this week is the final continuation from the previous weeks tutorial on a 2D platformer. Mr. Razif focused on adding more mechanics to the game to increase the gameplay dynamic. We learned to spawn keys upon collecting a set amount of coins and created animations and special effects for the coins when are they collected the player using both the animation panel and the asset store. The animations and special effects were then applied to the keys as well upon its spawning.


Week 7 | October 5th, 2020

It was mainly a practical session that we had for the week. Mr. Razif tested our Unity platform game knowledge through various C# activities and exercises including: firing bullet using instantiate script, scripting the logic to kill monster via the collision enter of the bullet prefab to the monster. The first few challenge was to script the logic that tells the game to destroy the monster (as a game object) after 3 hits, then we were to disable the initial ability to fire bullets, as we need to unlock such ability via the bullet gem (through the bool variable). Our after-session assignment for today is to repeat the process for the ability to throw grenade, this time, the quantity of coins collected will define how much grenades the player has, while setting the input or key of the grenade launch as right-click (as left-click is for firing bullets).


Week 8 | October 12th, 2020

There was no class today. We were given full tutorials to continue working on our 2D platform game. The following video is my progress on the 2D platform game.


Week 9 | October 19th, 2020

It was yet our first session on the first-person 3D platform game. We worked on C# as usual, as the scripting embodies similar logic and function to the 2D platforms we learned in the previous weeks. The obvious distinctions between both platforms were the different vector points in which the Z-axis makes up as an additional third axes for a 3D world.

As a warm up session to it, we created a virtue museum using the pre-made assets that we were provided. Using the free and integrated character control script from the asset store, we quickly achieved the basic controls given in any FPS game. The player moves, jumps, and in addition has the ability to sprint, while having the camera fixed onto the direction the player is facing. We used the same physics system for the rigid body, the collider to work on with the game.

Figure L9.1. Unity FPS progress.

Week 10 - 11 | October 26th - November 2nd, 2020

We had a consultation slot today regarding our final project on game idea proposal. Mr. Razif passed us the game document guideline and asked each of us to present our progress.

*Week 12 onwards are consultation-based sessions for the final project.


EXERCISES

Exercise 1 | Game Reviews

As a warm-up to the module, we were given a task to play and review 2 of our seniors' 2d platform games made in Unity. I chose to review "Reaper Test" by Sam Man Hoe and "Sneak to Snack" by Katarina. Both were amazing games to check out (game URL is linked to the names).

1. Reaper Test by Sam Man Hoe

Figure 1.1. Reaper test gameplay.

Pros:
  • Impressive visual graphics assets in the first impression of the game.
  • The background story and dialogue was interesting and not too long. The typography used in the dialogue was also suitable and matches the theme of the game.
  • Supreme cycled attack animation. The game is way cooler when the player doesn't just attack the same way as the game proceeds.
Figure 1.2. Commendable (cycled) attack animations.

Cons:
As the first impression was all-rounded perfect for such a small project, the game testers (New Media students and Mr. Razif) have found many issues that pulled the game down.
  • The game has a challenging start, which is completely unforgiving for beginners.
  • The controls are not well-refined enough, this goes especially for the jumps and the sensitive on-air acceleration (it just doesn't feel normal compared to a standard 2D platformer).
  • Irritatable obstacle/level design. Almost every part or level of the game gives off a one-fail-jump-and-you-lose rule to the player. This not only makes the game impossibly difficult but unplayable (not enjoyable) to an extent.
Suggestions:
  • Add checkpoint indications. By not having a checkpoint indication in the game, the players such as myself receive not a single clue on where to respawn upon deaths or retries.
  • Beautify and enhance the In-Game User Interface. The GUI is almost completely blank, no words, no design, just you, and the graphics.
Overall:
All in all, the game gives off a really strong impression on the graphics and controls. The character design reminds me of those popular indie games on Steam with an additional hint of originality. However, the level design and the way the obstacles were arranged were really unfriendly and hence is considered as the downfall to the game. The game starts off with a sense that reminds you of Dark Souls where the tutorial is already impossibly difficult. 

By the end of our game tests, none of my friends were able to complete the game (in fact we don't even know how far we were in the game too). We all felt frustrated by the unforgiving gameplay mechanics. As the final words, the game, despite having an amazing taste of aesthetics, is considered unplayable in terms of level design.

Having a challenge is great for replayability, but too much repetition and mistakes can cause frustration (and that's what happened to us).

2. Sneak to Snack by Katarina

Figure 1.3. Sneek to Snack level intro design.

Pros:
  • Amazing first impression from the visual design assets.
  • The title and UI graphics are really well polished, comparable to the standards of those games on the App store (see figure 1.3 and 1.4)
  • Smooth assets. The graphics look well-refined with a great choice of color scheme which made the game look complete.
Figure 1.4. Interface design for the instructions.

Cons:
  • Laggy graphics on each movement (at least on my laptop).
  • The climbing animation is still on a walking animation.
  • No sight-detecting indicator. It's impossible for the players to tell how far they should be away from the human sight to be considered "caught."
  • Mis-communicating graphics. Some walls are meant to be walkthrough (which is unexpected from the normal human brain), while some walls are obstacles (see figure 1.6 and 1.7).
  • Unsaved level progress bug (see figure 1.5). Level progress is lost after exiting to the home screen.

Figure 1.5. Unlocked levels are no longer available after an exit to the home menu.

Suggestions:
  • A sight indication would be helpful, at least to let the players know how far they should stay away in order to not be caught.
  • Smoothen the graphics (the file size of the assets may be the root of the lag).
  • Add a climbing animation separate from walking animation.
  • Use different graphics/objects to indicate that certain objects can be walked through (see figure 1.6 and 1.7).
Figure 1.6. This wall can be walked over (compare to figure 1.7).

Figure 1.7. This wall is an obstacle (compare to figure 1.6).

Exercise 2 | Game Ideas

To practice the SCAMPER idea generation method we learned earlier in week 2 lectures, Mr. Razif assigned us into groups of 2 to generate 2 game ideas within an hour by using the SCAMPER method to support our process. I was grouped with Abby for the exercise, and we presented the following ideas using Mario and Pac-man as our base.

.

Comments