My first game jam!

This weekend was an awesome experience for me. I have never done a game jam before, but jumped at the opportunity when told about it. A few people showed up to see what they can do, and I had the opportunity to team up with Adam White, who did some amazing art for our little game.

I had jumped into the jam knowing little of what I wanted to create, but knowing full well I wanted to have made something with flixel by the end of the weekend. Needless to say, I was incredibly impressed with how much I got done with the framework in such a short time.

Continue reading ‘My first game jam!’

Basic AI: Building a Finite State Machine (FSM) in C#

I figured this information may benefit a few people, as well as allow me to get my thoughts out, I’ll be documenting the process to building a finite state machine (FSM). My main use out of this project will allow me to assign an object a FSM, assign that object specific states, and allow the object to make weighted decisions through a transition table. I plan on using this decision-system to aid in both creating a foundation for the AI of my games, as well as aid in the animation systems that I concoct.

Continue reading ‘Basic AI: Building a Finite State Machine (FSM) in C#’

Hello 2010! :)

I decided to start my year off on the right foot. I got married to an exceptional woman on January 2, 2010! Below is a picture of her wedding present, courtesy of the very talented Milo from Sack-Planet. (Working with him doesn’t hurt either!)

Geeky tidbit, 01022010 is a palindrome.

Line Length Guides in Visual Studio

Here’s yet another tip for Visual Studio 2005/2008 users. If your company enforces any sort of line limit, and you want to make yourself visually aware of when you may be approaching or dealing with that limit, add this key to your registry:

[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\Text Editor]
(New String Value) "Guides"="RGB(192,192,192) 110"

110 Being your line limit, and 9.0 being the version of your VS. (2005 users should find 8.0)

Restart VS and you’re good to go.

Fixing Visual Studio 2008

I recently took the time to upgrade from Visual Studio 2005 to 2008 at work, and in doing so, came across an issue immediately after starting the program for the first time. (Hopefully not a bad omen! :) )

A dialog popped up, saying:

Package Load Failure

Package ‘Microsoft.VisualStudio.Xaml’ has failed to load properly ( GUID = {E58C2A8B-BCC4-4559-AD59-D62EB6D58A22} ). Please contact package vendor for assistance. Application restart is recommended, due to possible environment corruption. Would you like to disable loading this package in the future? You may use ‘devenv /resetskippkgs’ to re-enable package loading.

It turns out that this seems to be a common issue for users who had Visual Studio 2008 Express installed on their system, and then they installed Visual Studio 2008 afterwards.

Thankfully, the fix is easy. Just reinstall the VS 2008 SP1.

Code Metrics: SourceMonitor

While there is some contention for whether or not counting the lines of code your project has, it is definitely interesting to watch the growth of your code, and note your comment-to-code ratio.

Doing a quick search on the ‘net lead me to “SourceMonitor”, a free tool which does a pretty good job at doing a search on your code files and gives you some basic information about your code.

Get it here.

This is how you make a music video!

So a month back there was a little contest at work to who could make an awesome music video using a RB2 song. Needless to say, some coworkers and I threw a little something together. :)

Enjoy!

When functionality supercedes mimicry

Google Wave LogoIn watching the presentation for Google Wave, a new product in the works by Google, a feature that was demonstrated (and applauded) made me question when designing features for users undoes some of the benefits that individual terminals affords the user.

For those of you who don’t know, Google Wave is aiming to be the next evolution of online communication. From what I have seen so far, it seems to be a consummation of email, message boards, and chat, forcing users to no longer think of online communication as individual collections of messages and responses, but a cluster of ongoing conversations, where individuals can enter and leave at will.

The feature that piqued my interest, was the feature that turns the conversation into a chat, and allows both users to see the conversations being typed by each other in real time. While this could be very useful for conversing with someone who typed painfully slowly, it changes the way users have generally used instant messaging up until now.

Instant Messaging serves as a platform to allow generally, two people to have a conversation with each other in “real time”, where one user sends a message, the other responds, etc, in the same way that you and I may have a face-to-face conversation. If you wanted to map the features one-to-one, then while you are talking to me in person, I will be listening to your statement, and thinking about what I want to say in response, this is the same as reading your message in an IM, and typing my response in my client.

However, lets say you and I are having an in-depth conversation, or debate, on either medium. We make take our time to collect our thoughts, to consider our responses, and figure out what we want to say next. We may even completely change our response we had originally planned in order to answer some new topic that has come up. Either way, this can be afforded to us in IM clients by typing out our responses and looking them over before we send them off.

While I agree that when talking to someone over instant message, the time waiting for a response can seem length. However, almost all clients today will notify the receiving person that you are typing, alerting that there is indeed a conversation taking place. The question begs then, how do users react to a feature that allows us to see the response of a person, as it is being created?

While this is an interesting feature in it of itself, it could do one of a few things:

  • Bring users closer to the experience of having a true conversation through text.
  • Users would be distracted by the other person typing a response, or follow up message to what they just sent, and it would cause confusion.
  • A new rule of “internet etiquette” would appear within the use of this tool, and you would patiently wait for others to finish their thought before you start typing your response.

Google will offer a checkbox to turn this feature off, and it will be interesting to see how the response to this feature is received. Within innovation, one will ultimately be forcing adopters to rethink or retool their processes in order to adopt a new technology. It’s important to consider what the processes you are “fixing”, because maybe they weren’t broken, but a matter of course from the translation of a process from one medium to the next.

Homework: Definition of Play

A coworker was kind enough to procure a copy of “The Game Design Reader: A Rules of Play Anthology” by the MIT Press. My intention was to flip around now and then, read and reflect.

The first entry I ended up jumping to seemed like an awesome start; “The Definition of Play and The Classification of Games” by Roger Caillios, 1958“. I was able to find the full version of the document, and uploaded it for reference, or the curiosity of others.

Important to note, games of chance are excluded. [This is a] discussion about games and rules when profit is not obtained, and it is merely the existence of the absence of reality. (p.124)

While it was not an article that redefined what I thought of “play” as a individual and social construct, it was interesting to see how the observations of a document in 1958 translates to electronic entertainment in the modern day.

Play is an occasion of pure waste: waste of time, energy, ingenuity, skill, and often money for the purchase of [gaming] equipment… (p.125)

The industry may not be so quick to agree, but this rings true if wasted time is seen as a reflection of not accruing income. However, most if not all would agree that if play results in some form of entertainment, time and money may have been well spent.

A game which one would be forced to play would at once cease being play. It would become constraint, drudgery from which one would strive to be freed. (p.125)

I found this quote quite humorous with regards to my job, and I know some QA testers that might agree, I can’t say I “strive to be freed” from the games I play at work. :)

“In fact, the game is no longer pleasing to one who, because he is too well trained or skillful, wins effortlessly and infallibly.”

(In classifying games of sport) The goal of the encounters is not for the antagonist to cause serious injury to his rival, but rather to demonstrate his own superiority. (p. 132)

Both of these remind me of what the inherent draws in competitive gaming that kept such a stranglehold on me.

“Industrial civilization has given birth to [...] the hobby, a secondary and gratuitous activity, undertaken and pursued for pleasure, e.g. collecting, unique accomplishments, the pleasure in [...] inventing gadgets…” (pg. 145)

Did he just predict Achievements and LittleBigPlanet? :)

Features, features, features!

Rather than get actual planned work done, I ended up getting my feet stuck in a timesink to update a few things to my liking. To my dismay, “my liking” was far too ill defined, and one thing lead to another.

For starters, with the help of Delicious Library 2, I put together a small page of all the games I’ve amassed in my library. I’ll be using this to keep track of the games I’m currently playing, books I’m currently reading, etc.

I’ve also been quite active on Twitter as of late. I generally use it to post things going on with/around me (as I have Twitter updating my facebook status), pass along links people post at work, and discuss the game industry and current events. With a bit of tinkering, I found a WordPress widget to include my five latest tweets, and I styled it to my liking.

Lastly, I updated the links present above my tab, to include some links, including my LinkedIn page.

Should be posting soon, but no promises. :)