My own fifteen minutes of fame
My own fifteen minutes of fame
This Ludum Dare was my first Ludum Dare. At first, I was a bit hesitant to take part. The main reason being I found out about this event barely a day before the deadline was set. However, I needed to up my game in game programming (bad pun, yes), so I decided to challenge myself and take part!
Man, that was one of the best decisions I ever made.
I poured hours and hours of work into my game. Yes, it's incredibly basic, barely has any graphics and outputs scores and the main gameplay information to the console, but ultimately, I'm proud of what I made. My first game was a success. It was a deceptively simple combination of two genres, or rather, concepts. The mind bogglingly casual gameplay, with a premise only hardcore geeks and nerds would understand, guessing of RGB values.
The experience of using my favourite programming language, C, alongside a great 2D graphics framework, SDL, boosted my morale during the development of the game.
None of the above has made this the best coding jam of my life. That honour goes to the amazing community on this website! From the first moments my game was uploaded, everyone was giving me helpful feedback. Naturally, I acted upon this. More and more people kept giving useful, constructive criticism about how I could become a better developer. I started doing the same. And I think this communal voting on games is what really makes the Ludum Dare tick. By suggesting and criticising the games of others, we are building our own skills and learning more by the second.
If the point of the Ludum Dare was to make programmers want to apply their skills to game development, they have succeeded! Kudos to the team and everyone who has helped me during this journey!
The Best Part
The programming of course! Although my code did get a bit messy sometimes. Just take a look at this: ```c if(state == GAME) { while(1) { index = rand() % 4; key = keys[index]; correct_colour = randu32();
printf("
GUESS THE COLOUR! "); for(sizet i = 0; i < 4; i++) { if(statestruct[i].code != key) { printf("Press %s for %x ", statestruct[i].keyname, randu32()); } else { printf("Press %s for %x ", statestruct[keymatchsym(statestruct, key)].keyname, correct_colour); } }
SDL_FillRect(screen, NULL, correct_colour);
SDL_UpdateWindowSurface(window);
SDL_Delay(3500);
while(SDL_PollEvent(&event)) {
switch(event.type) {
case SDL_QUIT:
goto end;
break;
case SDL_KEYDOWN:
pressed = 1;
if(event.key.keysym.sym == key) {
points++;
printf("Correct answer, %lu points
", points); } else { miss++; } break;
default:
if(miss > 3) {
state = DEAD;
goto die;
}
}
}
}
``` Yes, it's messy. I hate it. But I was tired at the time. If I had more time, I would have cleaned this up. In fact, I am actively working to clean up the codebase now. Despite this, the programming was very fun!
The Not-So-Best Part
I need to work on my art skills. Maybe I should work in a team next time.
Fruits of (fun) labour
A picture of my game on the front page (Hexguess):

P.S: I'm a systems programmer. Hit me up if you have a low level programming (for example, OSDev or emulator dev) question. I'll answer
Hexguess: https://ldjam.com/events/ludum-dare/41/hexguess
GitHub: https://github.com/safsom
Twitter: https://twitter.com/safsom2267
Reddit: https://reddit.com/u/safsom2
Discord: safsom2#7370