Anyways, the first thing I wanted to do was get started on figuring out how I would accomplish recording the players movements. I thought about it for some time (probably longer than I took to program it) and came up with the solution shown above. While there was a few ideas I came up with, I felt the best would be to just record the players input and re-simulate all of the actions. While this means that more processing power is going to be spent calculating collision and such when I start adding other elements to the game, I felt that since I'm going for a 2D game it wouldn't be too big of an issue. Doing it this way saves me from having to record the players position every frame, which will be a hefty memory savings in the long run. When I start adding in running, jumping, shooting, or whatever else, the way I set the system up is pretty flexible, so that process shouldn't be too painful. Check back soon for more updates as I continue to experiment with this idea.
Wednesday, March 21, 2012
Recording input experiment
Anyways, the first thing I wanted to do was get started on figuring out how I would accomplish recording the players movements. I thought about it for some time (probably longer than I took to program it) and came up with the solution shown above. While there was a few ideas I came up with, I felt the best would be to just record the players input and re-simulate all of the actions. While this means that more processing power is going to be spent calculating collision and such when I start adding other elements to the game, I felt that since I'm going for a 2D game it wouldn't be too big of an issue. Doing it this way saves me from having to record the players position every frame, which will be a hefty memory savings in the long run. When I start adding in running, jumping, shooting, or whatever else, the way I set the system up is pretty flexible, so that process shouldn't be too painful. Check back soon for more updates as I continue to experiment with this idea.
Friday, March 2, 2012
Some More Medusa
Remaking an old classic
This project is from very early on during my time at Full Sail University. I worked on this during Windows Programming I, which is basically the first time we rendered anything to the screen. Prior to that, we had done nothing but console programming. The object of this project was to make our own version of one of the world's oldest video games: Pong. So, I combined my love of hockey, hockey video games (Blades of Steel FTW!), and Pong to create Hockey Pong. Basically, each player skates around the rink and takes a turn trying to shoot the puck into the opposing players net. Good ol' fashion fun!
Medusa's Level Editor
During the creation of Medusa, I was also responsible for creating a level editor, so we could easily make levels for the game. The editor was developed using C# and managed DirectX. The editor needed to be fairly robust to accomplish the needs of the game. The map for the game was tile based and the editor can handle grabbing tiles from various images and various sized images and placing them on the map. After some research, I was able to create a fill, or "paintbucket", algorithm that allows for filling an area with the selected tile. This was very useful for large areas.
Docks level
The editor is capable of placing objects like environmental objects (boxes, submarines, etc), enemies, and powerups. This made it easy to fill areas with objects and enemies to keep the environments changing and posing a threat to the player. Various triggers can also be placed and sized around the map quickly with the editor. Placing collision boxes to keep the player from walking through the walls, triggers that spawn enemies when a player enters a room, and triggers that cause the lights to flicker can be added in no time flat.
Lab level
With some help from Luis Lairet, we were able to add lights and see their effects in real-time in the editor. This helped with level creation immensely, since we could see exactly how the lights would look in the levels as we were working on them. Making this tool allowed for rapid development of the levels in the game.
Medusa
Medusa is a game created by Luis Lairet, Brian Pike, Jim Casale, and myself during Structures of Game Production at Full Sail University. Medusa is the name of an underwater facility that has been infested with mutated sea creatures. It's up to the player to eliminate the threat and escape the facility. Over the course of two months, we developed the tools and the engine that run this network capable 4 player co-op shooter. The game was created with the use of C++ and DirectX.
I was in charge of creating two of the characters in the game. The scout, who has a sprinting ability and a shotgun that sprays in a spread pattern, and the engineer, who only has a pistol as a weapon, but can drop down a turret for some added support. During the creation of the characters, I also implemented the shooting, so the bullets come from the tip of the gun towards the crosshair. I also came up with a method to randomize the shotgun spray so it behaved like a real shotgun, spreading shrapnel in a random pattern, and implemented the targeting for the turrets.
As I mentioned before, I handled some of the triggers in the game. With some help from Luis, we were able to create triggers that could change some of the lighting effects. At times in the game, the lights will flicker, go dim and into various other modes, adding some suspense to the game. The enemies are also triggered when players enter a certain area and removed at certain points to keep the enemy count down.
This project was, by far, my favorite experience at Full Sail thus far. I got to work with three awesome guys and we were able to learn and create a ton of cool stuff during the two month class. I'd like to give some thanks to our associate producer Robert Martinez, as well as the extra guidance we had from Sean Hathaway, Shawn Paris, John O'Leske, Darryl Malcomb, Garry Miller, Lari Norri and anyone else I may be forgetting.
Navigating the dark passaegways
Responsibilities
I worked on the level editor for the game. More on that in this post. Since I worked on the level editor and was familiar with it, I handled loading the levels that were created in the editor into the game engine. This involved loading the various tile images used to create the level, the spawn points for the players, the triggers for the enemies to be created, the position and color of the lights, as well as numerous other triggers and objects. During the optimization phase, I also implemented culling on the map, so the tiles that weren't currently on screen wouldn't be rendered.
Dropping a turret for some backup
I was in charge of creating two of the characters in the game. The scout, who has a sprinting ability and a shotgun that sprays in a spread pattern, and the engineer, who only has a pistol as a weapon, but can drop down a turret for some added support. During the creation of the characters, I also implemented the shooting, so the bullets come from the tip of the gun towards the crosshair. I also came up with a method to randomize the shotgun spray so it behaved like a real shotgun, spreading shrapnel in a random pattern, and implemented the targeting for the turrets.
Getting mauled
As I mentioned before, I handled some of the triggers in the game. With some help from Luis, we were able to create triggers that could change some of the lighting effects. At times in the game, the lights will flicker, go dim and into various other modes, adding some suspense to the game. The enemies are also triggered when players enter a certain area and removed at certain points to keep the enemy count down.
Priming a grenade
I also helped find and create many of the assets in the game. I helped out in adding some of the sound effects, like the shotgun blast and footsteps. My main contribution as far as assets go was creating the HUD and the level artwork. While I'm not much of an artist with pen and paper, I can work my way around Photoshop pretty well. For the HUD and the level artwork, I mixed and matched countless textures, colors and patterns together to create levels that looked unique, as well as infested. Since I created the level editor and was very familiar with it, I also created three of the four levels in the game.
Showing off some cool lighting
This project was, by far, my favorite experience at Full Sail thus far. I got to work with three awesome guys and we were able to learn and create a ton of cool stuff during the two month class. I'd like to give some thanks to our associate producer Robert Martinez, as well as the extra guidance we had from Sean Hathaway, Shawn Paris, John O'Leske, Darryl Malcomb, Garry Miller, Lari Norri and anyone else I may be forgetting.
Mars Attacks
Mars Attacks is a game that I created during the Structures of Game Development course at Full Sail University. Since this is basically the first time we made our own game from scratch, using C++ and DirectX, and we only had a few weeks to work on it, I tried to take a relatively simple game idea and put my own twist on it. The basic premise is that aliens are attacking the Earth and the only thing that can stop them is a massive turret that shoots bullets, missiles and bombs.
During this project, I learned many different techniques that are helpful to know in 2D game development. I used vector mathematics so the projectiles would look appropriate when fired from the gun. I did some frame-based animations to create explosions and sparks that indicate that the ships have been hit or destroyed.
During this project, I learned many different techniques that are helpful to know in 2D game development. I used vector mathematics so the projectiles would look appropriate when fired from the gun. I did some frame-based animations to create explosions and sparks that indicate that the ships have been hit or destroyed.
Rocket
I also learned how effective loading information from a file can be for game development. Each level is loaded in from an XML document which tells the game which song it should play, what time the enemies should attack, which type of enemy should attack and what file contains the information for the next level, if one exists. Rather than just having enemies attacking at random intervals, I was easily able to sync the attack to the song, which makes much more of an impact on the player.
Guided Missile
Music was also an important consideration for this project. When I first thought of the idea for the game I knew I wanted to incorporate some of my favorite music. I clipped some sections from songs by The Contortionist, Animals As Leaders, Substructure and Irepress, because I felt like their occasionally "spacey" styles would fit the game perfectly.
Bomb
This project was an excellent learning experience. With the help of my course director, David Brown, and the lab assistants, Robert Martinez, Sean Hathaway, and Shawn Paris, I was able to learn quite a few useful techniques and make something pretty cool for the level of experience I had at the time.
Subscribe to:
Posts (Atom)