Tuesday, December 15, 2015

Course Reflection

After a semester in Intro to Game Studies, I feel like my appreciation for all games has increased. Whether I was designing a video game, a board game, or just a simple party game to play with friends, I learned that there is more to it than just developing the rules. Other factors like how the audience feels, what kind of style the game uses, and who the target audience is affects the gameplay.
The most interesting thing I learned was how audience perception of the game affects the play. For example, in one of our in class demos, we played a "game" called Lonliness, where the player was nothing more than a black square, and interacted with other black squares. While the game itself is incredibly simple, as the audience began to realize the meaning of it, the game carried a more serious tone. We first started out laughing as the little black square tried to catch the others, but as it became apparent that the square was always alone, the audience grew sad. The game then felt more real and hold deeper meaning.

Another interesting thing I realized was during the final presentations, how the style affected the gameplay. One example was from Spellstrike, a fast paced 1v1 battle of wits. This was one of the only PvP games that our class presented, and it created excitement among the players and the viewers. The style of competition made a simple game into an exciting display of wits.
I found that throughout the entire semester, I learned that games were about more than just a ruleset. They can carry a story, create feelings, and create an emotional response. As a game designer, I now have a unique insight into how games can be more than just a set of rules, but a medium to transfer information to a player.

Tuesday, December 1, 2015

Final Project Prototype: Tower Defense

For my final project, I teamed up with my partner from the Go-Go Granny project in order to create a different game: Tower Defense. Tower defense games are simple in theory, but highly complex in the coding behind the scenes. The goal for our tower defense game is to introduce a new mechanic, which is the idea that as enemies cross into your territory, your land starts to become corrupted. As your land becomes corrupted, so do your towers, giving them new (and slightly corrupted) abilities!
An example of the land becoming corrupted can be seen here above. So far, there is only one type of enemy and two types of towers. Different enemies and towers are planned for future stages of the games, including but not limited to, boss monsters, long range towers, and slowing towers. The way the game works right now is the enemies will try to make it to the bottom, and you have to build towers to shoot them and block their paths.

Some challenges this game has posed to me as of now is dynamic enemy pathing and infinite level scaling. Dynamic pathing means as new objects are placed on the grid, the enemies have to find a new shortest path to the goal. This was one of the first problems I tackled in this project, and was able to solve it using Gamemakers mpGrid function.


In the code snippets above, you can see how I first created a grid object divides the grid into cells with sizes of my choosing. I then add objects to the grid that need to be avoided. Then, when I create an enemy object, I give it a path based on the objects in that grid. Now the enemies will find the best path to the end!

Infinite level scaling is another problem I ran into, and I am still dealing with it. The problem with infinite levels is that you have to predict how the user will play and how long they will play. So far, I have narrowed my style down to two possible forms: scaling health or scaling enemy type. These two difficulties are diagrammed below:
As you can see, the blue line has stronger temporary impact, while over time it only gradually grows, but the red line has a more fair and balanced increase. I decided to go with the scaling HP formula, and use the flat lines to indicate when to release boss monsters. This formula will not be final, so testing will provide more direct feedback.

So far this game has been really fun to code, and I am extremely satisfied with how it has progressed in the last 2 weeks!