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.

Wednesday, October 20, 2010

Month 12: Software Engineering and OpenGL

This month we learned software engineering, scripting, memory management and debugging techniques from Derek Hughes. We also learned OpenGL from the man who wrote the book, literally, Richard Wright. It was a tough month to get through because schedules get all screwed up around this time of the year. We had eight day straight weeks with four day breaks in between. We still learned a lot and the information was fresh in our heads when it came time for tests.
In Software Engineering we coded many useful applications and techniques. The Memory Manager let use organize and distribute our memory directly from the cache, it gave us a lot of practice using bytes and the memory window. We also made a File Archiver which allowed us to pack files into one large file saving on loading time. We used Lua to begin scripting and learned how to call functions at runtime.

In OpenGL we learned how to utilize the Rendering Interface to make 3D objects and write shaders to make cool materials. We rendered a lot every night from snowmen to solar systems to radars to ships and even molecules. We even learned how to use OpenGL to program for the iPhone. We had to make a project of our choosing throughout the month, I made Bad Mr. Frosty from Clayfighters with dissolving binary falling from the sky and an option for ludicrous speed.
I learned a whole bunch this month, the books were supper helpful and the teachers were very knowledgeable. Well it’s just going to get harder from here. Wish me luck guys, thanks.

Halo and Kinect

It’s been another crazy, high-pace month at Full Sail. Amongst the odd schedule which arose from GDC Austin, we had some guest speakers from Bungie and Microsoft. Kerry Allen and Christopher Willoughby presented their game, Kinect Adventures, which is going to be bundled with the device. It was cool seeing Kerry present because I had the pleasure of working with him in a game jam back in my first month. Josh Hamrick, a Bungie developer who worked on Halo: Reach, came and played with us in the auditorium.

Chris and Kerry showed us how a game utilizes Kinect with the tool program for skeleton tracking. They also showed us a demo of the technology with Kinect Adventures. They played through an adventure which consisted of mini-games like water rafting and an obstacle course. They also showed us how players can jump in and out of the screen and Kinect will sensor their body and bring in their avatar and even take pictures while the players are in funny poses. They also spoke about the importance of networking in the industry, a value which every speaker I have heard cannot stress enough.

Josh Hamrick spoke at the school but a lot of students had class during his presentation so he made it up to us by playing Reach with us the night before in the auditorium until early morning. We brought in huge televisions and Xboxes. We played many matches and fought bravely, but alas the mighty Hamrick (iamtylerdurden) foiled our attempts. Playing with my fellow classmates and teachers was a blast and a very rewarding experience. It was an awesome night I won’t soon forget and the most fun I had at school.

A Note on GDC and Networking:

Rob Coble held a meeting to brief students who were going to GDC. I attended the meetings because I plan on going to GDC at some point. He gave a lot of good tips on networking at huge events like GDC.

1. Ask Questions
2. Be Confident
3. Talk about yourself and connect with people
4. Socialize
5. Practice Professionalism and Respect
6. Don’t be a Swag whore
7. Don’t Linger and Hover around the same people
8. Don’t be dumbass and piss people off
9. Don’t be Shy
10. And most importantly, Have Fun

Tuesday, October 12, 2010

Month 11: Structure of Game Production Part 2

This month we finished up our game, Spectrum. It was a long month with many struggles to pull through, but in the end we had an awesome game. Cooperating functionally as a team took some time to get used to, but we were able to work things out and not get hung up on blaming each other.
We encountered some hard to find bugs this month. We had a heap curroption which was caused by releasing a reference to the same object more times than nessesary. We also had installer version errors which was eventually tracked down to an overwritten function that was not declared virtual. During the second week of Sprint 4 we swaped games with another group in order to do testing. We had to write up bug reports for the team we were testing for and fix our own fair share of bugs.

On the last day we held an expo showcaseing our games. This was a great experiance because we knew that there were things wrong with our game but when people sat down to play it they had a lot of fun. A had a great time and learned a lot these last 2 months.



Monday, August 30, 2010

Month 10: Operating Systems and Structure of Game Production Part1

This month we had a lot of work. First in OPS, Gary Miller taught us how operating systems are designed and structured. He also introduced us to multithreaded programming. In SGP1 we began design and production on a group game called Spectrum. John O’Leske, Rob Martinez, Ron Powell and Sean Hathaway all lead us through industry standard production cycles while we put together this game from scratch.

In OPS, we learned about operating systems and how they use multithreaded programming in order to have seamless functionality and user interfaces. During Lecture Gary told us of the old ways computers functioned as well as their evolution and his experiences in the industry over the years. The book was a little hard to understand at times but the more you read the more it makes sense and the more ready you will be for the weekly quizzes and the final. In lab we tackled classic multithreaded problems which had Gary’s own modern twists. The “Dining-Philosophers” problem became the “Not Enough Alcohol at the Party” problem. We even got to work on Pong again except this time we set up multithreaded simulations of variable amounts of players and games.

In SGP1, we split up into groups of 4-5 people to work on games we prototyped in ROG. The class is broken up into sprints (2 weeks) were each team member is assigned user stories that they are responsible for getting down on time, the amount of user stories accomplished as well as effort determines how much money (fictional, represents grade) your team gets in the end of the sprint. The first 2 weeks were designing and documenting everything we wanted in our game. We had to be extremely descriptive using other products as examples. These documents ended up being more than 100 pages long which means we had little sleep during that sprint. The next 2 weeks were building tools we would use to create assets for our game. For Spectrum we had, Albert Jen doing the Tile Editor, Tyler Berry doing the Animation Editor, yours truly working on the Particle Editor and Mac Reichelt working in the code base to get our game up and running. We also had to spin the wheel of misfortune (a tool used to inject chaos into the class). We spun Dev Blog and Dress Code which meant that we had to keep a daily blog of our progress and now have to dress professionally when we show up for class. Other possible spins include Localization (to a foreign country) and Team Swap, switching a random team member with another team for the sprint.

I am looking forward to this month were we only have to worry about SGP it will be a lot of work and many hours not sleeping but I think we will have an awesome game when all is said and done.

Here are some pix of my Particle Editor:




Sunday, August 1, 2010

Month 9: Rules of the Game and Structure of Game Design

This month we got to make two games, one by ourselves in SGD and another with a group in ROG. We learned a great of what makes up a game including ways to increase the fun factor. In ROG Steve Vanzandt showed us how to use Game Maker to make prototypes and introduced us to Unity. In SGD David Brown (worked on the menu system in 50-Cent Bulletproof) showed us how to make professional games including menus, installers and a variety of other features.


In ROG I got put on a group with Vincent Biancardi and Kahran Ghosalkar. We all worked really hard all Month to make our game, Infestation. We split up the tasks evenly and remained as organized as possible. We had lots of chances to test our game on different groups of people to see the areas that we needed to focus on. We even got a chance to present our game and do postmortem at the end of the month. Two weeks into production Valve released Alien Swarm, we noticed how our game held many similarities to it and laughed about it the rest of the month. The game takes place in a radioactive town infested with giant insects. The player must maneuver their squad and use various weapons and formations to battle through hordes of insects. They must slaughter all to find a way out.

Paper Model


In SGD I had a chance to make a game on my own (with help from friends and instructors). I was inspired by the old Terminator Midway arcade game as well as The Matrix. So I made The Terminatrix (Terminator + The Matrix). Only at the end of the month did I bother to Google Terminatrix and found that the name had been taken by a Japanese soft-core porn movie about a robot dominatrix killing machine (Terminator + Dominatrix). Had I know that at the beginning of development I would have changed the name. So my advice is Google early, Google often. My game is a top-down shooter where you can search, shoot and blast your way through waves of enemies and obtain powerups along the way.

Friday, July 2, 2010

3 of My Favorite Games and Why I Enjoyed Them

Final Fantasy Tactics:


1. Micromanaging formation gives the player full control on the challenges increasing emersion.


2. Leveling up, learning abilities and mastering jobs rewards the player and keeps them wanting more.


3. Very extensive gameplay (50-80hrs) keeps them playing for a while.


4. Very cool and powerful characters reward the player’s hard work with rare items and attributes.


       5. Multiple strategies allows for the player to play through using and strategy they want.


Psychonauts:


1. Funny characters and story keep the player entertained and wanting more.


2. Cool powers and abilities give control and power to the player.

3. Exploring various worlds in peoples’ minds immerses the player and gives a wide variety of levels and challenges.


    4. Just-right balance of difficulty allows for any one, young or old, to play through the whole game without  losing interest.


5. Surreal themes with extreme colors give eye candy to the player and control their emotions while developing the theme.


Grand Theft Auto:


 1. Max freedom, min consequences gives the player absolute freedom and enjoyment.


2. Adult content and issues make the game feel more like real life, increasing emersion.


3. Variety of vehicles and weaponry allow for maximum fun and choices on what the player can use.


4. Mini-games / Side missions give the player extra quests to undertake if they wish.


5. Mission/Area variety keeps ever mission fresh and exciting and keeps them playing.

Sunday, June 27, 2010

Month 8: DirectX & Software Architecture

I just got done with my eight month here at Full Sail. This month I had DirectX and Software Architecture. DirectX was hard but we learned a great deal. In Software Arch we began looking at whole systems and how to plan out our code. It seems as though the heat is being turned up from here on out and now the classes will get really intense.


In DirectX we learned to use the computer’s devices directly. Wendy taught us to implement sound, graphics and input. We learned how to get input from controllers, render mesh and terrain with lighting using shaders. The class was pretty difficult compared to our past classes but in turn we learned a lot more from the mistakes we made. Remembering physics and linear algebra will help out a lot. The midterm and finals are difficult but it’s important not to get discouraged. I came to realize that some of the things I was doing wrong came from the same mistakes so I learned to check a few things first whenever something went awry. Now I always ask myself “Is the syntax right?” “Is it spelled correctly?” “Is it being called?” and “What is it filled with? (Garbage? Null?)” whenever I start debugging.

In Software Arch Frosty taught us design patterns and how to make UML diagrams. We used Visual Paradigm to make UML diagrams such as class, sequence and case. We also learned design patterns like Singleton, Composite and Factory Method. We implemented these in lab by applying them to game code. We also learned about the different ways of developing a game like Waterfall, eXtreme and SCRUM.

Saturday, June 26, 2010

Memento Design Pattern

Design patterns, when dealing with software architecture, utilize the different principles of object oriented programming such as abstraction, encapsulation and inheritance to solve design and structural problems and create more efficient code. One such pattern is Memento, and it can be a very useful one when applied to game design.


The memento pattern allows us to take a snapshot of an object and pass it off to another object for later reference. This is usually accomplished with three objects, the originator, the caregiver and the memento. The originator is the object which has the data we would like to save. The caregiver is the object acting on the originator and receives the snapshot of the originator. The memento is the black box between them which actually is the copy of the data.



To visualize this pattern better let’s compare it to backing up work which you are currently working on. In this example, the originator is the current file which has the data which needs to be backed up before it can be changed. The caregiver is you, the user, the one who will receive the duplicate and then continue to work and make changes to the original. The memento is the backup itself, a snapshot of the file, unaltered, ready to be reopened when need be.

The memento pattern utilizes encapsulation but can break it by accessing class variables directly with a memento class that is a friend of the caretaker or originator. It also utilizes abstraction and reusability by giving us a snapshot of an object at runtime. We can respond to a variety of situations depending on this data. This method is good for utilizing features similar to undo and redo, where reverting to a previous instance is desirable. It can also be used for simulations that require less randomness and more response to hard data.

In games this pattern can be used to implement saving the game by obtaining a memento containing the necessary data to reload the game from a specific point. Another method it can also be used for, in conjunction with the command pattern, is to stack commands and perform sets of actions the same way more than once. It can be used for memory and puzzle games to remember guesses and positions as well as combo counting.

When it comes to games, design patterns can be used in a variety of different ways, sometimes not in the same exact way as they were originally intended for. However this is what makes them a great asset in that we can pick, choose, mix and match what is right for a specific situation and put our own spin on it. So experiment with design patterns like memento and don’t feel bad if the first few times you can’t find a good way to use it. Learn from implementations but more importantly learn from trying and making mistakes.

Monday, June 14, 2010

Red Dead Redemption

To meet some of the developers who worked on this title would have remained just a dream for me. However, these great guys came back to the school that taught them so much to give students like me hope and advice. They touched on a variety of subjects, no stone left unturned. They talked about their influences movies, books and games. They talked about the issues they faced and how it’s impossible to make a perfect game. They also talked about how they deal with the long hours and the methods they use to relax.


They talked about the features and how they had to cut back on many ideas. The physical area of the game was just a quarter of their initial scope! They also mentioned how some of the best features just come about on a whim, like the beginning draw in multiplayer deathmatch. They talked about the benefits and struggles of using Rockstar’s internal engine, RAGE.

However most importantly they talked about how they were in our shoes just a few years ago. Some of them were friends and were able to vouch for each other when it came to their interview. But no matter how each individual got their opportunity to work at Rockstar their message was the same. Networking is the most important skill you can develop, and you should start sharpening it at school. They said no matter how much they work and argue about code at the end of the day they are doing what they love and can still go grab a beer with each other after work.

Sunday, June 13, 2010

Month 7: 3D Content Creation & Windows Programming 2

Last month I had 3D Content Creation with Josh Fox and Windows Programming 2 with Chuck Rainey. We continue to learn new things everyday. In 3DCC we got a taste of the Artist's struggle when creating assets for games. In WP2 we learned how to make tools, such as tile editors, to help us create games.

3DCC started out with us learning the content pipeline and basic animation terms. We then got first hand experiance designing models with Maya and levels with Unreal Editor. These tools were very complex but we got a good grasp on their basics from modeling to animation to lighting to texturing. We even coded an exporter to get models from Maya mesh files.

We shifted gears in WP2. Where in WP1 we were focused on Windows based games, in WP2 we were more focused on creating tool to help in the development process. It was a nice change of pace from all the games and simulations we have been writing. It gave us a chance to learn a new skill and to create good self-made tools to have in our programming belts. We utilized the Windows Forms in order to do this and even made our own custom controls like a graphics panel and tool window.

Friday, April 30, 2010

Month 6: Windows Programming 1, Historical Archetypes and Mythology

Just finished up my 6th month at Full Sail. I am a quarter of the way done with my degree program. By now I am used to the workload and hours. This month we had Windows Programming 1 taught by Chuck Rainey and Rob Muscarella were we learned how to make C-Style Win32 Applications. We also had Historical Archetypes and Mythology taught by Pauline Pedersen and Mark Pursell were we learned many of the world’s great myths as well as how to analyze stories. Dave Arneson, the creator of Dungeons & Dragons, aided this class in design.

In Windows Programming 1 we got a chance to make some games like Tick-Tac-Toe and Pong. We had 2 weeks to make Pong and were encouraged to put our own spin on it either with a theme or gameplay. Many students used bitmaps, sprite sheets and special abilities of their favorite game. Others worked on unique AI, collision detection and physics. I implemented a picture guessing game as my Pong. For the final we had to fix a broken program and make Warcraft Risk.


Pongtionary - this is my version of pong where the player must reveal a picture by scoring points and then guess the picture.


In Historical Archetypes and Mythology we learned about creation myths, Joseph Campbell’s Hero Cycle and Archetypes. We got to find out our own Archetypes as well as come up with our own creation myth. We also had a chance turn our favorite heroes into antiheros and make a game that had the Hero Cycle. He learned about Shamanism, Celtic & Norse myths (Beowulf, Dagda the Good), Asian & Indian myths (Shinto, The Ramayana), Greek myths (The Odyssey), Middle Eastern myths (Gilgamesh, Osiris) as well as King Arthur, Heraldry and color symbolism.

Tuesday, March 30, 2010

Month 5: Data Structures, Flash Workshop and Ethics and Psychology

I just finished my fifth month at Full Sail. The classes are getting tougher but the material is also becoming more interesting. The drive to learn is pushing me farther along and making me enjoy the work that much more. I took a flash workshop on Sundays taught by Mike Arlington. He challenged us to make our own game by the end of the month and I am proud to say that I have finished the mechanics for mine (However, I am no artist and am in need of some better assets). He also taught us how to but our games online and make money off them.

I Crush Ur Head - This is my flash game where the player must click on the head of pedestrians in order to crush their heads. (inspired from the Kids In The Hall skit)

Rodney taught us data structures. He is a very cool guy who went through the course when he was younger. He gave hard tests that really pushed us to know the material. We would have to know how to draw the data structures and how all their operations functioned. Rodney kept us laughing throughout the month and gave us projects such as Simon and Boggle.

Lance “Doc” Percy taught us psychology. He told us that it could help us in three areas, character development, industry communication/marketing, and self-improvement. We learned about the three schools of western psychology. We also had to incorporate the theories we learned into characters as part of a story we wrote in groups. We took different kinds of personality tests and learned a lot about ourselves. We also discussed many movie and game characters as well as watched some funny, interesting videos.