Game Design Blog – Kevin Wong

Labyrinth – First Release milestone reached

Labyrinth has reached a releasable state! Production is ongoing to implement additional levels.
A gameplay video is viewable at http://www.youtube.com/watch?v=U4LJTjTo_50

Here’s a look at what has been going on in the past few weeks of production.


Level 3 layout redesigned to increase variety and reduce repetition (the previous layout had a mirrored section which made the player do the same thing in reverse).



New switch boxes to trigger doors/gates/sliding walls, as well as upgraded healing powerup passive/activated particle effects.


Warp spheres have been reworked, and the visual cues to differentiate between warps leading “forward” and false warps have been made more subtle.


The edges of the level transition gates now have a little ornamentation to make them stand out more, where level layout permits.


Level 3 crystal puzzle has rune effects to make the objective clearer, and multiple crystals with differing color / rune combinations to make the puzzle more challenging.


Fireballs kill themselves if they enter the stone mouth opposite, instead of automatically killing themselves after a few seconds. They now bounce 3 times on walls and obstacles, lifespan decaying with each bounce.


Another shot of the revamped crystal puzzle.


One of the obstacles in the revamped left side of level 3, fireballs on timed waves blocking a portal on the far end.


The boss spawns out of a summoning object instead of just sitting pretty waiting in level 4.


Watch out for the boss when he breaks into an enraged charge.


Bonesnake minions spawn from the fiery footsteps, relentlessly hounding you as you try to avoid the charging boss.
If you break line of sight with the boss he has another surprise to pull.

Labyrinth – Game Production progress update

Labyrinth production is ongoing!
As of this point, a bunch of miscellaneous bugs have been fixed, and tileset improvements are underway.
Here’s a look at what has been happening in the past few weeks.


Pitfall traps actually have a model instead of being a black cube now, and stand out more visually.


Different levels will have visually distinct walls and floors instead of recolors.
This is level 2′s new tileset.


This is level 3′s new tileset.


Tweaked the puzzle 3 hint a bit to make it more obvious, and to allow it to be seen from each side’s puzzle room.


Work in progress of the boss room’s new geometries.


A treasure chest.


New arched gates that have a stronger silhouette and can accommodate taller objects passing through without clipping.

Next up will be a bunch of code changes to get pathfinding enemies with smarter attack behaviors, stay tuned.

ITGM 402 – Assignment 1: Game Critique

Critique and Analysis of a Game
Title: Pokémon X and Pokémon Y
Platform: Nintendo 3DS
Publisher: Nintendo/The Pokémon Company
Developer: Game Freak
Release: October 2013, Worldwide simultaneous release

Pokémon X and Pokémon Y mark the start of the sixth generation of Pokémon main series games, and contain the largest aesthetic changes to the main series to date.
The core gameplay mechanics remain the same as always, with the young player character setting out on a journey of self-discovery, traveling on a route leading through all the towns in the game region. The player is assigned the same primary goal as all main series Pokémon games, which is to fill the Pokédex, an electronic data archive of Pokémon. The player accomplishes this by finding and capturing wild Pokémon. Along the way, the player is required and expected to hone their skills as a Pokémon trainer, by engaging other trainers in battle using teams of up to six Pokémon at a time. Any additional Pokémon caught are sent to a storage device and can be accessed in towns.

Pokémon X and Y maintains the goals and themes that made previous Pokémon main series games successful, and manages to add new features that decisively improve the franchise without disrupting the core gameplay loop.
However, when viewed objectively, the complexity and frequency of non-aesthetic changes to the game are on the conservative side. The game also has a number of issues that remain unaddressed, that impact its longevity compared to the previous generation of games (Generation V, Black and White / Black and White 2, particularly the latter). Most notable are the lack of post-game content (content unlocked after completing the compulsory story mode) and the relatively low amount of new Pokémon introduced in Generation VI, a mere 69.
Overall, the game is still a solid addition to the series, and definitely offers the richest aesthetic experience by far. One should be wary, though, of expecting world-shattering changes to the franchise – aside from looking much prettier, it’s still another Pokémon main series game following the same pattern.

The entire core loop of a Pokémon main series game can be deconstructed into several smaller games, layered around a tool that enables all these games to function together in a logical manner.
Pokémon discovery/capture/collection, Pokémon battling, Pokémon breeding, and the actual adventure through the game world, through which the player is presented a story (which is heavily railroaded and offers practically no branching choices).
Through it all, the player is the one to establish their own motive for playing the game. The story driven motivation remains the same across all main series games (fill the Pokédex, become a great Pokémon trainer and defeat the Pokémon Champion), and is woefully thin by RPG standards. However, the gameplay itself is solid enough that it can stand alone without any semblance of story to support it, and the trading and competitive elements of the game allow it to last long after the story mode has been completed, assuming the player takes up one or both of the optional goals to complete the Pokédex or become a skilled Pokémon trainer.
As mentioned already, Pokémon X and Y do not break this established formula, instead playing it safe and adding features around this well-honed core loop.

New features:
3D graphics (as peculiar as this sounds on a “new features” list)
Pokémon is a thriving franchise with many spinoff games, but for the first time among the main series Pokémon games (churned out since 1996), Pokémon X and Y are presented in full 3D graphics, with situational support for the stereoscopic 3D projection used by the 3DS hardware.
Pokémon main series Generations I, II, III and IV were entirely sprite based, and Generation V overlaid sprites on a pseudo-3D overworld while retaining the camera perspectives and sprite based Pokémon battle system. Only in the end of 2013 with Pokémon X and Y, Generation VI, surprisingly late compared to countless game franchises, did Pokémon adopt an entirely 3D mode of presentation.
There are two sides to this feature.
First, this evolution was a logical step forward, affording increased immersion and believability to the franchise by bringing the titular Pocket Monsters to “life”. Prior instalments primarily depicted Pokémon as largely static sprites, with a few instances of simple 2-3 frame animation cycles. Now, Pokémon move fluidly and have several different patterns for their attacks (eg. using a fist or leg to attack, emitting a beam or particle from the mouth or mouths, extending a tentacle, using a wing, using a claw, and so on). Additionally, there exists a minigame where one can pet and play with their Pokémon, receiving happy reactions in return (or displeased reactions if the player isn’t careful).
However, this aesthetic change had some drawbacks. Compared to creating a single sprite per Pokémon, the transition to 3D required a great deal more work on the assets side to animate and rig the now 718-strong list of Pokémon. Additionally, all of the Pokémon are lovingly rendered, with unique and varied reactions to different game situations. The vastly differing body shapes of Pokémon present the need for multiple rigging skeletons – while there are many bipeds and quadrupeds, there are also Pokémon with varying numbers of tentacles, extra arms or heads, or even multiple torsos. On top of this, the player avatars are now customizable, and can have many different gender-specific clothing options (albeit some being palette swaps) which show up in both full scale and miniature modes.
This gargantuan effort, combined with the relatively short development period for a main series Pokémon game, resulted in world and character asset creation taking up a disproportionate amount of development time. Due to this, there was a relatively small number of new Pokémon added in Generation VI (a mere 69) and the post-game content is seriously lacking in quantity.
Additionally, several portions of the game which attempt to push the envelope by placing the player in a complicated 3D environment suffer greatly from poor camera angles. The games use a form of Rail Camera that automatically adjusts as the player enters each section of an area, in order to provide a preset view. In certain areas, the player can also swing the camera around the player avatar to “look around”, but cannot choose to pan the camera up or down.
In the most troublesome spots, the camera would be positioned in a very tight over-the-shoulder chase view which gave a restricted field of vision that made navigation difficult.
Thankfully, the areas in which this happens are few – though to play the devil’s advocate, the most important geographical location in the game is a hotspot for these issues.

Fairy typing – an attempt to balance the metagame
Pokémon essentially works off a complex Rock Paper Scissors matchup system. Individual Pokémon have one or two elemental types, which perform well against some types and poorly against other types. This affects both the offensive and defensive capabilities of the Pokémon, and need not be two-way. For example, an attack of the Ground type is unable to damage a Pokémon of the Flying type, but this does not mean that an attack of the Flying type will be very effective against a Pokémon of the Ground type.
The initial release of Pokémon Red and Green (Japanese naming) in 1996 contained 16 different types (Normal, Grass, Fire, Water, Electric, Ice, Rock, Ground, Bug, Poison, Psychic, Fighting, Flying, Dragon, Dark, Ghost). This was later expanded to 17 in Generation II with the addition of the Steel type. Generation VI introduced a new type for the first time in many years, the Fairy type.
This was done for balance reasons to counteract an overwhelmingly strong type, the Dragon type, by granting the Fairy type great effectiveness against Dragons, who previously had many strengths but few notable weaknesses. In addition to this, a number of existing Pokémon were modified to become Fairy or part-Fairy type. This balancing act allows more viable Pokémon to challenge the Dragon type, but only if the player chooses to train and incorporate one into their team. This allows additional team building options for players when attempting to counter the Dragon type. The Fairy type also has severe weaknesses to previously underused attacking types, which may lead to an upsurge in these types as a counter to Fairy Pokémon who will inevitably take to the field to counter the ubiquitous Dragons.
In addition, the Steel typing, previously the best defensive type, lost two resistances against Ghost and Dark (while gaining a resistance to Fairy). This changed the effectiveness of certain Pokémon against one another, as well as lowering the previously overwhelming defensive quality of the Steel typing.

In a game about collecting and raising virtual monsters, most Pokémon games lack a way to actually connect with your Pokémon in an emotional sense. Earlier generations attempted this, such as Generation I’s Pokémon Yellow version, where the player character’s Pikachu was able to follow them around, and express its emotion in certain situations. A similar feature was also included in Pokémon HeartGold and SoulSilver, this time extended to every Pokémon available at the time. However, these features were experimental and only made their appearances in a single game each.
Generation VI brings back and refines the ability to interact with Pokémon by using the touchscreen of the 3DS unit to allow the player to pet, stroke, feed, and play games with the Pokémon in their team.
Pokémon will express happiness when played with, and have liked and disliked areas when stroked. Each individual Pokémon exhibits different behaviors in Pokémon-amié and it offers an unparalleled insight into how Pokémon behave, a huge step forward from the sprite days where a 5-pixel bounce and a quick left-right-left wobble was as much interaction as you would get from your trusty Pokémon companion.

New battle modes
Each Generation attempts to add additional modes of battle to the game, though these are never used as much as the original mode where teams of up to six Pokémon battle each other in a 1v1 format.
Generation VI adds three such formats to the game.
Sky Battles attempt to simulate air combat, and only Pokémon who are capable of flight (whether or not they are Flying type) can participate. In essence, it’s handled quite poorly as rather than being a new mode of battle, it’s merely an extensive ban list of Pokémon and attacks that are not eligible for use during a Sky Battle.
Horde Battles occur in the wild, and pit the player’s Pokémon against five wild Pokémon simultaneously (who are significantly weaker than Pokémon of the same species encountered singly). Rare Pokémon occasionally appear in the midst of a Horde, and these can only be captured when the other four Pokémon are defeated.
The last new battle mode is the Inverse Battle, which is the most game changing of the three. Under Inverse conditions, all type matchups are inverted. Types that are strong against a certain type are now weak against it, and vice versa. This battle mode offers immense replayability by mixing up all the existing preconceptions about which Pokémon is of great effectiveness against another Pokémon. However, Game Freak really dropped the ball by making Inverse mode only available in one specific small house in the entire game, and further more only once every 24 hours.

Streamlined social features
One of Generation VI’s strongest features is the PSS, or Player Search System. This allows a 3DS with an internet connection to seamlessly and quickly establish contact with players across the world, allowing Pokémon trading, battle, or just basic communication between players.
Previous games required the player to be in certain special areas of the game to access online networking functions, and allowed fewer players to simultaneously connect at once. These restrictions were mostly lifted by Pokémon X and Y, in no small part thanks to the capabilities of the 3DS. Furthermore, the worldwide global release and the compatibility of all language versions of Pokémon X and Y with one another mean that players across the globe can now connect through the game with far greater convenience than ever before.

Game Demos!

Here are playable demos for two of the games I’ve produced, Labyrinth and Hildegard.
Both games are executables for Windows compiled by Unity, packaged in .rar files.
To play, unzip the .rar into a folder. Ensure that the .exe is in the same directory as the accompanying data folder, and run the .exe file.



Contains three levels with steadily increasing complexity, and a boss fight.



Contains three levels. The second level contains the bulk of the content. The third is a dead end where the player can only die.

If you do not specifically use the two links above, I cannot be held accountable for the contents of the files, in case others modify and rehost them.
I can vouch for the safety of the two games above as I created them practically from scratch with only a trace amount of external assets.

Known issues:
Labyrinth – Alt makes the camera rotate and not reset to the default position. I haven’t gotten around to cleaning up this functionality as Alt isn’t used in standard gameplay.
Labyrinth – Enemy pathfinding is extremely basic and relies on a Line-of-sight raycast. As such, they’re easy to abuse LOS issues with.
Labyrinth – The game has no actual lose condition, going into negative lives is possible without ill effect.
Labyrinth – The game has no actual win condition, beating the boss is the end of the playable content and the game can then be quit manually.

Hildegard – Lighting on level 2 is not optimized yet. There may be a performance hit on older machines.
Hildegard – The Rope item has no function yet.
Hildegard – Level 3 does not have a goal as of yet.

Portfolio update

Phew! I haven’t been using this blog in quite a while.
This update is just so I can establish an online version of my portfolio that I can quickly link to.

Image 00

Image 01

Image 02

Image 03

Image 04

Image 05

Image 06

Image 07

Image 08

Image 09

Image 10

Image 11

Image 12

Image 13

Image 14

ITGM 405 – Project plan and schedule


Emotional state is often disregarded in the process of level design and balancing (add reference here). Manipulating and quantifying player emotion should be considered as important as the distribution and placement of antagonistic entities, environmental hazards, and puzzles. As the player’s emotional state will alter how they perceive and react to the challenges at hand, it must be accounted for in the design process. The player’s emotional state can be manipulated by the designer, by the calculated placement of appropriate stimuli (add reference here). Doing so will greatly enhance the options available to the designer with regard to controlling and/or predicting how the player acts in a given situation.


The goal of this game is to allow the player to experience a wide variety of fearful emotions, and encounter various levels of challenge, altered by the emotions they are currently feeling. In doing so, the player will have a more fulfilling gameplay experience, as both the logical and emotional sides of their mind will be utilized.

Proposed plan:

First person suspense/survival horror game.
3D graphics.
Low combat, high puzzle, moderate textual feedback.
Minimal user interface elements.

Production method:

3D assets modeled/rigged/animated in Maya
Texture painting done in Mudbox
Additional 2D assets as required, created in Illustrator and/or Photoshop
Assets collated and game built using Unity 3D
Scripting done in C# [requires learning syntax] with Javascript as fallback language


Task list and Schedule:

Week 02-02: Research horror genre
Week 02-02: Research existing horror games of various types
Week 02-03: Create style sheet
Week 03-03: Establish plot specifics
Week 03-03: Establish game progression flowchart
Week 03-03: Tabulate required assets
Week 03-04: Plan level layout(s)
Week 04-04: Plan level challenges, puzzles, etc.
Week 04-04: Write textual feedback to be received by player over the course of the game
Week 04-05: Model level geometry
Week 05-05: Model game objects
Week 05-05: Model game actors
Week 05-05: Texture models
Week 05-06: Create 2D art assets
Week 06-06: Import all assets into Unity 3D, assemble level prefabs and set collision and walkable areas
Week 06-06: Program movement controls and basic player character functionality
Week 06-07: Program object interaction and scripted events
Week 07-07: Program enemy AI
Week 07-08: Program puzzles
Week 08-08: Balance game variables

Week 08-10: Proceed until completion

ITGM 405 – Project Proposal for Studio 1, and ten open questions regarding the project

My project for this course will be a suspense-horror game.
I am currently leaning towards creating a relatively combat-light game which very rarely involves explicit gore or frightening monsters jumping out at the player from dark spaces. The bulk of the horror elements will come from the environment, objects that may be found within, and information presented to the player (scraps of paper with writing, etchings on the walls, paintings/murals, triggered sound or particle effects, and so on).

The problem I wish to tackle is how to instill fear in the player in as many different ways as possible. Additionally, I would like to clearly manipulate the emotions of the player, bringing feelings of fear, shock, nervousness, anxiety, panic, worry, and so on – clearly designing for the effects of these emotions and planning where they occur and how they will affect gameplay in that specific segment of the game.

Ten open questions:

1. What are the common game methods of generating fear?
2. Differentiating fear/shock/nervousness/anxiety/panic, etc.
3. How to balance power/vulnerability? How much is enough?
4. How many horror games utilize weapons? (How many don’t?)
5. How important is the “boss battle” concept?
6. How important is the threat of player death? (+ Permadeath?)
7. Is it possible to establish a sense of fear in a non-real-time environment? (e.g. turn-based game) /or/ How important is the sense of urgency when generating fear?
8. How to balance “fear level” between brave/cowardly people?
9. Is it possible to cause psychological damage, trauma, etc. by being “too scary”?
10. How does having a game UI affect fear generation? (e.g. does it reduce immersion by adding visible “game elements”?)

ITGM 405 – Exposition of Work

I like immersive games with meticulous (read: ridiculous) amounts of detail, content, and meaningful choices that are rarely just a matter of right and wrong.

Narratology and ludology both matter greatly and hold equal importance to me.

I’m interested in the artificial creation of emotion in players.
My current focuses are “fear” and “relief”.

My goal is to create an immersive virtual world that can temporarily remove a player from the real one.
This is not just because they’re focusing on hitting buttons, or trying to get a top score.
This doesn’t necessarily require photorealistic graphics.
Nor does it require mirroring every last aspect of the real world.

This does mean offering a clearly-defined set of world rules (which doesn’t necessarily have to follow natural law, physics, etc.), within which the player is free to pursue any conceivable path in a manner that provides fair returns for effort.
This also means engaging the player on all levels, challenging them physically, mentally, and emotionally.

I’m working on several skills at once to better enable myself to work on a game from start to finish.
3D modeling, rigging, animation
Level design
Interface design

I want to be able to dabble in most parts of the development process, as well as have the necessary skills to work on a project alone.

ITGM 305 – 13 Guidelines for Social Media Application Design

1. Network proliferation
2. Competitive gameplay (leaderboards, progress rankings, etc.)
3. Time-based re-engagement
4. Minimal Viable Product
5. Accessibility and availability (the easier, the better)
6. Target (largest demographic is currently women age 40-50)
7. Positioning simplified
8. Shallow escapism
9. Element of anciety
10. Attachment to property, sense of ownership (regarding avatar, inventory, game progress, etc.)
11. Shorter play session, law of economy
12. Visibility of achievement among social network
13. Cooperative options (eg. gifting)

ITGM 315 – Assignment 08 (Final)

For this final project, everything we learned this quarter had to be used, and advanced even further, to create a playable game demo.

To show advancement in learning over my previous projects, I decided to venture into full 3D, in tandem with the work I was doing for the ITGM 351 assignment.
To this end, I looked into Dark GDK, a game development kit for Visual C++ 2008 Express. While this IDE is hardly the most recent version, it had hassle-free access to the GDK which enabled me to work more smoothly than if I had undergone the many steps to enable it to run on VS 2012 (and even then, with reduced functionality).

For the most part, C++ logic was used to program in Dark GDK, with the addition of a great many additional commands that could be used. Examples were to create primitive 3D forms, generate terrain based on height maps, and calculate primitive collision.
I was dissatisfied with the quality of the collision detection in the default Dark GDK installation, and added a plugin by the name of Sparky’s Collision to enhance this.

For the purposes of the assignment, I focused on the techniques involved, as opposed to the game design, and so I settled for a simple 3D puzzle/exploration style game with a chase camera following a controllable sphere as the player.
Constraining the camera behind the sphere, and setting up movement controls was simple.
Next the level was generated from prefabricated blocks in the free version of FPS Creator, and the resulting level information was ripped as a .dbo file. Maya could have been used to create a more detailed level, and indeed I had some assets lying around from old personal projects, but I wanted to gain familiarity with yet another new tool that could be used to save time in the future.
This level was loaded into VC++ 2008 and built into an object with the corresponding Dark GDK command. Additional furnishing was installed in the level by way of creating primitive 3D forms and orienting them in different positions around the level. These were assigned to the same collision group, and then an additional line of code in each directional movement control prevented the player from moving through all objects within that specific collision group. This ensured the player was firmly ensconced within the bounds of the level and could not escape by rolling through walls, etc.

Using some of the logic from my very first ITGM 315 assignment, I tweaked at the provided sample code until I had a satisfactory facsimile of gravity. Additionally, by utilizing advanced raycasting built into Sparky’s Collision, the player sphere was made to be able to determine whether the point of collision on a surface was able to support it – if not, it would slide off instead of sticking. Additionally, sliding collision was added so that the player would be able to keep moving if they hit a wall at an angle, or collided with a rounded surface. Only when the player collided perfectly perpendicular with a flat wall would they not slide to either the left or the right.

With these advanced player mechanics worked out, it was a simple task to arrange the level into a basic progression to showcase the world physics in order.

Screenshots follow.

Image 01

Get ready to roll! Har har.

Image 01

As expected of a ball, you can bounce up (or jump, rather).

Image 01

Don’t fall!

Image 01

Not slanted enough to induce sliding.


Get every new post delivered to your Inbox.