Monday, May 09, 2011
The Bridge Wrap-Up
Work has wrapped up on The Bridge. Big thanks to the team and everyone who supported us.
Here's our awesome website:
http://commandthebridge.com/
Here's a live demonstration of the final game:
http://www.youtube.com/watch?v=uW5x6AyL7Cw
We were featured on ABC 7 News:
http://abclocal.go.com/kabc/video?id=8113138
We were also featured at TEDxUSC:
http://www.facebook.com/media/set/?set=a.10150217517612037.355868.509387036&l=9a2c67f60c
What an awesomely fun project.
Monday, January 31, 2011
Global Game Jam 2011
I made an awesome Tron-style game for Global Game Jam 2011
Play the game here:
http://kwarp.com/portfolio/fightfortheusers.html
Play the game here:
http://kwarp.com/portfolio/fightfortheusers.html
Team page here:
Wednesday, January 26, 2011
Demo Day
Each semester, USC hosts a Demo Day where Computer Science Games students present their game projects to professionals in the industry. In December 2010, I presented The Bridge on behalf of my team. The media coverage has just been released, which you can check out here:
http://viterbi.usc.edu/news/news/2010/gamepipe-lab-hosts.htm
The picture of me in the article is nothing short of ridiculous. :P
http://viterbi.usc.edu/news/news/2010/gamepipe-lab-hosts.htm
The picture of me in the article is nothing short of ridiculous. :P
Monday, January 24, 2011
Microsoft Word Makes Me Sad
I have a love/hate relationship with Microsoft Word. I trust it to get my work done securely and professionally, but my day-to-day experience with the product is often plain frustrating.
Take for example, this outline I began putting together in Microsoft Word 2008 for Mac
I have pasted a URL, and want to make it a hyperlink. How can I do that?
Ah yes, there it is, in this huge menu. Let's select the Hyperlink option.
Whoa, a huge popup with tons of information I don't want to read. Let's press ok and see if it works...
It looks like the URL became a hyperlink, but it also screwed up my bullet point formatting.
:(
Monday, December 13, 2010
Vector Math
I ran into a fun problem while working on The Bridge today:
In my process of refactoring the ship engine, I added a rotational thruster to turn the ship. When the player issues a Turn Clockwise command, the Navigator AI will apply the rotational thruster to the ship until it reaches the desired velocity.
Here are the properties I worked with:
Each of these I represented as a Vector3 in XNA
I figured that the most logical way to approach this was to adjust angularThrust every frame in an Update loop. The challenge was figuring out what acceleration was appropriate, when only given currentAngularVelocity and targetAngularVelocity.
Clearly, a midpoint isn't good enough, I need something a bit more relative.
In my process of refactoring the ship engine, I added a rotational thruster to turn the ship. When the player issues a Turn Clockwise command, the Navigator AI will apply the rotational thruster to the ship until it reaches the desired velocity.
Here are the properties I worked with:
- A target yaw, pitch, and roll to rotate to, in terms of angular velocity
- Current angular velocity of the ship
- Angular acceleration of the ship's engines
Each of these I represented as a Vector3 in XNA
- Vector3 targetAngularVelocity;
- Vector3 currentAngularVelocity;
- ship.engines.angularThrust
I figured that the most logical way to approach this was to adjust angularThrust every frame in an Update loop. The challenge was figuring out what acceleration was appropriate, when only given currentAngularVelocity and targetAngularVelocity.
My first attempt involved finding a midpoint vector with a simple LERP:
ship.engines.angularThrust = Vector3.Lerp(currentAngularVelocity, targetAngularVelocity, strength) * time;
This works when going from not rotating at all, to rotating in some direction. However, it fails miserably if the ship is already moving in some capacity. I ended up spinning the player's ship phenomenally fast.
Clearly, a midpoint isn't good enough, I need something a bit more relative.
Thankfully, a simple Vector Math trick works nicely:
ship.engines.angularThrust = (targetAngularVelocity - currentAngularVelocity) * strength * time;
Subtracting targetAngularVelocity from currentAngularVelocity will give me a new Vector that points from currentAngularVelocity to targetAngularVelocity . Then all I need to do is shrink the strength of the vector down to a reasonable acceleration, and I'm done.
And thanks to the miracles of Vector Math, this will work in any direction, under any circumstance.
Sunday, November 07, 2010
Typical Day
I have a daily habit of scanning through kotaku.com and gizmodo.com. As I read through article headlines, I open the articles in new tabs for later reading. Here's a sample of what that looks like:
I find it a good way to keep up to speed with current trends in the game and gadget industries, and also find lots of cool pictures.
Sometimes I will watch a video as I read through web articles. Generally I'll watch at a TED conference or two since I find them pretty enriching. The window resizing features in Windows 7 are particularly useful here:
Have a favorite news website to procrastinate on? Leave a comment below.
Wednesday, October 27, 2010
The Bridge
This semester, I am the Technical Lead of a super-cool Science Fiction game called The Bridge.
In the game, you command starship entirely with voice control.
Here are some of the innovate things the game has going for it:
Of course, that's only the beginning.
For more information, check out the game's website:
commandthebridge.com
- Greg
In the game, you command starship entirely with voice control.
Here are some of the innovate things the game has going for it:
- Speech Recognition as a seamless part of gameplay
- The player can say things like:
- "Weapons, fire missiles at enemy ship alpha"
- "Navigator, engage defense orbit"
- Dynamic Story Engine
- Every actor in the game is an Entity
- Entities have Relationships with other Entities
- Relationships evolve throughout gameplay
- Result: fully procedural storytelling
- Emotional Voice Recognition
- The player's tone is interpreted by the game
- This affects crew loyalty towards the player
Of course, that's only the beginning.
For more information, check out the game's website:
commandthebridge.com
- Greg
Subscribe to:
Posts (Atom)







