Project Bearchester
The goal of Bearchester was to create a program which could dynamically create city vistas. The buildings in the city animate through a rapid construction cycle, persist for a set amount of time, then are eventually demolished. After demolition, trees grow where the buildings previously were.
In order to implement this, our group set up a modular construction system, where multiple building plots would be placed in the world, out of which multi-moduled building blocks would grow up to form a single structure. Building designs are generated procedurally, and laid out in a “square-spiral” pattern. Through the interface, users are able to control the flow of time, accelerating, rewinding, and pausing time to examine the various stages of construction
Caption: The first stages of development involved animating building construction by hand in 3D Studio Max, in order to determine timings for building generation.
Caption: The final version of Bearchester as of February 27th. The video showcases the features outlined above.
Flash Games
Airplane Panic
Airplane Panic is a simple, yet incredibly amusing flash game I made way back in freshman year. Even though it technologically pales in comparison to my more recent work, it still remains one of the most fun games I’ve made. Essentially, a plane is quickly running out of fuel, and is about to crash land. In desperation, passengers are abandoning the plane and trying to land in a small truck filled with hay below.
Directions: Keep the plane in the air with the arrow keys. Drop passengers by pressing Spacebar.
Strategic Castle Defense
Castle defense combines advanced crowd dynamics with the top-down Real Time Strategy genre. As the commander of the Red army, your task is to train groups of soldiers to counter the enemy attack, with the ultimate goal of driving them back and invading their castle.
Units in this game are split up into squads of nine soldiers. Each soldier in a squad exhibits several different behaviors: alignment, cohesion, separation, avoidance, and pursuit.
- Alignment: Units align their heading with the average heading of the other units in their squad.
- Cohesion: Units move back to the center of their squad to avoid spreading out too much.
- Separation: Units try to spread out from the rest of their squad, to cover more ground and avoid bunching up.
- Avoidance: When units approach an obstacle (such as a tree), they move outwards around it.
- Pursuit: Units pursue a given target (either a waypoint or another unit).
Unit behaviors are weighted with values that change based on conditions. This way, when a unit gets too far from its squad, the weight for his cohesion behavior increases, making him more likely to return to the center of his group. Likewise, when a unit approaches an obstacle, the weight for avoidance is increased so that the unit will avoid the obstacle before joining back up with his group. To get a better idea of how this works, I included a basic demo below where the user can manually set the weights of the various behaviors:
Finally, the Strategic Defense game implements these weights in a game environment, along with waypoint paths, and some basic opponent AI algorithms which react to which units you create, as well as where your units are:
For detailed play instructions, go to:
http://people.rit.edu/bjm5054/random/PointSpriteDemo.htmlProject Shrink
Project Shrink was done as part of RIT’s Game Design & Development program. In the beginning of the GDD sequence, students are required to create their own game concept, then pitch their game ideas to the professors and the class. From there, the game ideas are narrowed down, a round of development is completed, and another round of game pitches is done, after which the final games are picked and developed.
Out of a pool of 70 total game ideas, my concept for an innovative 2D side-scrolling action / platformer was chosen as one of the six games to go into full development. Over the course of ten weeks, I led a team of twelve other students to create a working demo of my game in Microsoft XNA over C#.
The story behind SHRINK revolves around a reluctant psychiatrist in Nazi-occupied Austria, where the malicious director of the facility is running inhumane experiments on the patients. When one of his workers begins to defy him, the director decides to teach his staff the price of rebellion by forcing him into these experiments as well. After months of torturous experimentation, the worker is thrown, broken, into a cell to die. Unbeknownst to the director though, the worker has a secret ability as a side-effect of his experimentation - the power to shrink himself! Using his newfound abilities, the worker enacts a desperate escape plan that can end only with death or freedom.
This video runs through many of the game mechanics we implemented for SHRINK, while showcasing the level we created for the demo.
SHRINK’s levels are stored in external XML documents which can be modified on the fly with the use of our built-in level editor.
As part of the development process, we were required to draft industry-standard design documents containing detailed descriptions of every aspect of the game. A mostly complete digital version of this document is now available online at the following address:
Full game and design document available upon request