Sponsored By

Featured Blog | This community-written post highlights the best of what the game industry has to offer. Read more like it on the Game Developer Blogs.

We're headed for the finish line, and it's not looking pretty. The natives are restless, my boat is a failure, and Rob is in a deep hole. Will I get the girl? Will Rob get promoted? Will Jerry return as Ghost Rider?

Jim McGinley, Blogger

August 5, 2009

19 Min Read

4 Days of TOJam #4 by Jim McGinley
Thursday   Friday   Saturday   Sunday
Little Things, and a Boat fit for Asteroids

The smell of feces washes over me while i write this.
Brings back memories of a fine jam.
Also, I need to change the litter box.

Sunday, May 3 The Final Day of TOJam #4

The Dream Warriors   Credit

Early Sunday morning is late Saturday evening? Seems wrong.

Real Conversation #1


So were you at the first T.O. Jam?


(correcting Chris) you mean TOEJAM?


Hah Hah! so... were you at the first TOEJam?


(puzzled) What?

Boat finally rotates and displays properly. While I'm awake, my head is a plastic bag. The good news is I'm heading home and I'm taking Em & Ryan with me. Or am I? Em is on a roll learning Japanese, and Ryan is just killing Bloat. Get all caught up in the excitement and decide to stay. I begin adding physics to the boat. Can't wait for my surge!

Chris T. meanders to the front and sits beside me. He asks to see my game. I show him what I've got, and he acknowledges with a dull nod. Chris rests his weary head on the table, and promptly falls asleep. Around Chris, the conversations continue unabated.

Real Conversation #2


I was having a shower and this came to me...


With my left hand it feels like someone else?


I can make games in 3 days and sell them. It might be lack of sleep, but I think it's a great idea.

... and thus Spyeart was born, even better they're free.

Chris T. wakes with a start.
"what... time... is it?" (his eyes have yet to open)
Without a trace of emotion, Chris rises and groggily returns to his coding cave.
That man is an inspiration.

Real Conversation #3


(announcing to the round table room) 2am! There's 20 hours left!




That's right!! There's only 20 hours left! I'd be scared too.


18 hours.




8pm's the deadline right? There's only 18 hours left.


need to scale my idea back.

My brain is an empty house filled with pasta. Blurry shapes come and go and sometimes wish me good evening. At 3am, I offer wisdom freed from the prison of intelligence.

Replace boat sprite with vector line for future physics debugging. I am so smart. Maybe I don't need my Surge? Check the time... 3:30am. 3:30AM!!! WTF did I do for the last 2.5 hours?

To procrastinate, I take these pictures.
Chris T. continues to inspire.

Real Conversation #4


Our floaters are the best!


Yes, especially the other floaters. I'm next to the real floater room


Other floaters ... ?


Yes! The ones next to me!




You know... the washroom!!!




It's not so bad, but you can hear everything




It did smell a couple of times.


... you can hear everything?


Oh yeah... they leave nothing to the imagination.


It smells? That's horrible!


mostly you can just hear it, except after lunch.


... we're moving you.

Couches are worth more than gold. Sleeping bags are out in full force. Padding makes hard floors palatable. Some sleep on beds MacGyvered from 2 chairs. ~26 people still here. 6 actively working, 20 trying to sleep (10 are hidden in the deepest darkest corners of Innovation Toronto). Hopefully, the unconfirmed skunk remains unsmelt.

Real Conversation #5


sleep on the roof... it's a hot ticket...


yeah... roll over and fall off the roof. haha!


actually, we've got to keep it down, people are sleeping...


actually, you're not the riotous type...


until i fall off the roof.

Of course this conversation makes no sense - it's 4:30am.

Code, Guitars, and Beer   Credit

Vector line is moving properly, now I need to map it to the boat's 16 sprite rotations. Hmmm.... when boat faces up, boat moves right. When boat faces left, boat moves up. Not good. Double check code, everything is fine. A-ha! First sprite faces up, first vector (the REAL boat) faces right. Ironically, vector line clearly shows this problem, I just didn't see it. Brain is a peanut in a fog machine.

Coffee oversight... beans require grinding... but people are sleeping.
Dave needs coffee and says not to worry about the noise.
He takes the grinder and beans
"I have a plan".
I hear a door close, followed by a split second of grinding... then nothing.

Dave returns happy.
"Did you hear that?"
"Yes... but you need to grind for a lot longer."
"Then you didn't hear it! I wrapped the grinder in my guitar case!"

I eventually arrive at this horror:
Boat.Sprite = Round(4 - AngleInRadians * 2.54647908947033)
I'm not proud of it, but frankenquation does pass unconscious QA.
If I was awake, this would have taken 15 minutes instead of 2 hours.
Time flies when you're coding dirty.

Rob is desperately attempting to catch up to his sleeping team's art output. If Rob was Vincent Freeman in Gattaca, I'm sure he would undergo limb lengthening. "There Is No Gene For Rob's Spirit." Note: Is anyone else bothered by the fact Wikipedia has entries for movies?

I'm faced with an artistic dilemna. The boat sprite is only capable of displaying 16 angles, but the engine allows 360. Should I limit the player to the angles the Boat can display (resulting in consistent visual feedback) or allow any angle (giving complete control)? I experiment with both.

Consistency or Control...
Dammit. There are advantages and disadvantages to both.
Consistency or Control...
If this was earlier in the day, I bet I could decide.
Consistency or Controooooooool!?

I've made peace with the fact surge salvation shall never arrive.
I'm so sleepy I think I'm wide awake.

Em stares blankly at the computer screen, the Japanese have won. Need to take her home. Ryan acknowledges my ride offer, but I'm unsure if he understood. It's too late for Ryan, he's beyond sleep. Drive Em home. In a blaze of efficiency, I retrieve Andrew from the subway on my way back, while a marathon shuts down streets all around us. How Andrew managed to wake up is beyond me, clearly he's a god. Car ride peaceful.

Upon return to the binary bunker, I notice that Ryan's bike is missing. It's always at the top of the stairs! It's been STOLEN!!! Immediately try to find Ryan...
who left..
using his bike...

Consistency or Control...
I compromise. Player is allowed to move at any angle. But... the engine will gradually adjust the underlying vector to match the sprite once the player completes turning. This solution combines the illusion of complete control, with the lie of consistent feedback. I play this version for awhile. I really like it. Then I realize why... I've basically created the ship in Asteroids... with less precision.

Fine dining thanks to donations   Credit

Using Em's detailed spec, order pizza for tonight. Em didn't take into account the cost of splitting toppings across twins, or so the Pizza Pizza operator claims. Operator recommends switching to the catering special (something Em had already ruled out). While I am suspicious, the cost is roughly the same and we receive the same number of slices, so I'm not going to argue. Plus, I'm currently having trouble adding, hearing and talking.

Battled garbage once again. While I'm winning, it's beginning to pile up. There's about 10 bags out front, and that's before the avalanche of pizza cardboard.

What makes a boat a boat (and not an Asteroids ship)? This question haunts me. A thought penetrates my waking coma... it's all about the carve. The boat needs to turn sharply at high speed (causing a huge wave), and slowly at low speed. Adding physics after being up all night is not a good idea, which is no doubt why my all-night-brain thought it was.

Levo's hands are bleeding. He has requested lotion for his dry skin so that he might continue. We issue an emergency call for lotion, it will arrive in 2 hours. Levo plans to take a nap, so he can wait. TOJam: Program until your hands bleed.

Foreseen spoon shortage happens. Cereal at a standstill.
People switch to fruit juice. We quickly run out.

I offer to move toilet room refugees to another area, but they're not interested. They've lasted 2 days, and haven't found it that bad. Jammers are a hearty bunch.

People need to download sound effects, but our slow Internet connection makes that less than feasible. Spend the next hour begging for sound effects from people that brought some. Build the ultimate 1GB USB Sound Effects Key - featuring fart sounds!


"How's your game coming?"


"I've created the Asteroids ship!"


"JUST the Asteroids ship!"



Everyone wants Coke or Diet Coke. Our exotic alternatives (Orange Crush, Grape Crush) fail to entice. The problem? We just ran out of Coke and we never carried Pepsi. At least 6 people walk away empty handed. Coke worth more than gold, but less than couches.

Wihout fanfare, Jerry walks in.




"I thought you died in a ditch somewhere!"

Jerry looks at me alive... alive and puzzled.

The boat doth carve! Turning quickly at top speed does make things more boatlike. Still, it needs something more. A dash of "je ne sais pas". I keep driving the boat to figure out what's missing. It's the boat shape! If you sped your boat North at top speed, cut the engine, and then rotated East, you'd expect some reaction? Right? RIGHT?! While I won't have icebergs, scaling, a GoatOnAPole, or a game, I will have boat shape nirvana.

I drive Alex to pickup sushi for his team. On the way back I spot those partially painted white bricks. I finally make the connection to Scott Pilgrim's snow scene! Painted green, I feel that Michael Cera would make a great Kermit.

People are starting to take well earned breaks. Some join Jerry and I at the front, and our headquarters quickly becomes party central. I have several conversations with people above, below and around Jerry's head. Jerry's head remains focussed on completing Jerry's game. More focussed than Ford... focus. If he hadn't lost 2 days to TOJam organization, I bet he'd be done already.

Someone arrives carrying a case of Coke! With surprising wit and coherence, I negotiate an even swap of Crush for Coke. Accepted! (Sucker!) The Candy Stand now has 10 Cokes. Very smart Jim - perhaps even heroic. Side Effect? Everyone thinks I lied about the earlier Coke shortage.

More people check out my game (insert finger quotes here). No-one notices the elaborate boat physics. They steer the boat from Asteroids for ~10 seconds and then wonder if there's more. Quickly I concoct an elaborate cover story of what might be occurring on deck. Perhaps the captain has gone too far, and the crew are about to mutiny... no doubt a woman is involved. There's a LOT going on aboard that boat, you just can't see it. My game is really about the power of the imagination.

Outside the window, I notice 2 giant overweight squirrels have found Jerry's secret stash of trash. I call Jerry over. We watch the squirrels dive in and out of the trash bin. They appear to be mocking us.

Need more sleep   Credit

I argue that Hugh Jackman is the ultimate programmer. Someone mentions he has nothing on Hackers (Tron and WarGames are dismissed quickly). I wish my machine supported wireless, because I was right, although DJ Qualls comes close, very close. Next, everyone agrees that Transformers really sucked. Really, really sucked. Greg is super extra completely baffled by how much it sucked.

People who finish early come to visit.
Jerry concentrates like a sumbitch.
I wonder what's really going on aboard that boat.

A sound floater is returning, but requires a private room to finish his loud sound shenanigans. I find a side room, check the power (thanks lamp!), hookup an extension cord and powerbar, and clean out the dust. I'm getting good at this. He arrives and is up and running quickly. He plays me some of the music he created for TOJam. It's fantastic! Waking up I realize I fell asleep with my eyes open.

No longer notice the constant drone from the fan. It only took 3 days.

Finally, the speed AND shape influence the boat... yay. Lowercase since it still feels like Asteroids. Defeated, I try preventing the boat from turning unless you have a lot of speed. It works... in fact it works great! Just discovered the secret to boat movement - make it awful. Luckily, I have just enough time to add icebergs!

Real Conversation #6


"What brings you here Isaaq?"


(smiling) "I'm rendering."


(pointing Isaaq out to rest of group)
"He's here under false pretenses. None of us are doing anything."

Someone almost sits in the tampon. We stop him. Somehow it right sided itself and returned from the corner! Strange magic at work. Someone must have died in that chair, someone absorbent. Conclude last year's dead mouse is haunting us.

Em arrives with late lotion for Levo, and a surprise Filipino breakfast for me. A bowl of rice, topped with Filipino Sausage and 2 eggs. It's incredible. I gobble it up oblivious to Jerry's tantric determination.

Curse me for a fool! I couldn't spare the digestion cycles.
Processing all that deliciousness consumes all my resources!
Body... shutting down.
Couch is free... think I'll take a...


Eyes open... Hey! I feel great! Amazing what 15 minutes can... 7:30!!?? FUCK!
Those icebergs will have to wait. Looks like "da Boat" will be just a boat.
Run from room to room notifying Jammers that there's only 30 minutes left.

Despite Jerry's formidable skills, his game simply won't be ready in time. Taking one for the team, he leaves with Tessa to buy more pop for pizza. The man is a Rob Segal.

Pizza arrives on time! Help delivery man bring the pizzas in, no idea how he found the place. It's a fair distance from car to table, and there's a lot of boxes. It's going to take a few minutes. While doing this, some hungry infidels start indulging. Risking life & limb, Rob somehow manages to beat back the ravenous hordes.

Levo and his lotioned hands are desperately trying to get online multiplayer working.

That's only half of us   Credit

TOJam #4 is officially complete! All that's left is the closing celebrations. Everyone grabs a few slices and commiserates over a weekend well spent. Laughter, smiles and a sense of relief are everywhere. Whether you completed a game or not, you're still here - and that's worth celebrating. If you ever attend TOJam, be sure to stay for the ending, it's the best part.

Em is a dervish of form delivery. Along with her trusty sidekick Tessa, she ensures every team receives a printed form for their game. More importantly, she ensures every team understands it must be filled out. It's the only way we can confirm who actually worked on the game i.e. the dream of registration vs. the reality of who showed up. Thanks to Em's approach, and Jammer pens, 100% of the forms were completed this year. My wife is a Rob Segal.

Delivering the closing speech is easy, provided you can get people's attention. The room is large, the conversations are loud, and people are enjoying the games. After several false starts, everyone is now all ears. I thank the people that attended, our sponsors, our unsung volunteers, and ensure all the organizers are recognized. Applause abounds.

Thanks to Adrian Ma, we have prizes to raffle! In previous years, we drew names from a hat but that takes some doing (lots of cutting, plus you need a hat). This year, Jerry EyesClosed will be randomly picking from a printed list of attendees. Jerry swings his arm, and picks... Adrian Ma.

Nelson showed up! It's officially an oldschool TOJam.

To save cost, Jerry bought NoName pop. It doesn't move. Jammers are massive Coke freaks.

Everyone is having a grand ol' time watching and playing the games. Groups gather around some games, followed by much hooterin' and hollerin'. Between conversations, I only have a chance to play a few games, but I'm beyond impressed.

Rob and Derek managed to match Matt and Nick's prolific art.
The result is Flock U, and it's a crowd favourite.
Expect no less than the best from Team Awesomo.

Barrie, creator of the unbelievable Cheese-ohol 2, wishes to see my creation. I put off earlier requests, so it's time to face the music. While heading down the hall, an accidental posse forms as word spreads my game will be shown. By the time we reach my machine, about 20 people have been unintentionally herded.

I sit Barrie at the keyboard, and highlight the limitless blue sea.
Barrie starts moving the boat, and quickly zooms offscreen.


"Where am I?"


(pointing beside the monitor) "About here I figure."

Unsure about crowd reaction since I spent the next 5 minutes laughing uncontrollably.

After 2 hours of non stop excitement, Jammers start shutting down their machines and heading home. Many stop to thank the organizers, and many donate last minute. Most swear that they will return next year.

Andrei actually did manage to create a game in 3 hours!
It's impenetrable, and brilliant.
That clever minx.

Wihtout being asked, many people pitched in to dismantle TOJam. Big thanks to Benjamin, Chris, Derek, Nick, Michael, Miguel, and Milan (I really hope I didn't miss anyone). We needed to return the space to it's previous condition, no small task.

Toilet lids and tarp were gathered from the roof.
Bags of garbage were driven to parts unknown.
Tables were collapsed, cleaned and stacked.
Chairs were restuck and piled high.
Miles of ethernet cable was untaped from the floor.
It was sublime.

I attempted to clean the mop & bucket we sullied on Thursday. The more I cleaned it, the dirtier it got. After five complete mop washes, the water was finally staying transparent. Blah.

Thanks to all the help, we were packed and ready to leave in 2 hours.
A TOJam record!

We Did It!   Credit

TOJam tradition dictates we end the night at Chinatown's Rol San Restaurant. There's ~13 of us, and Nelson & Em take care of the ordering. The Ginger Beef is once again incredible. Aside from various eating noises, the table is strangely silent... mostly because everyone is exhuasted.

Talk of TOJam #5 is outlawed.

Read more about:

Featured Blogs

About the Author(s)

Daily news, dev blogs, and stories from Game Developer straight to your inbox

You May Also Like