Team VEX Final

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 :

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.

Vex 5/9


This week:

Cory – Made the player alyx model look more like the npc model and made it so that you do not see the name of players when you put the cursor on them possibly, but that needs testing.

Giang –

Jacob – Downloaded and played with additional maps. Played around with the balance of the zombie gamemode.


We worked together to test multiplayer within class Wednesday and it worked well.


Having a the gun sights over a character will reveal if the character is an npc or person.

Also, Making an NPC like you does not seem to mean that they will defend you. This may affect the Player vs Player Armies mode.

Still on schedule?

We plan on testing multiplayer with the Rift in class today. If that works then we are on time. If it does not then we are behind schedule.

Plans for next week:

Group – Get the Rift system working on multiple computers

Cory – Look into Team creation for the Player vs Player Armies mode. Currently, every player and NPC is independent of each other.

Jacob – Create maps for the different game modes. THis means setting the spawn points for the zombies for a specific map. Make sure Tridef 3D Ignition software works correctly on his computer.

Giang – Make sure Tridef 3D Ignition Software works correctly on his computer.

Vex 5/2


This week:

Cory – Programmed NPCs to walk or run around to random locations. Created simple teleporting functionality. Other small things for the Reverse Turing Test.

Giang – Looked into and created a base system we can use for goal platform in the Zombie co-op mode.

Jacob – Looked into and implemented having the NPCs drop weapons and health items. Also started to look into the Love Crowbar, which makes NPCs like you.



We created all of the base pieces for the Zombie Co-op and Reverse Turing Test modes. Only need to combine them and tweak things to get them how we want.



The models that NPCs use are not always the same as the one that we can load for players. There are subtle differences like a differently colored jacket or an extra item on the NPC’s belt. Choosing the NPC models for the Reverse Turing Test mode may be difficult if this problem is present on most NPCs.

Also, Making an NPC like you does not seem to mean that they will defend you. This may affect the Player vs Player Armies mode.


Still on schedule?

I think we’ve done a good job of catching up this week. Probably still a week behind, but we gave ourselves an extra week at the beginning to account for that.


Plans for next week:

Group – Testing Multiplayer support. Combining different elements to construct each Gamemode. We at least want to have one of the gamemodes completed in the next few days. Work on a goal system.

Cory – Look into Team creation for the Player vs Player Armies mode. Currently, every player and NPC is independent of each other. Possibly help create a Menu system for starting games.

Jacob – Keep looking into implementing a “Love Weapon” for the Player vs Player Armies setup. Make sure Tridef 3D Ignition software works correctly on his computer.

Giang – Make sure Tridef 3D Ignition Software works correctly on his computer. Possibly help create a Menu system for starting games.

Vex 4/25

This week:
Cory – Looked into programming NPC behavior.
Giang – Brainstorming gamemode ideas to branch the game into.
Jacob – Brainstorming gamemode ideas to branch the game into.

We changed what kind of game we’ll be making. We came up with several game ideas, and we expect to be able to implement many of them.

  •  Zombie Co-op survival mode
    • Defend each other
    • Look for and collect weapons and ammo
    • Work toward a specific location
  • Reverse Turing Test with NPCs
    • Trying to kill other real humans
    • Get NPCs to fight each other
    • NPCs are reactive to attacks and other actions
    • Body swaps
  • Player vs player armies
    • Recruit NPCs to your army
    • Take out the other army

Garry’s Mod documentation isn’t the greatest. Often have to test things to see what certain functions do.

Still on schedule?
We’ve changed exactly what we’ll be doing, so the schedule is a little off. However, we think we’ll have things ready in time still.

Plans for next week:
Cory – More NPC interactions. Specifically, programmed walking around and using items. Also, looking into the multiplayer issues.
Ghiang – Look into goal conditions trying to locate a platform to get to
Jacob – Look into placing items or having NPCs drop items

Vex 4/17



This week:
Cory – Set up a git repo to work in. Created the initial gamemode that we will build off of. Added some weapons to the only player to test game details. Started looking into how multiplayer works with Garry’s mod.
Giang – Started to look into how to add NPCs (non-player characters) into the gamemode.
Jacob – Started to look into how to create interactive portal zones in our maps.

We were able to set up the very basic backbone of the game.

Multiplayer did not appear to work immediately for our gamemode. It looks like we may need to do some sort of port forwarding or other configuration to allow creating and accessing new servers.

Still on schedule?
We’re a little behind schedule. We were not able to get very much done this week.

Plans for next week:
Finish creating the basic set up and rules for the RunnerGunner gamemode

Team VEX 4/11



This week:
Cory – Set up the Oculus Rift to work with Garry’s Mod using Tridef 3D Ignition software. Went through the game mode creation tutorials
Giang – Went through the game mode creation tutorials and learned lua.
Jacob – Experimented with a Unity example online FPS


Accomplishments would be that we are able to run Garry’s Mod using the Oculus Rift and we can start creating a game mode.

We didn’t have any specific problems this week.

Still on schedule?
We think we are still on schedule.

Plans for next week:
For next week, we will be creating a basic game for our game mode.

Vex 4/4

Fight map
This week:
Cory – Set up Oculus Rift. Set up computer to test Jacob’s Portal 2 co-op map. Initial testing of Garry’s Mod native Oculus Rift support.
Giang – Spent some time learning to create maps in Portal 2.
Jacob – Set up computer to test Jacob’s Portal 2 co-op map.

We were able to successfully test Jacob’s Portal 2 co-op map. This involved setting up Portal 2 to work with the Rift using Virieo’s Perception software. The end result was that we were able to play against each other online while both using the Oculus Rift.

Garry’s Mod native Oculus Rift support crashes the game. We suspected that this may be a problem, but I still wanted to try my own tests before moving on to alternative choices. Next I will be testing Garry’s Mod using the Tridef Ignition software, which is supposed to do a good job of bringing Oculus Rift support to Garry’s Mod.

Still on schedule?
We may be a little behind schedule, as our team was not able to start learning to create Garry’s Mod Gamemodes this week. However, we have been working on issues that come later in our plan, such as setting up Oculus Rift compatibility. I think we will be able to make up the small amount of lost time.

Plans for next week:
Familiarize selves with creating Garry’s Mod Gamemodes and finish setting up Oculus Rift compatibility.

Team Vex Prototype

Team Vex:

Before break we split up the task of researching the different possibilities, we were considering for our project.

Giang – was tasked with researching Portal 2 level creation as an option

Cory – was tasked with researching Garry’s Mod level creation as an option

Jacob – followed up on the research to create a fully custom game


Due to existing commitments, the time left in the semester, and a desire to complete the project on time we decided to prototype a few levels in the Portal 2 level creator that would test the game concept and then to move on to create a full Garry’s Mod Gamemode using custom scripts.

Giang was unable to research Portal 2 level creation as the level editor requires the game. Jacob downloaded the level editor and made an example game.


Are we still on schedule? Yes. The project is still on schedule.

Garry’s Mod may not actually allow the portals to be transparent.


Revisions from plan from March 14th:

At this point, it seems unlikely that we will complete a fully custom game, but considering the fact that I already completed a Portal 2 level, there may be some hope.

Weekly Plans:

4/4: Team members spend time learning to create Portal maps and
familiarizing themselves with Garry’s Mod Gamemodes. The latter involves
learning Lua.

4/11: Set up a basic Gamemode with the correct rules. Set up Oculus Rift

4/18: Work on including portals into the Gamemode.

4/25: Finish working on portals. Design and include different maps for the

5/2: Finishing touches on the game.


Contingency plans:

We already finished a Portal 2 level, so just turning that in would be a contingency plan. Ultimately, we can pivot to any interesting game on the Garry’s Mod platform.

Team Vex

Team name: Vex (Virtual EXperience. Clever, I know)
Jacob Hanshaw, Corey Groom, Giang Nguyen

Equipment: Oculus Rift

General Description:

We want to build a multi-player virtual experience. Creating immersion through story and emotion is likely too complex for class and requires more assets. As such our experience will likely focus on action.


Jacob- General Programming, Unity and C# Experience

“I’m confidant that I can design a good game, create environments, and use general physics.”

Corey- General Programming
Giang- General Programming


Creating realistic character models is a monumental task in and of itself. Animating them correctly and avoiding uncanny valley is a million dollar industry.

Online real-time multiplayer is one of the biggest challenges in computer science today. It involves keeping multiple complex physics systems in perfect synchronization.

Creating and using portals properly is something that a lot of the smartest programmers in the world (at Valve) spent a lot of time doing and released research papers about. Making a seamless transition from one place to another is hard. The portal must show the proper perspective to potentially multiple people looking at it. Without perspective differences it will be a painting instead of a window. Also, the transportation must be seamless or other players will notice the portal. This means that the player must be in two places at once while transitioning through the portal. If in one place or the other, then there will be a discontinuity in the player’s body.

Creating an FPS by itself means unique gun holding physics, gun animations and reloads, and shooting physics. Shooters in particular are hard for real-time online multiplayer games as they require precise timing.

What is your first step:


I researched these concepts and found that there are existing libraries that may help abstract some of the harder details of this project. Though experts with one of the tools said it would take 2 weeks to make a simple offline FPS level, so this project may still be significantly out of scope.

Option B:  A God Among Men game without portals
Option C: A God Among Men game without portals or internet
Option D: Create levels for Portal 2 and play them on the Rift (Likely actually possible!)


Runner and Gunner


Runner and Gunner takes inspiration from Mirror’s Edge, Portal, The Matrix, and Inception to create a novel gameplay experience.

The idea is that there are two players:

A runner whose goal is to get to a predetermined location as soon as possible. The runner can see and turn off or on pre-existing portals placed around the world.

A gunner whose goal is to shoot the runner. The gunner may get trapped in a certain area due to portal placement. It is the gunner’s job to notice when they are trapped and take control of another person around the runner.

Potential features and difficulty adjustments could involve allowing players to place portals, making the runner’s goal a moving target, giving the runner multiple goals, limiting the number of portals a runner can use, changing the runner’s speed, adding camera shake to the gunner’s gun when moving, limiting the gunner’s ammo, showing the gunner the runner’s target(s) or not, allowing the gunner to destroy the runner’s target(s), etc.

Chill AKA Fiend AKA Horror Game
A God Amongst Men


Other ideas are to create a game (Chill) to scare the Occulus Rift user. This design is more iterative as a scary game could be created, then another player controlling the scariness locally could be added, and finally the game could be made online multiplayer.

The final idea is that Chill could be slightly distorted to a mythology style game where players fight ginormous enemies. The optional extra player could then control the enemy, add extra enemies, or provide aid in the form of power-ups.