Friday, May 9, 2014

Oculus Rift!

Eric dropped a bomb on me! Professor Garvey let me use the Oculus Rift with my space game, which is now titled "Dark Matters" thanks to Kevin and I. It took us almost 3 hours to brainstorm names, and when it stuck, it stuck. We expanded more on the back story for the game, and the characters, and I don't want to reveal too much at the moment (waiting for next semester). I've decided to forgo the space hub and the additional scavenger mission. Txema came up with some great character models for the game, which made the switch all that much harder:




But we all decided that it was the right (and overwhelmingly exciting) thing to do:
Me with the Rift on.
Txema with the Rift on.
Additional goofy selfie.
Since the school invested in the original kickstarter, this was the first iteration of the prototype. I experienced massive amounts of motion sickness, but I was too excited to care. I was also incorrect in assuming that adapting the level to use the oculus rift would be very easy to do. The way the game is set up is that it uses multiple cameras to simulate the effect of deep space. This all proved to be a challenge. I had to disable head tracking since it messed with the flight-sim controls of the game. But without the head tracking, the motion sickness got even worse. It took 3 additional hours in the morning, and Eric had to give me a hand in the end to set up the background cameras properly, but I got it to work. This is possibly the most satisfying moment of my short career as a student of game design and development.

Revised race level.

The game in all its glory!


Original earth level also recreated for the Oculus.

Explosions!

Wednesday, May 7, 2014

Race Level Complete, Almost There

I was able to recreate Christian's paper prototype pretty closely in Unity. Christian did a great job with the prototype, laying out the foundations of the level very clearly. He labeled each checkpoint, and varying elevations of the track. We also decided to include several large, and mobile asteroid fields for the player and enemies to navigate through.


On the bottom half of the page was the additional scavenge mission I mean to include in the game, but for that to happen I need to completely finish the race level. Here is what it looks like:



The path is pretty treacherous to follow, and I changed the enemy movement script a bit so that the AI wouldn't just smash into the dangerous asteroids.


I also decided to change the camera from third-person to first-person. I feel as if the effect of space travel was enhanced, and the game more akin to a flight-sim. I also refined the flight script some more. The only challenge now is that since the level isn't confined to a track as it would be a ground race, I didn't know how to tell the player to follow the invisible waypoints. I also didn't want to ruin the minute immersion factor by introduction directions or markers. I came up a solution that I felt worked better than a map, or a marker system, and yet allowed the player to follow unto each waypoint.



A trail render! I added a fading trail render to the parent flock controller, and this parent loosely traversed the entire track, following the waypoints. Those that played the level agreed that the trail was a great way to create a sense of direction in boundless space, without restricting the player to a "track." The trail faded as it went, so the player had to be right behind it in order to follow the track.

Tuesday, May 6, 2014

3 Day Game Jam

In order to deal with some health issues, I decided to recruit a small temporary team and begin a 3-day Game Jam. Dale was previously working on a "flocking" mechanism to simulate groups of birds in flight. I felt as if that code would be perfect with the way the waypoint system. We decided to put the scripts together, in order to simultaneously work with a large number of AI with each ship possessing distinct features. Christian decided to join as a level designer, and in order to set up an actual design document. Txema agreed to make a bunch of new models to populate the hub. I didn't find it intuitive for the player to accept missions through a stale GUI. Instead, I wanted to set up a scene using a first-person-controller and have the player actually interact with NPC's, and possibly flesh out the story some more through that. Here is the initial task-list:


Our work was pretty cut out for us, but we were all feeling exceptionally motivated, wanting to present a finished level at the game showcase on Friday. I wasn't sure if I would be physically available for the presentation, so I fully intended on passing the project onto Txema and Dale.

Dale taking a selfie, with Christian creating a paper prototype of the race level.

Me, working hard (or hardly working) to adapt Dale's code.
I ran into some issues with Dale's code because each individual entity needed to procure it's own position before it began looking for the position of surrounding ships. This presented to be a problem when the parent object was destroyed. The solution that I came up with was to create an invisible flock controller than then controlled the children ships.


The parent was then attached to the original enemy movement script, and the player only saw the children ships flocking in formation.


I will update once again tomorrow after recreating Christian's paper prototype in Unity.

Friday, May 2, 2014

Waypoint System

I took Dale's advice, and looked into Digital Tutors. He was kind of enough to share, and I got access to some great tutorials. I finally solved the waypoint problem, through some very simple code. I used gizmos to create a waypoint system similar to the way the RAIN INDIE sets up navigation paths.

Sample code.
This would be as easy for a non-programmer to use as dragging and dropping the scripts onto the player and enemy. The enemy movement script is where the waypoint system comes to life:


Here is what it looks like in an actual scene:

The ships follow the loop loosely, with added deviations.


Monday, April 21, 2014

Bouncing and Hub

The art team made great progress this week and finished the space station hub. I thought of add a script to liven the space station, make the docked ships bounce. Pretty useless code, but my friends and I found it humorous.


Friday, April 18, 2014

Failed Attempt at AI

I convinced Eric to let me use the RAIN INDIE artificial intelligence package. The package is very intuitive in its use, and I thought the it be easier for others in the class to follow rather than trying to edit my code (the class is mostly made up of non-programmers). But unfortunately, navmeshes are absolutely useless in the way the space scenes are set up. Without a navmesh, the RAIN INDIE package is just as useless. Now my next attempt will be to try and create code for a waypoint system by trying to build onto my follow script. Dale is recommending that I try looking at C# programming books to attempt programming the waypoint system. In the meanwhile, Dale and I have been working on a menu/inventory GUI. Kevin helped create some mock-ups:

GUI Options.
Unity has some great inherent abilities to set up a graphical interface, but Dale wanted to do the inventory system from scratch. Here is how it looks when implemented into the game:

The menu is initialized using 'p'.

All four aspects of inventory.

Sample of the code. We wanted to be able to the GUI inside of a store function.


Wednesday, April 2, 2014

AI Follow Script

I adapted a very simple AI follow script that I created for my RTS game from last semester (When Nature Strikes Back). I intend on expanding upon this, creating variations for different enemies. For now, all that the AI does is follow the object tagged as "Player."


Friday, March 28, 2014

Space Game

I took a brief hiatus from posting on the blog while I got my previous scripts and code in order. Eric wants me to jump ship from the 2D RPG Game, and instead move forward with the space game. The class has basically splintered into two groups, with one large group working on the RPG and one small group (Dale, and I) beginning work on the space game. I had a general idea in mind when I began working with the space demo. Christian Otterman suggested a possible mining mechanic that we could begin with. I think the mechanic could prove to be quite interesting given that it would be very easy for me to populate a map with asteroids.
Empty scene with just the space background camera, and a player ship.

Populated a map with infinite asteroids.

First AI that I implemented.

Edited the camera so that the planets were on a separate layer from the background.

Monday, February 3, 2014

Combining Ideas

I think Sam's idea of time travel based combat and game play would mesh very well with my idea of varied game art styles. His idea felt like an amalgamation of Prince of Persia and Zelda to me. We could possibly have two to three different time periods and we can establish that many different art styles (8-bit for the past, 16-bit for the present, etc.) Again, like I said before, I feel that my idea is more bare-bones that can be fleshed in using the ideas of others.

Monday, January 27, 2014

January 22nd Assignment - Pitch Proposal

"Time and Time Again"


Video games have come a long way from when they were first conceived in analog. 8-bit processing dominated the first two generations of game consoles. 16-bit video games are what most people think of when they think of nostalgic throw-backs (Super Mario, Final Fanstasy, etc).


I think an interesting way to develop using the 2D RPG Kit would be to create a RPG that showcases the man different pixel art-styles (6-bit, 8-bit, 16-bit, etc) that have existed throughout the history of video games. The main character of said RPG is a blend of the many 2D RPG and platforming games we have all played growing up. The game should be self-aware of the fact that it's parodying/amalgamating these many different universes. Combat could possibly be turn-based, meshing magic and realism. We don't even have to stick to a single genre style, but the mesh of many different ones. The game should be divided into major chapters, each one depicting a different 2D art/genre style (ex: Chapter 1 is in 8-bit pixel art, Chapter 2 is in 16-bit pixel art, etc). This idea isn't a conforming mold so much as it is a bare-bone skeleton into which we can add content as a class. Thankfully role-playing elements can be adapted to almost any genre in video games.