1. What is our project and how does it work:
We created three Garry’s Mod gamemodes. They are a Hidden in Plain Sight mode, Zombie Survival mode, and a Team Fight mode. All of the modes are written in Lua using Garry’s Mod functionality.
Our game modes can be viewed at : http://youtu.be/1qPHmMA1EAc
Hidden in Plain Sight:
There are two possible goals here. One is that you find the other player and kill them. The catch is that the other player looks just like the other NPCs in the map and finding them is a challenge. The other goal is for one of the player to try to kill all of the NPCs and the other player to determine who the murderer is.
Zombie Survival mode:
There are two different goals here as well. In one map you are just trying to kill all of the zombies. In the other map, the map with a lighthouse, you are trying to escape the zombies by getting to the base at the top of the lighthouse. By reaching this base you summon a helicopter that is supposed to take you away. In this game mode the zombies drop weapons, ammo, and health items that will help the players further kill more zombies.
Team Fight mode:
Here we have the players using NPCs as their own personal army. The NPCs start at opposite ends of the map, and each side is already part of a player’s army. You can convert NPCs by shooting them with the pistol. This means you can steal NPCs away from the other player. There isn’t a set goal here, but it is a fun mode to play.
2. Each Team member’s role and contributions:
We all worked on pretty much everything. There were no set roles. Everyone had to set up the Tridef software to run Garry’s Mod with.
Cory: Cory did extensive research on Garry’s Mod and gamemode creation. He tested the Oculus Rift compatibility with Garry’s Mod, eventually settling on using Tridef 3D Ignition software to use the Oculus Rift. Cory worked on various things for playing the game in multiplayer and players and NPCs using weapons. He spent a lot of time programming NPC behavior. This included making them act randomly, react to getting shot at, and making the NPC and players look like each other. He also did a lot of work on minor issues with Garry’s Mod, like how to remove the info about a player that is shown when you target that player. Cory focused on the Hidden in Plain Sight and Team Fight modes.
Jacob: Jacob came up with most of the different game modes that we decided between. Jacob did research on Portal maps and Unity programming to help decide which platform we should program in. This included creating Portal maps to test, creating Portals in Unity, and setting up a Unity example of an online FPS. He also did a lot of research into creating portal zones in Garry’s Mod, but we did not end up using those. Jacob also worked with NPC interactions, including having the NPCs drop items and having the NPCs like you. He also did a lot of work with additional maps for the zombie mode and overall balance issues with the zombie mode. Jacob focused mainly on the Zombie mode, but helped with all three.
Giang: Giang also did research on Portal maps as an option for creating our levels. He was able to create maps for Portal, but we did not end up using these. he looked into gamemode creation like Cory and Jacob did. He looked into how to create a base system to use for goals in the zombie game mode. This was used for one of the maps in the zombie game mode. He was also able to get another computer that lets us demo. Giang focused mainly on the Zombie mode, but helped with the Hidden in Plain Sight mode.
3. How do we feel about the project:
We are pretty happy about the final product we have produced. We would rather a few more things were refined, but overall we are happy with what we have.
4. Largest hurdles:
We discovered that portals were difficult to implement in Garry’s Mod. Making transparent portals is next to impossible. We overcame this by removing the portal element from our gamemodes.
The Garry’s Mod documentation is pretty poor. We had to rely heavily on how other peopel wrote code to solve their issues. A lot of the time we just had to test thigns and see what they did. Also, the Facepunch forums proved very useful to answering some small questions.
NPC behavior is inconsistent. Some of the NPCs act as you expect them too. Several NPC things have been deprecated, but the documentation is not properly updated to reflect this. This resulted in us going around in circles for a while. Eventually we worked out all of the isssues with NPCs.
The Tridef 3D Ignition is limited to Microsoft Windows operating systems. We need this software to use the Oculus Rift with Garry’s Mod. We solved this by limiting the demo computers to Windows only computers.
The class period is not long enough to accomplish things in, especially since we do a stand-up beforehand. We were often left with only 20 or 30 minutes in class, which is not really enough time to do things in class.
5. Did our project meet our original description and goals?
Our general goal was just to have two people in an environment using the Oculus Rift. We have accomplished this goal. However, the details have changed significantly since the project began. Initially we were going to create a game where the two players chased each other using Portals to make obstacles. We completely moved away from this and made the gamemodes described before.
6. What else would we do if we had more time?
We would probably add some UI elements to make the goals of the game more clear. This includes a waiting room system for when the game starts to allow other players to connect and play without anything happening beforehand. Also, this would include an automatic win condition and resetting the game back to the initial state being programmed in.
We would add more maps to the gamemodes. Right now we only have a few different maps.
I would probably try to create more customized NPCs so that I have better control of what each NPC does.