Fififox

LD19

Go! go! go!

This will be my first LD, I’m not sure I will be able to create anything playable but it’s a good way to know what I can do in 2 days ! :) This week-end can only be great !

My tools will be:

  • Language: C++
  • IDE: KDevelop
  • Libraries: wxWidgets, SDL or SFML
  • Art: Inkscape, The GIMP and my mouse :)
  • Audio: LMMS, with Yamaha PSR-E423 keyboard

Hum, discovery… ?

I woke up three hours ago. First thing I did: start the computer and wait for the LD page to reload. Then I saw: DISCOVERY !  I decided to make the title screen and kind of a soundtrack (but really short) because I was a inspired, but I had no idea what for a game I could make. So here’s the title screen:

Discovery

I’m gonna start coding now. I just compiled the latest wxWidgets library.

I discovered a game idea !

Hey there ! I spent a few hours thinking about the theme, and I’ve really had a hard time finding a good (in my opinion 😉 ) idea for a game:

The basic game principles of my game

And here’s the meal I ate four hours ago (I couldn’t upload it before because of Bluetooth issues, but then I realized I had a USB cable for my phone xD ):

That was good !

Now: it’s time to implement the game !

Comments

dmennenoh
18. Dec 2010 · 15:05 UTC
Funny, I had something quite similar worked out – where you could move a mirror and a prism – The mirror to aim the laser and the prism would break the beam into three or more separate beams. You’d have to get each beam to then hit something to go on. I like the concept, but not what I’m doing. PS – those sausages look great. Where do you live? Never say waffles like that before.

Dinner :)

It’s 22:30 here in France, and it was really time to eat ! Here’s what I’m having:

Dinner

Sorry, I could resist eating before taking the photo… :)

Dinner, 7 hours to go

The end is near ! 😀 Not the end of my game, though… But I’m still hopeful because level design should be fast. It would be great to have finished the code in 3 hours. Anyway, here’s my dinner:

Nothing better while coding :)

And a screenshot of the work in progress:

Not quite ready yet...

See ya !

Graphics, reloaded :)

Here are the new graphics, enjoy !

Title screen

The “receiver” sprite is still missing, but there’s a background image, and better sprites:

No receiver activated.

One receiver activated, but "discovery" feature not implemented. :/

I must speed up for the 6 remaining hours… Bye bye IRC ! 😀

Here we are

After a final rush to put together something I could submit, I can finally relax ! Pfiuuu….

It was my first LD48, and I must admit that I loved it ! Really ! I had never attended to such events, but now I’ll try to participate in most of them. It’s incredibly faster to make a game during LD than it is when you have the opportunity to do something else…

So, a big thank you to LD !

Next time, I’ll try not to lose too much time chatting on the IRC channel ! 😉

Timelapse

After have fought against mencoder’s options (the manual is far too dense, too many options), I finally uploaded it to YouTube. It’s still processing it for now, but should be available soon…

Here’s the video:

Bye ! See you all next time !

Tags: timelapse

LD21

Maybe joining MiniLD 28

Woah, this weekend is full of things to do. I’ll try to make something playable this night, because war is such an inspiring theme that I’ve already come up with a few ideas, only a few minutes after having read the theme !

See you all on IRC (although it might not be such a good idea if I want to make something before the deadline 😛 ) !

Convoy defense

The title says it all… or maybe not. :) Let me explain the basics of what I’m gonna work on: you have some sort of convoy to protect and it has to travel from point A to point B in a given time. To do this, you can only use two commands which affect the physics of an area: you attract or repulse the objects in that area (each having differents properties, such as weight, damage caused around it when destroyed, attraction/repulsion (pulses) or bonuses such as more shields for your convoy, extra time or even time freezing).

Let’s code !

Ready for the fun! (aka “I’m in!”)

Here I am, entering my second Ludum Dare compo! Hopefully I’ll come up with something awesome enough for me to sell it ! (just joking, or rather dreaming) 😀

See you all next weekend!

The “I’m in!” video (geez, my phone has better video/sound quality than my webcam o_o):

Bye.

PS: I’ll be using C++ and wxWidgets or SFML… and also Gimp/Inkscape for graphics and LMMS for music (this time, I’ll do this when the game is ready ^^).

Finally an idea!

Here we go! I’ve had an idea that I believe not being as bad the others ! (I had thought about a colored space-shooter featuring the Nyan-cat… but that wasn’t really what I was looking for) So I came up with a ball game: you can only interact with it by placing obstacles which it will bounce off and the goal is to bring the ball to the exit of a maze…

Let’s code !

Lunch, collision detection done.

Okay, time to eat. The collisions are detected and I need to code the response (make the ball bounce).

Collision detection !


Meal :P

Physics done! Let’s create a level!

Here we are: the whole physics are working, the ball bounces against the walls created by clicking ! I’ve created some sprites using Inkscape, and SFML2 is really awesome to work with (it doesn’t get in your way and it gets the job done easily) !

Next on my task list: creating a level, probably adding scrolling and maybe some music and sound effects ! The title screen also needs some polish, but it does its job for now.

That's a bouncing ball !

YAPR (Yet Another Progress Report)

Since, the site now works, it’s time for a progress report. I quite moved from the original idea, but the game in now playable! You have to prevent the ball (which goes always faster) from escaping. You can do this by placing blocks on the ground against which the ball will bounce.

I know you prefer a screenshot rather than a long text, so here you go:

The game itself is ready, sound is being worked on. :D

Deadline approaching: The Bouncing Ball, now with relaxing music !

I’ve completely changed the mood of my game. I had a title screen which was… kind of… imperative, the player having to execute orders, but that was just too aggressive. The mood is now much more relaxed, or even a little bit sad, because of the soundtrack, which I love (who said it’s just because I’m the one who made it ? 😛 ).

I’ll have to change the title screen to match the music, and then I’ll submit my entry ! That should be doable in 6 hours.

PS: I would have liked to attach the title screen music to this post but WordPress refused to do it. So you’ll have to wait for the finished game to listen to it ! 😀

Postmortem: Poor Ball

Poor Ball - Click the image to rate the game !

Poor Ball – Fififox – Competition Entry

Now that the stress of coding/packaging/testing/submitting is gone, the time is right to sum up what I’ve done, the good choices and the bad choices.

What I’ve done right (based on my previous and first LD experience, LD19):

  • I finished my game (I haven’t been overly ambitious);
  • I only made graphics and sounds after the game was working;
  • I made something (relatively) nice and with good sound effects;
  • I made a title screen and wrote a short story to introduce the game mechanics;
  • I spent time on IRC, but only time which I didn’t miss as the deadline approached;
  • I didn’t feel stressed until the very end !

What I’ve done wrong:

  • I thought that good ideas would come by browsing dictionnaries and wikipedia and probably lost time by not really concentrating;
  • I got used to my game’s difficulty and didn’t see that removing the two easiest levels was a bad idea.
  • I spent a long time trying to repair a library instead of just replacing it by another one directly;
  • I tried to cross-compile my game and the libraries I was using instead of booting that old slow Windows box.
  • I should have written more progress reports instead of being on IRC for time.

What I’ve done during those days:

First day:

  • 9 am (theme announcement at 4am for me): Woke up and looked for some ideas using theme list / dictionnary / wikipedia;
  • 10:00 — Created a base system in C++ with SFML2;
  • 10:20 — Thought, not looking at the computer;
  • 11:00 — Tried to write down an idea;
  • 11:40 — Threw that idea away and thought again (also played prototypes seen on IRC);
  • 13:00 — Back to code, looked in detail at the SFML API;
  • 14:00 — Suddenly had an idea: posted the idea on LD blog and started coding like mad;
  • 14:45 — Had the basic physics working, so screenshot and lunch on LD blog;
  • 15:00 — Kept working on physics;
  • 16:00 — Took a break;
  • 17:00 — Back to code, added controls;
  • 17:30 — Created a minimal user interface, worked on graphics;
  • 20:00 — Had the physics working, posted progress report and screenshot on LD blog which is getting slow, tweeted, talked on IRC;
  • 20:40 — Created some bad background music (removed from the final game, was very bad 😛 );
  • 22:00 — Tried to get music working, SFML uses OpenAL, which is apparently badly broken on my computer, tried to find a solution to that (but I didn’t);
  • 02:00 — Stopped searching, went to bed.

Second day:

  • 08:00 — Woke up, 20 hours remaining, eating some croissants (yeah, I’m french 😀 );
  • 08:30 — Took a crash course to use FMOD for sound in my game, and set up background music;
  • 09:00 — Heard about LD server failure;
  • 09:15 — Tweaked physics and changed gameplay idea, implemented some GUI;
  • 11:40 — Added some graphics;
  • 11:45 — Fixed a race condition-related segmentation fault, added levels, lives and death to the game;
  • 13:30 — Got tired of adding game code to the physics thread and edited some graphics;
  • 13:35 — Talked on IRC and looked at some other sound libraries;
  • 14:00 — Got back to gameplay, and eventually broke the whole physics/gameplay thing, causing dead locks every now and then, but somehow I got it working nearly seemlessly;
  • 15:40 — Talked on IRC, helped testing some games;
  • 16:20 — Wrote a progress report on the really slow but working LD blog, while still talking on IRC and failing at finding FMOD documentation on compressed sound;
  • 18:00 — Added code for sound effects and created some, which made me remove the background music;
  • 19:45 — Refactored a part of the physics code to remove an old feature which looked more like a bug from the outside;
  • 20:10 — Created other sound effects, reworked the sound load/play system;
  • 21:00 — Talked on IRC, posted an update on the LD blog, and tweeted;
  • 22:00 — Rewrote the GUI and added a graphical title screen
  • 00:00 — Sumbitted my entry with description, screenshots, sources and Linux x86_64 executable.
  • 01:00 — Wrote a post about my entry on the LD blog;
  • 01:10 — Talked on IRC and started packaging for Windows and Linux i686;
  • 03:00 — Read about FMOD’s API on Windows which doesn’t support C++ (only C) when using MinGW, converted the source to use FMOD through it’s C API, compiled, packaged and sent;
  • 03:30 — Reuploaded different versions with more and more libraries for people to play the game just by unpacking and running: thanks to people on IRC who tested my game until the very end, at 04:00 for me !
  • 05:30 — Encoded my timelapse and posted it on Youtube and on the LD blog.

Tags: postmortem

Postmortem: Poor Ball (part 2)

This is a second part of the postmortem for Poor Ball, read the first here.

Global impressions on this LD:

This LD was my second and it went much better, I’ve had more time to think about my game and to implement it (even if I haven’t had the idea directly) thanks to less chat on IRC, but I still talked quite a bit, because not being alone is what’s awesome in LD. I haven’t been affected by the site issue as much as I thought I would be, simply because it was slow but not unreachable when I needed it…

Impressions on my game and its creation in C++:

The development went very smoothly as I didn’t loose time on features I could obviously not create in time (I lost some time struggling with a library bug, though). I could easily add the things I wanted to because I didn’t force my to do an object-oriented design (I prefer using well-designed OO APIs like SFML but I cannot design good interfaces in a short time) and simply had one function per thread: display + input, gameplay, physics and music (which was handled by FMOD without my intervention); and one function to asynchronously play sound effects. Simple as that! I had to refactor some physics code in a new function and that’s all. The game was finished in time because I used placeholder graphics until the game was actually playable.

Impressions on the graphics and sounds:

The graphics in this game are really simple:

  • A dark background image putting an emphasis on the limits of the terrain and on the danger near them with a blurring effect;
  • Simple ball and wall sprites with brighter colors;
  • A title menu with some nice text giving a small background story (you can cry or laugh at it, as it is kind of simplistic and unrealistic 😛 ).

The sound effects are nearly perfect in my opinion: I used some bell sounds and small melodies instead of visual feedback for this such as level up, loss of life, etc, as the game requires a high focus on the ball’s position. Using sounds let the player know what happened without having to look at the HUD, which nevertheless exists.

Conclusion:

I enjoyed that LD as much as (or even more than) the first and I’m really happy to have a complete game, which I am proud of as I am not a professional (game) developer (yet) !

Congratulations to everyone and see you soon at LD22 or before on IRC !

Tags: postmortem