Monday, June 14, 2010

Still developing this game...

My sleeping schedule has been so all over the places that for the past week I've been going to sleep at around 12 AM.. as opposed to 12 PM ;)

Now it's 4 AM.. so, I guess the sleeping pattern is changing again.

I made a few important advancements for TheRun.. though not nearly enough to have a shippable game..

Controls are improved and can be customized. For that I also had to add a proper options screen with its own GUI. And, because I'm developing mostly on PC and I don't want to be too tied to the iPhone, I ended up writing some basic GUI that somewhat simulates that of iPhone (buttons and sliders only).

I also added some basic sound effects. OpenAL was relatively easy to use, and runs fine both on PC and iPhone.
Oh course I had to go look for free sound effects, cut the pieces I needed, and sometimes had to make sure that they'd loop fairly well (for the engine).

On the music side, I've got someone interested in doing a sound track for me.. and I'm in the process of getting that done.. though I really don't understand music and it's hard for me to describe what I want 8)

I've refined the process of making new stages.. and now I think I can make a simple stage in 1-2 days of work.. cutting out images, choosing colors, road definition, etc.

I've also iterated a few times around taking pictures of cars and converting them into sprites:

I printed a sheet with radial lines at 5 degrees intervals (made with Google SketchUp !).
Cars are placed on the sheet and pictures are taken at 0, 5, 10, 15 and 20 degrees angles... which are then somehow matched in the game depending on how the car is turning and from which point it's seen.

Once pictures are taken, they need to be cut from the background and from the base.

I used to use a blue background, and have the car raised with some base/toothpicks (!) so that the tires would also be against the blue background.

Blue background makes it easier to cut the car models out.. but it inevitably reflects on the car paints, and removing the blue reflections becomes too much work.

I eventually settled for a gray background.. cutting the model out is harder this way, but the reflections are much better.
Though the models lay on a white sheet and they tend to pick up extra white reflections, which need to be removed as well.

Another problem is that car models do look like toy models indeed. I use a Photoshop filter to give an outline to the images.. this is somewhat a poor-man's SSAO (Screen-Space Ambient Occlusion) and it works well.

One good thing is that car models get resized really small, so a lot of imperfections simply go away.
But there is still quite a bit of photoshopping required to improve the looks of tail lights, blur the tires to make them look like they are moving, even adjust the tires shape, because of course they are made of hard plastic and they don't come down straight enough.

About using car models and copyrights... I recently saw an interesting TED Talk (they are not so common nowadays ;) about copyright (or lack thereof) in the fashion industry.
Apparently cars are much like clothes, bags and shoes, where there is no copyright for shapes.. though one of course cannot use names and logos.

Anyhow.. this is all a big reminder on the difference between making a game demo and making an actual game.. even if a really small one.



  1. Ship it! Ship it!!!

  2. Mr Paul,

    I like your confidence !
    Right now I'm bleeding money.. not only I don't have an income, but I also have to pay taxes.. based on an estimated income even though I'm not working 8)
    Japanese government starts contributing after 3 months of unemployment.. but anyway.. I'm not worried.
    I know that in the longer term things always work out well 8)

    Mr Ragin,

    Content, content ! I'm not content with the lack of content 8)
    I'm spending 90% of the time in Photoshop !

  3. Nice, but I cannot hear a thing using the PC build. :)

  4. ..ouchhh... stange.. but I'm glad I don't have to develop for PC !
    I may try to put some debug info in the release version too (and of course I cannot give the debug version because it requires some special DLLs and it's not enough just to put the DLLs in the same dir with the exe nowadays.. facking microsoft with its DLL hell and manifest bullshit !)

  5. You are missing the wrapper. :)
    If I copy wrap_oal.dll in the bin directory or I install OpenAL system wide it works.

  6. The dll side of things is getting crazy especially with managed and unmanaged code. Last year I had to write some code to use SN Systems target Manager Ps3 library from C#. So I had to write a c++ dll wrapper around the static lib, and then in C# I needed to write an assembly (another .dll) to call the c++ wrapper. To make things even more complicated the static lib was actually loading some other dll at runtime. In the end I had 1 lib and 3 dll's!

  7. Freddy,
    Thanks for finding out the missing DLL 8)

    ummmm... I tried to read the MS explanation on how to deploy your own DLLs (without asking people to install the redistributable) ..but I didn't have the patience to sit down and read all that crap.
    I don't envy you for your DLL adventures 8)

  8. Hey Kaz!! Mamma mia una vita... sono DJ del buon vecchio #emuita... spero ti ricordi ancora di me dopo tanti anni! :) Tu che mi dici, stai bene? Ottima l'idea di portare KazRace su iPhone! Lo comprero al "day one" appena esce su AppStore hihihi =) Vabbè ora ti lascio ma aggiungo il tuo blog ai preferiti così ogni tanto ci do una sbirciatina... Ah ho letto che ora sei in Jap... non ti perderai mica questo?? (ricordo ancora la tua passione per i robot). Io a Novembre sono in Taiwan, ciaooooooooooo Marco

  9. Mr. DJ !!

    Come butta ?
    Gundam non sono andato a vederlo.. ed orami e' stato gia' smontato da mesi 8(
    Era ad Odaiba, non distante.. ma la pigirizia ha prevalso.
    Ce ne e' uno nuovo a Shizuoka pero' ..non vicino.

    Io comunque mi sono rifatto con Tetsujin ->

    Grazie per il game.. prossimamente mettero' su un video su youtube come preview !

    A presto !