of 16

Game Design Document - Final.pdf

Published on April 2017 | Categories: Documents | Downloads: 3 | Comments: 0



Game Design Document


Team Addictive – Nanyang Technological University - April 2012

This game tells the story of Enki, a humanoid living in a utopian digital world. After his fated discovery of a hoverboard – Sentience, he began to question the meaning of life in the digital world. Riding the newly found hoverboard, he began to seek the answers of his life and the truth behind the digital world. His journey will not be an easy one, as there are obstacles that will prevent Enki from reaching the Archives, where all knowledge are stored.

Game Overview
Game Concept: Enki takes inspiration from Japanese TV show: Hole in the Wall, movies: Back to the Future, Tron: Legacy, and the game: Sonic Free Riders. Each core aspects of those titles are adapted and delivered towards the players in an exciting and fun way. Genre: Simulation, Puzzle Target Audience: Teenagers, Adults Platform: PC (better with Kinect/ PrimeSense motion capture device) Number of Players: 1

Team Addictive – Nanyang Technological University - April 2012

The Team Behind the Game
Enki is developed by team Addictive, consisting of students from Nanyang Technological University Singapore: School of Computer Engineering and School of Electrical and Electronic Engineering. Gerry Yulian - producer, lead game design, QA In charge of scheduling the game development phases and acts as the bridge between various functions of the team as the Producer. Led the game design brainstorms, creating the main storyline and adjust the difficulty of the game and decides on the final implementations as the Lead Game Designer. Test and helped solving bugs in the codes as a Quality Assurance.

Ericko - lead QA, game design, programmer (research) In charge of testing the game in each development phases, and has also made sure that the implementations are aligned with the game design as the Lead Quality Assurance. Researched on the GameFactory engine's capabilities and disseminated the info to other functions within the team as a Programmer (Research). Had also contributed to the overall game design mechanics and implementation.

Andrean Susilodinata - programmer (mechanics implementation), QA, game design Contributed to the game development as the mechanics programmer, creating key implementations such as collision detection and handling, scoring, random object generator, life and fuel bar panel. Fixed bugs appeared in the integration process and tweaks the level mechanics as a Quality Assurance. Submitted several game design ideas during the early brainstorm process.
Team Addictive – Nanyang Technological University - April 2012

Samiadji Falahanif Ranggagani - character design and modeler, game design, game trailer Designed the model of the main characters, Enki and Sentience using Autodesk Maya and Zbrush. Had also contributed to the motion detecting implementations by giving suggestions on how it could be improved. Helped to create the final trailer of the game.

Euston Lee Yousheng - object design and modeler, game design, game trailer Proactively produced the model of various elements inside the game: the environment, the obstacles, and the collectibles using Autodesk 3DSMax, Autodesk Maya, and Adobe Photoshop. Submitted several game plots during the early brainstorm process. Additionally, also responsible of creating the final trailer of the game.

Reinardus Surya Pradhitya - programmer (kinect interaction), game design, QA In charge of the integration between GameFactory engine and Kinect/ PrimeSense motion capture device via network packets sending and receiving process. Had also came up with the design of the Random Obstacle Generation as well as the implementation of motion captures required within the game: leaning right or left, standing still, and jumping. Raised valuable feedbacks on the game's behaviour and implementation, subsequently increasing the game's user-friendliness level.

Team Addictive – Nanyang Technological University - April 2012

Objective: The objectives to the game is to gain as many points as possible. Points are accumulated automatically as the player progresses within the game. Game Flow: Players start the game in the easiest level, where only the easiest patterns can appear so that new players can familiarize with the game environment. Progressively, the player will move faster and more complicated patterns will appear in later levels. Fuel and Life Point: The player has three life points in the beginning of the game which will decrease when the player hits an obstacle. Additionally, the player would also need to preserve the fuel of the hoverboard. The fuel bar depletes along time and can be refilled by collecting green crystals. When the life point reaches zero or the fuel bar is fully depleted, the game ends. Puzzle Patterns: There are three types of obstacles in this game: Data Packet, Overhead and Ground Firewalls. The placement combinations of these three obstacles will make a pattern. The patterns are introduced to the game environment randomly, and depending on the level difficulty. Motion Capture: Kinect/ PrimeSense motion capture device is used to track player's behaviour. The recorded behaviour will then be sent as data packets through a local connection socket to the game engine. The game engine will move the main character according to the command received inside the data packet.

Team Addictive – Nanyang Technological University - April 2012

Game Elements
1. Enki

Enki is a humanoid living in the digital world. One day, after he discovered an intact hoverboard, Sentience, that gives him the idea to traverse the Digital Line and seek the truth of the digital world. As Enki soon possess the sentient that other digital humanoid doesn't have, we named him after the Mesopotamian god of intelligence.



Sentience is a mysterious hoverboard that is found by Enki when he was working as data errand. Sentience has the ability to talk and gives Enki advices on how he could uncover the truth behind the digital world.

Team Addictive – Nanyang Technological University - April 2012


Digital Line

Digital Line is the main data transportation line of the digital world. Every data in the digital world are passing through this line. On its end lies the Archives, where all truths and knowledge of the digital world are stored.



In his venture towards the Archives, Enki will need to avoid several obstacles in the form of information crates and security Firewalls. Information crates are data packets that flows through the Digital Line. On the other hand, security firewalls are protective devices which filters faulty information crates and guards the Archives from intruders.

Team Addictive – Nanyang Technological University - April 2012



In order to stays sharp and continues running, Sentience needs “food for thought” in the form of green crystals. Green crystals are scattered everywhere in the Digital Line. Upon grabbed, it will automatically fills Sentience's fuel tank.

Team Addictive – Nanyang Technological University - April 2012

1. Level

Early levels of the game (Level 1 – 3) is designed to familiarize new players to the game. The slowest speed is used and only the easiest patterns will appear in these levels as player might have to calibrate themselves in the environment. Moderate patterns will start to appear in Level 4 and the movement speed is quicker. In Level 5, the player would unlock the jump feature which will be useful to avoid jumpable obstacles appearing in Level 6. In Level 9, hard patterns starts to appear in the environment and movement speed has sped up drastically. The maximum levels is 13 and only the most agile players can survive in the environment. Three-columned environment is used in this game, meaning that the player can only move between three positions: left, middle, and right. We took this implementation as it eases the Kinect/ PrimeSense integration and is more user-friendly. (see also: Control) 2. Physics

Simple kinetics and collision detections are implemented in this game, including acceleration and gravity. Acceleration are being used to determine the movement of objects while gravity pulls the main character while jumping. Collision detection is implemented by checking the character's position compared to the other objects.

Team Addictive – Nanyang Technological University - April 2012



A motion capture device is needed to play the game. Player's motion will be detected and the hoverboard rider in game will move accordingly. There are four types of actions that can be triggered by the player: 1. Lean left By tilting the player's body slightly to the left, the motion capture device will send a command to the game character to shift to the left column 2. Lean right Similar to the lean left command, by moving a little bit to the right, the game character will move towards the right column of the environment. 3. Middle position By staying in the middle position – the same position where the player is first scanned – the game character will moves back/ retain in the middle column of the environment 4. Jump Jump is useful to avoid ground firewalls which might burn the hoverboard. (or the hoverboard rider too)

Team Addictive – Nanyang Technological University - April 2012


Unlimited Road Effect

In order to create the unlimited road effect while saving resource and still giving players the sensation of moving forward, we decided to move the road towards us and refresh to its default position after a fraction of the road has been passed. In each frame, the following script is being called: roadmove:MoveTo_AtoB( roadmove.position + roadmove.orientation * Vector(1,0,0) * 10, false, false, true) if roadmove.position.x > 18 then roadmove.position = Vector(0,0,0) end



The score is determined by the amount of time the players has survived in the game. The formula used for the scoring is: timer = timer + Scene.elapsed() score = timer*10

Team Addictive – Nanyang Technological University - April 2012


Random Obstacle Generation (R.O.G)

Obstacles appear in the form of patterns. A pattern is designed as a 3x3 field, with 5 indexes filled with a marker for an obstacle. These patterns made to make sure there is always a solution to the incoming obstacle pattern. The initial vector positions information are stored within that marker. The first three indexes are reserved for data packet obstacles and the fourth and fifth indexes are reserved for firewalls. Example: pattern[7] = {} pattern[7][1] = Vector(-105,-4,0) pattern[7][2] = Vector(-130,0,0) pattern[7][3] = nil pattern[7][4] = nil pattern[7][5] = nil In the pattern above, it means we will have two data packets and 0 firewalls. We have a total of 14 patterns, which will be chosen randomly each time a new obstacle needed to be generated. Those 14 patterns cover all of the possible combination of obstacles which have a specific solution. In one runtime, there are two sets of obstacles. Those two move toward the positive direction, moving into the player. Whenever a pattern is on the half-way between its respawn point to the player, a new pattern is generated. And once the pattern reach the character (either hit or not), it will be respawned again to the starting point. The two sets take turns in moving and being refreshed. We are implementing this so that the player won't experience a big gap between the patterns.

Team Addictive – Nanyang Technological University - April 2012


Fuel Bar and Life Point (implements Collision Handling)

The life point of the player will decrease when the player hits an obstacle. The collision detection mechanism is done by comparing the position between the main character and the objects. if((enki.position.y > -1) and (enki.position.y < 1)) then charpos = 2 elseif((enki.position.y >= 1)) then charpos = 3 elseif((enki.position.y <= -1)) then charpos = 1 end if((box[1].position.x > -6 and box[1].position.x < 0) and charpos == 1) then hitLabel.text = 'Hit by box 1' Sound.play(soundPlaying,'./media/KinectChar/sound/scifi018.wav') if(hitted == 0) then life -= 1 hitted = 1 end end Additionally, the player would also need to preserve the fuel of the hoverboard. The fuel bar depletes along time and can be refilled by collecting green crystals. The collision handling between the player and the green crystal is done similar to the obstacle objects.

Team Addictive – Nanyang Technological University - April 2012


Motion Detection

We modified NiUserTracker application source code, provided by OpenNI, for motion detection. It basically translates informations captured by PrimeSense into one of four strings, left, right, mid, or jump. For determining left, right, or mid, we make use of two points which are the neck and the torso. We take the value of Neck.position.x – Torso.position.x and judge accordingly. If the value is less than -40 we determine it to be left, else if the value is more than 40 we determine it to be right, and the rest is determined as to be mid. For jump action, we take the values of Torso.position.y for the first 2000 frames, which will be done before the point in game where jump feature is unlocked. We take the average and maximum value, and use it to determine whether the player is jumping or not. If the player's Torso.position.y is more than (avg+0.2*(max-avg)), we determine the player to be jumping. 9. Command Sending and Receiving

The process started with the NiUserTracker program configures itself as the server, after it detects the first user. An initiator packet is then send to a specific network port and NiUserTracker iteratively waits for an acknowledgement signal. The game, after it has been started, detects the initiator packet and replies with an acknowledgement signal. Thus, a connection has been established. The NiUserTracker then continues to track the player's motion and classify them into four type of motions: left, right, mid, and jump (see also: Motion Detection). Simultaneously after that, a string data packet bearing the motion information is sent towards the GameFactory engine. The game, repeatedly asks for updated data packet in each frames and sends command to the main character based on the string data packets it received. (see also: Control)
Team Addictive – Nanyang Technological University - April 2012

Sound and Music
As the “digital world” theme constructs the game, techno/ electronic music will be used. All of the resources are gained from free game resources available on the net. A role model of the background music will be Daft Punk's Derezzed, which is the official soundtrack of the movie Tron: Legacy. www.free-loops.com Trance House Loop-22398-Free-Loops.com.wav www.grsites.com scifi013.wav scifi018.wav scifi034.wav various sites 28843_junggle_btn033.wav 28855_junggle_btn045.wav Bleeep-Public_D-17.wav Game_Over.wav Ready_Go.wav Laser.wav 82264_Timbre_tigersound_ufo_pass_3D_WC1050.wav

Team Addictive – Nanyang Technological University - April 2012

Development Phases
1. [GF] Building GameFactory, getting it to work √ 2. [PS] Research and testing PrimeSense capabilities √ 3. [GF] Use keyboard to move character. Use example 3rdFPS Game sample project √ 4. [PS] Outputting various point of interests location (Torso, Neck, Waist) √ 5. [3D] Obstacle and laser model creation √ 6. [GF] Moving obstacles and lasers √ 7. [PS] Outputting user's behaviour (jump, lean left/right, stand still) √ 8. [GF] Set the camera to a third person view (from behind-above character) √ 9. [GF] Moving two or more objects (obstacles and lasers) automatically √ 10. [3D] Character model creation √ 11. [3D] Level model creation √ 12. [GF] Wall/ object collision detection √ 13. [GF-PS] Integration between GameFactory and PrimeSense √ 14. [3D] Creation of 3D railings for the Digital Line √ 15. [GF] Implements Scoring mechanics √ 16. [GF] Implements Random Object Generation mechanics √ 17. [GF] Implements Level mechanics √ 18. [GF] Show story panels √ 19. [GF] Green Crystal model creation √ 20. [GF] Implements Fuel Bar and Life Points √ 21. [GF] Add sound and background music √

22. [GF] Implements GameOver screen √
23. [GF] Testing and Tuning √ 24. [GF] Packaging and creating the game trailer √

Team Addictive – Nanyang Technological University - April 2012

Sponsor Documents

Or use your account on DocShare.tips


Forgot your password?

Or register your new account on DocShare.tips


Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in