Tuesday 26 November 2013

GDP2: Crafting a Dekonstruer #2


In this blog post, I will analyze the game atom in Skyrim: The Elder Scrolls V.

Players 
It is a single player game when I played it on PC. Players play as a dragon born warrior and explore the world in Skyrim by themselves. They are free to do many things in the wilderness but once they are in the city, they have to obey the rules.

Objectives
The goal is to slay the dragon that is going to destroy the world. There are also many other objectives from other story lines. Players often have to travel around the map, defeat many enemies, and improves their skills and weapon along the way in order to achieve their objectives.

Rules
Rules are strictly applied in cities; any illegal actions can cause consequences to players in different aspects. For example, killing someone will offend the local citizens and guards, which could result in prison; players who become vampires are not welcomed in many cities and will be evacuate by force as soon as possible.

Resources
Players gain their resources by completing quests, opening chests, pickpokecting/robbing, and searching the corpses. They can sell their resources in the NPC market and buy more valuable items that are hardly found in the wilderness.

Game State
The game state has very simple and straight forward information. Players' health, mana, and energy are displayed on screen when they change. These information directly reflect players' state at any particular point. On the other hand, the top bar shows the direction players are facing. It also shows the objectives when they are in front of and not far away from the players. 

Moreover, players' damage output and hit points are depending on the items they have and the skill levels they are at. All these information have influences on players' performance and are taken into consideration at any time in the game.

Information
The Elder Scrolls has a mixture of open and hidden information system. Nearby building, quests, or special locations are clearly shown on the top bar, players can easily access the information surround them.

On top of that, there is a window that lists all the quests in progress and their details; it also shows the locations of the quest on the map. Players have high access to the information regarding to the quests, which provides a more clear vision on the objectives and options they have.

On the other side, there are many story lines that only happen under certain circumstances, which can unlock many quests related to the story line. Players cannot obtain these type of information directly from the system, and they can only gather clues/hints from the NPCs. This is evidently shown in the Dark Brotherhood storyline, where players can gather vague ideas about this story line, they are required to take certain actions in order to trigger the event.

Sequencing
The order of players' action may vary; there are many options for players to choose from. Their actions often involve solving quests, getting into combat, or exploring on the map. The sequencing of players' action is real time as players reach higher level or have completed many quests, they have more things to do in their routine. For example, at one point in the game, dragons will show up at anytime and anywhere whether in the city or the wilderness, players have to slave them in order to improve their specific skills and obtain special items.

Player Interaction
There is no player interaction in this version of Skyrim because it is a single-player-vs-system game. Players play the game individually and their actions do not influence the other players at all. They are limited to interact with the fictional characters in game. However, there is a online version coming out soon, which will open many different interaction opportunities such as information sharing and trading items.

Theme
The are multi-themes in the world of Skyrim, but the major theme is set as a medieval fantasy where players deal with supernatural things. It involves many different elements such as magic, vampire, orc, dragon, etc., where they all combined together under this medieval theme.

Conclusion
Each game atom offers a wide range of options to players, which constantly keep the players engaged. With all game atoms combine together, it provides a huge range of options and freedom for players to do anything or explore anywhere in the game. The development has successfully created a realm of Skyrim where players can completely put their minds into their characters to explore the story and the world.
 


Monday 25 November 2013

GED Blog #7 - Scripting

Scripting is a high-level programming language that is very efficient as it lets another program to process it at run time rather than complied by the computer's program. It also helps the end users to program some behaviours in the system without getting very deep into it. For example, if programmers want the system to do certain things using scripting, it is like writing a note to co-worker when you expect him/her to perform certain tasks instead of going into his/her desk and figure out how to do it.

Scripting is a big part of many software as well as in game development. Game programmers can use scripting to give more accessibility to designers, allowing them to use it to design games easier. In one of the lectures, we watched a presentation presented by Moonshot game studio on they deal with the LUA scripting and AI.


Scripting and AI, presented by Damian Isla

In the presentation, they found the most important A.I. technology is as the following:

if < X > then < Y > else < Z >

This logic helps to handle all decision making and they can easily find out why things are happening and why not. However, it is more important for the designers to know how to write it. The best way to do this is by scripting, where they can write down what they desire to do in the program and the script will understand it and do it in code when the program executes. And there they listed the architecture of LUA and what they were focusing on.



LUA, as a scripting language, offers more flexibility to the development team.  It implements many functions as mentioned above. Highly embeddable, for example, is very useful when the users can send raw data to script, allow it to parse it, do some logical thinking, and return the result in raw data to users. I have similar experience with it when the programmer on the team wants to export the data from Maya to the program, he can write a script using the embedded scripting language, Python, to export the data he needs from Maya. Furthermore, LUA has the function of Dynamic typing where it does not restrict to a specific type when associating with the values; it depends on how the users attempt to use it and assign the correct type at run time. These functions provides more accessibility for designer to design, however, they could lower the performance of the system at the same time. Programmers always have to choose one over another when dealing with the engine, performance-sensitivity or designer expressivity.

They soon explained further about their strategy on how to use scripting with the engine. They break down the game into many components, and use scripting on some of them, and strictly code on some of them.



As the development processes, some components can be split into script and code depending on their roles and relationships in game.



For example, the animation control is scripted but then it can be broke down into animation scripting where designers can write some specific behaviours on animation and have code handles all the locomotion controls that are involved.

Scripting helps designers to make the good use of a system. As programmers makes something functional in code, then designers can make sure it performs well for the game and report it back to the programmers to improve it further. This process repeats until the game is eventually finished.

By understanding the use of scripting in gaming, it opens more room for programmers and designers to communicate in order to make more great games.

Friday 22 November 2013

GDP2 - Knowledge Keeper #6: Reward Systems

Reward system is an important component in game. It offers things in return when players accomplish a certain mission or goals, which keeps motivating/luring players to complete one challenge after another.


There are many forms of rewards, and Wang&Sun lists the 8 major reward forms as the following:

  1. Score System
  2. Experience Leveling Systems
  3. Item Granting System Rewards
  4. Collectible and Usable Resources
  5. Achievements Systems
  6. Feeback Messages
  7. Plot Animations and Pictures
  8. Unlocking Mechanisms
They are the types of reward players usually get in games and they reward players in different aspects. Some of them adds social value to players where the rewards help them stand out or to be different from other players; some have impact on gameplay; and some are for collection and viewing purposes. The following diagram explains how people use rewards, which also shows how rewards influence the player in different ways.


When the players focus on their personal progress, they tend to look for advancement rewards such as unlocking new mechanisms in Skyrims: the Elder's Scroll; if the players focus on socializing and casual gaming, they to look for rewards that have sociability to establish their social status, such as collectible items to decorate their avatars on many Facebook social game. Understanding these factors help to understand what kind of reward would help to motivate players in different perspective. Moreover, the amount of motivation distributes to players have strong relationship with the challenge they are facing. 


In BJ Fogg's Behaviour Model, it clearly states that difficult tasks require high motivation, which essentially the greater the reward is, the bigger motivations for players to achieve hard tasks. Whereas easy tasks only require small motivation to keep players engaged.

Referring back to the very first blog about Game Design & Production 2 (http://hadva.blogspot.ca/2013/09/gdp-blog1.html), its system has a very good rewarding system. The homework questions are divided into different quests that weight differently. We can choose which quest to do based on our ability, and base on the effort we put we get XP as reward in return. I find this positively reinforce students to do their assignments while providing much freedom for them to do the ones they are interested. So they are always motivated during the process. And thanks to the reward system, it has been motivating me from a noob at lv0 to a cadet at lv9.


GDP2 - Knowledge Keeper #5: Game Development Team Structure

In one lecture, we learned about the structure of a game development team, and how each department works with each other in order to make a successful and fun game.

Before talking about the team structure, we discussed about the fun in game and the importance of accessibility for user testing.


Fun
Players can have fun in many ways from the same game. It can be ambiguous to know what is fun to players, however, we can identify the things that make it not fun to avoid fun killers. Basically, we do not want to have too repetitive, insurmountable, or predictable design because it will bore or discourage the players.


Accessibility
Having people to test the game can ensure its quality. We should always consider the right people for accessibility. This includes people from your target market, and who have never played the game before. Their opinions are always right because they are all based on intuitive reaction whereas we, the developers, are often too numb from developing to notice the details that could influence players' game experience. Overall, one-one testing is the most effective.


Game Development Team Structures

The development team can be divided into 2 parts, internal and external. The internal team is the developers where they focus on the game creation; the external team is the publishers where they focus on marketing the audiences and ensure they can deliver what the audiences want. The leaders of both teams work closely together in order to bring good games to the table.

Development Team
Producer
The leader of the developer's team who communicates with the publisher's team and acts as a manager to ensure the development team gets the work done.

Game Designer
To brainstorm and create high concept that can help the development team to make the game.

Programmer
To handle all the technical aspects of the game ranging from the game engine to software prototype.

Visual Artist
To create all visual aspects of the game ranging from characters design to animation and cut scene.

QA Engineers
To test and solve all issues happen in the game to make sure it works properly.

Specialized Media
This includes any other people that can contribute to the game with their skills such as writers, musicians, motion capture operators, actors, and so on.

Level Designer
To design level concept and have skills with level editors. One thing I learned about level designers is that they do not just design the level and tell other people to do what they say. In fact. they have to have certain amount of knowledge in all aspects to know what is capable to implement into the game and what is not.


Publisher Team
Producer
The leader of the publisher's team who communicates with the developer's team and coordinates with its team departments to handle tasks such as scheduling and forecasting.

Marketing Team
To identify the group of people who are interested in buying the game and maintain strong connection to them.

Executives
The people who pay everyone else to make the game.

QA Engineers
To ensure the game exceeds minimum requirements and players' expectation.

User Researchers/Usability Specialist
To collect and analyze data from the research on targeted market.


The team size may vary and some people might have multiple job titles. Nevertheless, many studios follow this structure to develop their games and release them to public.

GDP2: PVP Fight



For this quest, I am going to play Michael (@MikeDaProgramm)'s Portal 2 level, and evaluate its design and see what can be improved.





As I enter the level, there is only one row I can walk on, so I take a good look of what the level is about. I can see the exit from where I stand right after I enter the level. Although the destination is clearly shown, how to get there and the environment seem a little bit complicated. There are 2 cube dispensers; the closer one drops on the hard ground then falls into the acid; the other one lands on the platform and bounce to a block then fall into the acid. There is also a button on the ceiling and there is a funnel pulling things from it. Since there is hard light, I walk on it to get a better view. 


At the point, I discover the white block that the cube is hitting. meaning that I can use my portal to get the cube easily or use it to do something else. Before I get the cube I am going to see what else is in the level for me use.


There are a button, a cube, and portable tile. The button seems like it will trigger something and is something I can reach easily, so my top priority will be trying to reach to the button and see what it does. Before that, I am going to grab the other cube so it will not keep on falling to the acid.

So I make a portal from hard light to the white tile and I get the cube easily. I notice that I can easily walk to the exit but the designer probably knows that this is going to happen so he places an emancipation grid so that when players attempt to walk to the exit, it will cancel the portals and they will probably fall to their death. It is a thoughtful design and tells me that I have to get to the exit with another method.


So after I get the cube, and get to the bottom floor using the hard light and place a cube onto the button, it reverses the funnel and push things towards the button on the ceiling, so I place the cube and see what will happen. It turns out that when the cube blocks the laser, it enables the propulsion gel and another funnel. But as soon as it passes the laser, they become disable again. When cube triggers the button on the ceiling, the hard light is disable, which I do not want it to happen because I need it to travel around the level.

So then I go back down to the bottom floor, and lower the cube back. At this point, my priority would be try to keep the cube at the laser level in order to enable other items. To do that, I set up the portals and let the hard light blocks the cube, then I trigger the button at bottom floor again to push the cube to the ceiling.


And it works! It takes me a couple tries, and I have to use the button to push it and pull it back and forth while adjusting the level of the hard light. Another funnel is enabled and the gel falls into it and forms like a straight line. At this point, I have a very clear idea that I have to use the gel to speed myself up and jump to the exit. This also remove the concern of falling to death when the portals are cancelled by the emancipation grid, because they will not matter much after I make the jump in high speed.

So I change the one of the portals' location and the hard light is no longer at the same position, so the cube hits the button on the ceiling and gel is dropped.


When I walk back through the portal, a nice path is already set up for me.


I place a portal on the white tile that is facing the exit and another portal at the end of the path.


And I make it on the first jump and finish the level!

Overall, I think the level is well designed and not too difficult to solve. I often hear people make their levels very difficult to solve, and I think it would not be a good idea and might discourage/frustrate the player. I personally think a good level should be fun to play with, and educate players the different ways to play the game. And I think this level has something similar. The objectives were clear yet it took me some time to think about in order the puzzles. It was fun to use the button to move the cube up and down until the hard light was set at the right level. Also, I noticed that as soon as the cube hit the button on the ceiling, the hard light was disable right before the gel landed. If It took a bit longer, the gel would fell on the hard light and disappear along with it. And that would result in a level that cannot be completed. Base on this evidence, it shows that the designer has planned everything thoroughly and  precisely placed each of them in the level.

This level is fun to play with, and I would only recommend it to increase the difficulty with more complex puzzles to make it more challenge. It could favourite some players who like to solve hard puzzles. But for casual players like me, the level is very good at where it is right now. After seeing James, our TA, played the level, I realize that there are more than one way to solve the level. I am not sure what is the designer's initial intention of how the items should be used, so maybe he can change the level a little bit to limit down to only one way to solve the level. Nonetheless, the level is good with what it has already.

GED Blog #6 - GDW Progress

While the second last milestone was approaching, we started to try putting things together to make our prototype. My role is 2D artist in the team, but I also responsible for the level design, 3D models, and animation. So I created the game world and all the assets in Maya like we designed earlier.


The above image is the overview of the world we had for the GDW milestone. It was not completed but we had a few blocks done to demonstrate how the environment was going to look like in the final product.



The camera is zoomed in onto the character in this example to demonstrate a better view of the environment.


At this point, we had a rough level design environment, but we were not sure how to implement it into Phyre engine. We decided we might use the Phyre engine level editor to build the level at the beginning, but due to the limited time we had before the milestone, we had done it differently.

Instead of loading each individual models to the engine, we loaded the entire scene instead. Basically, we wanted to send Phyre engine the location of each object in Maya and let it places each object individually.


To begin with, we kept the transformation data of each of object instead of freeze it. For example, the police station had transformation on x and z axis from the world origin and we want to export that to the engine. Therefore, instead of loading very object and place them all over again, we can use a script in Maya to export the scene, and use the data to recreate the scene in the program.


The naming of the object is a very important. We wanted to have all the information about the object in the name so it will be easier to organize in the program. (type of object)_(model name)_(model's material name)_(type)_(script name if there is any) was the template we followed when we named our objects. For example, police station was an object that had a specified police station material and it was static, so we named it o_policestation_matpolicestation_s. The program looked for the model file named policestation, look for the material file named matpolicestation and identified it as an static object. If we did not put any material down in the name, the material was set as default and the program used the material in the model file instead. Besides object and static, there were also trigger, light, and dynamic type.

We had set up the scene to be ready to export, then we set up each object to import to the program.


Using an fire hydrant for example, it was named according to the name in the scene and same as the texture. Instead of using Maya shader, we had to apply collada shader instead. It was because Phyre engine did not have much room for data, hence everything had to be very optimized. Collada shader was to simplify or compress the material information in a way so the engine could read it easily. Moreover, the object had to be set in the world origin at 0, 0, 0. So there would not be any double transformation when the program placed the object.

Finally, it worked like we planned. This is how we implemented our asset into the game and I will upload a screenshot in one the upcoming blogs.

Monday 18 November 2013

GDP2: Crafting a Dekonstruer Blog


So for this quest I choose Maplestory and analyze its game atom. Maplestory is a 2D side-scrolling MMORPG released in 2005 and it had a huge update called "Big Bang" in 2010, which completely changed the game core since. In this blog, I want to focus on the game atoms in the earlier version of Maplestory as it provides more enjoyable experience.

Game Atoms
Players

Players create an avatar to represent themselves and use it to explore the Maple world. Similar to other MMORPGs, it is multiple individual players vs the game; players can play independently, form party with other players, and form guild with a bigger group of players to proceed the game. 


Objectives/Goals

The objective of Maplestory is to level up the avatar to its max level. Players can achieve this goal by completing sub objectives, such as NPC quests, party quests, guild quests, boss fight, etc..The method of achieving these objectives is varied; it can be puzzle-solving, jump quests, or territorial control.

A party is trying to solve a puzzle in order to proceed the quest.


Rules/Mechanics

The setup is Maplestory is simple. Players start off as beginners and soon become different classes such as warrior, archer, magician, or thief. They do not have to choose a class but it will help them level up easier and faster. In terms of rules, players have a lot of freedom to do pretty much anything they want in the game. There are rules in certain areas or quests where they require players to have certain skills or at a certain level. However, they do not affect players' freedom much as there are many other options. The rules become more specific and strict when it comes to quests.

A screenshot of a party quest in progress.

The above image is an example of how rules become very specific to players in order to complete the quest. In the party quest, players have to protect the NPC alliey from enemies until it arrives to the destination within the time limit. Failure of doing so will result players quit the quest and they have to restart it from the beginning again. Therefore, although Maplestory does not have a defined set of rules of how the game should be played, every quests has its own specific rules to tell players what to do.


Resources


Gathering resources from monsters or NPCs/quests.

The major resource in Maplestory is the mesos where players can use it to buy other things, or earn it from selling monsters' drops or completing quests. The monster's drops are also important as players might need them to complete quests. Players' skill is also another crucial resource in the game. When players are at high level, they have to learn their skills using skill books. They can be found from quests, monsters, or trade from other players, but they are very rare. Also, Maplestory releases specific items during an event which they become very valuable after the event is over. Therefore, the rarity and scarcity of the resource determines the value of the resource.



Game States

A screenshot of the game.

The game state mostly surrounds players' characters, such as their health, experience, level, items they own, or how much mesos they have, etc. Furthermore, game state includes the data of each character or monster such as their hit points, defense, or how much damage they can deal, etc., which will be considered when they interact with each other.


Information

Even though players often only sees the character's level, health and experience bar, and other buttons to access to different things, they have access to much more information about the game by using the keyboard.

The keyboard setting window that shows all the shortcut set on the keyboard.

This keyboard window shows all the shortcut players can use on the keyboard, which can provide them different information.


A quest window that shows all the details of every quest.

For example, by pressing Q, it opens a window that has all the information about the quests players can take in the game. However, the information about players' such as their friend list, inventory, or quests that they have completed would consider as private information where other players cannot have access to. Also, there are many information about quests, and items are hidden from the players. Players might not notice until they do some research or being notified by other players. 


A portal that teleports players to another portal.

In the old Maplstory, there were hidden portals in some maps that teleport players to another portal or bring them to a hidden map. They were not visible until after the Big Bang update, which looks something like the above image. There were many hidden information for players to discover in the old Maplestory.


Sequencing

There is not a lot of order of player's action in the game; they can do one quest after another or multiple quests at the same time. However, they do have restriction in some aspects. For example, players have do 2nd job advancement in order to do 3rd job advancement; or the party has finish the current stage before moving onto the next stage during a quest. Under these circumstances, players' actions are limited before reaching to the next stage.

A part of the party quest where players have to eliminate all the monsters in the room before moving onto the next room.


Player Interaction

Player interaction is a big part in Maplestory, as there are massive of players helping each other to advance in the game. Players often enjoy company during the game, where they can train and travel together, trade items, and socialize with each other, and this forms up part of the players' experience. Furthermore, there are party quests in the game that require a specific class to be in the team, such as cleric who can heal party members, which involves a lot of interaction and negotiation between players and parties. This interaction is players helping players to complete quests together in the game.


Theme/Setting

The world map.

Maplestory is set in an unknown era, where players play as an explore and travel around the world, and eventually fight against the antagonist, the Black Mage. Throughout the game, there are many storylines and dungeon for players to experience, and players get to understand the story through NPC's dialogues and cutscenes.


The Game
The old Maplestory before update, was extremely hard. The states of the monsters were fairly high and the experience in rewards was relatively low. Thus, it would take a very long time for players to level up and have job advancement. In order to have fun, players started to work with each other to trade information, item, or train very often and enjoy each other as company during the process. For example, party receives 1.5x more experience than a single player when killing monsters, and open a lot of party quest opportunity. Therefore, players would always prefer to play with other players, which made the game heavily relied on players interaction. Moreover, the good items were extremely hard to obtain; it often involved group effort and some luck. For example, some of the most powerful weapon for certain levels only can be found from boss' drop. When players wanted to obtain the most powerful weapons and useful items to maximize their performance at that level, this made the trading market became very competitive, which also increased players' interaction.

Overall, the old Maplestory made it very challenging for players with its game state and resources, and these did not frustrate the players but brought them closer together. This made a lot of players miss the old version of Maplestory as they enjoy the social environment that was created, which cannot be found in the new version when everything becomes so much easier to find/achieve.