Saturday, June 25, 2011

Emotiv: Candle Light

This blog is a little overdue. After SGP I worked with a few guys on coding programs which use the Emotiv API and SDK. This technology reads brain waves and creates a profile for a user of the headset. IThe system is trained to the user and then sends out messages with data representing the user’s current mental state. Emotiv recognizes facial expressions, actions (such as push, pull, lift, and rotate) and levels of frustration and meditation. David Griggs, Mac Rechelt, Steve Broyles and I were lead by one of our lab instructors, Sean Hathaway.

Steve, Mac and I worked on a Meditation app which shows a candle with a flame that responds to the user’s level of frustration and meditation. The larger level of meditation the user emitted would cause the flame to grow. The larger level of frustration the user emitted would cause the flame to look like it is being blown by wind.  Jim Bochanski did the art for the candle. It was a very interesting experience and we all learned a lot and would love to work with the Emotiv in the future. 

Frustration 

Meditation

Months 18-20: Game Planning and Architecture, Interpersonal Communications, Game Project 1 & 2

Hey there, sorry I have not been updating my blog recently. I have been loaded with work from Final Project. It defiantly is a life changing experience. For some it is a good experience most of the way through for others it can be a very long and painful process. But all we can do is our best so do not lose hope. During APD Don Smith, Jason Hinders, Joel Carroll and Patrick Kelly lead us to Core by having us type up all the technical documentation, such as the Tech Doc and Asset List, we would need for our game, Shopping Cart Derby. In GP1 and GP2, The guys from APD and Mike Lebo guided us through Alpha and Beta as we worked diligently around the clock in Blackmoor Studios, which was dedicated to Dave Arneson, one of the creators of Dungeons and Dragons.

During Core we built our Engine using the Game Object Component model which the Unity engine uses. This architecture is different from Object Oriented which we were taught at Full Sail. Instead of treating objects as a hierarchy of functionality we treat object generically and add components which hold the functionality. This new architecture created a steep learning curve for our team but we managed, with help from Derik Hughes, to wrap our minds around this new way of thinking in terms of game programming and make it to Alpha on time.

In Core we also have to take an Interpersonal Communications class Online. I learned a lot in IPC however I felt that it was not the right time in the program to take such a class. Having Final Project is enough stress to put on someone and when you add IPC it just raises the stress levels even more. We learned how to communicate differently and relay different meanings depending on who we were communicating with. It was an interesting subject but the material was a little dry and the scheduling of this class with Final Project made it very hard to retail the information. 

In Alpha we continued to struggle with GOC. With our architecture all the systems and components communicate via IDs and Events which made it very hard to debug at times. We were able to get Animations in though a little late and got all our held items in to make our game more fun. I had worked on an Effect Editor during Spring Break, with help from Zach Helms, who is a month ahead of me, which replicates Unreal’s Cascade interface. I did this because our Artists have only used Unreal to create Effects before. I was able to give the editor to all the teams in the studio as well as some team behind us. In the end we were able to make it to Beta but we lost our Internal Producers.

Alpha

Boba Effects

In Beta we knew what we were doing with GOC and used LUA to expedite our production process. We still had problems with debugging but we were able to track down the issues with enough effort. We were finally able to get proper collisions and AI working as well as a new level which made our game really feel like a game. We also got some cool menus which fit the theme of our game. We wish we had more time to get features in but unfortunately we had to cut a lot such as multi-player, however the game turned out fun and simple which is always good. We were able to tweak movement and increase the abilities of the powers-ups which really added to the gameplay and feedback. I worked on making the skid marks, as well as the other effects, look awesome. We passed Beta by the skin of our teeth. We crashed during presentation because of a missing asset and were on our toes till feedback a few days later.
Beta

Final Project is no joke it is a hardcore simulation of what crunch would be like at a video game company for 5 months. I have seen good workers fail, even to the point where they cannot even get a diploma if they pass eventually they just get a certificate of completion. It sucks because if you fail anytime during the process you have to go back to the beginning of Final Project and sometimes whole teams fail and games get cancelled. But the important thing to remember is that teamwork and communication are the two most important aspects of success (as well as working hard). Even though sleep and days off were nearly unheard of in our team we still prevailed by staying strong as a group and giving our all.

Sunday, March 27, 2011

Month 17: Game Preproduction, Game Tech, Plunder Prototype and Disney Quest

A lot to talk about this month, our class started final project , I volunteered at Game Tech and finished working on the Plunder Prototype, then a lot of us got together to go the Disney Quest. I did not have to take speech class this month because I have taken a speech class at my previous college. This does not mean that I do not think it is a valuable class, I believe that speech is an important class to take for anyone who needs a confidence boost or just wants to get better at communicating to many people.

In GPP, Liam Hislop, Jason Hinders and Justin Gallo taught us the different components of preproduction such as core systems and asset listing. We merged with art students and design students (internal producers) to form three teams under Shattered Studios which is under GP Games, End-Game?, Falcon Fish Productions and Story Time Games. Once we formed our teams that we will be in for the next 5 months we hit the ground running. We flushed out two very good game pitches which we presented to our external producers (Don Smith, Phil Marunowski) who picked one for us to make. The two games were “Umbra’s Rising”, an online fantasy board game, and “Shopping Cart Derby”, a wacky battle-racer which takes place in a supermarket. Casey Coffman is also helping our studio out with sound effects.

We wound up getting SCD and the whole team is pumped to make a great game. It is difficult at first to jump right into making a game with people you have not met before but its how things usually are in the industry. We worked as a group to make a game design document with our unified vision and had many team building exercises along the way. Michelle Wess, who teaches Design Fundamentals, and Susan Capozza, who teaches Public Speaking, made us do these exercises in order to grow and learn as a team.

Since my friends and I have been working on “Plunder!” with the Serious Games Club, we were able to volunteer at Game Tech with the help of Chris Keeling. Game Tech is a very interesting convention with many industry professionals from the simulation, training, business and entertainment software industries. I was able to talk to many of them and discuss the different technologies they use on their job. I learned a lot about AI and communication software as well as the Cry Engine. Mark Long of Zombie Studios spoke about Trans-Media and how worlds created in games, movies, books, etc. can be enriched and built upon in any other media. The talk was very inspiring and informative. He even met with us students after the keynote and told us a great deal about the gaming industry and what to expect from the positions that we would want to fill.

He told us what to expect on tests and that a portfolio is worth more than a resume to him. He said to intern first to get a feel for the company, do more than what’s asked of us and make it clear to our bosses if we are striving for a different position. He said don’t be shy to ask around the office and see what advice people there will give us. There were around 8 students including myself. He told us to write a lot and have a good web presence, which I do with my blog. He mentioned creativeness as being like sexual orientation. We are a little shy when revealing both because we are not sure how other will perceive it, as in they might think it is weird. He mentioned computer sciences as being “Mathematical Archeology”. All the techniques are there already, you just need to find them. He talked about friends in the industry and their different philosophies when creating games. I gained a lot from the experience, learned what was good and what was bad to do in the industry. He mentioned a few things that differ. He mentioned a few things that differ from independent companies to large ones, such as he has more power owning a smaller one. He also told us to start our own companies and make mobile games. He said it will only lead to good things. My impression of him was daunting at first but he spoke to us very openly and talked to us as equals. I would work for his company any day because I know he is honest and has a great attitude and tremendous knowledge for making games.

The “Plunder!” Prototype was a great success everyone who was involved got together to rejoice in our half-way milestone. There was pizza and good company as we watched the demo and honored individuals who contributed to the project. There was also a lecture on motivation by Justin Gallo. He spoke about the different types of motivation and how we can encourage ourselves to make the biggest, more awesome games.

There are different ways to do research for a game and still enjoy doing it. I went camping with some friend. During the trip I download the Geo Caching App on my phone and it said there was a capsule nearby. We used the app to try and find it but ran into a few snags along the way. The feedback from the app was inconsistent which made it hard to track when we got closer, we ended up not finding the capsule but still had fun looking for it. A few of my friends and I went to Disney Quest to celebrate the completion of our first month of final project and my birthday which is coming up. There were virtual reality simulators, teamwork games and even a customizable rollercoaster. We had a great experience playing all the different games, both old and new. It was great for research as well as a good time.

Sunday, February 27, 2011

Month 16: Engine Development 2. Game Networking and More Plunder

Wow almost in final project, we are all excited. This month we wrapped up the last core material class and learned a whole lot. In ED2, Matt Norris taught us many useful techniques that pro-game developers use in their own games. In GNW, Darryl Malcomb showed us how to get networking in our games and how the internet works. Those of us on the programming team for Plunder, the pirate-themed education game, also got to present our games this month.

In ED2, we added tour knowledge of game engines with many techniques. We learned various types of collision and response algorithms and more spatial partitioning systems. We also learned many lighting techniques such as deferred lighting, radiosity, ambient occlusion and normal mapping. We also got a chance to do terrain following.

We presented the Plunder prototype this month and had great responses. The mini-game I worked on helps students differentiate fragments vs. run-ons. The students do this by correcting a paragraph and then running across it to test their strength of the knowledge. We learned a lot and got to use an engine that took some getting used to, but all in all it was an awesome experience.


In GNW, we learned to use WinSock to pass data along a network. We also got to use RakNet and XNA networking APIs. We learned how to use TCP and UDP to send streams and datagrams. We also learned how to use non-blocking sockets. We learned how sockets communicate through ports and how data is sent and received in various methods throughout the internet. We learned about DNS and the services it provides to make web surfing user friendly. We made a chat program and a networking pong clone.

All and all it’s been a crazy trip and it’s about to get crazier with final project. These last two classes really showed us the ground work that good game modules and engines need to work fast and efficient. I can’t wait to be working on a game in the near future, all our hard work is paying off. The classes were interesting the teachers were cool, overall just another month in game dev.

Tuesday, February 1, 2011

Month 15: Artificial Intelligence, Real Time Animation, James Durall, Otronicon, the Global Game Jam and Plunder

A lot has happened this month. The classes have been very informative. In Artificial Intelligence, Jeremiah Blanchard taught us how to make realistic NPCs and different techniques AI programmers use to make their game fun and interesting. In Real Time Animation, taught by Shawn Kendall, we got to see things from the artist’s point of view and what they have to deal with to get their 3D animations in a game. James Durall (THQ) also came to the school to share his knowledge with us. Otronicon also rolled around again with interesting technologies and the Global Game Jam rocked out another year.

In AFI, we learned about many techniques used to get a variety of different behavior from our agents. We discussed decision trees, finite state machines, path planning and genetic algorithms. To top off all that juicy learning we also held a RoboCode tournament on the day of the final where everyone pinned their bot against each other in one-v-one and team battles to find the AI champ. I also programmed a simulation ant farm to test out writing genetic algorithms and the effect of randomness. It was a wonderful experience and I had a ton of fun in this class.



In RTA, we learned about the different animation techniques we can use to get the desired effect in our games. We talked about vertex morphing, articulated animation and skinning. We worked with state machines to change our animations and used blending to create seamless transitions. We also worked in MEL to load animation data from Maya. It was a nice change of view and a good experience to see the challenges of getting animations to work properly in real time.

James Durall came back to Full Sail to share his journey and experience with the students. He told us about all his different jobs (some of which included lots of writing, designing and developing) at all the different companies, some of which went out of business abruptly. He told us that having a good/clean online presence is key to getting recognized. He also told us that reviewing the products of a company before you show up to an interview is important (playing their games, using their tools). He also mentioned how to gain your teams respect by having programming background and being a good communicator. He was very informative and encouraged all of us to work hard and do our best.

Otronicon was very cool this year. It had all the technologies it had last year and more. There was some good gamer art which blended old school with new school. The military was back and had a operations table set up with people on different computers working together to complete a virtual mission. There was also a virtual shooting range. EA Sports brought by their Virtual Playbook which allows correspondents to interact with virtual versions of players in a simulation of a play. It works by rendering 3D images over the live feed. There was TVs set up with the Kinect and PS Move and a room set up for DJ Hero. There was also an interesting device from Russia called the Virtusphere. The user puts on a headset and steps into the sphere. They see a virtual world and can walk around it by walking in the sphere. It is a very dizzying experience to say the least but a very cool technology none the less.






The Global Game Jam was fun as always. Everyone worked hard to produce games along the same vision. This years theme was “Extinction”. Our team made “Dynocide: Hu Killed the Dinosaurs IV: Cou De Gras”. The game was about riding your motorcycle through a prehistoric landscape, killing all the dinosaurs. We used Unity and learned a lot about the game object component model. We all had a great time and can’t wait to do it again.

I am part of the education pirate game, Plunder, at the school. I program and do research for the game. It has been a rewarding experience I have been working in a team with Unity and have done research on high school standards and virtual education environments. I have enjoyed working on this project and will be upset when I have to stop working on it when I reach final project. We are looking for more programmers to replace our team when we move on so I have my fingers crossed and am willing to train anyone in Unity.

So this month had many fun times and many things to learn. All in all it was just another month at Full Sail which is like being in a 2 year long game jam. Only a month away from final project, I can’t wait to build a full game. Take care and have fun that is what’s most important, o ya and get sleep don’t forget that.

Monday, December 20, 2010

Month 14: Optimization, Machine Architecture 2 and Megatouch

Just finished up the dreaded month of December at Full Sail. There is nothing that will simulate real-world crunch time then December at Full Sail. On a normal month we cram a semester into 4 weeks. On December we cram a semester into 2 weeks. 13 days straight was a challenge that defiantly made us grow. Barry McCall taught us how to benchmark our applications to find hotspots and Gary Miller taught us how to program directly to the hardware to make Game Boy Advance games.

In Optimization, we used Intel’s V-Tune to detect problem areas in our programs. We learned how to break down complex issues to find what is really causing the problem on either the CPU or GPU. Determining whether your application is compute, I/O, vertex, shader bound or a variety of other boundness is one of the most important parts to cleaning up your program. We also discussed how multi-threading could actually slow down your application as well as how to design your application with optimization in mind.

In Machine Architecture 2, we used a new environment to program for the GBA. We learned all the different purpose registers and modes the GBA can use. We learned how to burn our game onto a cartridge using a devkit. We learned how important memory and speed are on a handheld device and how little optimizations could help a lot. We had many reading assignments and homework assignments that expanded on each other in order to give us a well-rounded view of programming for the GBA.

Some executives from Megatouch came this month and talked to us about finding a job in the industry. They told us what they look for in potential employees. They told us what to say and what not to say and not to be nervous during the interview process. Their advice was very helpful and I am thankful for the Megatouch arcade they have given to Full Sail.
Even though this month was very hectic, I still feel like I learned a great deal. Not only did I learn valuable optimization techniques but I also learned how to program for a handheld device. I you asked me a month ago if I would be able to program Ninja Gaiden on the GBA, I would have said heck-no. However, know I could answer confidently, yes.

Saturday, November 20, 2010

Month 13: Engine Development 1, Machine Architecture 1 and the Orlando Coding Dojo


This month we learned a great deal on the structure of software whether it’s within a game or computer. In Engine Development 1, Jonathan Burnside taught us many techniques that come in handy when dealing with the common dilemmas faced when creating a game. In Machine Architecture 1, Ryan Van Dyke taught us how computers deal with memory and how we as programmers can gain access with assembly code.

In Engine Development 1 we covered topics like collision detection, spatial system hierarchies and camera behaviors. We had a refresher on our physics and used many techniques to implement our collision detection. During lab, we would have to write our own solutions for different modules in the engine. A individual project was also assigned in which we got to choose between implementing realistic shadow mapping or replacing a OpenGL rendering module with DirectX. I chose DirectX and learned a good deal of rendering techniques and tricks, as well as how to switch out module and the challenge of the unknown differences.

In Machine Architecture 1, we got down to bits and bytes again.  We learned how computers store complex numbers and addresses. We learned about the hardware and how it communicates throughout different systems. The labs were in assembly it was interesting to get down to such a basic level dealing directly with registers, the stack and basic functions. 

The second half of the month brought the Orlando Coding Dojo to our school. The dojo consists of programmers of every level coming together for a couple of hours to work on one random exercise in a random language. We go by the “Test Driven Development” ideology. We start by discussing good tactics about structuring the objects and tests. Then pairs come up to the computer in five minutes intervals. The Pilot is the one on the keyboard while the Co-Pilot is the one talking him through it. We don’t focus on completing every single task just as much as we can. At the end talk about what went good and what could have been improved. I learned a lot and had a great time this month.