Thursday, October 4, 2012

Corporate Casualty

Last update I reported I some how got caught in a miscommunication and lost my job over it.  Since then a few things have come to light.  Primarily, that no one replaced me in my position, and that the company has officially announced plans to phase out the use of the software they had hired me to use.  In other words, because I was hired when the company was planning to expand the use of this software, when they instead decided to stop using it, I was no longer needed, and they had to get rid of me before they invested anything further in training or equipment.

This explains a lot, and I can't blame them for making the decision to let me go.  In an ideal world, they would have just told me that plans had changed, but sometimes that won't work.  In this case, I am guessing they were not yet ready to announce the decision to back away from the tool software, but knew they didn't want to waste any more money on the matter.  I'm sure when people who knew me found out they had to get rid of me it became very difficult from an emotional standpoint.  After all, I had relocated for the job and they had told me they were looking for potential long term employment after the current project was finished.  No human with half a conscience is going to find it easy to face someone after that and say "Oops, sorry never mind".  It's so much easier to try and justify the persons removal in some way.  This explains the list of things I had "been doing wrong" that I had never heard a word about.

In addition to the above, I found out the list actually threw my co-workers off gaurd as well.  When they saw it, they were as confused as I was because the list didn't make any sence to them.  I also found out that they felt I was very good at some of the things the list had said I was bad at.  This evidence was sort of the final piece of the puzzle.  In the end, while I no dought made mistakes, and I feel the lessons learned in my last post are still vital for growth, I was just another corporit casualty in the greater scheme of things.

That said,  I do have to say I think they made the correct choice in stopping the use of of that oddball development software.  It just had too many critical flaws, especially with memory management and animation. 

----------------------------------------------------------------
Since loosing my job I've been looking for a new one.  I've had no shortage of places interested in my skills, but I don't like to have too many on the table at once.  I've been focusing on a small potential group, and I actually really like the company that I spoke with just a few days after I lost my last job.  All of the groups move at a fairly slow pace, and I've been interviewed, waited for programming test, done programming test, waited for response to programming test, interviewed again and so on and so fourth for all of them.

Currently, I am again waiting for news, though one company decided they don't have space for a Jr. programmer right now, and that is what I tested in as.  Personally, I think that was a nice way of telling me to get more experience.  Had I known they would hit me with a programming test designed for Unix, I could have saved them the trouble.

I did actually find a way to kind of make it work and finish the thing on a Windows machine, but it was no easy task.  I think I only spent about 4 hours actually programming the answer, the rest was just getting the blasted language editor stuff to run properly on my machine.  Since I've never touched Unix before, I would obviously have to come in at a Jr level if I was to be working in it.

I have to admit though, it was a really fun test using a functional programming language called Clojure.  It was my first time messing with this language family, and it's pretty cool.  Though I don't think I'd use it for the type of project they asked me to build with it (I'm pretty sure that was the intent, no one would have experience doing this because it is silly).

Most of the other programming tests were pretty basic ones, but the one from that first company was pretty cool.  Really, I think they did an excellent job choosing it because building a project like that gave me a chance to sample most of the core functions needed to work on their systems.

The test was more of a "Hey, go make this thing and see what you can learn and if you even like this kind of work." than a "Show us what you already know." type.  It was a lot of fun and I learned an entirely new IDE (Visual Studio C# Windows Forms) while doing it.  Even better, they met with me to go over the project and taught me a few tricks of the trade.  I was able to go back to my original project and apply what they taught me to make it a better product, though I don't think I'll ever release the thing given it's a programming test, and it's not nice to give the details of those away.

Right now is kind of painful.  I have to wait to hear back.  I don't want to apply to a bunch of new places and then be all like "Oop, never mind, I got hired by these other guys." or worse, get quick hired by some new company and then find out one of the ones I really like right now actually wanted to hire me after all.  So I have to be good and wait to hear back, no matter how much I want to grab the bull by horns, sometimes it's wiser to let the bull settle itself.

Wednesday, August 15, 2012

Ups and Downs

It happened fast, but these things usually do.  I had a couple of nice interviews and was hired to work on developing car cluster user interfaces (the instruments behind the steering wheel that show you how much gas you have, the speedometer etc etc).  In modern vehicles the instrument cluster has become a mix of digital and mechanical elements giving more in-depth information with menus to navigate through it all.  I dropped everything I was doing and headed off to a new job.

Things went really well, I moved out to the area my second week on the job (first week in a hotel), and spent my time after work learning the crazy structure of the towns naturalized roads which run in every possible direction, stop and start spontaneously at dead ends and change names up to 4 times along the length.  At work I met a great group of people from all over the world who I ate lunch with each day and my training was progressing at a good pace.

There was a lot to learn.  First there was the new development software which contained more interlocking unrelated methods of data handling than I have ever encounter in a development software before, to the point of qualifying as down right eccentric... you know, like some of the art asset development programs, but with code instead.  Some of the features included are visual flow chart programming state machine for major functions, a module and widget structure for specific functions, a Small Talk variation scripting language, a semi visual scripting language that was suppose to be used unless what was needed was too complex and called for the Small Talk scripts, a view that mirrored the widget structure but was built independently, the event and message system, the external event system, the global properties system and pretty much a piece of every other development engine I've ever used all smashed into one program, except it had no sprite support... overall it's a bad program, just a complex one and it was interesting to work with.

Then there were multiple document management systems, several layers of version control, the system for posting work tickets and the methodologies for development.  In addition, rather than working on one project, I worked on two with very different internal structures.  My managers generally just handed me a work ticket and left me to figure it out.  I did get some guidance in the first couple of weeks to get me started and after a few more weeks of "Ooops, we forgot to tell you .... fill in the blank with things like how to document changes, how some systems in the development software work, some things that needed to be included in the work order but weren't, how to fill in some fields in the work ticket, how to upload some kinds of changes to the system, when to upload secondary version control files etc."  All in all though we worked the kinks out together one at a time, and by my 5th week or so I had gotten the hang of most of it.  All that was left was convincing someone to go over the event system with me, and this module thing in the lower right corner that I wasn't sure what it did.

The first bit I found out was that the module thing was just a filter system to help sort project files and that I needed to associate new global properties with a module when I made them.  A few days later, thanks to a fellow engineer I found out that the widget system didn't automatically sort itself into the matching names in the module thing and that had to be manually done as well (I'd mostly been fixing bugs and hadn't made many new widgets).  All that was left was the event system, and on my last day of work I finally got it explained.  I was so happy that day, with the event system explained everything fell into place and I knew how the whole development package worked at last.  I was starting in on a big optimization update and would be doing some real engineering at last to make everything work under the new systems.  A few final stylistic preference questions later and I felt like I understood what my managers were after in terms of coding style.  I headed out to a meeting at the contractor who had subcontracted me to this car cluster developer,and after the meeting was told the company making car clusters didn't want me to come back... I was fired.

After being told I was doing great, thanked for my work reguarly, told not to get too ODC over refining details, not to worry if I made mistakes because that was the best way to learn, told that my animation work was the best seen so far in realizing the designers vision (the designer told me this), and conversations with fellow developers on the team where they clearly stated they were impressed with how fast I had picked things up, and how early I started getting more complex assignments, you can imagin the sort of shock that came from finding out they didn't want me back.

The contractors had also been shocked and had hoped I would know what had gone wrong because they had heard nothing but good prior to this as well.  What was worse, I was never given the chance to go back and talk to people.  No communication, no good byes, nothing.  The next day, the contractors that I had been hired through got my things for me and an explanation of why I was fired.  Looking through the list was a number of things listed as reasons for termination that I had never been told were bad things.  Somewhere, somehow people forgot to tell me a couple of rather impotent details.  I had been under the impression that they wanted me to loosen up and leave more polish to the peer review portion of the development where the work order could be passed back and fourth between two people as they refined the update (thus ensuring two people knew how it worked and letting them learn from each other).  Listening to the reason for termination, it became all too clear that the opposite was true.  I was to have a fully polished completed piece before I submitted it to the peer review process, and that I should never hear from the person assigned the peer review and heaven forbid we pass it back and fourth.  Had someone shown me the complaint, it would have been no problem at all to change my development to independent and pre-polished.  Unfortunately, no one did.

According to the car cluster company, I had been told of these problems, and perhaps they thought they had told me, everyone was so great that I worked with that I simply can't believe they intentionally would lead me down the wrong path and hide expectations from me while claiming the reverse.

In the end I think it amounts to simple human errors.  It can be hard to tell someone they aren't meeting expectations, but as someone who has been in the leadership roll before I know that you only hurt a person by beating around the bush or avoiding discussing the problem and just hoping it will go away.  No one can fix a problem if they don't know there is one, and often what you, as the manager, may think is the reason for the failure will be inaccurate and by ensuring the employee is aware of the problem may come to find out that it was a simple misunderstanding and just like that the problem is solved.  Subtle hints are not the way to go, sit the person down and tell them face to face this is a problem, it needs to change.

My mistake in this job was assuming that my managers would follow this practice.  With two young managers, it was not only foolish for me to make this assumption, it was down right stupid.  Two managers always means you will get some conflicting messages, and the chance that they will think that each one has addressed an issue when really neither of them has is a serious added hazard (until they learn to address all problems together in a formal meeting).

There is one big take home message I learned in this little fiasco:  When you start a new job, make sure you sit down every week with your manager and ask them exactly where you fall in terms of meeting their expectations, and keep it up for the first 6 months to a year.  Yes, traditionally the manager should be the one starting these conversations, but managers are people too, and it's not easy to be the bringer of bad news.  As an employee, you MUST cover your butt and make sure you start the conversation, even if everyone has nice things to say, go digging for the bad before you get bitten from behind.

All in all, this experience has been as educational for me as it has been tragic for them.  It's tragic that no one would speak to me face to face, that not only did they fail to inform me of the problem prior to letting me go, but that they couldn't even tell me to my face that they were letting me go at all.  It's unfortunate that they may never realize that I misunderstood what they wanted and that they let go a perfectly good freshly trained developer for faulty assumptions (and now they have to go and find another one to train).  It's tragic because if they don't realize their mistake, they could make it again, and that if they do realize their mistake they will have to live with it.  I for one forgive everyone involved, because I truly believe it was an honest mistake, my only hope is that they can learn from it before it happens again.

I learned a great deal from this entire ordeal.  I learned my skills apply really well to user experience, not just games.  I learned multiple new document management software, version control software and systems, and EB Guide.  I learned what it's like to not be the lead on a project.  I learned what it's like working in a big company.  I learned I can handle a full time job just fine.  I learned to push for communication directly and to directly ask for an evaluation of expectations, and I learned that a person doesn't necessarily have to do anything wrong to be fired.

-----------------------------

Now I begin a new search for work.  Less than a week after loosing my job I had my first interview.  I may have been a bit low still and missing my normal levels of confidence, but the people were very nice and very supportive.  They even read my blog before the interview, something I don't think has happened before.  It's a great group that produces product distribution and accounting software, many of them began as game developers.  I really owe them a big thanks, interviewing me at that time most likely helped to shorten my recovery time, and talking with them has inspired me to get back into more raw in depth programming.  I was reminded of the Nero-network I designed years ago, and that I should look into building it properly in a serious programming language.  Perhaps I can use it as a project to learn some more direct programming outside of a development engine.  Granted it's still too complex to built the entire thing in a reasonable amount of time (given that it doesn't really have any practical uses beyond academic intrigue), but I might make a simplified version, or maybe just a normal Nero-network generator.

Wednesday, June 13, 2012

Summer Projects

Hey all, it's been a while.  My last post definitely spoke of my nerves getting tossed about by too long away from team projects last time.  I mean... seriously?  A rant trying to convince myself I'm good at math when I already know it's true from using it all the time.  How silly.  This is how I know I'm an extrovert, it happens every time I spend too long cooped up alone in my room/office (which are the same thing right now).  Thankfully, I was able to get in on some team indie projects shortly afterwards, and I am no longer suffering from social contact deprivation.

Northern Bend
The first project I got brought in on is tentatively known as "Northern Bend".  It will be entered into the Grand Rapids Art Prize Festival this fall and then find it's permanent home at the public museum.  It's a historical steam ship simulation, where people will stand inside a boat cabin shell and pilot the ship down a river and out into the great lakes.  In place of the cabin windows will be TV screens that will let people look out into the simulated world.  During the journey captains can gain points by slowing down to watch the view and by listening to entertaining and educational narrative about life in the early 1900's along shipping routes.  I'd love to say a bit more about the goodies involved, but it's not my project, so I don't know how much is okay to disclose at this point.

I came in late on the project, and I have to say it looks really nice.  It's made leaps and bounds forward on it's progress each week, and I can't wait to see the final product with all the place holder art swapped out for the real stuff. 

I have two rolls in the project.  One is to determine what is required in terms of hardware for the project (figuring out how to deal with 3+ monitors and a giant steering wheel etc.) while still staying within the budget.  The other is to find a way to get the best possible water the Unreal Engine can produce without causing the entire simulation to get sluggish.

I've figured out and made my recommendations for most of the hardware at this point.  The exact TVs and input system that will be cannibalized for parts have been narrowed down, but a trip to visit displays is in order to make the final selection.

Water is notoriously tricky to render in real time, and while you can get a lot of detail in small pools of water, everything changes when you have a large open expanse.  Recently, I've seen some really nice open expanses of real time rendered water produced in other engines, on super computers and without the presence of a lot of other things going on.  Unfortunately, when you need a lot of other stuff going on, or lack a super computer, things get a whole lot more difficult. 

I've spent 4-10 hours a week the last two months trying a number of potential techniques to get the water as believable as I can.  Unreal has been fighting me a lot on this project and it's buggy/finicky nature slows everything down, but I've made a lot of good progress.  Every implementation adds (or if it really kills the computer, clears) an option to the slowly growing list of possible techniques to choose from.  Eventually, once everything else is in place in the game, I'll be able to put in the best looking elements and then pick and choose which to replace with less impressive but better running alternatives until the system is as good as it can be given the technology available.

XNA Game
The other project I'm helping out on is an XNA game.  Since I've been looking for a full time job, I made sure not to take on any lead rolls.  Instead I'm a design associate, helping with a number of areas as much as I can depending on my availability. 

To start, I mostly did work for the writing team, with a little creature concept art and mechanics mixed in.  As a pleasant surprise, one of my suggested  premises was chosen for the games plot, and after several rehashes with the team we came up with a pretty solid story to work from. 

The game already had some interesting mechanics and art direction, but I can't really talk about it right now.  Anyhow, now that production is more under way I'll likely be pulled to produce animation tweens, maybe a few code classes or functions, perhaps a little more concept art, and eventually dialogue for one character in particular.

My roll in this project has been pretty heavy so far because I have had time while I look for work.  Recently, I found a really good prospect for some fun work building dash clusters for cars, so I've had to pull back out of the project a lot.  Now that the ball is rolling, I don't think it will be much of an issue if I cut back to just a few hours of work on the weekends for this project.  It's a greatly talented team, with a very good leader.  This all of coarse applies only if I get the job, but I feel pretty good about it at this point.  Though if I do get the job I won't be saying anything beyond I'm making car dash clusters, I already signed the non-disclosure agreement.

Monday, March 12, 2012

GDC 2012 - Catching Up With People, Dyslexics, My Next Game Chosen, Special Thanks, Creatures 4, Kid Icarus,

GDC
I've returned from the Game Developers Conference (GDC) this year, and as usual had a wonderful time.  If you are in the industry or thinking of joining it, I highly recommend going to the San Fransisco Game Developers Conference at least once.

Don't Just Try To Keep Up, Try To Run Ahead
Having completed everything I had been recommended to do/study/learn/get experience with last year, I felt pretty good going in and talking with people this year.  I had a lot of great conversations with many very cool and talented people.  With luck, I'll be getting a job offer or two that involve working for a real company, but I also went ahead and made plans for if I don't get picked up right away.

As usual, one of my key interests is finding out what areas to focus on in terms of continuing education.  In this industry you can never really sit still, so it's important to get news on the latest and greatest.  I'll be chasing down some new theories and tech in AI, level of detail (LOD) and other optimization practices.  I'd like to do a bit of squad tactic AI as a tech demo at some point too.  Squad AI is fun in that it combines a lot of the techniques I've used in the past into one big system to achieve results.  I'm also rather interested in some of the work going into peripheral devices.

Talking with perspective employers was a lot of fun this year.  Everyone was really nice, and I had a great time meeting all the people at the EA party.  I also owe a special thanks to the experienced engineers and designers at several companies for taking the time to discuss my strengths and weaknesses with me.  It's important that I know exactly what is expected of me as both a game play programmer and systems designer.  Currently I am well qualified for smaller companies and entry level positions, but some of the heavier hitting companies (Blizzard, Bethesda, etc.) simply do not hire fresh meat.  Learning what they look for and expect from experienced and seasoned developers is invaluable for improving and refining my own skills, abilities and focus.  From the conversations I had it is clear that next on my personal growth list will be the study of consoles and the various eccentricities that accompany them.  Every console is different, so I haven't put a ton into learning any specific one yet, but I think for the sake of showing that it won't be an issue I'll need to do something with a couple of them.

Tangent: Mathematically Gifted Dyslexics (what it means to be wired for logic)
One of the more surprising and frequent questions I encountered in interviews was 'How is your math?'.  The question in and of itself is not shocking, logic flows and math are very important to programming.  What was surprising is that in past years I have never actually been asked this.  Perhaps it is a sign that following the advice of previous years has pushed my skills to a recognizably high level.  Regardless, I did find I had a bit of a problem answering these questions.

While my logic skills are indeed very potent (to the point that I can get annoying when I'm in "analytic mode"), the story of my skills with formulas is a bit different.  Dyslexia gave me some pretty big issues as a kid because most schools do a lot of memorization based math.  Since dyslexia prevents memorized symbolic data from being reliable, I have always had to learn the rules and logic behind formulas, and then essentially derive the symbolic formula back out again and write it in the corner of the test.  Once I have the formula back out, I can plug things in and use it like normal.  In school, this was a problem because I would run out of time.

Eventually I got to high enough levels that no one can memorize the equations and the tests switched to creating the formulas or using reference formula sheets.  At this point I pretty much crushed the average student because I had been doing this high end stuff my whole life.  The end result of all this is that I quickly pick up and use complex formulas and steam roll through logic (this is why so many famous mathematicians and scientists are dyslexics, Einstein being the best known).

However, if you verbally ask me to explain a formula or start using symbolic terms when I have not recently worked with them, I will still have problems (acronyms are the worst).  It's not that I don't know the logic or math, it's that I can't process your verbal symbolism back into the logic without something to write it on.  Talk in logic and rules and I'm fine, start talking about lambda and dropping buzz words like linear algebra and I'll need to look up the terms again (unless I'm currently working with them on a daily basis, then I'm usually okay).

In short, if you understand dyslexia and what those who overcome it become, all I would have to say when asked about my math skills is "It's not an issue because I'm dyslexic".  Unfortunately, most people think of dyslexia as a disorder and handicap because they usually hear about the schooling problems.  Very few realize that the "disorder" actually sacrifices symbolic referencing to enhance spacial reasoning and logic (research actually suggest that the part of the brain that handles symbols in most people gets highjacked for use in spacial and logical reasoning).  This leaves me with a problem.  If a potential employer tries to talk about math with me like I'm an average person, I'm going to look like a moron.  If they don't understand what dyslexia actually results in, saying I'm dyslexic is going to get me black listed.  If I try to explain the whole dyslexia thing to them, they are likely to think I'm trying to make excuses.  If they give me some abstract piece of paper with equations on it and I don't have access to my reference notes I am in serious danger of having a dyslexic storm (that is what I call it when the symbolic data in my head gets messed up and is useless, it only happens occasionally but it means I can never trust my symbolic memory) and totally jacking up the math.  Clearly, this is an issue.  I will need a way to express my skills in logic and math in a way that average "math" people can understand (incidentally, scientist are so frequently dyslexic, that when I was in biology I never had to explain it past "It's not an issue because I'm dyslexic".)

Just in case a potential employer happens to read this, and for the sake of other mathematically gifted dyslexics; I'll provide a brief summer of the pros and cons of being a mathematically gifted dyslexic (let's call us MGDs for short).  We are all a little different, but here's the typical break down.  MGDs can tern common logic into formulas very effectively, even extremely complex problems can be broken into logic and converted into a formula.  Since designers usually talk in common logic this means MGDs can make designer dreams come true.  MDGs can also pick up and start using extremely complex and obscure formulas very quickly, and will actually work with a full understanding of the system rather than just plugging in values blindly, this lets them refine preexisting formulas further for specific uses.

MGDs can work with complex formulas and logic much faster than most people; however, they are slower than average when working with simple formulas.  It gets back to that unreliable symbolic memorization thing.  Average people can hold a small formula in their head, MGDs must still look on a reference sheet or risk garbling the equation (eventually many MGDs can sort of feel when they have a dyslexic storm and can work without the references so long as they keep them handy).  MGDs are prone to spelling errors, though these spelling errors are usually phonetically readable.  MGDs will need to ask someone to define a simple term from time to time in order to "reset their brain".  For example, I am known to do this when I feel a dyslexic storm coming on because feedback from another person is the most effective way to stop the processes in its tracks.  When a person isn't around, I use Google, though it is slightly less effective and I might need to do a couple of terms.  MGDs sometimes have issues with polar terms such as male/female, east/west, +/-, left/right.  This can result in some verbal confusion.  Most people don't really mind this much, but some find it extremely irritating.  I am lucky in that I don't do a whole lot of this, but other MGDs I know do.  If you want to help them, correct them quickly because it's usually a symptom of an upcoming dyslexic storm.

Plans for My Next Game
Tangents aside,   I had a great time at GDC.  After discussing and showing a few game concepts off, I've decided to build Shape-Up into an arcade style multiplatform game to release on a number of devices.  It's a fairly simple puzzle game, so development should be fairly swift.  With luck it will monetize well and help support some of the larger projects that will take much longer to develop.

Special Thanks
Without naming names, I'd like to take a quick moment to go into a bit more detail on the people whom I met at various parties/events and thank them.  I already mentioned the EA party.  EA people, you guys are really great, and I can't thank you enough for the invitation to the private RSVP party.  I met a number of you from EA HR and I was really impressed by your openness and enthusiasm.  I also met several programmers, artist and designers who were just as nice.  The upcoming Sim City sounds like it's going to be really cool and I love the unconventional approach that is being taken in it's development.  I don't know how much is public knowledge at this point, so I'll leave it at that.  I also met a number of recent graduates, near graduates and independents from a number of development and marketing areas.  I really had a great time talking with all of you and I would be thrilled to one day meet again and work along side one another.  You are all very talented and clearly bursting with fresh potential.  I don't know a ton of engineers on our level, so it was wonderful to talk with people who could understand what I was saying.

Again, I'd like to thank the various companies who pushed me into the "back rooms" to have real talks with big-wig programmers and designers.  Especially those who knew that even though they did not have a place for me yet were willing to give me advice so that in a few years I'd be prepared for a place in their company.  That's a pretty cool thing to do, and a real honor to be selected to receive such sage wisdom.

AI summit attendees and speakers.  It is always a great indulgence to come and geek out with all of you.  I thank you all for putting up with my occasionally excessive enthusiasm and relentless probing and picking of brains.  I'd also like to thank everyone who signed books for me.  I did miss one book signing, so I'll have to catch the author next year (he knows who he is).  As usual the summit was great, and I have a nice list of topics to further investigate.

Level Design In A Day summit, thank you for putting up with a gameplay programmer weaving in and out of your session all day.  Hopefully I was not too annoying when I tried to get into your heads and further my understanding of how level designers work and what they want from gameplay programmers and system designers.  I appreciate the honest and strait forward answers.  I'd also like to thank the producers at that summit for the feedback on some of my project prototypes.

Last but not least, I'd like to thank all the other people I met during this years trip.  From advertising to engineering, PR to HR, artists to producers, students to gurus and everyone between and beyond, you are a great group of people and really made the convention a blast.


Creatures 4 Blip
I also was pleasantly surprised to run into the people who are making Creatures 4.  It looks like they are doing a very nice job with it, and a ton of work has gone into making it a modular micro payment based system.  I was not able to get details about the AI, but I was told that the person working on it is a long time fan of the series, so I remain hopeful that they will have preserved the highly flexible system found in C3 at the very least.

Kid Icarus: Uprising... It's Amazing
As a parting note, I had the opportunity to preview play the new multiplayer mode "Kid Icarus: Uprising" game for the Nintendo 3DS.  I can't speak for single player mode because I have not played since the demo last year, but the multiplayer is amazing.  It's so amazing that the single player could be the worst game ever and it would not matter.  Not only does it run flawlessly over local wireless (real time LAN games are the hardest of all multiplayer games to program for... yes they are harder than server ones), but it is extremely well designed and a TON of fun.  Designed by the same person as "Super Smash Bros", I suspect we will see a similar following in this ground breaking game.  Additional new features (since the single player demo from a year ago) include the on-line multiplayer, several hundred very well made augmented reality (AR) cards that will actually fight with each other if you set the cards next to each other (you don't need the cards for the game, they are just a fun bonus that give the same small randomly generated perks won from playing single player mode levels), and a modular weapon and power up system that lets you build custom gear (every piece will upgrade one thing and downgrade another, so the game remains extremely well balanced).  Weapons and power ups are earned in game and in multiplayer mode.  They can be transferred to any mode and they can be fuzed into each other to combine stats and make entirely new weapons.  Essentially, the weapons are like characters and each handles differently.  The multiplayer mode feels a lot like a third person shooter, but has a lot more depth than is usually seen in those games (you will see what I mean if you play it).  The closest games I can think of in general feel is TF2 (Team Fortress 2) crossed with Super Smash Bros Melee.  If you own a 3DS and haven't picked up a copy/pre-ordered I'd recommend it.  Heck, I'd say it's worth buying the whole 3DS system just for this game.  It is truly a master piece, and I for one can't wait for my copy to arrive, even if I won't have a whole lot of time to play it (I suspect I'll need to set a timer to force myself off it after 30-60 minutes a night; it is very addictive).

I'd also like to thank the guys at the Nintendo booth for all the fun we had hanging out and playing the game at the end of the show, as well as providing myself and other GDC guests with a hefty collection of the promo AR cards.  I'd also like to thank them for inviting me to the promo competition at the Game Stop near the convention center and for the very cool t-shirt that was given to me at the event.  Any time Nintendo wants to give me free stuff for playing a game when I'm just killing some time between appointments is fine with me!  I'd also like to thank the other guests that I hung out with for the additional fun and for trading cards.

"Gaol", a card that many of us were particularly fascinated by (and the first card I got in the first pack I opened) is particularly interesting.  Not only is the name made from the same letters as the word "goal" as we noted at GDC, but according to my father, it is also the Old English spelling for "jail".  Quite a depth of hidden name meaning in that character.  I didn't run into the game writer on the project that I met last year, but in case he or another designer ever happens by I just want to say, "Nice work!"

Anyhow, thanks to everyone at GDC this year for a wonderful and informative week.  I look forward to next year and wish everyone the best.

Sunday, February 5, 2012

Cyto and Mito First Preview

"Cyto and Mito" is the tentative title for my upcoming 3D adventure plat-former.  I've been a bit quiet about the details so far, but development is now far enough along for me to share a short video of some of the features currently under construction.  None of the videos show polished content, they are all very early concept pieces, but they do reveal a little bit about what's in the works.

A short word of warning, this video is tossed together with whatever settings Movie Maker felt like using.  It is by no means intended to be a work of art, nor does it reflect the complete project as it currently stands.  Rather, it is a small collection of choice video clips I make for my own records and chuck in a folder in the corner.  In other words, I put my time into making games, not documenting how I made them in an artistic and pleasing manner.

You will also likely note a lot of the clips reveal incomplete actions and bugs, this is because they are partial systems held together with temporary semi-functional scripts while the remaining parts wait to receive further attention (For example, the targeting system used by the dynamic object grasping script is intended to give me extra visual hints about how the procedural system is viewing things rather than actually give input to the user or act as a true target locking script.  As a result, you will see objects flash on and off red for no clear reason, and the player will often reach for items that are not present.  These are not bugs, they are stepping stones to a larger system that is still in the works.)

I did, however, include a few bloopers.  The first was caused by a dyslexic moment in which I had the squash/stretch modifiers inverted.  The second isn't super obvious, but a piece of a boss accidentally got left in the scene and decided to make a guest appearance in my video.  The third is a silly glitch that occurred when I moved a section of code, but left the original in place.  The end result was a tug of war between the two and a spinning player.

Thursday, January 12, 2012

It Works! (Dynamic Character Rig)

A few weeks ago I designed a unique character bone rig system that would, in theory, let the form of the character be controlled by animations, the physics engine, and additional scripted code all at the same time.  It does all this while keeping a fairly low bone count.  I have no idea if other developers have come up with similar rigs before, but I've never heard one spoken of (though I have not seen the inner workings of all that many character rigs outside of PC games).  Anyhow, it all looked good on paper, but that didn't mean it would actually work.  I could have easily overlooked some limitation.

Today, I finally integrated all the pieces of the concept for the first time.  In this case, I was asking the character to snag itself like a rubber band on an object, dynamically deform as it pulled back from the object it was snagged on, and then release from the ground to shoot across the land.  While airborne I asked it to pull itself back together.  Much to my delight, the very first time I asked it to do its thing, everything worked perfectly to create a great visual effect!  The full slingshot sequence still needs to be fine tuned and could do with a few more layers of prebuilt animations, but the fact that the system is working just as I had predicted is very encouraging.  It doesn't get much better than seeing a new concept come together without a hitch.

Thursday, January 5, 2012

New Game Designs

In November I turned my attention to coming up with a new game concept, and after a bit of rapid prototyping, I got one I liked.  The polish team from Maximum Chaos is planning on building the game, but since I'm the only one out of school, time has been short for the rest of the crew.  They have also been pretty burnt out from the last game we made.

Part of my goal for the new game is to give the team the chance to do a lot more of the programming (it is a team of programmers after all).  With Maximum Chaos, experience levels were not really there yet for the guys to do the core of the coding.  Unfortunately, this meant they mostly got stuck doing in editor rigging, 3d mesh correction and other technical artist stuff while I was stuck doing heavy coding.  It wasn't a waist though, we learned a lot about working in a team. I learned how to manage a team, and we made a point to discuss the programming and have the guys do as much code as they were ready for.  With that experience behind us, I am ready to be a better leader, and they are ready to take on the programming (leaving me free to do the technical artist and design work).

A lot of people who know me tend to think of me as a programmer, but that's not entirely accurate.  I'm really a game designer who happens to be rather good at programming.  I use rapid prototyping and experimental code to help me design new game play concepts and systems.  I also do a lot with programming to ensure that if I am ever in a designer position, I can fully understand where the programmers are coming from and not ask them to do insane things without having some idea of how they could approach it. 
In addition, getting a job strait up as a game designer (rather than a graphics designer) is not so simple.  A lot of people think they can design good games and content when really, they can't.  This means going around telling people I'm a game designer is not a real smart move.  With game design it's a matter of showing, not telling.  However, in order to show that ability, you really need playable games.  These games are likely to need a team to make them, and now the circular problems begin.  The industry gets around this issue by hiring designers out of other departments.  This is a big part of why I am a also a technical artist and programmer. In a school enviorment filled with artists, I sort of just naturally fell into the programming roll in most groups, so it seemed logical to pursue it as my dominant secondary skill.

But enough of such tangents, a new game is in the works.  I took a play focused approach to designing this game, meaning the mechanics, systems and art styles were developed first while the plot, story and specific levels developed second.  Many designers start the other way around, but after reading a few articles about how Nintendo has been designing their most recent and enjoyable titles, I thought I'd try this approach.  The major advantage of this type of design appears to be that the end product is more likely to be innovative and fun because creativity in game play begins with very few boundaries. 
Games that start with a strict story tend to fit into well worn predefined molds such as turn based RPGs and FPSs.  Essentially, the classic method of choosing a genera and then a story and then mechanics can be mixed up a bit and into choosing mechanics that end up defining a genera(sometimes a new one) and guide a story.  Though games developed in this manner tend to be prone to wild gaps in logic (seriously, try thinking about Mario Games through a logical eye some time), after hearing the 'It's okay if it doesn't make sense because it's fun.' approach at Nintendo, I decided I was okay with this.
As such, the new game will have some some wacky features, though I am going to make an effort to ensure that world rules and logic remain consistent within the game's universe, even if they don't match reality all that closely.  I did begin with a micro-biological theme, so my usual trend of slipping in a few real world concepts and items of some educational and/or inspirational value continues.  Did anyone catch the historical quotes in Maximum Chaos?

I realize I haven't given out any real details about the game yet, but nothing is set in stone just yet.  It is, however, likely to be a third person action adventure of a sort.  Right now it is looking a bit like a hybrid between Mario, Zelda, Metroid and Kirby games with several game-play twists not seen in any of them.  All in all, it looks like it will be pretty fun, so I'm looking forward to getting it to a playable stage.