Thursday, April 26, 2012

GGJ game - Short Circuit

I've completely forgotten to give a link to GGJ game I made with MyOwnClone (not mine, his). Not that anyone would mind since no one reads my blog anyway :)

Here it is:

http://globalgamejam.org/2012/short-circuit

LD23 - Tiny Inspiration post mortem

I've attended yet another Ludum Dare, this time with the theme "Tiny World".

 So, the time has come to write some post mortem (in not so hidden hope that my game will have a chance to mess with heads of more poor victims).

Introducing Tiny Inspiration, adventure game about LD programmer who searches for inspiration in his dreams and finds himself tiny, on his own table. As you can see from the thumbnail, it's a bit (cough, cough) adult theme. Although no actual porn takes place, sex is what is this about. It was my intention to mess up a bit with people's head and since most of the people in LD are guys (sorry for you, girls, but unless I'm seriously mistaken, there's not much of you here... anyway if you drop me a comment declaring yourself a girl and demanding woman themed game next time, I'll consider it).
Even before LD started I was thinking about maybe making and adventure game (doing two commercial right now so I got them stuck in my head now...). When the theme was announced (3 am of my time), I scratched my head and went to sleep, hoping for some inspiration. About the only dream I remember was really weird one with two headed redhead...
Next morning (actually, more like noon) I went for brunch with my GF and started brainstorming. Soon enough I've scratched all other ideas (sperm racing game, battle bugs clone, Tron like shooter) and focused on the adventure. From the start I knew I wanted to have some sex hints there and that I want as many possibilities to finish the game as possible. With that came idea of giving player achievements and then that I should really try to rattle player's bones.
Originally I wanted to have three episodes with three screens each. First on the table, than among the bugs, and in the end having player to find love among amoebas and bacterias. Quickly found out that my ideas are just spilling too fast so I concentrated on the table.  I started making design notes and quickly sketching screens.

I originally planned 8 game screens, one intro, one outro and one noninteractive in the middle. I had some ideas for more, but even than I was pretty sure it would be tight run against the time. Sketching was fast, each sketch took me about five minutes, so I was full of optimism!
Then I fired up photoshop and picked tablet... and found out that I just really really suck. I have no problems with pencil, I'm even able to produce quite nice drawings, but tablet... horrible. Took me a too long time to finish first screen and then I started to cut corners so I can make it in time. I grossly underestimated how long it will take me just to redraw finished scanned sketch and add some colors :(
So I had to put out intro that was supposed to be a bit interactive, with player killing bad ideas (like sex, go to sleep) and promoting ideas like RPG, adventure etc. In the end Yoda was suppossed to show up (probably in a blond wig :D) and tell player INSPIRATION YOU'LL NOT FIND, IT WILL FIND YOU!
Outro was also cut out, with protagonist girlfriend waking him up and asking him why he's sleeping on her dollhouse instead of making that stupid game. (And if player shaved himself in the game, she would have asked "and why have you shaven your beard, honey?").
And one of the game screen went out of the window too (Ken trying to enroll in french legion to show Barbie that he's man, fluffy dog doll, which could have been converted into dog disguise for more achievements, some other stuff).
So in the end, 8 screens, one of them almost without any interaction, few dozen active items, 11 achievements, and two goals, with 4 possible ways to reach it for each.

While doing all the art and exporting it out from photoshop I fired up Unity. I decided to use it again because a) I'm quite confident I can force it to do anything I want, although sometimes painfully for both of us, b) it gives me possibility to do web / flash version (I'm still mostly untouched by html5 and flash, so it's the only way I can make web games now), c) abusing full fledged 3d engine for a simple 2d "art" is amusing :)
Putting items into screens, doing some basic scripts took me almost no time at all. About the only problem I had was stupid unity gui (last time fixes while trying to get flash version working introduced so stupid bugs in the inventory that I had to do quick bug elimination after compo) and flash export ignoring anonymous functions (had to rewrite them, luckily I had no time to implement some better dialogues anyway).
I ended up with playable game about ten minutes before the end of the compo.... So  ideas about some sounds, music (at least from autotracker) and having some interactive dialogues just went out the window :/
But I'm happy with the result anyway :)
Procrastitracker stats (rounded):
12 hours photoshop
2 hours text editor (where I had my "game design document", seems too much)
4 hours Unity (creating screens, testing)
7 hours Monodevelop (writing scripts, debugging)
add about two hours for sketches / initial brainstorming on the paper, about hour for smoke breaks (that I use when I'm stuck and need to think out something through).
Overall about 28 hours of real work... seems I wasted a lot of time by sleeping and eating and getting inspiration (ahem...). But that's the stats here.
Anyway, I had real fun making it and even more fun listening to comments of some of my friends :) (Too bad I hadn't implemented some server upload of stats). So I've mostly succeeded in my goals.
If you hadn't played my game yet and you're willing to risk it even after reading through this... go ahead!

Ludum Dare entry page


Flash version

Unity version

 PC Windows version
http://dl.dropbox.com/u/19916467/Tiny/TinyPC.zip


Friday, January 27, 2012

Global Game Jame starting in 3.....

Annual Global Game Jam, this time in Brno site, will start soon.

Lords of the BSOD (containing me and one other guy, so we are legion) is prepared to create another jamming master piece!

I've got the keyboard under my feet,
I can code so high, I can trace so deep.
But who do I see coming up in the stack,
little green bug with the BSOD on his back...

With the lords of the bsods you'll come and get around,
with the lords of the bsods you'll come and get around,
with the lords of the bsods you'll come and get around,
with the lords of bsods go mad like a clown!

Wednesday, January 11, 2012

Ludum Dare 22 Results...

So results of Ludum Dare 22 are online... 

And I'm quite happy with silver medal for humor and 11th position overall from about 200 jam entries (actually I've managed to keep quite high in all categories which is nice.). So I've got another goal for myself for the next LD: be better :D

Monday, December 26, 2011

Unity flash in a flash compo - challenge declined

Thanks to some guy on Ludum Dare I found out about Unity Flash in a Flash contest. I immediately thought, hey, them 20k dollarz would be nize! So I downloaded new 3.5 preview of Unity and started brainstorming. After sorting through few quite good ideas (which I thought I have chance to put together in two weeks and which could make pretty good and/or interesting game in the end) I fired up Unity and started checking the flash export...
At first I tried to export TMDR I made last week for Ludum Dare... and found out that flash export isn't going to be easy at all. A lot of stuff doesn't even compile (I was afraid that reflection wouldn't work, but some stuff from generic collection is missing too (Queue doesn't exist at all, for some strange reason Dictionary doesn't have Count defined...).
I ripped offending pieces from code and recompiled... It works! Well, sort of and very slowly... but it hangs after few seconds...

After some tests and attempts to start directly on a prototype for "A different shade of gray" (my favorite brainstorm child for compo) I found out that character controllers are the culprit. Having more then one in a very simple scene will kill framerate (like totally) usually in few seconds. Extremely simple scene (few boxes),  few char colliders means few seconds of existence. Seems physx rewritten in action script is not very stable beast. Strangely Angrybots (unity showcase/demo project) works even with (i think) char controllers... my guess is they debugged and fixed flash export just enough so angrybotz work.

This was pretty big discouragement. I've made few attempts to find out if I could maybe fix this... after I made a VERY simple script which just spawns more char controllers on mouse click... I found out that after few spawns (using Instantiate from prefab) flash build hangs with just red "Null pointer!" written in the corner.
Few more attempts to play with other stuff showed similar results... what works in unity might work in flash... for a while probably. And debugging using debug.log (which is usually only way to do some debugging in unity thanks to great stability of monodevelop) is even slower then normal because you have to wait for a long time for flash build...
So no fancy 3d gameplay? I thought about going back to another idea and doing mostly 2d game, but if you want to make 2d games, working directly in a flash is better idea then hacking unity to do it too.
Anyway I have my doubts about usefulness of flash export at all - flash is slowly declining after Steve Jobs said it's bad (one of the few things I ever agreed with him), unity web plugin has quite big penetration and it's rising (and whatever you do in unity, it will run much better / faster in unity web then in flash since action script was never fast and never will be).

So in the end it seems that flash in a flash is more of betatesting/hoping and praying coding compo then game compo... And I decided to decline this challenge. Going to lan party like every year and have some fun playing games instead of trying to make them.

My guess is that winner of this compo would be either someone insanely lucky / patient who puts together some nice game, or someone with a lot of nice 3d graphics without any gameplay :/



Tuesday, December 20, 2011

Transdimensional moon rift postmortem


So time for post-mortem is here...

This time I've managed to create fullscale and mostly playable game (probably best I've done in 4 competions I've attended in last two years) which is even quite fun to play, so I'm pretty happy with myself, even if I had to move to the jam and use another 12 or so hours to finish it.

It's an oldschool style FPV dungeon crawler with a goal to find your zombie kittens and be finally alone with them (and a big bag of brains), but rotten undead pirates ninja looted your kittens and you have to take them back. I even had time to do some leveling with three skills (ninja, pirate and undead) and tune up the game (not completely happy with it, it tends to be too easy later on, but since playthrough takes about half of hour I just had no time to do more testing.)


 

 What went well:
Using Unity (well mostly) instead of coding everything from scratch... after several months of using Unity fulltime I'm quite skilled with it and this time most of the things I hate about Unity wasn't issue, since I was doing PC / Web build. And web build is one of the things I like on unity (even if there's no linux player). (BTW web version of TDMR is just about 700 kbytes, while pc has 20  megs :/)

Drawing 2D "art" : I've spent just maybe two hours drawing all textures and sprites and skins for characters using tablet, Paint.Net and not giving a damn about how hurtful it will be for eyes of some more sensitive people :) I could have done something much better if I wanted... but it would took me at least day. And this way I can boast about having "style" :D

Decision to use pirate/ninja/undead - not exactly sure how I came to this connection (I think it's from some picture I've once seen, who's the bigger boss, pirate, ninja or zombie?), but i've mixed it together and in the end I have a lot of enemy types... easily made by combining three (well, four if you count ghost) base types- and I used it as a base for RPG system too.
  

  Adding sounds: with about hour to spare for submission I took my mike and audacity and made some sounds and "voiceovers", quickly patched it to the code and I'm quite happy with the result. Just too bad I hadn't time to sing some songs as background music (brains brains brains brains braaaaains, brains brains brains!)
  Keeping number of game elements in check I made most of the things I wanted to have in the game with the exception of brain-o-matics for buying brains.

  What went mostly ok:
  Most of the coding in unity, although I've spent some time trying to debug few stupid bugs I made (and debugging is sadly one of the beefs I have with Unity - it works much better on WIN editor, but I'm so used to total instability on MAC and "printf" debugging that instead of firing up monodev debugger and hoping for best I've spent a lot of time by putting numerous Debug.Logs everywhere. Resulting code isn't even that ugly as usually is in my speed hacks... although I still hardcoded a lot of things without using some better design - if I ever try to use TDMR as a base for some more serious dungeon, I'll have to refactor at least half of it.

Level design Originally I wanted to have few more levels (but smaller), but in the end it's just one and I'm quite happy with it, it reminds me good old times with Beholder and Dungeon master, so it's definitely ok from my point of view :) I've originally considered doing rogue like randomly generated levels, but it's probably good I hadn't even attempted it.

Playtesting and tuning up RPG system - At one point I realized that I'm playing for fun, not for testing, which really gave my morale big push. Also my GF used as playtester liked it (she's as crazy about old RPG's as I am), so although it could use some more tuning with difficulty and some parameters, it's ok.

Sleeping enough I'm getting too old for non stop crushes and since I've ended one of the worst periods in my 10 year carrier as gamedev just before the start of the LD, I decided to take it easy. But in the end I had to move to Jam and use another 12 or so hours to finish it. I think I've spent about 30-40 hours total working on the TDMR.  


What went bad:
Theme I was really unhappy with the theme (once again)... I've spent some time racking my brains for ideas about using alone for something original AND fun to play, or something interesting to flex my code skills on... then I gave up. Since I've always wanted to make some oldschool FPS RPG (and never found enough time), I've decided to make it and force it somehow on the Alone theme... (from what I've seen from other submbissions, I wasn't the only one using this approach - some entries don't even try to use alone in any way).

Idea about using animated chars instead static sprites - near the end of the day one I had a stupid idea - why use simple static sprites if I'm using Unity? So I ventured to recreate my first characted (pirate ninja skeleton), put it on simple 2d mesh... then skin it and rig it to the bones. I've wasted a LOT of time on this, result is ugly (kinda hard with the texture I've started to do good mesh and skin it so it can move without serious distortion taking place), but I should have expected that - I have all the theoretical knowledge about this stuff, I wrote it from programmers point of view, but... using 3ds max for anything else then checking on some artists work, creating super simple meshes and importing/exporting here and there, is something I just don't have much experiences... Well, I now have some, but it took me too much time, especially considering results. But at least I've learned / practiced something new.
   (First sprite I've made before switching to animated chars... it's static, but it looks better :/)  

 So... I'm mostly happy with my entry (and hope someone will play it :), about the only thing I'm sad is that I hadn't time to implement save and load... never wanted to do it, other then maybe checkpoints on the level start, but since I had just one... Problem is that doing serialization in Unity for proper save / load is not that easy and it takes some time to do properly... time I knew I won't have.


 Anyway, I'm glad I had time to participate in LD and looking forward for another one (and Global Game Jam next month). Although it can be brutal... it's fun :) (especially when compared to "normal" crunches on commercial stuff).  
My Ludum Dare entry page
Playable version (unity web player)