/rant
You would think that with a course focusing on shaders, that shaders would be the biggest challenge one faces. But I for some reason don't have much of a problem with them, its just the darn setup that goes along with it.
First of all there's not many resources for actual setup code for this stuff (that I can actually understand), and when there is its usually not quite what I'm looking for. I'm not clever or intuitive enough with programming to know how to adapt such things, so I work largely based on trial and error.
For example I've been working through the code to morph 2 obj's with a shader. The shader itself is fairly simple, it takes the source and destination vertices and perform's the lerp function between them at the specified intervals. That's all fine and dandy, and it makes sense to me, but I can't figure out how to get an obj loader to load 2 obj's -.-
I've been working off the TA's code but its more meant to load in a single object and then draw it. So I've been trying to figure out how to many an array or vector list to work with loading in several objects. And of course this naturally involves stuff like pointers and etc, meaning I suck at it. I still can't wrap my head around pointers, or why they are needed or what they really do (I get the theory behind it).
And then for the particle shader, I know the physics calculation and how to output the vertices based on the calculation, and the difference between uniform and varying, and how to use the TEXCOORD# semantic to get values for position, velocity etc. But there is this function in the CG examples called glMultiTexCoord, which is undefined no matter what version of glut and opengl I use. I know it can be used to pass in multiple values to the shader, but as it is I'm using glTexCoord and I'm fairly certain it just overwrites the value each time it is passed to the shader.
So on that front I'm stuck and looking for workaround solutions as well. In both cases I get the shader and how it works, but I don't understand the connection between the base code and it very well. So here's to more research and asking peers for help and whatnot, I know I'll get it sooner or later.
/endrant
Continuing in the Game Dev course at UOIT, this year's blog will feature tidbits of Game Engine wisdom and AI techniques.
Sunday, February 19
Dumbing it Down
There's a couple things that really bug me about some game franchises; a main one being when a sequel is much simpler or 'dumbed down' compared to the original. To this effect (ha) I will be looking at a couple examples: Mass Effect and Supreme Commander.
Lets start with the largely popular Mass Effect 1. Right in the opening mission you are exposed to several different weapon types, and over the course of the game you get literally hundreds of different weapons of various types (lots of duplicate models but that's not so bad). On top of this, each weapon can be customized with special properties such as extra fire or poison damage. Additionally there are many different types of armour for your character which has its own customization options.
![]() |
| Comparing weapon stats. |
Moving onto ME2, I got my first assault rifle in the opening mission of the game. I got the second somewhere half into the game, and that was about it. I personally enjoy using assault rifles and there was maybe a max of 3 different kinds in the game. To me this was a heart-breaker, as it took away one of my favourite aspects of the original. I would spend tons of time tinkering around with weapons to get awesome combinations, and it was all taken away for the sequel. Even the number of abilities was drastically reduced and it all felt a bit too simple.
There was no longer much choice involved, and being an RPG this was not good. Any of the choices between weapons in ME2 were either obvious or meaningless, because there wasn't really many choices to make at all. Even the armour customization was made into a cosmetic feature, so it added nothing to the actual game play experience. To be fair the game play and mechanics still held up well, but the whole experience felt a bit shallow in comparison to the endless possibilities in ME1. From what I've seen in ME3 previews, people wanted back their customization enough for Bioware to take the original's route. Hopefully they get it right!
![]() |
| How will I ever choose..? |
There were 2 resources in the original and you collected them like a usual RTS. But the way building things worked was radical in that it wasn't a one-time affair; resources were fluid and your rates increased/decreased depending on how many things you were doing at once. For example, building a shield generator with 20 engineering units at once would be much faster, but it would drain your energy and mass very quickly. Once at 0 in a resource, your build speed was capped to your positive resource generation. This made managing your resources very important and you had to make important decisions on what to build and when.
![]() |
| Note the +1 and +4 at the top; they are the net resource usages. |
Apparently people thought this system was too punishing if you got into an economic rut, so the developers changed it back to the typical RTS style for the sequel. This completely trivialized this aspect of the game, as it became a matter of 'do I have the resources or not?' and the presence of a choice was largely removed. You either built the unit/building or you didn't. Since every other RTS works this way, it took away the uniqueness of SupCom that I really enjoyed.
The second and more damaging aspect is the Tech system change between 1 and 2. The original boasted 4 tech levels, and units in higher ones cost exponentially more. This meant needing to upgrade your resource collection and unit-building structures. The effect was that at higher tiers you could pump out low tech units/structures like it was nobody's business. The game continually progresses over time until you hit tech 4 and began building the huge experimental units (Oh, I need to talk about these too!).
![]() |
| The potential for massive armies and bases in SC1 are limitless. |
Back to SC2 and the whole Tech system is completely removed. Instead of around 50+ units/structures for each faction, it gets dumbed down to a uniform tech system with possible upgrades. The number of units was cut down to about for each faction and the variety suffered terribly. You could now upgrade all your units but none of them felt very powerful or exceptional in any way. By comparison, a Tech 3 Titan in the original could wipe out a whole army of Tech 1 walkers.
With all the units being equalized, none of them felt powerful anymore. This combined with lower unit counts and smaller maps made SC2 a major disappointment. Even the awesome experimental units were dumbed down in the sequel; they had 2-3min build times and could be taken out by a dozen normal tanks. An experimental in SupCom took 5-30min to build and could annihilate everything in its path, and it accentuated the large-scale epic feel of the game.
This is the original SupCom trailer. It tells you everything you need to know about the game. I hope the developers take note of the community's outrage at SC2 and (hopefully) think twice before continuing to ruin what made the original amazing. Complex games aren't for everyone, but when you make a game that tailors to these types of players, don't go back on everything for the sequel. I played SC2 to the end and never touched it again...
Friday, February 17
Homework 5: Skill vs. Chance in Games
Part 1) Sum War
Players: 2-4
Materials Needed: Normal card deck (no jokers)
Setup: Shuffle 1-2 decks and give each player their portion of the cards.
Progression: Each round players may look at their next 3 cards and decide whether to play 2 or 3 of them. If a third card is not played, it is put back into the bottom of the player's deck. When the cards are put into battle, the highest sum wins that battle and the winner receives all the cards in the battle. This means players must decide whether to risk losing an extra card in order to increase their chances of winning.
Wars: When a war occurs, both player put 3 cards face-down as usual. Next they take two cards from the top of their deck but cannot look at them. Simultaneously each players puts their 2 cards face-up on the 'battlefield' and the first player to call out the total sum of the 4 cards wins. Each player only has one chance so they must make sure the answer is correct before yelling it out. An ace is one, and jack, queen, king are 11, 12, and 13 respectively.
In the case that both players incorrectly guess the answer, all cards involved in the war are taken out of the game permanently. The winning player in a war gets all the cards as per usual. This war variant combines a risk vs reward decision factor, as well as a quick-thinking component for winning wars.
To illustrate the war system: The players put down their 3 face down cards, then at the same time put down 2 more cards face up. The cards add up to 28 but the first player incorrectly blurts out 27. The second player now can take his time to make sure he gets it right. The influence of a speed-based war system means that these moments are very intense and should get the players really into the game.
Resolution: The game ends the same as per the original version.
Results: I played a match of Sum War with my little brother (since we used to played War a lot when we were younger) and it went over fairly well. We both liked the choice of being able to play all 3 cards because it was awesome when it paid off. On the other hand it was a major upset when 3 cards lost to 2 better ones, but that was all part of the game. The wars themselves were really tense moments and were definitely enhanced by the manic-nature of competing to get the answer right first. My brother is a math wiz as well so we were pretty evenly matched.
Part 2) Tic-Tac-Throw
Players: 2
Materials needed: Special tic-tac-toe board with notches for where the pieces go, and coin-shaped game pieces (X on one side, O on the other side).
Setup: Each player receives 5 game pieces, and stands several feet from the game board (can be on a table, floor, etc).
Progression: The players can decide who goes first, then taking turns they must toss their pieces onto the game board into one of the slots. If the pieces bounces out of the board, the player gets his piece back and then the other player may take his turn. It works similar to pool in that the first player to get a piece on the board will be X or O depending on which side landed face-up. From this point on the players take turns throwing their pieces onto the game board.
Skill: A player who practices throwing the piece onto the board could get very precise (much like improving at any sport), making the outcome dependent on their throwing skill. The core game remains the same but a player with experience will have better aim and consistency than someone playing for the first time. A new player could end up getting the wrong side of the piece and making their opponent win!
The Twist: Since there is both luck and skill present, this game could be similar to other drinking games for adults such as the popular Beer Pong. The loser of the game (or best 2 out of 3 games) would have to drink upon defeat. Also bets could be placed on X or O winning, making this variant into a gambling game since there is still a degree of luck involved in most cases (unless someone gets really good!).
Resolution: The game ends when 3 in a row is made or a draw when the board is full.
Results: Since the game board I envision is fairly tricky to make, I didn't really play-test this one. I assume it would be fun at parties though because it is similar to Beer Pong and those types of activities. The concept is pretty simple, its just a matter of spicing it up with adult-oriented rewards.
Part 3) You First, I Insist!
Players: 2
Materials: Game board and 4 game pieces
Setup: Each player chooses their colour then rolls to see who goes first (lowest goes first)
Original Game: The original called You First! was made by my group, consisting of myself, Alex-Bedard-Reid, Thomas Coupland, and Connor McCarthy in the second week.
Game play of original: You First! is a simple race to the end board game with the twist that the first player to reach the end loses, and vice versa. Each turn the players roll a die to see how many spaces their game piece moves. Certain tiles on the board have special conditions when the player lands on them, the most important being the pink 'switch places' tile.
Variant: In my revamped version there are a higher number of special tiles scattered throughout the board, and instead of rolling a die to see how many spaces you move, you get to choose to move between one and six spaces. The idea is that if one player gets further behind (winning) by only moving one space each turn, another player can choose to land on a pink tile and switch the two. This is made possible by the tweak to the pink tile, which would be changed to "Switch with the player closest to the beginning." The game becomes a balance of keeping a slow pace and trying to not stray too far from the rest of the players.
Results: Adding this variation to the movement rules made the game a lot more compelling but not necessarily more fun. While it was amusing to be able to choose when to mess somebody up by switching with them, the game largely played as it normally would. It was still a good bit of fun but became a little bit predictable by the end. The original in my opinion was a bit more exciting because of its chance-based nature, where anything could happen. I think to make this variant more exciting, new special tiles would have to be added with even more game-changing effects.
Players: 2-4
Materials Needed: Normal card deck (no jokers)
Setup: Shuffle 1-2 decks and give each player their portion of the cards.
Progression: Each round players may look at their next 3 cards and decide whether to play 2 or 3 of them. If a third card is not played, it is put back into the bottom of the player's deck. When the cards are put into battle, the highest sum wins that battle and the winner receives all the cards in the battle. This means players must decide whether to risk losing an extra card in order to increase their chances of winning.
Wars: When a war occurs, both player put 3 cards face-down as usual. Next they take two cards from the top of their deck but cannot look at them. Simultaneously each players puts their 2 cards face-up on the 'battlefield' and the first player to call out the total sum of the 4 cards wins. Each player only has one chance so they must make sure the answer is correct before yelling it out. An ace is one, and jack, queen, king are 11, 12, and 13 respectively.
In the case that both players incorrectly guess the answer, all cards involved in the war are taken out of the game permanently. The winning player in a war gets all the cards as per usual. This war variant combines a risk vs reward decision factor, as well as a quick-thinking component for winning wars.
To illustrate the war system: The players put down their 3 face down cards, then at the same time put down 2 more cards face up. The cards add up to 28 but the first player incorrectly blurts out 27. The second player now can take his time to make sure he gets it right. The influence of a speed-based war system means that these moments are very intense and should get the players really into the game.
Resolution: The game ends the same as per the original version.
Results: I played a match of Sum War with my little brother (since we used to played War a lot when we were younger) and it went over fairly well. We both liked the choice of being able to play all 3 cards because it was awesome when it paid off. On the other hand it was a major upset when 3 cards lost to 2 better ones, but that was all part of the game. The wars themselves were really tense moments and were definitely enhanced by the manic-nature of competing to get the answer right first. My brother is a math wiz as well so we were pretty evenly matched.
Part 2) Tic-Tac-Throw
Players: 2
Materials needed: Special tic-tac-toe board with notches for where the pieces go, and coin-shaped game pieces (X on one side, O on the other side).
Setup: Each player receives 5 game pieces, and stands several feet from the game board (can be on a table, floor, etc).
Progression: The players can decide who goes first, then taking turns they must toss their pieces onto the game board into one of the slots. If the pieces bounces out of the board, the player gets his piece back and then the other player may take his turn. It works similar to pool in that the first player to get a piece on the board will be X or O depending on which side landed face-up. From this point on the players take turns throwing their pieces onto the game board.
Skill: A player who practices throwing the piece onto the board could get very precise (much like improving at any sport), making the outcome dependent on their throwing skill. The core game remains the same but a player with experience will have better aim and consistency than someone playing for the first time. A new player could end up getting the wrong side of the piece and making their opponent win!
The Twist: Since there is both luck and skill present, this game could be similar to other drinking games for adults such as the popular Beer Pong. The loser of the game (or best 2 out of 3 games) would have to drink upon defeat. Also bets could be placed on X or O winning, making this variant into a gambling game since there is still a degree of luck involved in most cases (unless someone gets really good!).
Resolution: The game ends when 3 in a row is made or a draw when the board is full.
Results: Since the game board I envision is fairly tricky to make, I didn't really play-test this one. I assume it would be fun at parties though because it is similar to Beer Pong and those types of activities. The concept is pretty simple, its just a matter of spicing it up with adult-oriented rewards.
Part 3) You First, I Insist!
Players: 2
Materials: Game board and 4 game pieces
Setup: Each player chooses their colour then rolls to see who goes first (lowest goes first)
Original Game: The original called You First! was made by my group, consisting of myself, Alex-Bedard-Reid, Thomas Coupland, and Connor McCarthy in the second week.
Game play of original: You First! is a simple race to the end board game with the twist that the first player to reach the end loses, and vice versa. Each turn the players roll a die to see how many spaces their game piece moves. Certain tiles on the board have special conditions when the player lands on them, the most important being the pink 'switch places' tile.
![]() |
| Concept of the original You First! game board. |
Results: Adding this variation to the movement rules made the game a lot more compelling but not necessarily more fun. While it was amusing to be able to choose when to mess somebody up by switching with them, the game largely played as it normally would. It was still a good bit of fun but became a little bit predictable by the end. The original in my opinion was a bit more exciting because of its chance-based nature, where anything could happen. I think to make this variant more exciting, new special tiles would have to be added with even more game-changing effects.
Sunday, February 12
Big Burly Bosses
I didn't really have an idea for this blog so I brainstormed a bit and came up with a topic that I tend to think about sometimes and have an opinion on. The topic in question is the prevalence/necessity of bosses in video games.
What first got me thinking about this topic was playing Skyrim back in November. The Elder Scrolls series does many things and does them on a huge scale, but there's always a small voice in the back of my head yelling that the games could be more enjoyable with big boss battles. I realize that Alduin is pretty epic and all, and maybe for some he was a challenge, but at any decent level he's a pushover and the experience feels a bit lacking. The fight mechanics are basically the same as fighting any other standard dragon in the game. (note the comments almost always relate to the easiness of the fight)
I know that playing at your own pace is a staple of that series' game play, but would it really be that difficult to scale Alduin's difficulty higher based on the player's level? Again I realize that there is a feature right there in the game to adjust the difficulty at any time, but this doesn't really make the game much harder or easier; numbers that you don't even see are changed. It does not add to the game play in any way.
Let's contrast that sense of 'well that was cool guess' to the awesome and creative boss battles in the God of War series. The first major boss in GOW1 is a giant sea serpent, which you defeat by jumping around on a ship and impaling its head. Many of the boss fights in the game are complex and multifaceted, giving the bosses a strong presence and leaving the player with a lasting impression.
The game play in Skyrim is supposed to reflect that the player can choose how to take down the boss in many different ways, but I think a boss with many unique attacks and interesting movement patterns is superior from an immersion standpoint. As Kratos you truly feel heroic when taking apart a huge boss piece by piece.
Another game series that comes to mind is Prince of Persia. The boss battles also have that immeasurable scale to them which really opens up so many different opportunities for boss mechanics. Yet another is Shadow of the Colossus, which features many giant (hundreds of feet tall) bosses which you must climb and slowly take down. While I haven't personally played it, I've heard that it is an excellently designed game which is fun from beginning to end.
This is not to say that 'boss fights' have to always involve fighting a big enemy of some sort. Many adventure games feature platforming or skill-based challenges other than beating up a bad guy. A good example is Super Meat Boy, where boss levels follow the same mechanic as usual levels, but you must dodge and jump your way to victory, thus defeating the boss.
![]() |
| I don't think the giant chainsaw wants to be friends. |
On the other end of the equation is games without any major boss-type mechanics. I won't go into as much detail because usually these games rely on different mechanics to stand out. Most action-adventure types don't have bosses because they don't need them. A game that does well without many big bosses is the Halo series because its action flows smoothly throughout each level, and each level usually ends in a cliffhanger/leads well into the next level. This way it doesn't require a climatic boss fight at the end of a level to keep the player interested.
Personally I don't mind whether a game features boss battles or not, but if you're going to add this mechanic, make sure they are designed to be engaging and spectacular.
Say What?
Alright this is probably going to be the craziest thing I've ever said but here it goes: Shaders aren't all that bad.
Now this isn't just a random outburst caused by smashing my face off my laptop too many times; there is a story behind this. It all began when I felt all traces of happiness exit my body and soul, right around the time when Hogue revealed his 'new and improved' exp system. Before I go on: If you don't know me, I'm rather terrible at programming. And moving on.
Being the (relatively) hard working student I am, I delved straight into this shader stuff, spending the first weekend setting up a framework for the homework questions as was suggested. Now remember that whole thing where I suck at this stuff? Yeah well I certainly hit a brick wall; I fought and struggled just with the shader setup stuff. I think I had a hernia upon seeing the code in the 'vertex transformation' CG tutorial. Eye twitches, tears of liquid pain, hating life, all that jazz.
It frightened me enough to put it off a couple weeks (I had rational excuses I swear). But with the easy question deadline looming, I forced myself to get back into it. Of course by this time a good majority of the easy questions were worth 0, and despair was increasing. So I got all steely-eyed and said "Whatever, I'll just work on a more difficult one" D:<
Thus I began picking my way through the particle system tutorial code, adding it to my framework line-by-line, making sure I understood it every step of the way. It was a long and arduous process, but there was no choice; all the (easiest)easy questions were worth 0 by now. Once I got to the end I began changing things one at a time, gaining a deeper understanding of each function and etc. I was starting to get it!
Then at long last Hogue realizes that his ridiculous exp system is a bit flawed and changes things. All hope has returned! Now at this point I'm feeling pretty badass working with easier shaders. I go back to the first easy question to turn the screen blue. Bombshell: It's easy as cake. I know exactly how to implement it and it shouldn't take much time at all. It turns out delving straight into the tougher shaders made the easy ones..actually easy :O (Edit: Maybe Hogue planned this...!!)
Ok so maybe it was a pretty lame story, but really I'm feeling so much better about shaders. The whole first month was a stress-fest of knowing that my inadequate programming skill was going to cost me the chance of getting any exp. But now there is hope, there is a chance. I will prevail. I'll even reveal my dirty secret: I kind of like programming shaders (now that I understand them).
BUT DON'T TELL ANYBODY.
Now this isn't just a random outburst caused by smashing my face off my laptop too many times; there is a story behind this. It all began when I felt all traces of happiness exit my body and soul, right around the time when Hogue revealed his 'new and improved' exp system. Before I go on: If you don't know me, I'm rather terrible at programming. And moving on.
Being the (relatively) hard working student I am, I delved straight into this shader stuff, spending the first weekend setting up a framework for the homework questions as was suggested. Now remember that whole thing where I suck at this stuff? Yeah well I certainly hit a brick wall; I fought and struggled just with the shader setup stuff. I think I had a hernia upon seeing the code in the 'vertex transformation' CG tutorial. Eye twitches, tears of liquid pain, hating life, all that jazz.It frightened me enough to put it off a couple weeks (I had rational excuses I swear). But with the easy question deadline looming, I forced myself to get back into it. Of course by this time a good majority of the easy questions were worth 0, and despair was increasing. So I got all steely-eyed and said "Whatever, I'll just work on a more difficult one" D:<
Thus I began picking my way through the particle system tutorial code, adding it to my framework line-by-line, making sure I understood it every step of the way. It was a long and arduous process, but there was no choice; all the (easiest)easy questions were worth 0 by now. Once I got to the end I began changing things one at a time, gaining a deeper understanding of each function and etc. I was starting to get it!
Then at long last Hogue realizes that his ridiculous exp system is a bit flawed and changes things. All hope has returned! Now at this point I'm feeling pretty badass working with easier shaders. I go back to the first easy question to turn the screen blue. Bombshell: It's easy as cake. I know exactly how to implement it and it shouldn't take much time at all. It turns out delving straight into the tougher shaders made the easy ones..actually easy :O (Edit: Maybe Hogue planned this...!!)
Ok so maybe it was a pretty lame story, but really I'm feeling so much better about shaders. The whole first month was a stress-fest of knowing that my inadequate programming skill was going to cost me the chance of getting any exp. But now there is hope, there is a chance. I will prevail. I'll even reveal my dirty secret: I kind of like programming shaders (now that I understand them).
BUT DON'T TELL ANYBODY.
Tuesday, February 7
Lighting and Such
A little behind on this one but here goes nothing. I'm going to do a quick overview of lighting to make sure I know what heck I'm talking about!
Ambient: An omni-directional light that covers everything around it. No area has more intensity than others as it is uniform wherever the light hits. It is based on the diffused lighting parameter multiplied by constant value to determine how much light there is.
Diffuse: Light gets more focused with diffuse, as it can be shone in a certain direction. There are several rules that help define the properties of diffuse lighting: the illumination falling on a surface and being reflected perpendicularly is relative to the inverse square of the distance between that particular object and where the light is coming from. The illuminance will always be proportional to cosine of the angle with the normal of whatever object the light is hitting (basically defines the reflection). When diffuse light travels through an absorbing medium (air, water, etc), then its intensity decreases at an exponential rate from the light source.
The intensity for diffuse is defined as the intensity of the light source x the constant factor of the light x the angle between the light and a surface normal, which can also be calculated as the dot product between them. Additionally diffuse lighting can have an attenuation effect by diving by a couple extra parameters in the equation. This can change the fall-off rate of the light and will change how it looks dramatically.
Specular: This type of lighting is a bit different in that it is dependant on the viewers angle. The specular highlights will change depending on where the viewer sees the object from. Specular lighting's equation is fairly similar though; it is the intensity of the light source x a constant factor x cos of the angle between the reflection and the viewer. Since the angle is between the reflection and the viewer, moving will change how you see the specular highlights. Certain models like Blinn and Phong's are just specific versions of this kind of lighting, where it will have a certain look based on the equation.
Just combine all these together with the actual emissive light and you get a final result.
Ambient: An omni-directional light that covers everything around it. No area has more intensity than others as it is uniform wherever the light hits. It is based on the diffused lighting parameter multiplied by constant value to determine how much light there is.
Diffuse: Light gets more focused with diffuse, as it can be shone in a certain direction. There are several rules that help define the properties of diffuse lighting: the illumination falling on a surface and being reflected perpendicularly is relative to the inverse square of the distance between that particular object and where the light is coming from. The illuminance will always be proportional to cosine of the angle with the normal of whatever object the light is hitting (basically defines the reflection). When diffuse light travels through an absorbing medium (air, water, etc), then its intensity decreases at an exponential rate from the light source.
The intensity for diffuse is defined as the intensity of the light source x the constant factor of the light x the angle between the light and a surface normal, which can also be calculated as the dot product between them. Additionally diffuse lighting can have an attenuation effect by diving by a couple extra parameters in the equation. This can change the fall-off rate of the light and will change how it looks dramatically.
Specular: This type of lighting is a bit different in that it is dependant on the viewers angle. The specular highlights will change depending on where the viewer sees the object from. Specular lighting's equation is fairly similar though; it is the intensity of the light source x a constant factor x cos of the angle between the reflection and the viewer. Since the angle is between the reflection and the viewer, moving will change how you see the specular highlights. Certain models like Blinn and Phong's are just specific versions of this kind of lighting, where it will have a certain look based on the equation.
Just combine all these together with the actual emissive light and you get a final result.
Sunday, February 5
The Morality of Morals
Being a gamer I can agree with his sentiments. For example, I wanted to experience both sides of the good and evil dynamic in Mass Effect 1 and 2, but they were both lengthy games and upon beating them I didn't feel like going through it all again just to see whats different on the other side. Or in The Old Republic where some of the items are only available to Light 5 or Dark 5 characters. It takes a lot of time to max out one of these and once there you are unable to get any items requiring the opposite side.
I see two main solutions to this dilemma which would help players not feel so fenced into one direction. The first is to reduce the effects of good/evil choice to aesthetic outcomes. Oblivion comes to mind as it doesn't truly have a morality system. You are open to do as you choose, and murdering a whole village won't impact the main story line or limit what you can do in the future (except for the whole being attacked on sight thing). Oblivion makes morality a choice where the player can really pick when and where to do benevolent/dastardly deeds.
![]() |
| Go to jail, pay fine, or run? |
The second solution involves reducing the black and white nature of moral choices in games. Often they are polar opposites and the player might feel as if their choice isn't represented by the two end of the spectrum. The ending of Fable 2 pulled this off spectacularly, as it was one of the most involving and difficult choices I've ever been faced with in a video game. After defeating the final boss in Fable 2 you are granted one wish and must choose between three morally grey choices. (2:33-3:25)
You must choose between reviving all those who died during the story line, your family (and your dog) in the game, or gaining an immense amount of wealth. I chose to save all those who had died, and in the end I felt good about myself but it came with a hollow feeling. The beloved dog I had grown attached to during the game was gone forever and it just wasn't the same without him. This powerful emotional tie really made the choice difficult and there was no sense of choosing a certain option just to gain good or evil points: it really mattered.
While the first option is certainly easier to implement, I believe that moral choices in games should follow Fable 2's system to create real and meaningful decision-making. The difficult choice in Fable 2 had a profound impact and I have certainly not forgotten it. I believe moral choice systems in games can add a lot the experience if they give the player a reason other than unlocking the best equipment and weapons, and are an excellent game mechanic if done properly.
Tuesday, January 31
This is Madness...This is Matrices!!
So I've been looking through the CG examples to get my head around some of it. The 2D stuff was fairly simple, just take in the vertices and does whatever, then outputs no problem. But then hit the 3D example program and was blasted in the face by more matrices than I knew what to do with.
So I consulted the bible of CG (Nvidia Tutorials) and went down the rabbit hole. Chapter 4 in the tutorial is where I needed to be. To reinforce what I've learned I'm going to attempt and explain what exactly the chapter talks about. It begins with some easy stuff about coordinate systems and the pipeline, then gets into the heart of the matter.
We begin at object/model space, which is the coordinate system for the object itself. Each vertex in the 3D object can (of course) be placed somewhere in the object space, with a vector to store all the translation/rotation info. Although not always shown, the w value is always there if you can't see it. It is more handy to use the 4-value vector because it makes all the 4x4 matrices much easier later (I'll get to it!)
Speaking of which, to get the object in world space you must combine all the rotations and translations into a homogeneous 4x4 matrix. Each object in the world have its own matrix to define where it is and its orientation etc. This way everything is relevant to the other objects in the world. These transformations can be concatenated to define the precise location of each object. Now with everything there, we need to look at it.
Eye space is the next stage, and it involves where we will be looking at the world from. In eye space, the camera or 'eye' will be at the origin and everything else will be relative to it in this coordinate system. To transform the world into eye space, the view transform must be done. This usually involves some sort of translation to offset all the other objects compared to the camera. Once you figure out where you want the camera, you multiply its homogenous 4x4 matrix by the model one to get the modelview matrix.
![]() |
| Creating the modelview matrix. |
This results in the projmodelview matrix and is what makes up where the fragments are. In OpenGL the clip space will divide by the w to get each of x, y, z between -1 and 1. This means that the vectors are now normalized in the clip space. The final fragments are then sent through to be rasterized by the GPU, which then is displayed on the screen.
Hopefully I got this more or less. Now to do the hard part and actually figure how all this code works..
Sunday, January 29
Of Airplanes and Dinosaurs
Today I'm going to go over our two new board games and review the game atoms, as well as explain a concept I wanted to add to them. The WWII game we came up with is called Flight Path and involves 2-4 players trying to reach an aircraft carrier at the other end of the map. The pick-up mechanic game is called Rescue Racers where the goal is to rescue civilians via helicopter from the dinosaur invasion.
In Flight Path each player controls a WWII era airplane which is in need of repairs. The players can choose from the Saetta, Spitfire, Komet, and Mustang models, and their objective is to reach the Campania class escort carrier near the shore. The players start spread out at one end of the map, while the carrier occupies two spaces at the opposite end. The first two players to get there will be repaired and win the game.
![]() |
| Campania class escort carrier. |
Each turn every player can move up to two spaces on the map. A 90 degree turn will use up one of these two movements. Players are limited to 90 degree turns and a max of two movements per turn. Additionally, certain tiles will limit movement. It takes both movements to get through one cloud tile on the map, while mountain tiles are impassable to all players and must be flown around.
The main mechanic of the game is managing your fuel resource. Each player starts with, and can have a maximum of 6 fuel. Each turn they use up one unit of fuel. Scattered around the map are refuelling stations which will put a player to maximum fuel again. These fuel-stations are one-time use and players will have to keep finding more to stay in the air.
Strategy in Flight Path results from choosing where to fly your plane in an attempt to cut other players off. If a player can't manage to reach a fuel station and crash-lands, they must wait two full turns before they can begin moving again. There are several different maps planned, some with choke points and others with limited fuel stations to keep the game intense.
A little interlude here for game atoms; I believe that progression is a big part of games, but maybe not quite a game atom. It is on a higher level but encompasses a lot of the game atoms within itself. All games involve a progression of start to finish, or setup to resolution. It keeps the game going or keeps the player motivated, and can be thought of as a resource similar to time. It could be linked to addiction in an MMO sense, as players have the strong urge to continually level up and progress to equip better weapons and armour. More simply it can be thought of as: a game progresses until culmination when a winner is declared.
![]() |
| Warning: Progression in an MMO may reduce social skills progression by 100%. |
Games without progression would be endless. It would be like Clue where you never find who did it, or Dungeons & Dragons where your character just sits around town all day. Linear or open-ended, progression is the catalyst to which players strive to improve and continue. Progression creates a sense of purpose and clarity of intent, a direction so to speak. Without progression, why bother playing?
Moving on to the pick-up game; Rescue Racers features 2-4 players saving terrified people from scary dinosaurs. The game map is similarly laid out in square tiles but this time the players are in helicopters and must rescue the people from rooftops in a city environment. The game ends when all the humans are rescued, and the player with the most is declared the winner (and a hero!).
![]() |
| There goes the neighbourhood... |
The competitive aspect comes from the ability to steal another player's civilians. This happens when a player lands directly on another player's piece. If they have room they steal the player's cargo and move two spaces directly in any direction from the opponent they landed on. Some players may choose to go around rescuing while others may hang around their opponents helipads and attempt to steal all their passengers.
During play-testing our group came across a major flaw in the movement system. Originally you could move to any space each step of your turn. So if you wanted to move two spaces but rolled a six, you could bounce back and forth until you landed on it. This created a phenomena where Tom and I kept rolling a 2, 4, or 6 and repeatedly stole each others passengers. This combined with the bouncing two spaces mechanic created a situation where we stole back the passengers with a 50% success rate.
After a few turns of this it really became frustrating and the game quickly turned into a steal-fest; not very fun. With this flaw in mind, we decided that the player could only change direction once per turn and after that the chance to steal from a player drastically dropped. Oh it still happened, but it was a fair mechanic and we had a lot of fun with it.
While both these games feature a flying aspect, their goals and mechanics are quite differentiated. Each has its own pace and a distinguishing flair to it, and both are a ton of fun. On that note, I've got a couple more blogs to write so adieu for now!
Sunday, January 22
Board Games
Our group for the board game design came up with a really fun idea. Our race to the end game (tentative title: 'You First!') is unique in that the objective is to race and be last. The idea is that 4 students are being sent to the office but only the first three to get there will get in trouble. The last one will sneak away while the principal is distracted. This means that you really don't want to get there first!
Each player takes their turn by rolling a die and moving however many spaces is rolled. There are normal tiles and special tiles along the path. The special tiles have different effects depending on which colour the player lands on. When landing on yellow the player must move two spaces back (this is good!) and if that puts the player on another special tile its effect will be activated as well. A green tile will make the player's next roll lowered by one; this can be good or bad depending on their next roll.
Pink tiles are the real game changers and make You First! intense. When landing on a pink tile, the player switches their piece with the player who is nearest to the principal's office. This can change the game dramatically if the two are far apart. If the player closest to the end lands on a pink tile, he switches with the closest player behind him. The way the board is set up, it requires a fair amount of luck to get past the final two yellow tiles.
In the match our group played, we all ended up switching back and forth with each other on the last row of tiles and it was really nerve-wracking. Eventually someone made it to the end (and lost) but for a while it was a real nail-biter. I really liked how the game could change in an instant and the end was designed to create suspense. While there is no direct element of strategy involved, the game can still inspire a lot of competition between players, especially near the end. We are considering changing the pink tile to allow the player to switch with anyone of their choice. Alternately another special tile type could be added to accommodate this feature.
The territorial dominance game we created is called Hexatron. It is played on the hexagonal tile paper and whoever scores the highest wins. The back story is that each player controls their energy being and the objective is to go around to the all hexagon nodes and collect 'energy' from them. Once a node has been travelled on, players can no longer move on it. Each node will give a point and special nodes will add extra points or even double the player's points.
Each player rolls a die on their turn and is able to move up to three spaces depending on their roll. This adds an element of chance as well as strategy to the game. The strategy comes from deciding where to move as well as when to move certain places. For example a player could start moving to another player's starting corner early in an attempt to cut them off and restrict their movement. This could severely reduce the other player's chances to get a decent score. The match ends when all the spaces are taken or no players can make another move.
I'll add pictures of the polished and prototype game boards asap, and go over them in a bit more detail.
Each player takes their turn by rolling a die and moving however many spaces is rolled. There are normal tiles and special tiles along the path. The special tiles have different effects depending on which colour the player lands on. When landing on yellow the player must move two spaces back (this is good!) and if that puts the player on another special tile its effect will be activated as well. A green tile will make the player's next roll lowered by one; this can be good or bad depending on their next roll.
Pink tiles are the real game changers and make You First! intense. When landing on a pink tile, the player switches their piece with the player who is nearest to the principal's office. This can change the game dramatically if the two are far apart. If the player closest to the end lands on a pink tile, he switches with the closest player behind him. The way the board is set up, it requires a fair amount of luck to get past the final two yellow tiles.
In the match our group played, we all ended up switching back and forth with each other on the last row of tiles and it was really nerve-wracking. Eventually someone made it to the end (and lost) but for a while it was a real nail-biter. I really liked how the game could change in an instant and the end was designed to create suspense. While there is no direct element of strategy involved, the game can still inspire a lot of competition between players, especially near the end. We are considering changing the pink tile to allow the player to switch with anyone of their choice. Alternately another special tile type could be added to accommodate this feature.
The territorial dominance game we created is called Hexatron. It is played on the hexagonal tile paper and whoever scores the highest wins. The back story is that each player controls their energy being and the objective is to go around to the all hexagon nodes and collect 'energy' from them. Once a node has been travelled on, players can no longer move on it. Each node will give a point and special nodes will add extra points or even double the player's points.
Each player rolls a die on their turn and is able to move up to three spaces depending on their roll. This adds an element of chance as well as strategy to the game. The strategy comes from deciding where to move as well as when to move certain places. For example a player could start moving to another player's starting corner early in an attempt to cut them off and restrict their movement. This could severely reduce the other player's chances to get a decent score. The match ends when all the spaces are taken or no players can make another move.
I'll add pictures of the polished and prototype game boards asap, and go over them in a bit more detail.
Subscribe to:
Posts (Atom)













