My background is a graphics programmer in film VFX and games. I got my start working at a virtual reality lab back when that was supposed to be the future. Honestly, I you'd have told me in 1995 that instead of running around the 'Snow Crash' style metaverse, we'd be planting virtual farms and communicating with 140 character tweets, I would have cried into the keyboard of my SGI Onyx.
I moved into the world of film VFX and animation working at Disney's now defunct Feature Animation Florida studio, working on crowds scenes and pipeline tools for "Mulan". At the turn of the millennium I moved out to Northern California to work on some crazy startup, and eventually ended up at Industrial Light and Magic. It was during this phase I discovered LD48, which appeals to both my short attention span and my love of insane time pressure.
After a few years of making software tools for artists there, I decided to try making games full time. I worked at EA Redwood Shores making tools for baking lightmaps for 'Bond: From Russia with Love', and on 'The Godfather', working on more lightmap baking and dynamic shadows on the 360. This was some of the most intense and fun experience I've had developing software, but ultimately was unsustainable.
I wanted to start a family and work regular hours, so I returned to VFX and was lucky enough to land a Tippett Studio, a close-knit group of true artisans in Berkeley, CA.
Recently, I've started making iPhone games as a little hobby business on the side. Check out www.tapnik.com for more details about my current projects.
This new interest in iPhone development led me to Smule, where I'm currently working to help blend music and games and explore the amazing possibilities of these new devices.
Ludum Dare (and similar contest) entries:
* LD15: Caverns -- Spaceship in a Cave
* LD14: Advancing Wall of Doom -- Glacier
* LD13: Roads -- Crossroads
* LD12: The Tower -- Moonbase Defense
* LD11: Minimalist -- Cowbell Hero
* LD10: Chain Reaction -- Jumping Chain Guy (barely started)
* LD8: Swarms -- Bugzapper
* LD7: Growth -- Kudzu Commander
* LD5: Random -- Buttonlands
* LD4: Infection -- Bad Food (2nd try)
* LD4: Infection -- BioWar (abandoned)
* LD3: Preparation -- Hannibal's Cannibals (lost the code)
* LD2: Construction/Destruction (Minor Theme: Sheep) -- Trans-Icelandic Express
* LD1: Guardian -- Zillagame (the game that started it all for me)
* LD0: Indirect Interaction (I didn't know about LD yet)
* MiniLD16: Constraints -- Moonsweeper
* MiniLD11: Sandbox -- The Wanderer
* MiniLD9: Audio/Sound -- JamClock
* Speedhack 2003 - Outlands (my first allegro game)
* LudumDare Halloween Hack 2003 - The Halloween Machine
* TINS2006 - Railroad Merchant aka Merchant of Venus
* TINS2007 - Headline Recycler
The code (it's quite a mess) for all of these can be found at my google code dump:
http://code.google.com/p/ld48jovoc/
The Christopher Walken Award for Hilarity Awarded by keeyai on April 24, 2008 |
Ratings
| Ove | Fun | Inn | The | Pol | Gra | Aud | Hum | Tec | Foo | Jou | Tow |
|---|
| 3 | 3 | 2 | 1 | 2 | 3 | | | 4 | | 3 | |
|---|
| 4 | 5 | 4 | 4 | 5 | 3 | | 4 | | | | |
|---|
| 5 | 4 | 5 | 3 | 3 | 3 | | 1 | 4 | | 4 | 1 |
|---|
| 4 | 4 | 4 | 5 | 4 | 4 | | 4 | 3 | | 5 | |
|---|
| 4 | 4 | 3 | 4 | 2 | 3 | | | 3 | | 5 | |
|---|
| 2 | 2 | 2 | 2 | 2 | 2 | | 1 | 2 | | | 1 |
|---|
| 4 | 4 | 5 | 4 | 2 | | | | 4 | | 4 | |
|---|
| 4 | 3 | 3 | 2 | 3 | 3 | | | | | | |
|---|
| 5 | 4 | 5 | 2 | 5 | 4 | | | 4 | | 4 | 5 |
|---|
| 3 | 2 | 3 | 1 | 4 | 3 | 1 | 1 | 3 | 1 | 3 | |
|---|
| | | | | | | | | | | | |
|---|
| 4 | 4 | 3 | 3 | 3 | 5 | | | 3 | | 4 | 2 |
|---|
| 3.82 | 3.55 | 3.55 | 2.82 | 3.18 | 3.30 | - | 2.20 | 3.33 | - | 4.00 | - |
|---|
Sophie Houlden says ...
|Actually alot more fun than I thought it would be, though the only reason I got as far as I did was by exploiting a bug where I could stack letters I dont want underneath actual words. still a pretty cool concept and well done though :D
Doches says ...
Nice concept, and a pretty slick implementation. Could really benefit from some music, though.
increpare says ...
Good idea, I think. Reasonably well put together. My screen cursor was sometimes out of alignment with the hardware cursor, and it was annoying that when I dragged a new letter over an existing letter on the board, the the old one wasn't returned to the stack. Lack of sound was a minus, though.
rtsl says ...
Liked: Idea, fun, polished presentation, Journal
Could Improve on: Interface (Level Restart, On-Screen help), Mouse cursor off in the main version (800x600 worked)
G
Another
m
enjoyable
Hamumu says ...
Really nice. The theme is utterly tacked on, actually to the game's detriment - the car driving on your letters is really cute, but having to wait for it to get to the exit once you finish is just a needless pain. But a cool game.
I agree with others about the letters getting overwritten. It's a sad thing, I want those letters back (and force people to use up their Z's and Qu's!).
Also.... 800x600 is for laptops!? The full size version was too big on my 1280x1024 monitor! It was 1280x1024, it looks like. That's nuts. Of course, it would've been fine fullscreen, but sheesh.
demonpants says ...
Really very good. I played this for 3 hours. Got to the very end of Grid (which took 2 hours on its own), went to download a screen capture program so I could have proof (right before I put my final word in, and I don't have a print screen button), and it quit. No error message, nothing, just quit. Awesome.
Well, was there another level after Grid? I'm not getting there again. :-)
The concept here is really cool, car excluded. The vehicle itself is pretty pointless.
A couple bugs:
1) What I just mentioned.
2) You could overlap letters on the board with new letters, and only the topmost letter would be used for the word. GirlFlash mentioned it already, and I agree the game is impossible without this bug.
3) While dragging a letter out if your mouse moved over another letter it would switch to that letter, which can be really annoying.
A few suggestions for improvement:
1) Add a "drop letter" option. Like when you play a word, any letters you have marked to be dropped will also be pulled out. Without this (or the bug I mentioned) the game would be impossible.
2) Have more letters at one time, probably. Maybe couple that with the next suggestion.
3) Give some sort of reward when you complete two words at once, like one extra maximum letter. That would encourage people to be more creative.
4) It would also be nice to occasionally (following some condition) be able to choose one oncoming letter.
Anyway, very fun.
ondrew says ...
Although it's classic scrabble, I've been playing for hour and a half :).
caturday says ...
Cool game - clever way to turn roads into a word game. Yeah, it's scrabble, but kind of funny how the LD car gets thrown in there.
Monday, December 29th, 2008 2:13 pm
Woot! My article got featured on gamedev.net:
Better Programmer Art: Or how to fake it as a game artist.
I use a lot of examples from past LD48 games (mine and others), and most of this is stuff I’ve learned through doing these contests. Ironically, in the most recent contest I didn’t have time to replace the placeholder art so it pretty much ignores all of these tips.
Hope this is helpful to the community. Enjoy!
Jovoc
Monday, December 8th, 2008 1:21 pm
My wife stayed up late last night and tried to beat “Crossroads”. But she uncovered a nefarious bug, so this is just a warning to everyone. It doesn’t show up until level 9, aka “zigzag”, but it prevents you from passing the level and if you’ve got that far that means you’ve been playing for at least an hour or so.

The bug is with non-square levels, so it only happens on levels 9 and 10 (the last two levels..). It doesn’t allow you to place words on the right half of the level so “DECIDE” (or “DEVICE”) in the screenshot above never gets added. It’s not surprising, since it’s in code I added in the last half-hour of the contest… heheh. I’ve already fixed it but I’m not going to release a post-compo version until after judging is complete to avoid confusion.
If this happens to you, and you are stuck on level 9, there is a workaround. Without closing your game, edit the file gamedata/level_09.txt and make the level square (17×17). Add ‘#’ marks (walls) to fill up the extra rows. Then
hit ‘r’ to reload. If you’ve made a typo, it will crash. Otherwise, it will reload your level and you can continue. yay. Same goes for level 10. An easier fix is to copy level_11.txt over level_09.txt and achieve victory two levels sooner.
ps. The level format is pretty simple. If you make any good levels, send them to me and i’ll include them in the post-contest version.
Sunday, December 7th, 2008 8:20 pm
It turned out pretty good despite much turmoil!

It’s like scrabble or a crossword puzzle, but with more cars.
Crosswords Final
My original idea included lots of extra tiles that werent letters, like a one-way tile, and a gas-can, more letter slots, etc.. but i didn’t have time for those. Hopefully i’ll make a post-compo version next week.
Edit: added a 800×600 build for people on laptops and such. Also fixed a last minute bug which prevented placing tiles in the first column, making the game unwinnable.
Sunday, December 7th, 2008 12:34 pm
I kept fighting with the CgFX stuff this morning, but I couldn’t get it to work. The docs make it sound like it’s as simple as calling cgGLSetupSampler( samplerParam, myTextureId ); but i can’t get it to work. I’m sure it’s something simple but I’m running out of time.
So I’ve ripped out all the shader code (kept a backup to try to to fix it later), and am back to using regular opengl, and drawing the letters with overlays (quads) instead of fancy shader tricks. Sigh.

It’s not like I would have had time to get the shaders looking good anyways. Now that I’ve got words displayed, it’s time to try and get the gameplay going by the end of the day.
Sunday, December 7th, 2008 1:23 am
More progress, but not on the gameplay side. I wanted to use Cg shaders in the game this time and learn how to use fxComposer. I’ve done a lot of shader stuff before but not with CgFx and FXComposer.

My road shader is a modified version of the default FXComposer phong shader. It works in FXComposer (on the right) but I can’t figure out how to get the second sampler (with the font image) to work in my program. Grrr. I’m going to sleep, I’ll take a fresh look at it in the morning. A word game won’t be very fun without any visible letters.
Saturday, December 6th, 2008 4:22 pm
Update.. Not as much progress as I’d hoped but I still think i can get something playable today. I got car movement and pathfinding working, and more work on the maps, even though you can’t see the letters yet because there’s no texture or shading.

Also, even though it doesn’t look much different, the dark blue aand beige colored blocks are actually 3d models, i got a simple obj loader in there. Next up… letters
Saturday, December 6th, 2008 1:20 am
Ok, I decided on a much simpler idea than I was thinking about in the earlier post. Whew.. This one i have a chance of completeing.

It’s called “Crossroads”. Get it? Crosswords + Roads.. heheh.. It’s not really going to be crosswords, more like scrabble, but close enough. Anyways, I’ve got the beginnings of the board worked out. I love word games, and I’ve always been meaning to make one for LD, the closest I’ve gotten is “Headline Recycler” for tins, which was really neat but not fun at all.
How do you mix roads and crosswords? well.. wait and see..
Anyways, It’s 1:20 am here, not too late, but I’m hoping to get an early start on the gameplay tommorow. Goodnight all.
Friday, December 5th, 2008 9:15 pm
Well, here’s my desk photo. A little messy but functional. Along with my LD mascot Holly. Believe it or not, this is her 3rd LD contest!

I’ve got mixed feelings about the theme. I’ve got a really good idea I think, but it’s really complicated and again more of a graphicsy idea than a gameplay idea. But I think I might go for it, next week the wife and baby are out of town so i might actually have a chance to make a post-compo version.. I’m going to start sketching out the design and decide if it’s “ambitous” or “impossible”.
Friday, December 5th, 2008 4:25 pm
I’m in! I’m going to try my hardest to keep it simple and fun, but the ideas I have already are way off on the complexity scale… but whatever happens i’ll do something. Should be fun!
oh and here’s my basecode:
int main( int argc, char *argv[] ) { return 0; }