Tuesday, January 31, 2012

Thoughts on Global Game Jam 2012

Global Game Jam 2012 took place this last weekend, and the three of us participated! In the span of about 48 hours, we built a game themed around Ouroboros essentially from scratch (we did have to search online for music and sound effects, but other than that we created all the code and assets in the two days). Here are a few thoughts:
1. Keynote speaker Gonzalo Frasca was absolutely right. The important thing isn't how well you end up doing, it's about leveling up while doing it. And I can say for sure that this helped me level up. Before, I've worked on a video game over the course of a semester, and then over the course of a month, but a weekend is a whole other beast. You just need to really buckle down and work, and if there's something you don't know you are going to learn it VERY quickly.

2. Possibly the most important thing to know as a developer is your own limits. No matter how good you are at coding, 48 hours isn't a very long time, and plans for a game will ALWAYS be too ambitious. You have to know what ideas to cut, what to keep, and what to change. And you have accept that the finished product will pretty much never be quite what you imagined. But it will still be awesome.
3. And probably the most important thing for you to do during a game jam is of course to have fun. Hopefully, you're doing the game jam because you want to, so don't get too stressed out by the impending deadline. There will be times where things aren't moving as smoothly as planned, but that's inevitable. Go with the flow, don't stress out, and in the process learn how to deal with unexpected events!

That's really all I have to say about it. In short, participating in the game jam was absolutely amazing, and I highly recommend participating to any prospective game devs out there. It's an eye-opening experience, and even if you don't manage to get very much done, remember: it's not about what you end up with, it's about leveling up and becoming better than what you were before. Just do your best and have fun, it'll be worth it.

Saturday, January 7, 2012

Lessons Learned: Tips for Beginning Game Designers

(I meant to post this earlier, but then my computer got a nasty virus and it took time to get it running again... but it's back, so here we go!)

This past semester the whole Silver Asterism team took a Computer Game Design course. It was so awesome, but so much work. I thought a good way to ease back into posting after a hellish semester would be a small retrospective on things learned over the course of the semester. The course was set up so that we did three month-long games. Each was on a different platform, beginning with Android (using AndEngine), XNA, and either Unity or Unreal (all of us picked Unity). We worked in three-person teams and had a short list of requirements from the instructor (like having AI or implementing gravity). So here's a few things I learned in the course of the semester, in no particular order:

1. Don't bite off more than you can chew
This is a really hard one to get as a beginner. You have so many cool ideas and things that you want to do with the game, but the reality is, maybe you don't have the know-how. Or, like in our case, maybe you don't have the time.
They told me I could be anything I wanted...
2. Dare to dream big
Yes, this is somewhat contradictory to #1, but bear with me. Likely, it was some of the major titles that got you interested in game design. (I'm fascinated by fantasy RPGs like Skyrim and Dragon Age and cool mechanics like in Portal, personally.) Maybe you've been fired up by a grand idea that you've had (we've got a neat one in the pipeline that I can't wait to make...). That's great! Don't let go of it! Maybe you're not ready to program it yet, but that doesn't mean that you can't plan. Maybe you're ready to hack together a prototype in your spare time. Whatever it is, don't let that dream game die, because that's what got you into this, and that same passion is going to keep you in the game.

3. Scoping is hard
My two points above really come together in one thing: scoping. Understanding the feasible scope of your project is really important. It's also really hard. And I don't think that it's something you can get without practice. My first group had more planned than we could code in a month (partially due to AndEngine's lack of documentation, but that's another story...) and my second group, in reaction to that, wasn't ambitious enough. Our school's student game development club has seen many projects fail because the director(s) didn't know what was possible in a semester. Which brings me to...

"You know, not everybody likes onions. Eh, cakes! Everybody loves cake! Cakes have layers!"
4. Try out incremental development
For incremental development, you divide the project into sub-projects and order them based on necessity. Then code in that order, so that at any point in development you have a complete, playable game. For instance, the first sub-project would be to get the basic graphics and mechanics working. The next level may add on a more advanced HUD, or keys that open doors. This also lets you easily debug as you go, and if you run out of time, you'll have a complete project. It's also called the onion model, and it works well for small projects. Give it a shot, and it can help you get a better handle on scoping while still creating a complete game.

5. Learn art, or make friends with an artist
This is a smaller, less important point, but once you've laid down all the code, you're going to want your game to look nice. If you're someone like me, with some artistic ability, then maybe you're set. If not, go make friends with someone who is. It's a small touch that's nice. Try out Photoshop or Gimp to make pixel art - it's not very hard and rather fun! 3D stuff is a little more daunting, but it can be really rewarding when you get something right. Give Blender a shot, a free, open-source editor with plenty of tutorials available (www.blender.org). At the end, your game will look better for having original assets, and you'll be prouder of it.
Fun fact: That weird clef on the left there is the movable clef. In that position, it's called the alto clef. Music nerd, out.
6. Make some noise!
On that note, find some good background tracks, or someone who can make them for you. www.freesound.org is a pretty good spot to find simple loops and such. For dialogue and sound effects, I recommend recording them yourself. It's a lot of fun, and you can probably find some friends to lend their vocal talents to your characters. Again, having original assets can really help you feel proud of your game.

7. Learn from every project
I'm not jumping up and down to show off two of the games I made this semester (the last one was pretty nifty). But that doesn't mean that I'm just scrapping them. The first one wasn't very original, but I learned from it. The second could still use some work, and I may yet go back to it. Even if a project fails, which can be frustrating and embarrassing, don't just delete the code and never look at it again. There may be things to learn there, or even useful pieces of code. Take some time away from it, then go back and see how much you did accomplish.
Google thought this picture would be useful.
8. Don't be afraid to try
Honestly, this one's mainly on the list for me. I have a tendency to underestimate myself, which holds me back in things like this. Never programmed a game before? Just try. You start to figure out how to handle updates smoothly or how triggers work in Unity, but only if you start messing around. (Okay, the tutorials might help, but I never have the patience to read through all of them.)

9. Play indie games
Thanks to Jeremy and Steam sales and Humble Bundles, I've gotten really into indie games as of late. They tend to be smaller in scope and revolve around one or two core mechanics or ideas. These are the kinds of games that you can start out programming, and they may give you a start for more realistic scoping than just working off of AAA titles. Besides, they may give you some ideas and inspiration.

10. Have fun
It seems obvious, but it's really important: make sure you enjoy what you're doing. If one engine or game style is frustrating you, find something different. Hit your stride and get used to programming games, then return to the things you're less happy with. If you're working in a team, try to find something that everyone can get excited about. My most successful project this semester involved a team that was universally excited about the idea. If you're enjoying it, working on it will seem less like a chore, and you're more likely to wind up with a finished game.
Oh, the lies...
11. For the love of God, start with a well-documented engine
The first game I ever did programming for was on AndEngine. It wasn't a good idea. Don't do it. I still have no idea what on earth we were doing. XNA had more documentation available, which made it a lot easier to get started in. Working in Unity or Unreal was a little different, and personally I'd try something a little less elaborate at first, since the larger engines take care of a lot of the small things for you. Just don't start with AndEngine, or anything similarly terribly documented. You'll thank me for it.

And there you have it, my thoughts after a semester of a programming course. Some of them are kinda obvious, but hopefully they're helpful nonetheless. Now I'm off to do some more planning on my game project for this coming semester... :-)

Monday, January 2, 2012

Assassin's Creed II: A Treatise in Nine* Parts, Written While Watching Assassin's Creed II

*actually one.

So I'm finally jumping on this Ass Creed bandwagon and actually playing one of these games. I played the first a bit on my brother's computer, and it seemed dreadfully fun but simultaneously incredibly boring. I grabbed Assassin's Creed II during the recent Steam sale, and I'm hunkering down, dropping the graphics settings to something I can manage, and playing this bad boy. Here will follow some choice remarks written down in the copious free time I have while waiting for things to occur.

0) Is it just me, or is it painfully unpolished when a game on Steam requires you to copy and paste a multiplayer CD key into the game? That really seems like something that should be taken care of by, you know, the whole 'Steam' thing. And while we're on that page, can we just excise once and for all the entire phenomenon of developers wanting you to sign up for their proprietary service? No, Ubisoft, I do not care about "UPlay". I will never think about it again.
1) That was a nice pan down to Lucy's breasts. You know, when he's saying how he met her and befriended her, and the camera lingers for half a second on her face and for three seconds on her boobs? Subtle, guys.
2) Let's talk a little bit more about Lucy's character design. I can guarantee you (as of five minutes in) that she will also fit all the Good Girl tropes. You can tell from her appearance, on top of everything else - it's so nice how instead of actually showing us that a character has traits, they can just make her blonde, blue-eyed, fair-skinned, with her hair up in a ponytail, dressed in tight-fitting white clothes which obscure her cleavage with a high neckline... And we know everything we need to know. I bet that at some point, Desmond will want to do something and she'll say it's too reckless. She's also a total sidekick through and through, in painfully obvious fashion.
3) And now I write something I have never before written: This is the most awkwardly long birthing scene I can remember being a part of. I'm just glad they didn't go for a first-person camera view while the main character is born - playing my way out of my apparent mother's birthing canal was not what I was expecting when I signed up for Templar-stabbing action.
4) That's not a very useful movement tutorial when the instructions ("move legs" "move empty hand" "move armed hand") both don't make sense *on a baby* and seem to have little correspondence to what they will actually do when running around as a full-fledged human being, renaissance Italian or not. While we're on the subject, can you please tell me what the buttons are? Your color codings do not correspond to my mouse buttons.
5) I appreciate that you've got a respected and well-loved storyline, but... You're telling it in a painfully boring manner. I get that we're escaping from this huge sprawling techno-industrial complex, but... I just sprinted through this cubicle farm full of Animus-plurals, and no one spotted me - while my chaperone was tensely ducking around corners and crawling her way through.
6) I am rapidly finding myself not caring what Lucy is talking about.
7) "Apple" is the best synonym I've heard yet for "McGuffin".
8) Oh, look! It's a punky, hackerish girl with headphones and a low neckline. I wonder if she'll be a counterpoint for Lucy, possibly by any slim chance? Also, their visual designs seem identical to two women in Uncharted 2 and 3. I'm not sure if that's just me... but seriously. Can we get some more interesting female character designs in the video game industry? Desmond's not much better.
9) A British librarian? WHO WOULD HAVE THOUGHT
10) I am Desmond. Watch me SWAGGER.
11) ... Where did Headphones Punk stick that connector below my chest? ... I am concerned about how the Animus works.
12) Okay, I'm only going to say this once, because this would be boring as fuck otherwise: THAT IS NOT HOW BRAINS WORK. THAT IS NOT HOW GENETIC MEMORIES WORK. Okay.
13) While we're on the topic of things Not Working Like That, I don't know that Italian actually sounds like a bad imitation of Italian. Not sure about that.
14) Okay, this fight scene is terribly entertaining. I half expected these two gangs to start snapping their fingers and singing at each other, but no - I have to say, the combat engine in this game is really nicely tuned. It suffers a bit for my hardware, but it's satisfying to try to balance between a large number of attackers... Even if it is a bit easy; one man should not reasonably be able to take on five attackers. A little more difficulty would be well appreciated in terms of setting up your fights. That's a thing that old-school stealth games did much, much better than modern times - in Thief, you pretty much never wanted to go into combat against even one person, and instead you had to carefully plan your approach to everything. It's interesting that even though these games have such intricate AI and movement systems, they fall prey to being too easy - they never force you to really *use* those strengths.
15) Mmmm, delicious free running! Harder than Infamous, more vertically mobile than Doom. I really like it, from my tiny experience thus far - it's tinged with a little confusion because the game still won't tell me what buttons to press unless I go into the kinda-clunky menu. Clunky's the wrong word - it's incredibly smooth and pretty, it's just... bad at being a menu.
16) I'm pretty sure doctors mostly wore plague masks during the black plague.
17) Bet you five bucks that this zero-dimensional brother of mine is going to die. He cares about you... in a BROTHERLY kind of way! Brotherly love is so beautiful.
18) No but seriously? This is awesome. Climbing onto these towers and then jumping off is so much fun! These games are awesome. I rib because I'm having fun. I can't take this game seriously, but it *is* fun.
19) Quicktime events for sex! Haven't seen that since God of War. I want to see more of what happens when you miss it - don't click fast enough and you kind of awkwardly fumble with her bra, press the wrong button and your teeth click together when you kiss, miss a spinner and you both forget to take your glasses off, don't hit the buttons in the right sequence and you don't communicate right and no one really gets what they want from the night...
20) Picking pockets is HELLA easy. I had no idea you just had to punch someone in the gut, and their florins would magically appear in your hand!
21) Ahhh, renaissance architecture. Flying buttresses, peaked roofs, and buildings inspired by porcupines in placement of lampposts and other replacements for the gymnast's high bar.
22) Honestly I have no idea what I'm supposed to be doing. It's just too much fun to go to the highest point I can see, find new highest point, and go there! It makes me wonder if it'd be fun to structure an entire game or a sequence of levels in some larger game around it - maybe you're stranded somewhere and need to find the way out, so you need to find the highest point to see farther... Seems cool.
23) Races! It's just like my favorite parts of Infamous! Except, with a slightly higher tendency to leap off a building into an alleyway.
24) I still have no idea what I'm supposed to do. I guess I could be paying attention, but I'm too busy writing. With that in mind, I might just wrap this up without having even gotten to the stabby bits. I'm kind of tired of this game already, actually. Eh, decreased stamina in my old age, you know how it is.