Gaeel

LD21

I’m joining in

Hi guys, I’m an anglo-frenchie computer sciences student and electronic musician kinda.

It’s been a while I’ve wanted to Ludum Dare and now’s my chance, I hope.

I’ve never made a game, although I have scrapped quite a few projects, hopefully the pressure of finishing on time will help.

I’m currently staying at my sister and her boyfriend’s place for a few days, so I’ll be using her old (not that old) laptop for Windows work.

Good luck to all, and have fun!

 

Update :

Tools of the trade :

Borrowed DELL Studio 17 laptop running Windows 7 (Thank you ChibiNeko, my sister) and Visual Studio 2010 (thank you university freebies)

ASUS eeePC 1015 PEM Seashell running Crunchbang Debian Linux and gedit/gcc

Will be using the following software on both machines :

Renoise and GIMP for content creation

The SFML graphics library

 

I’m used to developing on Linux more than Windows, but since most gamers are hoping for a Windows playable, I’ll go with that, I’ll try and make it cross-platform though.

I’ll be streaming from http://www.livestream.com/drjarajski and tweeting from http://twitter.com/#!/DrJarajski

 

I hope I’ll be able to keep up the pace and put out something cool, I’ll spend tomorrow making sure my SFML knowledge is up to scratch, and I’ll have to check the rules about preparing some boilerplate game engine stuff. My screenname is Gaeel and DrJarajski depending on the weather.

 

 

 

Writing some boilerplate code

In the interest of allowing myself more time to work on actual game code, I’m writing some non-gameplay code.

What I’m writing :

A state manager that keeps track of what’s going on.

A menu to select between play, quit and settings.

Resolution and keymap settings.

All the rest will be done when LD starts…

OK, so no framework

Yeah, I spent a lot of time trying to make a framework, but that failed, so I will be doing this ad hoc, with only my IDE and SFML.

Can’t wait to see this start, my first LD, hope I’ll find something cool

Awake now

OK, I waited for the theme to drop before going to bed, and fell asleep to the sweet tunes of an over excited cat trying to fight my face. (Which is one of the more violently cute experiences.).

Now I’m awake, and I think I have a neat idea, so I’m going to breakfast, go get a return on my keyboard (I bought a keyboard for LD, but I really don’t like the layout, which is a problem since I bought because I don’t like the laptop keyboard layout), and get cracking.

My (lack of) progress along with some sweet music will be streamed at www.livestream.com/drjarajski . It’s up, but I won’t be there yet.

Kicking down walls, and hitting yet more.

OK, so it turns out it wasn’t working because I was using the VS2008 version of SFML, so I looked for the 2010 version, but there isn’t one, so I followed a tute to compile it for 2010, not it works, escept it doesn’t

When I call the LoadFromFile() method for loading images, I get spam spam spam gibberish in the console WHY OH WHY OH WHY?

Why oh why oh why (are you segfaulting)? (I’m Out)

OK, so my world terrain is a class with an array of enums for the different tiles.

The enum has 5 possible values, of which I’m only using hardWall and nothing.

The array is 1200 tiles, 40*30.

But for some FRUSTRATING reason, my collision detection segfaults when I try to look at ANY tile, (I tested by cheating and making it look at a tile I KNEW was there). Since the array isn’t dynamic it only get’s deleted in the destructor, and the display code works fine, reading from the array and drawing the appropriate tiles to the screen.

I tried adding an sf::Image that is black for empty and white for wall, and it 40*30 pixels, but it STILL segfaults for no apparent reason, even when I force it to read pixels I KNOW are there.

Without this I don’t have a game, and I’m having other retarded issues too.

Watch me rant about how annoying this all is last night :

http://www.youtube.com/watch?v=UdG1LmRT0H4

 

Neeeaaaaarrrff…

OMFG Aliens! is trudging along, I’m getting yet more segfault for no apparent reason, I’m seriously doubting my C++ skills.

If I can get mobs to spawn (add them to the dynamic array that is crashing) then I’ll be rolling. I can use a static array and have an arbitrary number of mobs in game, maybe I’ll just cap the number of mobs at 20 and spawn more when they die.

I also hope I won’t have the same issue with turret, but I might try a similar workaround if I do.

I WILL put out a game, I WILL NOT give up twice…

Almost done (on Linux), any Windows users with VS2008 and SFML out there?

I actually have a machine running VS2008 and SFML, but for some reason the executable file just pumps gibberish in the console and doesn’t display a game.

 

So if someone with more VS2008/SFML experience out there is willing to give it a shot and compile it for Windows for me, I will be eternally grateful.

 

Let me know if you can help at sugardood@gmail.com or as a comment to this post. I’m just adding the sfx at the mo, so it’s not ready quite yet…

I did it! My first LD! My first game!

About 14 hours ago, I gave up, sat down on the couch and literally cried.

I was hopeless, here I am, with dreams of someday making something cool, a game, some music software, anything, and suddenly realising that I couldn’t do Ludum Dare. I put my head in my hands, and tears started rolling down my cheek. First-World problem, I know, but I felt like I would never be able to overcome problems that lie in my way.

But I saw other people in the IRC chatting away about their stuff, and I though to myself that I CAN’T let this one down, I said I was in, I WAS IN, whether I liked it or not.

I sat down, and started over, my previous attempt was bloated, stupid and messy, the new one is messy and dirty, but it works and it’s my baby.

 

It’s an inverted tower-defense type game. Aliens spawn in the middle and try to escape (they are VERY stupid and seek to infect humanity with their stupidity, luckily this means they have trouble finding their way, and grunt incoherently instead), the player can place turrets to shoot them down.

Turrets have 100 ammo and dissapear when they run out.

Turrets cost 100 credits to place.

Aliens take 20 hits to die, and give 20 credits when they die.

This means placing turrets needs to be a careful choice, because you need the turret to actually do some shooting to stay level.

The game ends if an Alien escapes.

Every alien spawned except for the first bunch awards the player with a point, keeping the aliens from escaping for as long as possible is how you score.

You will evetually lose as the mob spawn rate overcomes the turret’s ability to kill then.

 

It’s only been tested on 2 machines, my CrunchBang Debian 64bit netbook, and a Windows7 machine that I don’t really know the specs of (it’s an i7, so it’s probably 64bit)

 

Please, test it and tell me what you think.

http://dl.dropbox.com/u/6549099/OMFGA.zip

 

Comments

22. Aug 2011 · 01:03 UTC
Congratulations on finishing, the game’s actually pretty cool and I played it a few times :) The lesson I’ve learned from doing LD and other timed development competitions is to get over the fear and just try stuff. I started doing that in all my projects and now LD just feels only a little different from a “regular day” for me.

Can someone compile my game for Windows please?

Disregard this post, it’s not just a compile issue, I have no idea what’s wrong.

Let me know if the game doesn’t run on your machine…

 

 

I compiled it on one Windows machine, but it’s not running on two other machines, if someone knows how compile a C++/SFML project to run on all Windows machines I’d be really grateful!

A MacOSX Compile would be nice too if anyone can do that?

Grab the source here :

http://www.ludumdare.com/compo/ludum-dare-21/?action=preview&uid=1561

Comments

22. Aug 2011 · 11:45 UTC
I’ll give it a shot. Does it use sfml 2?
Nugsy
22. Aug 2011 · 11:48 UTC
I had this problem recently, you need to link your project to the static libraries rather than the regular/debug ones.
22. Aug 2011 · 11:55 UTC
It looks like this uses sfml 1.6, so I can’t compile it, sorry. Maybe give the above suggestion a try.

Post-Mortem (And by god, there almost was mortem)

Seriously, my top tips? Nothing about sleep, organising your time or what to eat. I’m not going to talk about thinking out your idea before going into it headlong. I have two tips that will help IMMENSELY :

– KNOW your software, now is not the time to try out a new IDE or use a language you don’t know very well, and make sure you can and HAVE compiled stuff with this software that WORKS. Trying to understand the quirks of VS2010 isn’t what you want to be spending time on.

– KISS : Keep It Simple Stupid. And I don’t just mean the concept. In general in OOP it’s a good idea to make classes for each concept, but here you need speed. Just make a BIG mainloop with ALL your code in it, and make classes for the few things that REALLY need them. Remember, simple doesn’t mean elegant. Simple means an O(n²) algorithm is better than an O(n) if it means you get the job DONE.

 

To be honest, the game I put out has the gameplay I originally imagined when I started pondering the theme. So in that respect, I succeeded in building the idea that I wanted. But I didn’t respect the two previous points, so my game is SEVERELY lacking in aesthetics, and features.

I usually code in Linux, with gedit or Eclipse, in C++, and I’ve done some SFML stuff. And since I was making my game in SFML/C++ I didn’t think coding on a Windows machine with VS2010 would hurt. Turns out it does. First, SFML hasn’t been compiled for VS2010 yet, so you have to build it from source WITH VS2010. But that means knowing how VS2010 works IN THE FIRST PLACE. I could have done it, given the time to consult a few forums and manuals, but time wasn’t available.

Another mistake I made was that I made classes for everything, the was a state manager, an assets manager, a game loop manager, a class for monsters, a class for turrets and a class for the world, a class for tiles that compose the world, and I think that’s it.

Now given more time, this is a great idea : OOP allows for amazing flexibilty and extensibility if you structure your code nicely.  My original design would have allowed easy creation of new monster types, turret types and tiles. It would allow quick and easy mainenance of code, and since only the asset manager had access to SFML, it would be a cakewalk to port to a different graphics engine.

While all these features are nice, it quickly devolved into spaghetti code as I tried to beat the clock with an ever more complex code, sleep deprivation and panic started to settle in by the next day and I no longer understood my own code, and even switching to my trusty linux netbook that I’ve been using to learn coding for the past year didn’t help. My code was a beautifully designed mess.

I eventually bailed and posted an “I’m Out” blog, sat down and gave up.

But then I came to, realised that I COULD do this, and with less than 20 hours to spare, sat down and did it right.

The new code is a messily designed beauty, there’s a huge, unwieldy main loop with monster spawning, monster update calling, turret spawning turret update calling, points counting, credits counting, event handling all bundled up in a big mess. There is a class for monsters and a class for the turrets, and they contail their own rendering code. I do everything WHERE I NEED IT.

But the end result was that I made a game in 14 hours whereas I totally failed to do anything in the 20 or so before.

 

I’m going to learn VS2010 now, it seems to me like an interesting IDE, and there’s some stuff I’d like to use, and I’d like to develop for WIndows, but I’m going to do it now that I’m out of a time-limited mess. Expect my next LD to have a lot more content, and work better on Windows (My Windows build still fails on some machines, and I have no idea why, if you have SFML1.6 for Windows, please help me compile a version that will work for everyone : http://www.ludumdare.com/compo/ludum-dare-21/?action=preview&uid=1561 )

Comments

Felipe Budinich
23. Aug 2011 · 11:45 UTC
This should be called “Main Loop Private Function FTW Programming Paradigm”, and yes, I agree with most of what you said there.
bitbof
23. Aug 2011 · 14:08 UTC
I created quite a few classes but I kept them very simple and predictable in their functionality. So I didn’t really run into too many problems. Making pretty much everything public saves a lot of time too.

LD22

Follow my almighty auto-updated page!

If you go here : http://niu.uz/ld22/

 

You will see a beautifully designed page featuring a screenshot and a snapshot of the code I’m working on, every 10 minutes

Feel free to drop by on IRC or drop me an email at kb@niu.uz

If enough people hassle me, I’ll provide the scripts that do the auto uploads, but it’s just a bunch of bash commands, using the ftp, scrot, zip and tar programs.

Comments

Niavlys
17. Dec 2011 · 00:21 UTC
So… is that your “livestream”? 0,00167 frames per second?

YEY! Christmas came early!!!

My sister and her fiancé just gave me an early christmas present, An Archos media player.

That ought to give me a little motivation boost ^-^

Comments

Niavlys
18. Dec 2011 · 07:44 UTC
Yeah! I’m looking forward to see it :)

Bon je vais essayer le jeu.

Playable done!

Not entirely sure where I’m going with this, I’m probably going to keep things purely on the atmospheric.

Grab playable demo here : http://niu.uz/ld22/build/lastbuild.love

I haven’t packaged it with the love executable yet, so you might need to grab it from www.love2d.org

Go to http://niu.uz/ld22/ for screenshots and snapshots every 10 minutes

Solitas Exodae – Screenshot

Play the game here :

Windows : http://niu.uz/ld22/build/sol.zip

Love2d : http://niu.uz/ld22/build/lastbuild.love

Follow progress at http://niu.uz/ld22

 

Comments

finalsin
18. Dec 2011 · 10:11 UTC
This is fucking incredible so far. I loved playing the demo.

You want a Post Mortem? I got a Post Mortem for ya!

Well that went well…

Oh, you want me to elaborate?

What went well:

  • I had an early playable, and it was just a matter of adding stuff from then on
  • I managed to make a 2*5 pixel character spooky.
  • My first tileset loader! I will reuse that!
  • My first 2D level generator! (Gotta love the sine function!)
What didn’t:
  • I didn’t find any meaningful gameplay elements that wouldn’t screw with the mood
  • Not much else
Stuff : To be honest, I wasn’t sure what kind of gameplay I wanted, but I knew I wanted a sidescroller with a character exploring a vast world, in which he would feel alone and isolated. Inspired by the feeling I got playing some Knytt Stories levels. In the end, that was all I really came up with, an atmosphere and a feel, and at the 30+ hour mark, I decided that was all I needed. Some people have criticised that it doesn’t have much in the way of gameplay, and to that I respond : “Pssh, gameplay? In a game? ’tis for the weak and the poor…” Yeah, I know, I dropped the ball on that bit, but I really REALLY didn’t want to kill the mood with enemies or some kind or convoluted objective, so if you want gameplay, move right along. However, I hereby promise that LD #23 will see a “gameplay TO THE MAX!” submission from your’s truly! But Gaeel, how come your game sounds SO GOOD? Why you flatter me… Beyond the terribly self-congratulory tone, I do want to make a point here. Awful sounds are vastly superior to no sound. Please people, drop a few random sounds from SFXR and a quick soundtrack, even if it’s just a few chords and a beat. I rate 3-stars in sound for games that have AT LEAST one sound effect, and I rate 1 star for no sound when there’s no technical reason for that to be the case. Consider the following game : http://www.ludumdare.com/compo/ludum-dare-22/?action=rate&uid=7857 One of the best I’ve tried so far, yet SEVERELY lacking in sound. Now put on a gloomy soundtrack or a city background sound effect in your headphones and play it again, WHAM! Instant PERFECT LD entry. I know people don’t think about sound much, but it has a subconscious effect that speaks straight to the “Ooh, this is cool” part of the brain, USE IT!

Introducing Ludum Dare to my mates, and looking for people in France

First off, if you’re in or near Montpellier or Béziers in France (Hérault department in the sunny south), or willing to haul your way over for LD #23, please contact me.

Now that the dates for LD #23 have dropped, I’m starting the preparations for a friendly “jam” event to get people participating.

My grandmother has a house with a large garage, a nice little garden and a barbecue, I’m hoping to be able to invite a bunch of non-LD friends from my CompSci university course and spend the weekend making some juicy games for LD. I’ve spoken about LD to these friends, but most of the time they seem to react as if it’s some kind of impossible feat, but I know for a fact that LD is not only possible, it makes other “impossible” feats feel much more within reach.

If anybody wants to join in, I can look for accommodation options for some more people, and if there are other residents of the area willing to join in, we can possibly join our efforts and get some real action going.

Also, I want to urge all of you to try and get at least ONE person you know to join in for Ludum Dare. Choose somebody who is always talking about some idea they have but never get round to doing it, and get them to participate, even if it means strapping them to a computer and pumping them full of caffeine intra-veinously.

Also, if you have any ideas/suggestions/warnings on organising a DevJam at home, please drop me a comment, this is my first time organising such an event, so even if something seems obvious, it might just be something I’ll end up overlooking

LD23

I’m in!

After my (scandalously awful) LD#21 entry (http://www.ludumdare.com/compo/ludum-dare-21/?action=preview&uid=1561) and my (controversially awesome) LD#22 entry (http://www.ludumdare.com/compo/ludum-dare-22/?action=preview&uid=1561), I’m in for LD#23

Please note that I promised a “Gameplay to the max” entry this time round (in this post http://www.ludumdare.com/compo/2011/12/19/you-want-a-post-mortem-i-got-a-post-mortem-for-ya/), so keep your eyes peeled, and hold me to my promise.

My dad asked me to make sure that the atmosphere would still be there, so I hereby promise that I will not sacrifice atmosphere for gameplay.

So wish me luck, and a good luck to everybody else getting ready for this (hopefully epic) 10 year anniversary LD#23 extraordinaire!