Friday 29 November 2013

Design your game item: Terraria

Things like the hook shot in Zelda or the Morph ball or 
grapple beam in Metroid are game-changing items that 
influence how players play the game and the new areas that 
they have access to. For one of the games that you have 
played, design an item and describe in sufficient detail how 
this changes the game and what new mechanics it enables.


The game I will be talking about today is Terraria, a 2D adventure, sandbox game developed by Re-Logic Game Studio. The game features a randomly generated open world that focuses on exploration, resource gathering, crafting and combat. Now there are a lot, I mean a lot of items in Terraria and offer a verity of game changing moments. I want to add one more, game changing item to its impressive list.

Terraria's worlds are randomly generated and open world so you are often traveling in the world. There are plenty of ways to move around the world from double jumping and rocket boots, to angel winds and grappling hooks. I would like to add one more method of movement, the Teleportation Stone. This Item has to be equipped in your accessories in order to use it and will consume the player’s mana when activated. To use the stone you press R and your character will instantly teleport a set distance towards the mouse cursor. If the cursors location is not accessible then the stone will more the player to the closest possible location. The stone will consume 40 mana and players must have enough current mana to use the stone.

The stone will offer a new way to navigate throughout the world. This item would make caving much easier as you can move freely from cliff to cliff and gather resources. It would let players get to though really hard to reach spots in caves. I found that there are not a lot of magic items that made you want to focus on mana. This item would make players spend more time on increasing their mana and regeneration as opposed to range and melee. This would add a whole new level to combat and would help melee heavy players to get in and out of fights. Lastly the ability is adds a coolness factor to the game. The ability to teleport fascinates a lot of people and it is a lot of people's (including me) ability. I would place this item near the end of the game as having it at the end gives players something to work towards. When players work hard and finally get that awesome ability it is rewarding to the player.  You are rewarding the player for making it that far in the game, and what better way to reward the player then with the ability to teleport. 

Halo Reach Blog Quest 1 (#2)

Do you remember any stories within a game that have 
gripped you, and moved you emotionally, or sparked your 
imagination? If this has ever happened to you, then why? If 
not, then why not? Write a blog post about this. 


Halo Reach was Bungie's last game mode under the halo title. They wanted to leave fans with a story that was different then all the others and show the fans a different side of the halo universe. Halo Reach is a prequel to halo combat evolved the original halo game. The Story does not involve master chief and takes a much darker route then other Halo games. Halo Reach's story touched me emotionally which not a lot of games can do.

WARNING as I do not want to ruin the story for anyone, if you have not played Halo Reach and do not know what happens then do not read this as there will be some spoilers. I don't like it when there are no warnings before spoilers are talked about so I will state it here before I begin.


Since the halo universe is ever so expansive with lots of back story in related books, the setting of Halo Reach is known before you start playing. Since this is a prequel to Halo Combat Evolved you already know what will happen in the end. Reach is a planet that humans have colonized on. This is the farthest planet to be colonized and is the edge of humanity's reach in the galactic universe. From the beginning of Halo Reach I know that the planet will be destroyed. Since I know that the planet will be destroyed I told myself that I was not going to get emotional attached to anything. This is my immediate reaction to avoid getting hurt in my feels (a device that registers feeling also known as you feeler). 

The game starts with a cut scene and introduces Number 6 (the player's character) and the rest of Nobel Team. Once you are introduced you get brief on the situation and sent out on a mission. Now as a player I felt like it was a good introduction to your team and get settled down to playing the game. The game continues to pan out with the regular shooter campaign move to a location and complete objective and move to the next location. I thought that I was safe and I could get through the game without getting attached. But each cut scene and little moment where you get to see the characters personality I started to ease my resolve. I soon found myself invested in Nobel Team and all it members. For example noble 5 or Jorge 053 is one of the last SpartanII with a long battle record. In one of the early cut scenes you see that he is a very caring person and cares about civilians. You can see him as a big softy at times which makes him more relatable as a character.


At around the half way point of the game i lost my resolve and became attached to the world and the team that I was in. Although the game felt like a loosing battle, I still wanted to fight to keep my team safe. There are not a lot of game that make me feel that way. I will admit I lost to Reach.

As I was about to write this blog I found a video on Youtube called Halo Reach Cutscenes. It has all of the cut scenes in one video. I watch it again and again it still got to me. Watching back again I still got attached to the characters and the story. Each cut sene pulled me in as I was watching a movie.

I also have to give credit to where credit is due. Halo would not have has the effect that it did without the audio in the game. The voice acting relay flushed out the characters and made them real. The score of the game was amazing as always, creating a feeling inside that I cant describe.

Below is a video of all the cut scenes in Halo Reach. Give the video a watch and see how it makes you feel.


Thursday 28 November 2013

Crafting a Dekonstruer #3 Shadowrun

To start this blog we are going to be looking at the first person shooter Shadowrun and breaking it down into its bits. I am going to talk about the game design atoms and tell you why this game is one of my favorite first person shooters.


Players:

Shadowrun is a multiplayer exclusive game featuring no single player campaign. What this game does offer is a great multiplayer experience in a competitive environment. A normal game match features two teams: RNA and Lineage. Depending on the game mode, they might be fighting over an artifact or out to eliminate the other team. This would be classified as Team Competition as teams fight for control of the round. Before players enter the game they must choose between 4 races: human, elf, dwarf, or troll. Based on the player’s choice of race, gameplay will pan out in a unique manor. 



Objectives:

Although Shadowrun is an FPS game, the universe is based originates from the tabletop, role-playing game Shadowrun. Therefore Shadowrun is a game, but also the name of the universe that it is based in. In the FPS game, every 5000 years magic enters the world and then eventually fades away. Magic has just returned to the world and RNA, a powerful munitions company sends a research team to examine an artifact that was discovered. There was an accident and the research team wiped out entire city. When they went back to clean up the city and control the situation a resistance of locals formed to fight against RNA. This is where the battle between RNA and The Lineage starts. That is why the two factions are fighting but what do you fight for in game? There are three game modes, attrition, extraction and raid. Attrition would be similar to team death match where the objective is to kill the other team. In extraction, teams fight over the artifact and carry it to their team’s extraction point.  In raid RNA must defend the artifact while Lineage must capture it and bring it to the extraction point. These game modes offer team objective based gameplay.


Rules and Mechanics:

Shadowrun has some of the most interesting gameplay mechanics that I have seen in a first person shooter. The game is a mix of counter strike, halo, and an RPG. First off a game can be broken down into rounds, each round lasts until the objective is met or one team has killed the other. A game is a series of rounds, when a team reaches 6 round wins then they win the game. In a round a player has one life and when is killed, they have to wait for a teammate to use the spell resurrect on them. Once a player is brought back to life with resurrect, they life is tied to the player that resurrected them. If the player’s restructure dies then they will start to bleed out. Their health slowly starts to lower until they eventually die. One a player has been resurrected they cannot be brought back to life. As I only had one life, the choices that I made in the game had more impact on the way I played the game. Since I only had one life, I found myself planning before the round started on my opening moves. The game started to become a chess game in my head as I planned all my movement as one would do in chess. The strategy that I found was a breath of fresh air for a first person shooter.

At the start of reach round there is a buying phase where players can spend money on three types of items: weapons, magic and tech. If you want to you can also send money to your team allowing for teams to strategies their purchases. The default weapon that all players start out with is the pistol, but players can buy weapons like a submachine gun or a rifle for long range. The weapons you buy are much better than the pistol and can give you the upper hand in a fire fight. Then there is magic. Each race has a certain amount of essence. Each circle of essence can be consumed to use a magic spell. A player’s essence will refill time. My favorite magic spell is called teleport eight feet in the direction that they are moving in. You can teleport through wall and floors making traversing the level to be a lot of fun. This spell alone changes up combat as players are constantly teleporting in and out of combat. Along with the resurrect spell there is a spell called the tree of life. When a character is near the tree their health slowly regenerates. There is more magic spell that change up combat and add unique gameplay experiences. Then there is tech. If a character that is not a human equips a tech they will lose circles of essence. The number of circles of essence depends on the tech. Tech ranges from the ability to see through walls to a glider that lets you glide around the map. With the combination of weapons, magic and tech gameplay is always fun and exciting.

There are four races that player choose from at the start of the game. Each race has its own strengths and play styles. There is the human which has a medium health pool and does not take an essence penalty for using tech. Then there is the toll which has a high health pool and can use essence to harden its skin and take less damage. The opposite of the troll is the elf with a low health pool and the ability to regain its health with essence if it is out of combat. Elves also have a higher run speed then other characters. Finally there is the dwarf with a medium health pool and the ability to absorb the essence of nearby creatures. As the dwarf can steal other creature’s essence, it slowly regenerates essence and has I higher pool of essence. Each race has its own role and play style to them. As Shadowrun is a complex game there are still other mechanics that I am missing but these are the core ones. All this together makes the most interesting mechanic in a first person shooter.


Resources

At the start of each round there is time to use the shop to use the money that you get each round. Depending on the previous round the money you get varies. You get more money if you get kills, assist, and win the round. You can spend this money on weapons, magic, tech or send it to your teammates. During the round players must manage their magic and tech as they can only have them in four active slots. Along with managing you magic and tech, players must balance using magic and letting their essence recharge. Managing your essence and ammo is critical as you want to make sure that you can use it when you need it.


Game States:

A game consists of rounds and each round could be broken up into start, duration and end. At the start of a round there is time to use the shop and equip you self for the current round. After an amount of time the round will start and player start to complete the game type’s objective. At the end of the round there will be a ending state where it will show information about that round and the entire game. Here players can see kills, deaths, assist, resurrects and information like that. After the end state if the game is not over it will start a new round, else it will return to the menu lobby.

Information:

Shadowrun has a very structured game format and does not hide anything from the player. There are no surprises with this the game system in this regard.

Sequencing:

Shadowrun’s gameplay is in real time as it is a first person shooter. The rounds are structured as buying stage, round starts, ending score display. This is constant and does not change. One will follow the other until the game is over. Each round has a time limit which puts pressure on the loosing team to pull ahead before the timer runs out and the round is decided.

Player Interaction:

Shadowrun is a multiplayer only game and is built on player interaction. There is an objective that each team wants to complete and this creates conflict. The team that works together usually comes out on top. This forces players to work with their team in order to win. As there is no respawning in this game working with your team and coordinating resurrects is a crucial team skill that players pick up over time playing the game. Shadowrun was also one of the test games for cross platform multiplayer where you could play on your xbox or PC with game for windows live. Now this might be one of the reasons that it did not do so well as the concept was good but the execution was not. As it is 2013 and we still don't have cross platform games means that it was a bust. 


Theme:


Shadowrun is a universe as well as a game. The universe of Shadowrun is rich and expansive. Shadowrun is not part of the original timeline of the roleplaying game but instead is a spinoff using the same universe. The world is about magic returning to the world and awakening a powerful artifact. There are two factions fighting over the power of the artifact. Both parties want to keep the artifact from the other as they do not feel like they can trust the other with the power. This soon becomes a war for the artifact. 

Tuesday 26 November 2013

Grind Craft: Digital Prototype Feature Treatment

If you were to design a digital game prototype for your GDW, what concerns do you have about the gameplay, aesthetics, kinaesthetic, or technology in your original concept? Of these concerns, which is the highest priority? Which will kill the game if they don’t work? Write it up in your blog and decide where to focus your efforts for your digital GDW prototype.

I am the Lead Programmer for Any Key Entertainment and the game what we are making this year is called Pisces. Pisces is an arcade style twin stick shooter, similar to the game Geometry Wars by Bizarre creations. The game features wave based enemies that increase in difficulty as the game progresses. This being a twin stick shooter game, we have full controller support built in. If you don't use the controller then you can use the keyboard but the game was built primary for the controller. When we started the game we had two goals in mind, fun arcade style game play, and controls that were tight and fluid.

Kinaesthetic:
Our number one goal for this game is Controls. Our game is based on how well the game feels when you are playing. We are aiming for controls that enable and help the player play the game, instead of an obstacle that they have to overcome. We want the controls to easy to understand and easy to pickup. We are hoping that anyone can pickup the game and start playing. Our gameplay is based on how well the player can use the controls and play the game. The feel of the controls is what will make or break our gameplay.

Aesthetics:
Along with good controls we are aiming to have a aesthetically pleasing game. We want the arcade style of the gameplay to reflect in the look of the game. The setting is in space with a dark background and stars in the distance. To contrast this we want our game entities to be bright and vibrant. This will bring the players focus the the player and enemies on the screen and create a defined line between the foreground and background. To make sure that we have a functioning game with gameplay for the end of the semester, we will be using temporary models and textures. These will not be the final assets but our focus is on making it work now. Once it works then we can polish the look of the game.

Gameplay:
Gameplay will be focused around waves, and the players ability to clear them. Waves will increase in difficulty as the number of waves increases. We are working on making sure that the game will have a fair difficulty curve to make the gameplay interesting. To add variety to the gameplay the are powerups that boost the players abilities for a short amount of time. As the levels get more and more difficult the use of powerups will be more and more important. 

Technology:

The game is running on an engine framework called TwoLoc, and uses Ogre for rendering and Havok for physics. The engine can do everything that we need for the game, and the only think that can hold us back is learning how to use it. As for key technology collision is the biggest thing. we have to make sure that all of our collision is handled properly and bullets kill enemies. 

Becoming a Critic: Brink

In this blog I will be critiquing the game Brink. I will state that I played brink for the PC and will be critiquing it from this perspective.



Brink is a first person shooter developed by Splash Damage limited for the Xbox 360, PlayStation 3 and PC. Brink is a first person shooter where the Security and the Resistance fight for control of a floating island called The Ark. The Ark is a floating city drifting above a flooded earth. Brink’s main selling feature is its Smooth Motion Across Random Terrain (SMART) system which enables a player to navigate rough terrain that would not be able to reach in other games. The system makes players move with a parkour style to them. When this game was first announced I was instantly hooked to the game concept, but when it came time to release I was disappointed to say the least. What made Brink a letdown?



Players:

Brink has a confusing player interaction and is better understood if you understand how gameplay is based. Brink is a game based on the story of the ark. When you are playing Brink in game you are playing one of the missions from the story. Each mission has two sides: The Resistance and Security. You can play as either side in a mission making the levels more interesting at times. As Brink is focused on story you could think of it as a single player game. You can play Brink as a single player game with no multiplayer interaction at all. This player interaction type would fall under player VS game system. If you want to play with your friends then you can play Brink multiplayer too. This is where Brink tries to do something different from other games and blur the line between single and multiplayer. Friends can join your current session and play with you in your mission. This is a private session where only people you know can play. This player interaction pattern would be classified under Cooperative play. If you wanted to play with others online you can join a public mission where other players are on both sides of the mission. This is where players fight against each other to complete their team’s objectives. This is called team completion as players are on two opposing teams as they fight to beat the other team.



When information about the game was being released, I was excited for the unique movement system that was demonstrated. At this time I skeptical about their planes for multiplayer and decided to sit on the idea for a while before I thought anything. When the game came out I was right with my initial thoughts as the multiplayer implementation did not feel right and was not inviting. I had difficulties playing with friends and found the system not intuitive and inefficient. I learned that single player and coop modes should not mix with public multiplayer. Overall did not enjoy multiplayer experience at all.


Objectives:

Brink’s objectives were not unexpected to say the least. There are two factions the Resistance that wants to leave the island and the Security that wants order. These are the overall objectives in the game but when I was playing the game I was not thinking about them at all. Instead I was thinking about the level objectives that ranged anywhere from defend a point to kill a VIP. This game has the standard shooter mission objectives but did not do anything that made them standout other shooters. As for personal player objectives Brink has a great unlock and customize system, but I could never get into it because I would have to play the game to level up my character. The Gun customization impressed me as I found it interesting how it was displayed.



Procedures:

Brink has a good set of tutorials labeled “Dossier” in the menu section with a series of videos to explain how the game works. They have good videos on all aspects of the game. If you are new to this game watching these are a must as it will explain all of the complex missions and what classes can accomplish them.

As for missions themselves, I found myself wondering around the map, as I was not sure what the best thing for me to do was. As there were so many options for me to choose I found myself overwhelmed at times. I got the hang of the missions over time, but this is not something that you should learn overtime rather understand from the start.

As for the combat system I don’t have a lot of good things to say. At first when I started to play the game, the first thing that got to me was when I killed someone it would knock them to a down state. When I paint an enemy’s face with bullets he should die, but no he is just downed and a medic has already revived him ( =/ ). I understand that you want the medic class to be able to pick up allies, but the time an enemy is downed is too long and I find that he just got back up. This makes the penalty of death worthless as long as you have a medic in the back. I quickly learned that medic is the best and most useful class by far. It is clear that there was not a lot of play testing, as this problem would have occurred eventually.



Rules:

There are many rules in Brink that make help make it function as a game (or try to). An overall rule is that all players have health. When a player health becomes zero he dies… I mean get downed and has to wait for the next spawning wave, or a medic to revive them. Once one of the two situations is met then the player can be revived into the game. These rules make the foundation of the game, and create the cycle of life and death (and respawn). The player characters must abide by the game’s physics (no fall damage) and must stay within the bounds of the level. The player must pick a class and body type before they can start playing. There are many other rules but these are the core rules of the game.



Resources:

Brink has the standard resources that you would find in any current shooter.  There is player heath, weapons, ammo and grenades. Players must make sure that they have enough of these resources to complete the level and engage in combat. You also have a class skill that is determined by the type of class you are. Once the skill is used it will recharge over time. As for out of mission resources brink has the standard experience and levels that you come to expect in a current shooter, as well as unlocks and upgrades. Most of this is the current shooter’s standard formula and I have to say that this is not a bad thing. Players want to be rewarded for playing the game and unlocks and upgrades are a good way to do this.

Conflict:
Brink has predictable conflicts within it. Two sides don’t like the other and they think that they are right. The conflict is not the selling point of the game as it is nothing special. As a current first person shooter, the types of conflicts do not change. When you play the game you are playing a mission that has an overall objective.



Final Thoughts:

When the first concept for brink was announced I was excited to play the game, and as more information came out about its SMART movement system I was sold on the idea. When the game was released I was sorely disappointed in Brinks performance and did not live up to my expectations. As I was looking online for a review that would portray my final thought, I found Zero Punctuation’s review. This is a good summery and review of Brink and I leave you with it.  



Sunday 24 November 2013

Design your game item Hitman Absolution


The game that I will be talking about today is Hitman Absolution. Hitman is an action adventure, stealth game developed by IO Interactive and published by Square Enix. The game levels and missions are based on eliminating your target and making a clean escape. You can traverse through the level in whatever way you seem fit and can execute your mark in a number of ways. Hitman is all about killing your mark and then getting away but often times you have to kill other people as they are in your way. If you kill someone that is not your target you lose some points overall. I would like there to be a way to take out enemies without killing them.


I would like to add a stun gun to your arsenal. This would provide players with an alternative to handle guards instead of just killing them. Adding a non-lethal weapon to your kit would change the way you approached the level. Instead of killing every guard that is in your way you can incapacitate them instead. This would mean that you are not killing them and you will not lose points for non-mark kills. This would also make the game easier as you don’t have to find interesting and unique ways around the level. Instead of looking at the paths that the AI takes and then figuring out a solution you could just incapacitate everyone and you would be done.


I would like the stun gun in the game for new players but for the more experienced players I don’t think they should be able to have this ability. In Hitman there are two categories of difficulty, Enhanced and professional. Enhanced is an easier level of difficulty and the game will give you a helping hand while you are in the level. Professional category does not give the player any tip, hint or help in any way and the enemies are more alert. Hard and expert are difficult to play on as you are given no help and the enemies are smarter and more alert. Purest mode leaves you with nothing. You have no help, no guides, no HUD and only a crosshair. I do not want to take away from the challenge from the professional mode so I would only let Enhanced levels use the stun gun.



Adding a non-leathal approach to Hitman would add an interesting game mechanic and a new way to look at the level. This would make going through a level and only killing your target that much more achievable.

Saturday 23 November 2013

Scripting Procrastination, Squirrel and Lua

This blog I will be discussing scripting and my experience with it. At the end of this blog you will know where I am with scripting in my game. To begin this blog it would be best to go over what scripting is and what it does.

My game currently is written in C++, a great general purpose and robust intermediate programing language. C++ code is written, compiled and executed. When a line of code is changed in the program the entire program must recompile before it can be executed. Now this is fine for small console applications where the compile time is short. With larger applications like my game for example with precompiled headers, third party libraries, engine source files and my user source files the compile time of my game is quite lengthy.  Recompiling time has started to get around a minute in some occasions. If you are working with a full industrial engine the compile time is not worth it. There must be a way to compile code on run time. Scripting provides this functionality.

Scripts are small programs written in text style files and compiled at run time. You can code these files separately from your engine and they will still compile. Scripts have two main functions within engines.

You can take variables from your sources code and use it within the script. For example you can write functions in a script and then call it in your C++ code. A function called foo is written in the script. The function takes in variables and returns a value. In your C++ code you would call this function and send it the variables you want it to work with. The function will return a value after it is done its execution. If the function is not returning the values you are looking for then you can easy change the function and you will not have to recompile your C++ code.
The second way to use scripting and the implementation that we are using in our game is calling C++ code from scripts. For example you have a GameObject initialization and it takes in variables to determine what it is. The function takes in the maya name, health, if it is a static or dynamic object, and if it is visible. In your script you call this function and send it the information for the object that you want to create.

Our GDW game requires scripting to be implemented in some way or another. It does not matter what scripting language you use as long as it is implemented. At the beginning we were looking at all of our choices: Angel script, Python, Lua and Squirrel were the ones that we initially looked at. We then narrowed it down to two Lua and Squirrel.

First attempt was Squirrel as we liked the language and though that it would work for our purposes. At the start the Squirrel was easy to install as it came with header and library files ready to go. But as we started to try and use it we found that the documentation was almost nonexistent and everything that we could find told us to use a third party library called Sqrat. After many attempts to implement it we scrapped Squirrel and went with our alternative.

Since the documentation for Squirrel was so terrible we were glad to see that there was documentation as far as the eye could see. This was a promising start indeed. When we tried to download and install it we realized that Lua is written for UNIX based system and we had a hard time creating the source and lib files. I spent a solid day trying to cMake the project just like tutorials said but my efforts were in vain. After a good session of fist a cuffs with creating the source files we finally found premade files. Now that we had Lua source files we could install it but when it came to using it we found yet again that everyone was using a third party library called LuaBind. After we got LuaBind installed we were able to get a console message on the screen and that is all we have for scripting so far.

During this semester we spent a lot of time implementing scripting and have not had the result that we were looking at. It was decided that we would put it on hold while we turned our focus to gameplay. I am happy to say that yes we now have gameplay. Now just have to dance with scripting again… joy.

Overall scripting is great when used correctly (still have to figure that out) and can make developing games easier. Again this is just another tool for you to use to make programs and games better.

Friday 22 November 2013

Crafting a Dekonstruer #2 Mark Of The Ninja

I have passed the second gate and now it is time to get my blog on. Let the button mashing begin!


To start this blog we are going to be looking at the side scrolling stealth game Mark of the Ninja and breaking it down to its bits and pieces. I am going to talk about the game design atoms and tell you why I think this game is the benchmark for all stealth games.


Players:

Mark of the Ninja is a single player game that follows a nameless ninja in the modern era. The game starts off with an armed assault on the ninja’s dojo. This is where the player comes in as the nameless ninja on his assignment. As this game is exclusively single player with no multiplayer at all players play against the game system. This type of player interaction pattern would fall under “Single player vs. game”. The game consists of levels or mission objectives and your progress in the game is saved when you complete the level. There are checkpoints if you die in the level but you can’t save your progress mid-level and come back to it. Some players will not like this but I find that the levels are just the right size so that this is not a problem.



Objectives and Goals:

Mark of the Ninja is set in the modern era but where clans of ninja still exist. As the assault on the dojo is going on the nameless ninja protagonist was resting after receiving a tattoo. The tattoo that was given to him has power and a legend attached to it. The ink comes from special flowers that increase his senses and reflexes. The tattoo is a double edged sword, as the ninja will slowly descent into madness and ultimately committing seppuku. (Suicide by self-disembowelment with a small blade known as the Tanto) (Side note I am also very interested in Japanese history, another reason why I like this game) The goal of the game is to investigate your attackers and deal with them before you suffer from madness. The player is trying to race against madness while gathering information and then outwitting the enemy.



Rules and Mechanics:

Mark of the Ninja is a 2D side scrolling stealth game with a lot of interesting and innovative game mechanics that makes it the best stealth game I have played. First off the stealth part of the game hinders on two things, not being seen and not being heard. When you are going through the level there will be bright and dark areas. To be stealthy you want to stay in the shadows as much as possible so that the enemies can’t see you. Sometimes it is too bright and no shadows to hide in, then you can break the light sources to make it darker. When you break lights it makes a loud sound that will alert enemies. You have to mix not being seen and not being heard. 


When moving throughout the level you have to make sure that you are also quite as it will alert the enemies that you are near.  To help traverse through the level you are also given offensive items and distraction items. You can use offensive items to kill enemies from a distance or use the distraction items to distract them while you move past them. An example of an offensive item would be a swarm of locust that eat and devour an enemy so that there is no evidence. A distraction item would be a smoke boom so the enemy cannot see you while you move past them. Now for combat and assassinating enemies you have your trusty sword. When you are close enough to an enemy you press the left mouse button and a direction will appear near the enemy. If you move your mouse in the right direction you will complete a silent assassination. If you go the other way the enemy will make loud death sounds and others will be alerted to you. The game mechanics makes it the best stealth game that I have played.



Resources:

While you are in a level you have side missions that you can complete. If you complete them you will get tokens or honor to unlock skills and upgrades. The player resives points for using tatics throughout the level such as silent assassinations, hiding bodies and not being spotted. At the end of the level the score is added up and get honor for passing a certain number. Players can then spend their honor in three sections: skills, distraction items, and attack items. By progressing thought the level and collecting as many points as possible you can upgrade all the aspects of your character. With the side missions in each level they also have a type associated with them. If you complete three missions of a certain type you unlock a ninja suit. These suits change the way you can play the game. One suit lets you instantly kill an enemy when you click with your mouse and you can’t have distraction items. Another suit does not let you carry swords so you cannot kill enemies. Instead you are given two distraction items and when you run you don’t make noise. The different suits provide a new and interesting way to play the levels adding replay value.


Game States:

There are two states that Mark of the Ninja can be in. The first state is when you are selecting a level. When you select the level that you are going to play then it will bring you to the upgrade screen. Here is where you can spend you honor that you have collected from playing other levels and select the load out that you are going to play the level with. From here the level starts normaly with an opening cut scene to set the setting of the level.



Sequencing:

Mark of the Ninja is played in real time with no time limits within it. As for upgrades you have to unlock the base upgrade before you can unlock the upgrade to it.

Player Interaction:

Mark of the Ninja is primarily a single player game and as such there is not a lot of player interaction. The most interaction that the player has is with the game system. There is no players for to interact with.



Theme and Setting:

Mark of the Ninja is set in the modern era with a clan of ninjas called haiku. There is not a lot of stealth game out there that use ninjas. Ninjas are interesting and compelling characters as they are well known for their legends and mystery. It is this mystery that makes people so interested in ninjas. This helps to the player get emotionally connected to the character. Since you are a ninja it is fun to act like one and the way the players play the game changes to reflect this.




Mark of the ninja is my benchmark for stealth games with its great mechanics and art style. This is what draws the players in and then makes them interested in the story of the game.


Thursday 21 November 2013

PVP Chishek's Elevator


This blog will be discussing the portal level Elevator by the steam user Chishek. If you are interested in playing the level you can find it here on the steam workshop. In this blog I will go over my thoughts on the level as well as discussing some of the design choices. I will give my opinion of the level and my own feedback on it. If you want to see my first run through the level you can watch the video.


To begin discussing the design choices we can start with the beginning of the level. At the start of the level you are presented with the end. Well that level was easy you are done you can see the end, but there is a glass wall blocking your path. I have seen a lot of portal levels recently start with a display of the finish in some way but it is blocked by something. This is a great to layout the levels overall goal. By starting near the end you are showing them the finish and they can work towards it knowing where it is.




The next part is where the level gets its name. When you place the cube on the button an elevator starts and you ride up to where is first puzzle starts. Now I love and hate this elevator at the same time. I love the fact that you are almost creating a cut scene like effect showing the puzzles that you will have to complete. It is a nice visual for the player and lets them see the entire level with one ride. I also hate this elevator as I found that it was too slow. 




It was cool to see the level that you will have to complete but I also was stuck in an elevator and could not start on the puzzles. The duration between the time the level started and the time that I was on the first puzzle was too long and I found myself waiting at times for the level to truly start. I like the design aspect of the elevator and it was a unique and interesting concept. From a gameplay design perspective I do not like it as the player has to wait too long to actually start the level.




Once you were done waiting for the elevator to finish you can finally start the first puzzle room. I found that the beginning puzzle was a little too easy as it did not take me long at all to finish it in my mind. For a beginning puzzle it does fit as it is one of the easiest in the level and does fit as the starting.





You can see from the video that I quickly look at the level and see the solution. I have talked to other people about this level and they said that yes it did take them a bit to find the solution to the puzzle. In the grand scheme of the level I agree what this puzzle should be the first one.


The second puzzle on the other hand I found to be one of the hardest in the level. To solve the puzzle you have to be aware of a mechanic of portal that not a lot of people know about. 



I know many people that have played this level that could not figure out that you can grab the cube from the other side of the wall. Now I did play a level prior to this that implied a mechanic like this so I was aware that it was a think but others could not figure out the puzzle. To introduce the game mechanic to the player you could have had demonstrated it to the player in a controlled environment. Once the player is introduced to the game mechanic, then the puzzle is fine.



On to the third puzzle and I have to say that I don’t think that this puzzle belongs in the level. I have just solved two puzzles that felt like good puzzle rooms, while the third puzzle feels like an entire level. The scale of the puzzle does not fit within the level as it feels like could act as a level on its own. The puzzle itself is interesting and not that difficult to solve it just take a lot of time to complete and here in lies another problem. I have completed tow puzzles and have gone for a while, now I have to complete a puzzle that feels like an entire level. I would have not put this puzzle in the level and instead would have made a smaller and more puzzle room like puzzle.


After you are done completing the level within a level you are put into a small puzzle that is not hard to solve at all. The puzzle might be there because there had to be some way to get back to the exit that was displayed at the beginning of the level. I did not get this problem but a friend of mine Jodo had a problem where the reflector cube was not there and he could not complete the level. He also did a review of this level where he discussed what happened to him check it out here. I don’t feel like the puzzle needs to be in the level and would remove it completely. I feel like the level was too long and after the third puzzle I felt like the level should have been over.


The Elevator is a promising level with some good display of game mechanics. The first and second puzzles were great and set a good pace for the level. The third puzzle was overwhelming in size in the beginning but just takes some time to complete. The fourth puzzle for me should be scraped as it did not have the same feel at the other puzzles. When you are going up the elevator you are not told about this puzzle and I feel like it is unnecessary. To improve the level I would introduce the second puzzle’s game mechanic in a controlled environment so that players will not just get frustrated. I would also take out the fourth puzzle completely as it does not feel like a part of the level. I did not see it while I was going up the elevator so I also feel a bit lied to as the level was displayed to me while I was on the elevator and once I thought I was finished but there was one more puzzle that was not challenging but time consuming. 
 

Wednesday 20 November 2013

Entity Component System - A Breath Of Fresh Air

This week was a big week for me in many aspects. My game studio’s game just made a big milestone which lifted our spirits and helped subdue the game burnout. Also this week a brand new coding design was dropped on us with no warning. After working on our game for the past eternity I was starting to find a lot of flaws and headackes with the way I has to use code. Using higharcal design with a base game object is starting to get stale and inefficient in my opinion. If I have to do anything with the class “GameObject” it will be too soon. Any way enough venting, the design that was brought to my attention is called the “Entity Component system”. This design system is based around the entity and component object. The entity object just has an identification ID and a list of components. A Component is just a container for data. It is time to get into the details of what makes this system a breath of fresh air for me.

Entities and Components



The Entity Component System (ECS) is based on you guessed it entities and components. Entity is a general purpose object that makes up every object in your game. You could think of an entity as a GameObject. The entity class just has an identifier and a container that stores components. A component is just a storage container for data. Here is a quick design to see what a base entity and component would look like in code. [entity and component code here]
Unity an Example of ECS
Entities and containers do not have logic in them they are just used for data. All the game logic will be handled by component managers which will be covered later. Now this might be a hard concept to understand and some of my studio members are still not completely sure how this works. It is easier to understand visually with an example. The game engine Unity is based on this entity component system, and is a great example of using this design graphically. If you were to make a new entity in unity it would create a new blank entity with a unique identifier. This could be a name or a number it does not matter it is just a way to identify it from all the others. The entity would not have any components added to it. If we wanted to make this entity visible we would add a renderable component to the entity. This would then make the entity render able. If we wanted this entity to be a dynamic object then we would add a physics component to it so that the physics system would recognize it. To add them with a GUI you could just drag and drop the components into the entity and they could take effect.

 class Entity{  
 public:  
      virtual ~Entity(){}  
      void addComponent(Component* pComponent){  
           components.push_back(pComponent);  
      }  
      virtual void update(){}  
 private:  
      Entity(unsigned int id) : ID(id){}  
      unsigned int ID;  
      std::vector<Component*> components;  
 };  
 class Component{  
 public:  
      Component();  
      virtual ~Component(unsigned int pType): type(pType){}  
      virtual void update(){}  
 private:  
      // here is where you put all of your data and vars  
      unsigned int type;  
 };  

Systems

A system or manager would query through the entities and check to see if they have a specific component. If the enmity says that it has it then it will give the component to the system and the system will apply its logic to the component. An example of a system like this would be a rendering system. To make an entity renderable you would add the renderable component to it. When the rendering manager goes through all of the entities and asks if they have the renderable component the entity will say yes because the component was added. Once the entity confirms that it has the component then it will send the component to the manager where it will be rendered. But how does the renderer render a component? The renderable component could have a list of vertices stored in it. When the render manager takes the component it would render the vertices to the screen. This is how systems, entities and components communicate and function.

Igniting the Fire Again

I have wanted to make an engine framework for a long time but have never had the motivation to do so. In my second year I had to make an engine framework and at the start I was enjoying making it, but then game code came and pooped on everything and made it a complete mess. After that I have not had the motivation to make an engine framework. Now that I understand this design style it has motivated me to want to make an engine framework again. My first year second semester 2D game was a game that I enjoyed making with a base library that one of my professors threw together. I want to make a 2D engine that would have made making that game a lot easier. It would be a good way to use all of the knowledge that I have gathered since and use it. It would be nice to look at my 2D engine and the first year me could understand and use it easily and effective. Now all I have to do is find the time =/


Monday 18 November 2013

Domain Specific Language (DSL) and AI

The time has come for me to write another blog. This blog will be talking about the presentation that we say in class called “Flirting with the dark side” and had to do with Doman Specific Language (DSL). If you want to download the slides from the presentation you can get them here. All right topic confirmed… words incoming.

Domain Specific Language (DSL):

DSL or Domain Specific Language is a language that is specialized to solve particular application problems. These problems all have some sort of class or type in common. Another way to put it is a language that is great at solving a specific class of problems. DSL is designer friendly as the code is and the language is higher level language and does not need to be handled by a programmer. This means that designers can code something like AI without the assistance of multiple programmers for implementation. DSL is like a declarative file format as you normally state things happen. You do not have to worry about managing the memory and everything else that the programmer does, instead all you have to do is state how things are. DSL files could be thought of as a smart file that has a list of declarations.  So what does DSL look like? This is the example for DSL code used in the presentation.

if $Aim -> is of class Huge Ship
      if $distance > 3500 AND $distance < 20000
       if [THIS] -> fire missile $Missile on $Aim
        $Missilesfired.strength = $Missilesfired.strength + $Damage
        [THIS] -> set fire missile time difference to 16 ms
        $defend = random value from $Value.def2.min to $Value.def2.max - 1
        [THIS] -> interrupt with script '!plugin.fightcommand.defmove' and
          prio $Prio: arg1=$defend arg2=$Aim arg3=null arg4=null
        gosub Defensive.Definitions
      end
   end
end

Using DSL for AI and High Level Languages:

DSL is great for AI as it makes it easier to implement when the implementation is near the domain of the problem. DSL is also a higher level language so it does not come with the same concerns as lower level languages. There is no need to manage memory or how the code will work together. When you eliminate the lower level concerns then the language before more designer and artist friendly. Not everyone on team wants to worry about the lower level concerns. Designers and artist can work easier knowing that there will not be any issues while working with lower level code. AI is usually done by solving a limited set of problems with a small set of well-known solutions. With fewer issues in the implementation, the more AI issues can be solved.

DSL Making Your Own Language and Compliers:

As stated before DSL is a higher level language and comes with its own benefits. You can avoid memory management, complex syntax, and complicated undefined behaviors. This makes it so that more people can work with the language and does not need a programmer to implement it. So how would you implement DSL? For one thing you don’t have to make your own language. Creating compilers, interpreters, virtual machines, garbage collectors, and parsers are all too complicated. Instead we can use pre-existing languages like XML, JSON, and plain text documents. This implementation is easier for artist and designers to grasp and work effectively.

Guidelines for creating a DSL:

To create a DSL you want to take the logic that is coded into your engine by the programmer’s and use it outside of the engine in a simpler context. Take all of your logic code from the core game engine and use it outside of the engine. This is also called scripting. You can use DSL and scripts to run the pick and choose the logic code that you are going to use at any point in time. This makes it easy for designers to use the tools that are in the core game engine and use them in a versatile way. To make your DSL you must know what you are aiming to solve and solve just that problem. Making system for one purpose only make you code nice, neat and organized. When code is clean it is easier to understand, go thought and most importantly debug. One phrase that stuck with me from the presentation is “Minimal Syntax, Maximum Power”. As a programmer myself I like the complex syntax of c++ or java and had a hard time getting used to languages like python with minimal syntax. The less syntax the more powerful the code is. I have not thought about that before but I am stating to understand what this statement means. The more syntax there is the more you feel constricted to the style but with less syntax you get more freedom and that can make code more powerful.

Some closing tips:


I liked the statement “Keep low level logic in low level code”. There is no point in scripting code game engine mechanics in something like lua or squirrel as they are not fit to handle the logic. But you can use something that I like to call “designer logic” with higher level code. Gameplay and how the designer thinks are great for higher level code as it has the capability to handle it and make is easier on the implementer. One last closing tip that I took away from this is that you can create and deploy multiple DSL it does not have to be just one. A DSL should handle a specific problem and that is it. Making code cleaner is always the best.