Monday, January 30, 2012

Global Game Jam 2012 Post Mortem

Having participated in three game jams last year, I didn't quite feel like doing a full-scale project this time so I kind of pre-decided to make a board game instead. This year the theme was a picture instead of a word: 
















The Concept


I had lots of thoughts about infinity and cycles after seeing the theme. The snake is eating its tail - i.e. it is feeding itself. This was pretty much what I wanted to do. A short game that is played repeatedly, and each time the game is played the game itself grows. The game feeds itself. After viewing the keynote and getting the theme into my head, I bounced some ideas with other jammers and then I went home for a while to gather inspiration. Well, actually I went to eat and watch How I Met Your Mother, but hey, same difference right? When I got to the actual jam site (we had the introduction elsewhere) I had three options: a game where player powers are retained from session to session, a game where world state is retained from session to session or a game where game rules change but are retained from session to session. The game should also be impossible to win on the first playthroughs. So far so good, but where's the game?

My friend, who was in my team in the last two game jams, had an idea about a rogue-like where upon finishing the game, the player's character would become the new boss. "What about the players that don't finish?" I asked - and suddenly I had a game concept. Here it is:

The game is a cooperative board game, which takes a very short time to play. It starts as a one player game. The first player dies very quickly, but in death they gain powers depending on what killed them. The game is then started again, but now with two players: the first player is a ghost aiding the second player. The second player will inevitably die quite quickly. Enter third player, now aided by two ghosts. This will go on until there's enough ghosts to get the last player through the game. The game is meant for gaming conventions as a social game that will gather people together and serve as great passtime between longer games. Ending up with this idea was most likely influenced by the local gaming con that was going on in the same building.



The Design


So I had my killer concept. What I didn't have was a team. I really didn't have any idea for the actual game mechanics either, but I knew it needed to be fast and easy to learn, since new players would be arriving into the table every five minutes or so. Faced with these problems I actually just thought "screw this", went home and watched some more How I Met Your Mother.

The designer never sleeps. Well, not until he is satisfied with his design, or really exhausted. I wasn't actually expecting to make a game this year at all at this point. Sure enough, ideas started to come about as soon as I closed my eyes. By the time I fell asleep I had the game mechanics mostly figured out. On Saturday morning I got off my bed feeling a lot better, and did the component math while taking a shower. I had just pretty much solved all my problems and went back to the jam site, hooked my laptop and started working.



The Game 


The game's working title was Ghost Legion Death Dungeon, which is pretty much the worst name I've come up in a long time. The players explore a dungeon made of square tiles, which will look eerily familiar to anyone who's played Labyrinth. The end conditions are simple: if the players manage to defeat the dungeon boss by pushing through 9 layers of dungeon tiles and spending a bucketload of power tokens, they win. The players lose if they don't find a new hero after the previous one dies.

Gameplay ended up being really simple: monsters, switches and power-ups are printed on some of the tiles. Cubes (stolen from El Grande) of five colors represent power tokens which are the only player resource. Monsters have four statistics: the amount of power tokens that need to be spent to challenge the monster (survive its initial attack), the monster's weakness - spending power tokens of this color boosts attacks against it, kill reward - a small power token reward for defeating the monster, and finally, death reward - the larger amount of power tokens granted to the hero's ghost they die against this monster. Power-ups are simple, they just grant free power tokens for the hero.

Finally since my dungeons would be randomly generated, there was a real chance of getting stuck. To combat this issue I introduced switches. These allow the hero to rotate tiles in the dungeon to create new paths or optimize existing ones. Most switches are trapped though, killing the hero in the process of triggering - such is the life of heroes. Heroes do receive power tokens when killed by traps. Finally to prevent cheap play, I had some rules against backtracking and running into dead ends.

As you can see, I went with abstract power tokens instead of anything specific. Remember, this is a game where new players enter every round and the expectation is that none of these players have played this game before. Can't take forever to explain the rules. Overall, the game is really really simple. The players simply gather resources as a team by 1) killing monsters and 2) guiding the hero to profitable death. A round ends when the hero dies, at which point all players regain their spent power tokens and all monsters in the dungeon respawn. Since players can also freely spend their power as a team, the mechanic is really not different from gathering those tokens into a collective pool.

The fun in this game is not in the finer mechanics of how enemies are fought and defeated but in the higher level mechanic of adding new players to the game. To ensure that players would not have as much reservations, I added a rule that allows players to simply leave the game. All their power tokens are lost so it's  a big loss for the team, but the game can go on if new players are found.

Playtesting


The cool thing about analog prototypes is that they are often much faster to produce. My prototype was finished in about four hours. I ran three playtests on Saturday. I started with a solo playtest just to see how the game would roll out. It wasn't half bad. Okay, it was pretty lame playing alone, but the mechanics were really fast to play.

The next playtest involved other jammers. A game jam can be a tough environment for testing board games - especially ones that require a lot of players! At this point I had no idea how many players it would take to win the game but I guessed that it would be at least ten. I started the game, took the first player position, went into the dungeon and died. Then I invited the next player, explained very quickly what the game's about and in we went together. After a few more rounds there were a bunch of us standing around the table discussing which paths to clear and how the hero should die this time... It was actually really fun! When we hit nine or so players, we started to have deserters what with people being busy with their own projects. We decided to forfeit since it didn't look like we could find enough new players to cope with the loss of power tokens.

My goal was to playtest the game in an authentic target environment: a gaming con! And we had one next door, what luck! In I went, set my prototype, started the game and started to search for new players. At first I had a hard time finding the second player, but then one card game ended and I promptly abducted all the players. With a bunch of players around the table it was much easier to find more players on the following rounds, and this time we managed to beat the game with eleven players. Go us! The game took about an hour and involved all players pretty well. Looked like everyone was having fun and, most importantly, they got a gaming experience like no other. It's not every day that you are invited to play a game and then told "These guys went into the dungeon before you, and we are expecting you to die next. Just try to do so in a profitable way."

Overall I the test sessions were enjoyable. The mechanics were a bit messy with ten players but that's pretty much the only negative feedback I got. I also explained my idea to, well, anyone willing to listen and people were really curious about it. With feedback this encouraging I'll be sure to polish the game for the next event I participate in. With better components the game should be even easier to understand.

Submit... Failed


You won't find this game on the Global Game Jam site. I made my components using a pencil. I intended to make printable components available for download, but I grossly underestimated the time it would take me to do so. I didn't really have any good tools for it, and by the time I realized this I didn't have the time to write a script that would help me with the task. I also spent some time testing another jammer's board game prototype. However, I don't really mind lacking a submit this year. Testing my game requires a lot of people and I honestly don't believe many players are even willing to print board game prototypes.


The Aftermath


Although I didn't +1 to the number of games made this year, it was a successful and far more relaxing game jam than any of the previous ones. Furthermore, my game was true to the jamming spirit: something experimental with no guarantee of it working at all. To my delight it did work. It was fun to watch new players' expressions when they entered the table and also to see how they actively participated in the ghost team's play after their death.This game has the potential to bring new people together, and you don't even need a group to start it. Moreover, it doesn't even require long-time commitment.

I'm not particularly proud of the finer mechanics of the game or its strategic depth. There really isn't much of the latter. The game's difficulty is mostly dictated by the number of available players.However, the finer mechanics are fairly easy to polish with solo testing. Most importantly the core idea works and that alone makes me more than happy for my weekend's achievement.

The game was finally titled Ghost Brigade after one of the best Finnish metal bands. So, to end this lengthy post with hopeful thoughts: "Ghost Brigade - coming soon to a gaming convention near you!"

ps. Anyone want to do dungeon themed art?

Friday, January 27, 2012

Soul Calibur 4

I've gone through this same argument so many times that I might as well write my point down. I liked the instant kill system that was in Soul Calibur 4. Most players apparently didn't since it's not going to be in 5, what with getting replaced by very Street Fighter-y super meters. Lame.

The Soul Calibur series has never been the most popular fighting game among serious players. There's reasons for that, but I'm not going to go there. Still I do think that the instant kill system that was in Soul Calibur 4 was one of their best ideas. Had they put more effort into making rest of the game more seriously competitive and less effort into making boobs and breakable clothes, who knows? Then again, maybe boobs are the way to go, since at least the series is making enough money to keep the sequels coming. But seriously, let's not get distracted with the boobs.

Instant kill in a fighting game sounds like a bad concept until you actually know the mechanics behind them. Guilty Gear has had them for quite a while and in that series they are most often not worth it. In SC4 they also made them at least a bit tricky. In addition to the usual health gauge, characters also have a soul gauge. The gauge increases when doing active stuff like attacking and guard impacting and decreases when blocking attacks. The amount of soul gauge damage which is dealt when attacks are blocked varies from attack to attack. After enough damage the gauge will first start flashing red and after a couple more hits it's gauge break time. This is the instant kill window. Pressing all four buttons when opponent's soul gauge breaks ends the round right there with an instant kill animation.

If you read the last paragraph carefully you might've noticed what this system does to the game. That's right, it encourages active playing style, or rather, punishes sitting behind block. Most characters had attacks which did pretty heavy gauge damage, resulting in break in just six or seven hits. For some characters going for gauge break was actually a viable strategy. The system also made the game state more fluid: when your soul gauge is flashing red it's time to act. Respectively, if the opponent's gauge is flashing red it's time to bring out the soul crusher moves. The gauge actually did change the game quite a bit. Until Namco blew it. Turns out most players did not like the system, so they decreased the soul gauge damage of all moves in the game a lot.

There's always strong opinions about nerfing, but this time I really feel that the choice was utterly, inexcusably wrong. The number of instant kills in real play went from approximately 1-2 per match to 1-2 per twenty or more matches. In other words, insignificant. So Namco just chickened out and basically took out an entire mechanic from their game. The one mechanic that actually made the game different from its predecessors and also other fighting games. Now they're just going to replace it with something safer and I think that is really, really lame.

I guess I still end up trying SC5. The series is still the coolest fighting game series with weapons in it. I just wish they competed with Tekken and Virtua Fighter for quality rather than with Dead or Alive for boobs.

Tuesday, January 17, 2012

The World Ends with You

The World Ends with You is a weird game in its genre. It's a Japanese RPG with lots of pretty unique stuff. I played it quite recently and sadly cannot agree to its greatness, but nevertheless the combat system there deserves a write-up. Not because it was particularly great but because it was really, really good at keeping the player busy. By busy I mean, really, too busy.

Unlike most DS games I've played, this one really incorporates the two displays into its game mechanics. Usually the top screen is only used for showing some information in a convenient way but not here. In combat the game is literally split between the two screen. The main character is always on the bottom screen, and his ally is always on the top screen. Enemies on the other hand appear on both screens at the same time. Why this is so is explained in-game but I do not remember the specifics. Anyway, this is the starting point to the madness that is playing The World Ends with You: two screens, one character per screen. Here's the punchline: one player-controlled character per screen.

The control scheme is in fact pretty genius. The main character is controlled using the stylus and the ally is controlled with the four directional buttons, or the four action buttons if you are left-handed with your stylus. The main character can be dragged around to make him move. In order to attack, the player must do specific actions with the stylus, depending on what pins they have equipped. These actions are simple: draw horizontal or vertical lines, touch a spot, hold a spot, draw a circle etc. Most of them were simple enough, although one I never figured out how to get it registered. Making the main character move was the harder part. The game is hectic, and more often than not my attempts to drag the main character registered as attacks instead.

So while you are drawing symbols on the lower screen and dragging the main character around to make him avoid attacks - which alone would have been enough for one game's battle system mind you - there is also stuff happening on the other screen at the same time. Pressing left or right starts an attack in that direction, but to actually execute the attack, the player needs to navigate through a combo chart. This involves pressing into the same direction, and possibly pressing up or down at some point, until the chart reaches a card and the attack is executed. Why bother with selecting the route through the chart? Well, each ally has their own mechanic for the cards. This means you don't want to just pick any cards from the chart but actually very specific cards.

So by now are we not only attacking with two characters and trying to keep one alive, but also trying to keep track of what card is needed next from the combo chart. Uh-oh. But wait! There's more! The ally can also take damage from enemy attacks and needs to be kept alive too. Their defensive actions are simple, just press down when not attacking to perform a dodge or a block. However, these need to be timed to enemy attacks, which means keeping an eye on both screens' enemies. Phew, I was totally overwhelmed. I mean, both screens would have made a fine combat system on their own. Playing both at the same time is mind-blowing, but unfortunately also very, very frustrating. The developers were kind enough to provide an automatic mode for the ally which takes over if the player is not touching the ally controls. However, the auto ally is not very good at picking cards or defending attacks, so in tougher battles player attention will be required on both screens.

The system was fun at first with so much to do, but I never got any better at juggling everything at once so when the game proceeded it just got more and more frustrating and I found myself switching to easy more than a few times. I probably should have just relied much more on the autopilot. Maybe. Yes, it's a curious system and really unique. Yes, it would have been a great co-op. However, juggling everything alone was maybe stretching things a bit too far this time. All in all, I can understand the praise the game has received, but it's clearly not for everyone.

The game did have a cool soundtrack. Stuffing all that on a DS cartridge must have been quite an effort.

Thursday, January 12, 2012

Final Fantasy XIII

The thirteenth Final Fantasy got quite a bit of bashing. Soonish Final Fantasy XIII-2 will be out, and I had a strange desire to play FFXIII again. I played it two years ago for the first time and I found it less deserving of bashing than most people. The game has its problems, but they were not as severe on my second playthrough, and there are some things that really shine.

1. Linear structure, narrow vs wide


This got bashed a lot. The game only goes forward most of the time which seems to annoy a lot people. Not me though. The same thing was discussed a lot when Final Fantasy X came out. Unlike its predecessors, the game didn't have a large world map but was just a series of, well, basically, straight corridors. People complained but I didn't really see a problem there. The world map was just an illusion of freedom anyway because these games have always been extremely linear. The only problem I saw in the structure FFXIII was that the areas were too freakin' long. For the first time around anyway. On my second playthrough I had the sense to run past most enemies which actually made the areas pretty manageable.

I also do not see the point of having huge areas if there's nothing in them. This was what they did in Final Fantasy XII. Many people praise the game for its large areas, but there's nothing there. Large areas should have something that makes them worth exploring. If there's not, then why not just use narrow areas. FFXIII has only one really large area, and surprise surprise, there's actually content in that area. FFXIII-2 is going to have a less rigid structure and is themed around time travel. At least on paper that sounds interesting.

One problem the game does have with structure is that the storytelling arc seems really... arcless. Somehow the writers have failed to introduce important turning points in the story, and it kind of seems like it's missing the middle of the story while taking far too long to get through the beginning.

2. Active time battle, finally worth it


The Active-Time Battle system which has been present in most games in the series since FFIV has for a long time been a bastard child of turn-based and realtime systems. A poor one at that I might add. On paper it sounds okay. Each combatant has a wait time between their turns. When the time gauge fills, they get to act again. The problem is that timing of actions is hindered a lot by not allowing simultaneous actions so combatants will still act as though they were on turns. It doesn't really work as intended and feels frustrating compared to pure turn-based systems that often have more depth anyway. Final Fantasy X is case in point because it's the only FF game after the ATB was introduced that actually uses turns instead. Lo and behold, combat in FFX is much better than any of the ATB games.

The basic problem with the system is that it is frustratingly hard to predict in what order actions will take place. Especially since by default the timer runs during animations. FFXIII solves the basic problem of ATB quite easily: it allows simultaneous actions. Everything happens as soon as either the command is selected or the ATB gauge fills. Suddenly the system is actually interesting instead of frustrating because now the grand idea that timing of actions should matter actually works in practice. It only took them what, 9 games (the sequel of FFX used ATB) to make the system work properly.

3. Paradigm system or the art of doing AI allies right


Unlike previous games in the series, FFXIII only gives the player direct control over the party leader. The remaining up to two characters are left in AI control. I'm not intimately familiar with the AI behavior, but it seems to work with rather simple rules. The clever innovation that makes this system tick is called Paradigm. Demystified it means allowing the player to change the roles of the entire party quickly from a simple menu. The game has six roles, more or less equivalent of classes. Each role has a very specific purpose and skillset. When a character is active in one role, the skills of other roles do not apply. A paradigm is a role configuration. In a paradigm each character has an assigned role. The player can set up to six paradigms for their active party.

Being limited to six paradigms forces the player to think about their strategy and what roles would work together well. Not only does each role have a skillset of their own, they also boost the entire party. Therefore a paradigm with all characters in the same role has everyone more effective in that role than a paradigm where everyone has a different role. The reason the AI can work so efficiently is in the limited nature of roles in the game. When in the Synergist role, the only thing a character can do is cast buffs on the party. When in Commando role, they can only attack the enemy. After this it's a simple matter of checking what is known about the enemy and making a decision based on that. Enemy casts fire spells? Protection from fire gains priority. Enemy is weak to water? Cast water spells, if available.

Paradigms are changed mid battle by bringing up the menu (one button press) and selecting a paradigm from the list. This is really quick, and much better to use than any command systems I've seen in other games. I would really like to make it a standard for all games involving independent AI companions. Put simply, I would like to see this: "when I select this, you will only use these skills". Of course FFXIII builds heavily around the system, which means that the player is rather busy changing paradigms. Timing of paradigm changes is one of the most important tactical skills in FFXIII. Since the system runs in basically real time, it really keeps the player involved in battles while controlling only one character and still never having to pause to order their allies. The game can afford to get hectic because the player has really effective controls. It makes the player feel busy enough but never too busy.

Conclusion


I really liked the battle system in FFXIII, and I'm expecting a lot from FFXIII-2 as the developers are going to keep the system mostly intact and make improvements where the original was lacking. The game's going to be out in February, so I'll know soon enough.

Wednesday, January 4, 2012

L.A. Noire

Rant time! I got some mixed feelings about this one. Sure, the game does a lot of things right and indeed has a rather unique feel to it. Plus I'm a sucker for anything film noir. However, I can't help but be annoyed by how gamey this particular title felt. There are no particularly outstanding design choices in the game, so this is going to be just a rant.

1. Too much feedback 

It all comes down to this really. Usually it's good for games to give the player a lot of feedback so they know how they're doing and can improve their play. Rockstar, not so fast. The case of L.A. Noire is exactly the opposite. It's an integral part of the genre to never really know whether you just made the right choices. The problem mostly focuses around the conversation system which has been the most hyped feature of the game. Most screwed up I'd say. How did they manage to do this? In the system, the player always has to choose whether a particular piece of conversation is truth, suspicious or a lie. The big mistake is this: almost immediately after making the choice, the game tells you if it was the correct one. All the mystery and doubt in one's own decisions gone with a simple right/wrong icon. What remains is just an annoyed feeling of having made the wrong choice with no way to take it back.

The end of a case report is another offense, although admittedly less severe. It takes a bite off the game's atmosphere by telling the player pretty clearly how well the case really went. It even hints at what could have been done better. Again, I'd rather not know but the game offers no options to turn off these forms of feedback. I found this weird because it does offer the option to turn off a bunch of other hints such as vibration near interesting objects in a crime scene. Learning of the consequences from later ingame dialogue would have been far better than the game's very gamey ways of feedback.

2. Modern conversation systems


This one is not limited to Noire. Rather, it's an alarming trend. We've seen it quite a lot now. In ye olde days players saw their characters entire line(s) when choosing dialogue choices. These days it's far more popular to give the player a choice of different attitudes. This is all fine as long as the choice still accurately describes what the protagonist is about to say or do. In Noire it often doesn't. My gripe is with the doubt option which can have results varying from careful leading questions to straight out accusations and threatening. This most likely follows from the fact that there are right and wrong choices. When doubting is the wrong choice, usually the protagonist takes a threatening stance. I guess it's what the game requires but I feel very frustrated when my avatar does something I totally didn't mean them to do. Usually stuff like this happens with bad controls. Now it plagues dialogues in games.

3. Traffic


Okay, off to less ranty bits. Traffic in games following in the vein of Grand Theft Auto is always a curious thing. GTA mostly gets away with its lenient law enforcement but more serious games like Noire have more difficulties. I started playing the game driving by the rules (although I had some trouble understanding the laws since some of them were different from present Finnish ones) but as usual, soon got bored with the slow travel speed. Instead of using the "let your partner drive" option, I went the GTA route of just speeding through the city. No consequences for breaking the law and only minor consequences for damaging property. A bit weird for law enforcers, no?

Sure enough, making by-the-law traffic interesting in games is tough. It's not particularly fun in real life with all the tactile feedback from a car. No surprise it's even less so in games where the player is distanced from the car's physicality. However I do think that in Noire, there should have been more consequences for breaking the law. Make me pick that "let your partner drive" option when I don't want to drive by the rules, instead of allowing me to happily speed through reds on the oncoming lane.

Conclusion


L.A. Noire was not as bad a game as this rant might make it feel like. It's just that I was very disappointed that they succeeded in screwing up so much of the game's uniqueness with so small mistakes. Sometimes less feedback is needed instead of more. I never really got over the game's too gamey feedback, but I learned to ignore it enough to play the game through. It saddens me that just one more option in the game's settings would have made all the difference in the world.

Monday, December 5, 2011

Borderlands

This is the latest game I finished. I even got through all the DLCs since they came with the game of the year edition. Borderlands is a long shooter and something has clearly been done very right to keep players interested. Although one of the key selling points is co-op play, I actually enjoyed the entire game just fine in single player mode.

1. Power-tripping to the max


I guess there's no denying it. Finding randomized loot is disturbingly addictive. Think back to Diablo. How repetitive the mechanics in that game are? Really, really repetitive. However, the hook of character development in games like Diablo, including Borderlands, is constant empowerment. Every chest is a chance to obtain a better weapon, and every kill is a step closer to the next level. Role-playing games are built on this stuff. It works. Finding that exceptionally good weapon is followed by a gratifying power trip and for a while enemies are dropping like flies. At some point they catch up again making the game more challenging, but eventually you'll get another power trip. And so it goes...

2. Keeping the game going 


Borderlands is by no means a challenging game. Especially if played after Dark Souls. However, they do the lack of challenge right. Besides, it's a power-tripping game. One particular trick I liked about the game was Second Wind. It allows fallen players to make a comeback by killing one enemy before bleeding to death. The player gets back up with a portion of their health and fully loaded shields, putting them back into the fight. This keeps the game going most of the time, but there is still enough risk in dying that it is usually to be avoided. It's also possible to (ab)use Second Wind as a tactic (e.g. leave one severely wounded enemy alive, then kill them quickly if you go down). This did feel a little stupid in some boss battles, while in some others it was fairly useless. Overall though, I think this mechanic is cool for a game like Borderlands.

3. Enemy design again


Most of the time the enemy design in Borderlands is sound. Especially critical hits put enemies down very quickly, and their weapons are often really powerful. Occasionally though there were enemies that simply took way too many bullets to put down. I emptied several guns against the final boss for example, and in one optional boss in the earlier half of the game I almost ran out of all ammunition. Partly this was due to the level scaling of damage which I found a bit weird. This meaning that the level difference between the shooter and their target was a factor in the damage formula. Against a higher level enemy even really powerful guns were not doing much. Most of the time the game is paced well enough so that player level is in the same ballpark with enemies. Except...

4. DLC difficulty balancing


One thing I found very weird was the intended level range for the DLC expansions. Three of the four expansions were designed exactly for the same level range. This is weird because the player is likely to gain at least three or four levels during each expansion, which means they will be overleveled at the start of the next expansion. Although one expansion was really nasty for its level range, this still feels like a really weird decision. Sure, there's no guarantee that players will be getting all the expansions. However, that's the way expansions have been made pre-DLC era: the next one will always be more difficult than the last.

5. Random tidbits


Another curious thing about the DLCs was that they were much better written than the core game. Funnier humor, tighter plots and even wackier characters. It felt like the development team hadn't let their writers loose enough when making the main game. Should they follow along the DLC guidelines in Borderlands 2, this bodes well.

Another random thing I just briefly wanted to talk about is the use of cell shading graphics. It makes the game look really characteristic and most certainly stands against the test of time much better than realistic graphics. Like sprite graphics, cell shading just might be a sound artistic decision for games that don't necessarily aim for a wow-effect but rather like to look unique.

Conclusion


I think Borderlands is deserving of all the praise. I went in expecting little since I'm not a big fan of shooters - especially not long ones - but came out highly enjoyed. There's still the biggest challenge undefeated but I'm gonna look for a co-op partner to level up enough and take that bastard down.

Monday, November 21, 2011

Stage Game Jam Post-Mortem

I'm taking a little detour from design analysis to share some insight on design, programming and project planning of our game jam project from last weekend. It's mostly going to be programming though, and mostly don'ts - we didn't finish the project in time. We got quite close though, so I'll come back to the design once some final bugs have been squashed and some levels have been created for the game.

I'll try to add some pictures soonish...

1. Scoping


I've game jammed successfully twice this year. Both games were in fact quite good. They were also very well scoped down, and thus finished. This time around, I decided to take more risks with the scoping, and also do stuff I've totally not done before. This project definitely ramped the challenge up from the last two as evidenced by the fact that we were unable to finish in time with three full-time programmers and one apprentice. We had three main tasks: gameplay engine (it was a platformer with some twists), graphical effects and sound system. None of these were trivial, and no one in our team had really done anything of the stuff they were going to work on. I was in charge of the gameplay engine since we were developing with a library that I was the most familiar with.

Nevertheless, I think the scoping was realistic. In fact, I think our effective working time per person was less than 20 hours - clearly less than what I've had in previous game jams. Ultimately, we were not very far from first playable level. We had some minor bugs, some of them ignorable with level design. What we really lacked was levels. Kind of hard to show any gameplay with them. However, looking at the list of what we actually did build, it's fair to say we did really well. Here are some highlights: isometric platformer with climbing instead of jumping, sound system complete with radio channels and static between them, knobs for tuning frequencies and level elements affected by these frequencies, and finally, enough high quality art for a few levels.

On with the lessons...

2. Lesson: JavaScript with sleep-deprivation is bad


Okay, I think this for me personally was the biggest factor hindering development. I was already tired on Saturday morning when we started actual work, and around 8pm I was way too tired. Programming anything should not be done tired, but JavaScript is special. It's really easy to make invisible errors with JS and tracking them down is really freaking annoying. Moreover so when tired. When tired, it's increasingly hard to escape one's thought patterns, leading to looking over the same piece of code all over again because "the error has to be here somewhere" when ultimately it is not. JavaScript has this annoying tendency to quietly accept almost anything. Between Sat 8pm and Sun 2am I really didn't get that much done, but I did get really annoyed. Hindsight: I should've left around 10pm and come back earlier on Sunday.

3. Lesson: even when used as constants, magic numbers are still really bad


This one was my biggest personal failing, since I can't really blame any of the tools on this one. 2D-programming is often riddled with all sorts of offsets, margins and whatnot, because of the way sprites are handled. This is especially true for isometric 2D as sprites can hide behind each other, and characters are not standing on top of floor sprites but in the middle instead. All sorts of constants. The mistake I made was basically that I did not have any system, I just made estimations for each value using Stetson-Harrison, and at some point the entire system just crashed down on me hard. So hard in fact that I was only able to recover the situation on Sunday morning after a night's sleep. In the end, I did it right in about two hours and now the system makes a lot more sense. I also actually measured all the offsets from the sprites (this would have been impossible earlier though, since the sprites were not finished and we hadn't really agreed on any specific measurements).

4. Lesson: isometric graphics in a platformer = way more trouble than it's worth


When we started out I was thinking about simple side-view 2D. However I didn't communicate this clearly enough, and our artist started with isometric graphics, and me, not realizing what a pain that would end up becoming, okayed it since it did look pretty damn good. What a big big mistake. See, one of the biggest problems is that while in side-view 2D collision detection is easy, with isometric it is not because the sprite size is not equal to the space it takes in the game's internal logic. To further complicate the issue, the library we were using did not support custom hitboxes for collision detection for both parties. Since none of our sprites were equals of their hitboxes, there was trouble. Unfortunately even more so, because I tried to figure my way out of this mess with offsets and margins.

Another problem with isometry is the z-order of sprites. For example, when on the left side of an obstacle, the player sprite has to be behind it, but when on the right side, it needs to be in front. This got even trickier when we chose to use climbing instead of jumping (a sound decision, jumping in a horror game does look a little silly). During climbing from the left side, part of the player sprite needs to be in front of the obstacle (the top half, which is above the obstacle) while the rest is behind. This was solved by splitting the player sprite in two parts during climbing, and was not that hard in the end. Another consequence of climbing is that the sprite can only climb a given fixed height without making the animation look stupid. This is just a level design issue though, and indeed most platformers have their level elements placed on square grids anyway.

Later on I also realized that this is going to come back to haunt us with our ghost enemies, because they can move through everything in the game. It's going to be pretty damn painful to figure out a system where they can at the same time be in front and behind objects...

5. Lesson: plan for earlier integration


Three programmers working separately is okay, especially with version control. However, I would advise planning for integration at milestones, not just the end. It's really crushing to motivation sometimes to only see your part of the game nearing completion, and never getting a glimpse of the end result until, well, the end. We did this mistake in the last game jam where we literally had no idea if the game idea would ever work before it was about one hour away from complete. Fortunately it did work... This time around, since we had no time to make any actual gameplay, I'm still not sure if this idea actually works. So yeah, the old wisdom of prototyping early should be followed in game jams as well.

Conclusion


I guess that covers it for now. As promised, I'll get back to design after I have had the chance to make some gameplay. The game will be released online and be playable without any special plugins, so you can hopefully see the end result for yourselves as well.