Cute Little Games

Creating games from start to finish

Sunday, February 22, 2009

HuffStick v1.0



Street Fighter IV was on the horizon and on some gaming sites that I frequent lots of users were picking up new arcade sticks to play the game with. After all, it’s Street Fighter and if you are trying to pull off a hadoken, a shoryuken or even just move forward on the stock Xbox 360 d-pad then you’re going to be in a world of hurt. I’m not a big fighting game fan, but it did pique my interest to see some folks assembling their own custom sticks to get the exact look or performance that they wanted. Plus you get the added bonus of being able to update your stick to support future game consoles. It had been a little while since I’ve done any type of DIY so I figured that it would be a fun little project to give the whole custom stick building a whirl.

Stage 1: Picking the parts (or “You’re not actually going to try doing Cammy’s Ex Spiral Arrow, Cannon Spike, Focus Attack Back Dash Cancel into Gyro Drive Smasher with an American stick, are you?”)

The first step for me was to pick out the parts that I wanted. Since I’m a total stick rookie I had to do quite a bit of research to solidify the parts that I was looking for. Slagcoin and the Tech Talk forum at Shoryuken were my main stops for trying to figure out what gear I wanted. The first step in the process was to determine if I wanted Japanese or American arcade parts in my stick. In general terms, American sticks have a bat top, a longer throw, stiffer springs and an octagonal gate while Japanese sticks have ball tops, shorter throws, looser springs and square gates. The gate of a joystick is the plastic device that restricts the normal motion of the joystick. An octagonal gate allows for smother 90, 180 and 360 degree motions but you lose the precision of a square gate when attempting to cleanly hit diagonal directions.

The general consensus online is that Japanese sticks perform better if you aren’t too used to American sticks already, so I decided to go with one of those for my project. Between Japanese brands there are two major choices, Sanwa and Seimitsu. Sanwas seems to be slightly preferred for fighting games (they come as stock in Street Fighter IV arcade cabinets) and Seimitsus slightly favored for shooters but it seems to mainly be a matter of personal taste. I liked the idea of the short throws and slightly more rounded gate on the Seimitsu LS-32 so I picked that as my stick. I also grabbed 8 transparent 30mm Seimitsu buttons (4 blue and 4 white for the face buttons) and 3 opaque 24mm Seimitsu buttons (for Back, Guide and Start buttons on the front of the stick). There are only a few online US shops that that stock up on this stuff but I had really good luck ordering from Lizard Lick, very fast shipping.



Stage 2: Building a box (or “I love the smell of burning lexan in the morning!”)

The next step for me was to get the basics of the box and control panel completed. As a starting point I used the idiot box sample controller from Slagcoin. To make it fit my needs better (8 button layout, lots of room to solder on the inside) I bumped up the sizing to 15”x9”x2” which was a pretty big increase over the normal size. When it came time to do the wiring I was very glad that I choose to add this extra room on the inside.

The idiot box suited me well as it was a simple build that didn’t require precision cut or routing as all that I had access to was a jigsaw and a hand drill. All in all the box came together pretty well, but with only hand tools I made all my cuts really generous so I had to do a ton of filing and sanding to get them to fit together reasonably close. I actually did so much of this that by the end I just got sick of it and you can see some pretty nasty joint lines in the finished project.



Cutting the top control panels was also pretty interesting. Drilling in the ¼ inch MDF layer was easy but it took me almost 3 hours to get all the holes drilled in the lexan. I used a spade bit with really low torque to get though with minimal cracking (you can see a small chip under the Y button on the finished project) but it was a highly long and painful process.



Stage 3: Padhacking (“or how to void a warranty like a pro”)

Padhacking is the art of taking apart and video game controller and soldering in all your own wires to route to your buttons and joysticks. For my project I used the GameStop branded Matcatz control pad. The advantage of this guy is that it’s only 25 bucks, has a long cord and uses a common ground. The common ground is nice so that you only have to solder one ground wire from the pad as opposed to having the solder a ground for each individual button. As you can see below things start to get pretty crowded even with common ground when you are wiring all eleven buttons.



A tricky part was that I wanted to wire up the trigger buttons as action buttons (many custom builders omit the triggers). The triggers are tricky since you need to use resisters and an NPN transmitter to convert the analog triggers into simple on-off button presses. Luckily smarter folks (mainly Toodles on Shoryuken) then I had already mapped out the circuit and I just needed to implement it and find room for the breadboard.



As you can see below, thing can get pretty crowded when you put it all in. I used terminal strips to organize the grounds and signals, that way if I need to replace a button I don’t need to do any desoldering on the actual pad. It’s also nice that if the Xbox 720 comes out, and doesn’t support my controller anymore I should be able to drop in a new pad to replace the current one.



Stage 4: Finishing up (“or finally I get to have my free time back!”)

The end stages started out with priming and spray painting the box white. Painting was a pretty easy process, although as noted before I didn’t sand enough to get a really smooth finish on the sides. After that I mocked up a few designed for the top and after selecting one took it to FedEx Office to get printed out on white card stock. Finally I had to rig up all the guts inside the box (I was so worried about breaking connections during this it’s not even funny) and add the layer of lexan on the bottom.







Stage 5: Putting it to use (“Ikaruga here I come!”)

So in the end I plugged it in to find that all my connections were solid and that every button works as expected. And, in spite of a laundry list of minor cosmetic flaws the stick is solid, looks good and performs great. I’ve given it a spin with Street Fighter III (I’ve got IV on order from Amazon) and with Ikaruga and it was great fun with each game. At a few points along the way I felt a little silly for taking all this time and effort considering that I don’t even play fighters or shoot-em-ups that much. But now that I actually have the finished project in my hand I can see how those genres are just way more fun with an arcade stick as opposed to a pad. Just like you can technically play Guitar Hero with a normal controller it’s just way more fun to play it with the controller that was intended for it. Just having the stick is going to make me go out to look for more arcade type games (need to grab some more Microsoft Points) to play with it. The long and short of it is that while it took longer than I expected it was a pretty fun process and I’m actually surprised with the quality, durability and looks of my finished project.

More photos of the process here.

Friday, March 21, 2008

Compelling game worlds


I figured that in addition to my own game design process I would tack on some of my random thoughts about games and game design here.


I was just leafing through Gamasutra’s list of top twenty JRPGs and seeing a few favorites of mine on the list got me thinking about why I enjoyed some of those games so much regardless of silly voice acting, repetitive random battles and overly melodramatic narrative. In the end I think the answer is that I’ve got a bit of an over-active imagination (a common failing among a fair number of gamers I would guess) and in spite of narrative or gameplay issues a well constructed world can draw me really deeply into a game and allow me to forgive many of the failings that game might otherwise have.


So from there I started to think about both what makes a game world compelling for me and about what specific games have worlds that were standouts for me. So indulge me a little as I take you on a quick tour of some of my favorite game worlds broken down by category.


****** Backstory & History ******


One of the first components of a great game world for me is having a world with a deep backstory and history. Even if it never really becomes a part of the gameplay I like to feel that the part of the world that I’m seeing is just the tip of the iceberg in a larger world / universe. I don’t want a world so shallow that I can’t picture the rest of the world outside of the narrow focus of my camera viewpoint.


Example A: Sigil – Planescape Torment


Sure, Black Isle had the benefit of years of pen and paper backstory to draw on for this game but I don’t see how that would make the word of Sigil any less impressive for a video game. I’ve never been a fan of the infinity engine for combat or just general gameplay (didn’t finish BG I or II) so it says something that I raced to finish Planscape Torment in about two weeks as I was unable to put it down.
If there was a word to describe Sigil (and the planes in general) it would be “deep.” You get the feeling that stuff is brewing under the surface and that when your back is turned Dustmen are collecting trash, new alleyways are being birthed, clients are being entertained at the Brother of Slaking Intellectual Lusts and the Blood War is raging in hell.





Example B: Alpha Centauri – Sid Meier’s Alpha Centauri


You don’t need to even put the disc for Alpha Centauri into the drive to see the thought that was put into its history and backstory. The game manual is about 200 pages thick and in addition to the gameplay information it is stuffed with little historical tidbits and facts about the new world that is being colonized. Unlike Planescape you could play the game and never read any of this info. But it says something about a developer to include extra information like this for those of us who love well developed worlds. Plus the info gave you little hint about gameplay, such as figuring out what actions would endear or incite relationships with other factions.





Honorable Mention:
Half-Life 2
Mass Effect


****** Interaction & Feel *******


Interaction and feel? Doesn’t this belong more in the category of gameplay as opposed to what makes a good world? In general I would agree with that but I’m more specifically talking about how your interactions with the world around you make that world more interesting and make that world more “real” in your eyes. Note that for me this doesn’t mean “the world that you can interact with the most” it’s more about the value and feel of the interactions that are allowed that matters to me. Essentially, a world that can be interacted with in a fun fashion makes someone with imagination like mine want to be in the world which in turn makes the game more enjoyable. Also, well tuned interactions can turn the world into an actual “character” that you can remember fondly just like a favorite character from a book or movie.


Example A: Pacific City – Crackdown


For me Crackdown is a perfect example of having less interactions but having them be very well tuned for drawing players into its world. Rather than let the player go into every building, talk with all the pedestrians and otherwise mess about in the city they worked on refining the core mechanics of jumping and throwing. Instead of getting attached to the characters in the city you got attached to Pacific City itself where every ledge and building was something to jump on, get to the top of or drive a car off of.




Example B: Big Shell – Metal Gear Solid 2


While Crackdown is an example of allowing just the right amount of user interactions to give the world personality Metal Gear Solid 2 goes the opposite direction and still makes it work. A better comparison would be to the fun but extraneous backstory of Alpha Centauri in that Metal Gear Solid 2 contains a myriad of ways to interact with environment, many of which are never needed to progress in the game, but that you will want to do anyways to test out how the world will handle your actions. The equipment that you get in Metal Gear makes you approach the game almost like an old Lucasarts Graphic adventure where you want to try every piece of inventory on every object in the world looking for funny reactions. What will happen when I use the stun gun on this guard and hide him in a locker? What if I get in a box and try to waddle past a tank? Can I do chin-ups on this railing? If I do 100 chin-ups will my arms get stronger? The world invites you to both play the game straight up and also to just play around if that is what you want.




Honorable Mention:
Super Mario Sunshine
Prince of Persia: The Sands of Time


****** Originality & Art ******


Here is the category that most people would think of first when they talk about a compelling game world. It’s also very hard to define as everyone has different tastes in art. Speaking for myself I value highly consistent but usually non-realistic game worlds with a strong taste for more original settings. I fully expect my tastes in this area to be mocked (FFVII lol!!!) but I’m not going to hide my unabashed love for the worlds depicted in the Final Fantasy series. Note that these are not my favorite games, in many cases they are flawed games that I’m able to put up with due to the fact that I love the worlds that they present.


Example A: Midgar and Spira – Final Fantasy VII and Final Fantasy X (and X-2)


I’ll get my two favorite Final Fantasies out of the way early so that those who can’t stand them can just skip this section.


First up is Final Fantasy VII and the steampunk world of Midgar. To this day I can still remember first seeing the pre-rendered backgrounds in Gamefan and being blown away by the background designs. Instead of Tolkinesque world v6.1 the world of Midgar was bizarre and gritty, full of steampipes, dark alleys and neon. I’m not saying that Final Fantasy invented steampunk but for many budding gamers FFVII was a seminal experience in a large part due to the originality of the setting. An example of the attention to detail that FFVII impressed me with would be the informational video of Shin-Ra vehicles that you could watch from the lobby of Shin-Ra HQ. The fact that they took the time to create this little video and how cool all the vehicles were (including the little in-jokes like the truck with “one big cylinder” for an engine) shows how serious they were about creating a consistent look and feel for Midgar. There were other notable locations, Wutai was a favorite of mine, but Final Fantasy VII was really represented by Midgar and few game worlds since have been as compelling for me. I’m sure that some of the appeal of FFVII’s world can be chalked up to nostalgia, but what the heck, we’re talking about entertainment here and if nostalgia is what works then who am I to argue.





The next Final Fantasy up on my list would be FFX and perhaps my favorite game world of all time (please leave all discussion of the “ahhahahaha” scene at the door for this thread please). I find it difficult to articulate exactly what was so appealing about Spira for me. I just get a very strong feeling of character and aliveness when navigating the world, interacting with the denizens and observing the environments. The game presents many varied locations but a common theme of sun-drenched tropical relaxation seems to permeate much of the world. In the end it falls back to the over-active imagination that I mentioned in the intro as the idea of relaxing on a Besaid beach, swimming in a lagoon and kicking around a Blitzball is just too dang appealing a mental image. The technical design was top notch for the time of release and in the art direction I like the combination of some familiar areas and visual themes from other RPGs but with all of them tweaked to match the overall FFX look and feel.





Example B: The Great Sea, Hyrule – The Wind Waker


Apparently I have some deep set love for wet, tropical environs with my affection for both FFX’s Spira and for The Great Sea of The Wind Waker. The topic of this section is both originality and art, both of which The Wind Waker provides in spades. The originality comes from the ocean / boat based world where the ocean is more than just a pretty water texture to fly over on the way to your next pre-rendered cutscene. In fact, The Wind Waker could just have easily been listed in the interactions section above based on how the sailing helps to give a personally to the ocean and to the world. I won’t deny that it got quite long in the tooth at parts but sailing helped to give you a glimpse of how changed the world would be living on an island chain. And the beautiful art was a perfect match for the sense of childlike wonder and adventure that The Wind Waker seemed to be shooting for. The Wind Waker is also a good example of how having fewer characters that have real personalities can be much better than streets full of nameless peons. Do you remember the disinterested battleship game attendant (…splish….)? It’s characters like that playing minor roles that can really help to fill out a world and give it personality.





Honorable Mention:
Viva Pinata
Grim Fandango
The Secret of Monkey Island
Metroid Prime

Tuesday, January 22, 2008

The Basic Idea



Now that I've decided to make a game I have two main goals moving forward. First off, I want to flesh out the design for my game idea. And secondly I want to experiment with some small samples to get a feel for my tools before I jump into programming my main game. This posting is going to be from the first category, where I start the process of fleshing out my main game idea.


Guiding Principals


Before even considering what game I want to do I wanted to lay out some design goals for my game. These principals are guided by such things as the name of my site (cutelittlegames), the amount of time I'm willing to spend on these projects, current trends in freeware games, my available tools and the type of games that I like. In just half an hour of thought I came up with the basic principals seen below.



  • Genre: FPS, RPG, Wargame, Shooter and Platformer are all out when considering what game to make. The first reason for excluding several of these genres, FPS and RPG in particular, is resources. I've not the time to create the amount of 3D graphics (FPS), content (RPG) or game logic (Wargame) needed to really do a game justice for several of these genres. The second reason for exclusion, one that applies to all of these categories, is competition. I'm not out to sell a game here, but if I want my game to get noticed I'm going to have to avoid categories already populated with quality indie games. Sure I could make a platformer, but would anyone want to play it as opposed to Cave Story (below) or N?


  • Graphics: While 2D gaming is alive and well in the indie community (see above) I want to give 3D a try for my first game idea. Part of this motivation is that I've always found 3D modeling to be interesting, even given my relative dearth of artistic talent. Also, it seems that OSS has finally gotten a 3D modeler, Blender, to the point where it can compete with commercial products like Maya or 3D Studio Max. The downside of 3D graphics is some of the complications that they will introduce to a linear algebra n00b like myself (collision detection, complex camera transforms). To mitigate this issue I've tried to pick a design that shouldn't require quite as much 3D knowledge as your average 3D game and you can see this reflected in several of the design goals below.


  • Levels: Since I'm learning 3D modeling at the same time as game programming I need to cut down on the amount of artwork that I need to create as much as possible. This means that I've got to keep my levels as simple as possible and as few as possible. Again this rules out many of the more complex genres and moves me more in the direction of puzzle or strategy games.


  • Tone: A common theme from many indie games is a light-hearted tone of play. While there are notable exceptions (mostly in the adventure and RPG categories) indie games tend to fall into what would be called the "quirky" category. For examples check out games like Castle Crashers (below) and Wik and the Fable of Souls. I believe that this is in a large part due to mature and serious tones lending themselves more to graphically intense games. By virtue of limited time, resources and download size indie games go for graphics that are more artistically inspired but technologically limited and the tone is altered to match. I'm going to go along with this principal and keep the tone of my game light-hearted and avoid long or serious exposition.



  • Multiplayer: While I know that multiplayer adds in a slew of programming issues I'm going to try to include both local (in the first pass) and online (in later versions) multiplayer in my game. My first reason for doing so is that games that create strong community just about always have strong multiplayer components. Think Halo or Worlds of Warcraft for big name games or Gunbound for indie projects. Secondly, I think that my game design choices will create a game that scales well for online multiplayer. I'm not going to design a game that requires lighting fast response like Halo or Virtual Figher 5 Online or that needs to support massive numbers of concurrent players like an MMORPG. And finally, coding for multiplayer means that I might not need much in the way of opponent AI, which is great considering that I'm already biting off enough new programming tropes without tackling AI as well.
Conclusion

By creating the above points I've started to flesh out the basic idea for how I want my final game to look. My game is going to be a 3D puzzle, virtual board game or simple strategy game with a light-hearted tone. Also, it needs to have a relatively limited number of levels and art assets and the multiplayer should be two player versus mode only. With this basic design I can dig back into all the game ideas that I've ever had (and any game player worth his or her salt should had plenty of these) and start to flesh out more details about the actual game, which I'll be doing in a later blog post.

Saturday, January 19, 2008

The Motivation

Like many brave geeks before me, I want to create computer games. There is a whole generation of programmers like me who cut their teeth on creating XMS boot disks so that they could get X-Wing to run on their home PCs, or who ran over to a friend’s house with an IP address written down on a sticky note to get DOOM up and running over the modem. Games are in our DNA and (contrary to what many pre-videogame agers seem to think should happen) for many of us this love doesn’t die out was we get older. In addition, the creative impulse seems to run pretty strongly in gamers, it seems that a higher percent of video game players want to actually create games, in contrast to the number of movie fans who actually want to create their own movies.

But aside from a brief summer camp at Digipen as a High School student (in which I let all the actually talented coders on my team do all the work) I’ve never actually done any game programming. I’ve always considered the barriers to entry for the C++ / DirectX world to be a little too high for me to take on for just a hobby. But now that technologies like Flash and XNA have arrived it seems like a great time to jump in and try to actually hash out some cute little games.

As the name implies I’m looking to create bite-sized games that don’t require massive time investments and that I can finish to completion. That last part is important to me as I know that many hobbyist programmers peter out after they choose to tackle too advanced a project. I want even my early “hello world” project to be fully “games” as opposed to just tech demos. And I want to plan out one main project and not move on until I’ve completed it to my satisfaction.
With that said my next posting will be starting the basic design of my first cute little game.