Home | Planet Ludum | Rules Wiki | Mailing List| Sign In/Create Account | Write a Post| #ludumdare on irc.afternet.org

Ludum Dare 16 :: December 2009 :: Theme: Exploration

LD16 Results: Top 20 | Categories | View All 121

Theme Voting: Round 1 | Round 2 | Round 3 | Round 4

About AtkinsSJ

AtkinsSJ's Trophies

The Boboil Referencer Trophy of Redundancy
Awarded by moltanem2000 on December 13, 2009
Ludum Dare Donor
Awarded by PoV on December 13, 2009

AtkinsSJ's Archive

Boboil goes Exploring: Post Mortem

Posted by AtkinsSJ
Thursday, December 17th, 2009 8:35 am

LD16 was a lot of fun, despite continually running into killer bugs that took ages to fix.

What went well:

  • I managed to pull it all together in the last couple of hours and actually end-up with a game. I very nearly didn’t.
  • People seem to like it, too! Didn’t expect that one.
  • After releasing, I managed to locate and destroy one last memory leak. Otherwise it would have been unplayable.

What went badly:

  • The aforementioned bugs.I probably spent at least a third of the time I was working on the game trying to fix memory leaks, infinite loops, and the like. These were often related to…
  • I didn’t prepare. DESPITE knowing very well that I needed to get a basic framework, in the end I was just too lazy, and started the compo even without most of the libraries I needed.
  • I didn’t spend enough time at the start thinking about what my game would be. Instead, I charged ahead with a turn- and tile-based engine, assuming I’d think of something later. Fortunately I did, and the idea was reasonably fun.

What I would improve:

  • There are still a couple of glitches – one is that sometimes monsters manage to get on the same tile as you and you can’t attack them – not sure why.
  • The view is too small. This is mostly so I could avoid trying to do any ray-casting and what-have-you. Though since I let you see monsters for an extra tile away, you can still see through walls. Whoops.
  • You automatically climb down ladders, which isn’t ideal. In fact, I think I accidentally left it so that you’ll go down a ladder if you attack a monster which is standing on it. I ran out of time, and it was easier to code like this. Sorry!
  • I had ideas for more things you could ‘explore’ and earn XP from – such as each time you come across a new animal or plant. But I never got time for it.
  • The difficulty increase is really naff. Or at least, what’s meant to increase the difficulty – each time you go down a level, the monsters get +1 to attack, defence, and hp. But each time you level up, which can occur 2 or 3 times per level, you get +2 max hp, are fully healed, and your attack and defence increase by 1. So it’s very, very easy to quickly outpace the monsters. I didn’t take the time to balance it, as it was about 1:30 am by then, so yeah.

Final notes:

  • I do have some ideas for expanding it, and I hope I actually get around to doing so this time. I think I will do, as I’ve wanted to make a roguelike for a long while, and after I lost all the code to my other one (Nooooooo!) this is a good opportunity to get back into it.
  • Hanging out in #ludumdare made the whole thing a lot more fun, even when it seemed I would end the competition with only a mediocre level-generator. :D

Boboil goes Exploring FIXED!

Posted by AtkinsSJ
Tuesday, December 15th, 2009 8:46 am

My LD entry, Boboil goes Exploring, will no longer ‘melt your laptop’, as I’ve fixed the memory leak.

Also, as some people said they were on laptops, I’ve added support for arrow keys too. So play it NOWZ!

DONE! WHOOO!

Posted by AtkinsSJ
Sunday, December 13th, 2009 6:10 pm

Well, I’m finished. The game… isn’t as finished. :P

Linky

But wow, I’m pleased I got so much done in the last couple of hours. There’s a game in it! Wow. You run around, biffing bodzhas, and exploring to gain XP and level-up – the only way to get stronger is to explore the map! That’s about the only interesting feature, but oh well. It’s over, it works, and I’m happy.

3 hours to go, going well! :D

Posted by AtkinsSJ
Sunday, December 13th, 2009 4:06 pm

Hooray! It now functions as an actual game, albeit without win/lose conditions or multiple levels. But still, progress! And if there’s one thing I need now, it’s progress. :P

Hooray!

Hooray!

I’m actually quite pleased with the player and monster graphics. 16×16 means you can do really rubbish drawing and it still looks OK. Hurrah!

Angry rant

Posted by AtkinsSJ
Sunday, December 13th, 2009 1:50 pm

Everything was going smoothly so I should have known it would all go wrong. I’ve been battling a SIGSEGV error where I can’t locate the problem. It’s the sort of situation that needs a sleep, and a fresh look in the morning… except it’s LD so I can’t do that. Bah.

Erm, yeah, maybe I will eventually sort this out, and then… I will nearly have a playable game! Maybe. Fun? Definitely not.

EDIT: Fixed it, and you know what? The problem was a distance away from the error – it was caused by the monsters not knowing where to move when they’re too near to the player. Bah! If I’d considered their AI earlier, I’d have saved a couple of hours, probably.

Day 2 is going much better! :D

Posted by AtkinsSJ
Sunday, December 13th, 2009 8:52 am

First, current screenshot:

Whoooo!

Whoooo!

Yeah! In the last… hour and a half, I think, I got some player interaction in there! Oh, yeah! Things are going quite smoothly all of a sudden, it’s rather odd.

Finally had an idea of what the game will be about, and I might as well say it – a dungeon crawler, where the only way to get experience is by exploring. Plan is every tile revealed will give you 1 XP, though other exploratory things could help too – perhaps discovering interesting plants? Actually, maybe each time you face a new monster you get some, that could work.

The darkness has the added usefulness of partially disguising how bad the level generator is. :P

Oh Pants

Posted by AtkinsSJ
Saturday, December 12th, 2009 1:08 pm

I have been fruitlessly mucking about with random level generation and bumping into SIGFPEs and infinite loops. It seems to not fail now, however it doesn’t do what I want it to either. Here, have a nice picture!

Ooh, isn't it pretty

Ooh, isn't it pretty?

It should be linking all the rooms up, however I have done far too much complication to my code without really thinking and it now scares me. I think I really need to rip it out and rewrite it so I know what it does. *sigh*

I AM NOT GOOD WITH COMPUTER

I’m not horribly behind on everything! Honest!

Posted by AtkinsSJ
Saturday, December 12th, 2009 10:15 am

…ok, maybe I am.

Current state as of now

Current state as of now

I only just got a level drawn and (badly) randomly generated.  And I still don’t really know what this game will be… Oh well! I’ll keep on going.

Go-go-gadget Ludum Dare!

Posted by AtkinsSJ
Saturday, December 12th, 2009 6:04 am

So… Exploration. Not much of an idea so far, but I think I’ll go with something tile and turn based, and see what I think of once something basic is working. Unfortunately, it seems I haven’t learned from last compo that I am rubbish at random generators, and I am considering a random generator. :P Ah well, can’t be as bad as last LD.

Good luck to everyone else!

Wikiventure Post-Mortem

Posted by AtkinsSJ
Tuesday, September 15th, 2009 4:12 pm

Wikiventure went far better than I was expecting. Mainly because I wasn’t expecting anything remotely interesting. I’m still working on it, in fact, adding new things – just today I added user-input via a text-box and tags which react to that input, and score and cash variables that can be checked and modified. I’m really enjoying it, and plan to add a basic battle system like in proper game books. :P

What went well

  • The basic game, taking pages from the wiki and letting you travel between them, was very quick and easy to set-up. Then it was just a case of feature-creep for the rest of the weekend, which was perfect for me!
  • People took an interest and wrote some content for me! :P

What went badly

  • Spent rather a long time at the start battling with C++ libraries before moving to PHP. Though that did help me come-up with an idea.
  • Also spent rather a long time at the end trying to fix an infinite loop, but managed to do so before the deadline, so no real bad points. :D

What I would do differently

  • Plan-out code structure before writing it. I spent quite a while on the Sunday rewriting all the tag-parsers to remove a lot of repeated code. There’s still a lot now.
  • Put time into writing content! I only actually created two areas, as a test right at the start before I’d added any tags, and then I kind-of expected people to write my content for me. Which some people did, but it was horribly lazy of me.

Things I’d like to add

  • Cookies or some other way of keeping things persistent between sessions. Could tie it to user-accounts on my site.
  • Combat system, mentioned already.
  • More levels of persistence than ‘IFVISITED’ and ‘IFNVISITED’, so that the player wouldn’t necessarily have to follow the same set of actions multiple times.
  • Any other stuff I happen to think-up.
  • Content!1!1!!1!!!

So yeah, it went pretty well. I’ll keep working on it and maybe it’ll become something really interesting.

Gah, infinite loops!

Posted by AtkinsSJ
Sunday, September 13th, 2009 4:09 pm

Less than an hour until the deadline. It’s gone midnight. I am rather tired. The most complicated tags so far have just gone in, (SPEECH and TALK, for enabling conversation trees. And probably anything that needs a choice actually. Whee!) and I have an infinite loop somewhere. Oh goody.

Anyway, it’s been an awesome Mini-LD. MUST… FIX… INFINITE… LOOP…

EDIT: FIXED! YAYAYAYAY!!!

Turns out, it’s because I’d got the position in a string, modified the string, then still used that position. Silly me. All works now! Time to update the documentation, submit, and go to bed, and only 25 minutes to spare. :D

Items Complete!

Posted by AtkinsSJ
Sunday, September 13th, 2009 12:04 pm

Items can now be gained and lost, there are IFHAVE and IFNHAVE to conditionally output text, and you can click on items in your inventory to use them: if that area has a [[USE:Foo|Bar]] tag, then it will display Bar if you use Foo. Tags can contain other tags, but not perfectly if there are multiple tags at the same level. eg:

[[IFHAVE:Foo| [[GET:Fish]] [[GET:Chips]] ]]

The Get tags are at the same level here, and so will display oddly. Though I think they might still work.

If anybody has any ideas of other things they’d like in, please comment below! And feel free to use tags in pages: They make it a game rather than a wiki browser. :)

Gameplay!

Posted by AtkinsSJ
Saturday, September 12th, 2009 3:41 pm

I’m in the process of adding in codes you can use in area pages.

First, there’s [[GET:Foo]], which will let the player pick-up an item called ‘Foo’ from that area. The item will only appear there if they do not already own it.

Then there’s [[IFHAVE:Foo|Bar]]. This checks if the player has ‘Foo’ in their inventory. If they do, ‘Bar’ is displayed. Bar can contain formatting, but I think it won’t work if you put anything with ]] inside it. I’ll have a go at changing that.

I’m keeping an up-to-date list of codes and formatting that work here, if anybody wants to start messing around with them! :D

I think I’ll go to bed soon, so that’s probably it for today. It’s been really fun so far, especially considering how clueless I was to begin with.

Whee! Screenshot!

Posted by AtkinsSJ
Saturday, September 12th, 2009 9:50 am

OK, so I have a working prototype!

Kind-of pointless screenshot.

Kind-of pointless screenshot.

Not very exciting, but it works. Create and edit pages here (starting with ‘Adventure/’, link them up, and it’ll let you navigate between them. To make it easier, pages that don’t exist will give you a link so you can write them. To jump to a page, simply add ‘p=PAGENAME’ (without the ‘Adventure/’ bit) to the URL. It’s case-sensitive.

Um, not really sure where to go from here. Making ”’ become <b> and ” become <i> would be good. Then maybe some kind of inventory…? I really have no idea. :P

EDIT: The best bit about this is that other people are already writing the actual game pages for me! :P

Wikiventure

Posted by AtkinsSJ
Saturday, September 12th, 2009 7:02 am

I wasn’t planning on entering miniLD 12. But the theme was just so interesting that my mind won’t let me not enter it, so here I go.

My original plan was C++, SDL and cURL. However, cURL refuses to work at all, so I’m stuck with PHP, the only other language I know reasonably well. This limits my choices significantly, but since I didn’t have any to start with, this isn’t really a problem.

So, my current plan is a choose-your-own adventure made of wiki pages. First name I could think of is ‘Wikiventure’, which is awful, sounds like a Wiki-based investment company, and is probably going to stay as the name because I can’t think of any others. :P

It’s located here, and currently just outputs the wiki page, not that exciting.

Cave of Dinosaurs – Post-Mortem

Posted by AtkinsSJ
Monday, August 31st, 2009 1:10 pm

This was my first LD, and it was a lot of fun. I’ve learnt quite a lot from it I think, and I don’t think I’ve ever got so much work done on a game in such a short time-span.

I used C++ with several SDL libraries. Graphics were created in the GIMP (and Paint…), and the sounds were created in about 10 minutes using SFXR.

I did briefly consider using GameMaker instead, and at several times I thought to myself ‘All I’ve done so far I could have done in GameMaker in a couple of hours!’ but I’m glad I didn’t. It would have felt like a cop-out really. Not to say that anyone using GM was a cop-out, but I’m glad I took the challenge of using C++.

What Went Well

  • I got an idea fairly quickly, and actually managed it in the time frame (I would have liked to add more stuff, but at least it is a game).
  • I had a horrible, game-breaking memory-leak but managed to fix it in very little time.
  • I knew my way around the GIMP enough to animate Ted using layers – I’m always very frightened of having to animate things.
  • Mostly, it all works. The collision-detection between moving things and the ground is pretty random and bizarre, so you can climb walls much higher than planned. The dinosaur movement was put in in about 10 minutes at the end when I realised the game was impossibly easy. The game is hacky, but it’s pretty close to what I wanted.
  • Click-to-shoot! Wow, I was pleased when that all came together. The bullet heads toward where you clicked, and always at the same speed – at first I got in a complete muddle as to how to do this, but then it was really simple. I like it. The whole ‘click, shoot, bullet hits wall, rock breaks off and falls’ thing works really well I think, and I’m pleased with it.

What Went Badly

  • That collision-detection is awful. Checking collisions between the ground, which is a grid where 1 across = 1 tile; and the coordinates of everything else which are 1 across = 1 pixel, was tricky and horrible. I did it badly. When I eventually gave-in and added proper box collisions for the interactions between player, rocks and dinosaurs, it was instantly much better.
  • The levels aren’t interesting. I hadn’t originally intended it to be an infinite, random tunnel, but I hadn’t originally had much idea of how it would be a game. I just knew “Shoot rocks so they fall on dinosaurs”. One, random level seemed much easier. The first area is fixed, then the rest is generated as needed, one column at a time. I tried several ways of having each column based off the previous one, but slightly altered, but they all went wrong. So I got it to generate a random number, and pick a pre-defined column from a list based on it. Less interesting, but at least I could guarantee that you could actually get through the cave.

    What I Would Do Differently

    • Prepare in advance and get a basic… I can’t think of the word. A basic code-base which has drawing and tiling stuff already there. I spent far more time getting that set-up and working, and repeating code that I could have used a base class for.
    • Framework! That’s the word.
    • Get more sleep the night before it starts. And, in fact, several nights before that! I kept making silly mistakes, like copying code and forgetting to change x to y in the copy, because I wasn’t firing on all cylinders.

    Things I Didn’t Have Time For

    • Graphically, the cave looks pretty horrible. I’d hoped to get time to have a tiling system based on what was around each tile: so a piece of rock hanging from the ceiling would look like a piece of rock hanging from the ceiling, and not just a square block.
    • I’d also hoped to animate the dinosaurs. Just didn’t have time.
    • It would have been good to actually show Ted holding a gun, with bullets coming from it. With the image flipping though, it would have taken time I didn’t have. I wanted several animations for Ted, but like the dinosaurs, it didn’t happen.
    • Improved collision-detection! It’s abysmal.
    • Particle effects! Another thing I’d hoped to have time for.  Would have made it look less boring, possibly.
    • A proper menu. The menu in the final thing is the one I bunged in as a placeholder because I realised it would be handy to have later.
    • The text-drawing function I used has an awkward quirk in that it always draws an opaque background. I got it from the internet a while back, and though I tried fiddling with it, I couldn’t make it transparent. Makes the menu look even worse.

    I may well make a post-compo version with lots of these things added-in, but then again I’m incredibly lazy at this sort of thing. So maybe not. Still, I’m pleased I managed to do it, even though I’m not going to win any prizes.

    ~AtkinsSJ

    Possibly Final, again…

    Posted by AtkinsSJ
    Sunday, August 30th, 2009 4:12 pm

    A surprsigingly-to-implement new feature, which makes the game actually hard to play:

    Moving dinosaurs!

    screeny6

    They walk along, and jump in a ridiculous fashion, without animation. But it’s late, and I’m tired, and this will probably have to do. Please, please test this and say how well it works so I can make any last-minute adjustments, that’d be swell. :D

    Link: (Windows binary and source) http://atkinssj.nfshost.com/stuff/CaveOfDinos.zip

    Finally, something resembling a game!

    Posted by AtkinsSJ
    Sunday, August 30th, 2009 3:09 pm

    Firstly, annoyingly this is the third time i@ve typed this because Chrome went crazy. Oh, well.

    Got about 5:20 left, and finally I have something that can be played, lost, and you get a score!
    Also, I fixed it so that the level is now infinite and randomly generated.

    screeny5

    I’ve finally fixed the dodgy collision-checking too: Moving things can now collide, rather than only moving and unmoving.

    Thanks to DrPetter’s excellent SFXR, I also have some sounds! Yays! Not entirely sure they go with the graphics, but oh well – better than nothing.

    So… I’m going to upload a taster! This may well be the final thing if I don’t add anything else.

    Controls:
    A/D or left/right to move, W or up to jump.
    Click to fire.

    The story / instructions (possibly more entertaining than the real thing)

    You, archaeologist Ted Stuart (because archaeologists are always action heroes, for some reason) have wandered aimlessly into a cave that has laid undisturbed for millennia. Well, or so you think. It’s actually been disturbed rather frequently by all the dinosaurs living down there.

    Living dinosaurs would make your job a waste of time, and so to preserve the livelihood of archaeologists everywhere, you seek to destroy them all! However, your puny gun is no match for their unusually tough skin! Your only hope is that you can shoot down loose rocks from the ceiling to bonk the dinosaurs on the head with. Only then can you remain safely employed in these harsh economic times.

    Download current version (may be final, depends if I think of anything to add)  Please download and test! :D

    Buggy scrolling

    Posted by AtkinsSJ
    Sunday, August 30th, 2009 11:42 am

    Well, this is getting odd:

    Beyond the edge of the world, there are... odd floating blocks that shouldn't exist.

    Beyond the edge of the world, there are... odd floating blocks that shouldn't exist.

    I’m currently sorting-out level scrolling. But due to something odd and inexplicable, when you go beyond the level you get odd floating blocks. And invisible ones like the one I’m standing on. No idea why at all, but hopefully it should soon be sorted – I’m going to try changing the level format to a vector of arrays rather than a 2D array, and add new columns to the end of the level as needed.

    Ah, just looked it up and apparently vectors of arrays shouldn’t work, so there goes that. Actually, I could use a struct… Yeah, sorted I think.

    I’ve added dinosaurs, finally! Well, a dinosaur.

    DINOSAUR!!!!

    DINOSAUR!!!!

    The dinosaur sits there until a rock drops on its head, then it dies – flipping and sliding down the screen. Stylish. Unfortunately, that’s all it does.

    While I’m mentioning flipping images, I might as well also mention the terrible memory leak I had. I was flipping the images dynamically, which created countless identical images that were never deleted. Ew. Sorted now though, phew!

    I really, really should have set-up a framework before the weekend, it would have made all this much easier…

    Currently have 16 hours, 20 minutes left of my 48 hours. Though a lot of that will be sleeping. Better get up early tomorrow then!

    Hooray for keystates!

    Posted by AtkinsSJ
    Sunday, August 30th, 2009 6:15 am

    Shows how much of a noob I am really, but I just discovered that SDL lets you check keystates at any time, not just when a keypress event is raised. This makes the movement code much, much simpler. Currently attempting to let you jump, which currently conflicts horribly with the code that stops you falling through the floor… Wait a minute! I think I’ve cracked it! I just need to do a check if the vertical velocity is negative! Yay! :D

    Day 2… BEGIN!

    Posted by AtkinsSJ
    Sunday, August 30th, 2009 4:51 am

    Had Shreddies for breakfast (no photo again – my family already think I’m a bit odd without me photographing my breakfast cereal). Then was busy until about 12:30, so it’s time to get cracking!

    Priorities today: (which I may well completely ignore…)

    1. Let the player move! Left, right, jump.
    2. Let the player fire bullets, rather than them appearing from the centre of the screen! Hopefully with a mouse-click, if I can get that working within a reasonable amount of time. Shouldn’t be too hard though, hopefully.
    3. Have blocks interact with the player – ie, if they fall on your head you take damage.
    4. Killable dinosaur, really simple.
    5. Finish the level-scrolling code – I put a lot of it in already, but the level has so far been the same size as the screen.
    6. Better dinosaurs.
    7. Panic because I’m running out of time and still don’t have much of a game.
    8. Levels, and finishing-up – sounds, maybe extra frames in animations, etc.

    This will probably last me way past noon tomorrow, when my 48 hours elapse. But oh well, that’s the way it is. I like this game enough that I’ll try to produce a snazzier version after the contest has ended.

    ‘Time for Bed’ said Zebedee

    Posted by AtkinsSJ
    Saturday, August 29th, 2009 4:03 pm

    It’s midnight, and I’m reasonably happy with what I’ve got done so far, so time for bed. Just animated Ted – only 4 frames for walking, so it looks a bit pants, but I can always sort that out later if I get time. Some animation > no animation.

    Otherwise, not much different from last update, so this is probably a bit pointless. Oh, well. :P

    Tomorrow I might get around to actually making something playable. And with dinosaurs in.

    Yay, slightly better falling rocks!

    Posted by AtkinsSJ
    Saturday, August 29th, 2009 3:24 pm

    Now I finally feel like I’m getting somewhere! Which is good, as I need to sleep soon.

    Also featured: My nifty little archaeologist guy, Ted Stuart.

    Also featured: My nifty little archaeologist guy, Ted Stuart.

    Rocks now stop falling when there is a rock (or ground) in the way. This is a good thing. Took me a while of wondering why it didn’t work to realise that I was checking if there was solidness to the right rather than underneath. Oops. Just now added pseudo-physics: things accelerate as they fall, then snap nicely back to the grid when they land. And there’s a (n uncontrollable) player! Quite pleased with him. I had the sense (for once) to use layers, which should make animating him easier. The GIMP is wonderful! :D

    Yay, falling rocks!

    Posted by AtkinsSJ
    Saturday, August 29th, 2009 1:34 pm

    Progress has been going incredibly slowly, not helped by my getting distracted a lot. Anyway, as can be seen below (well, I could have faked it, but if I had you’d be seeing this post much earlier) pressing space fires bullets randomly from the centre, and when they collide with the cave wall, cause a rock to fall. Finally!

    Hurrah, falling rocks.

    Hurrah, falling rocks.

    So, no dinosaurs, no player, and the rocks fall through the floor. Gah! Why are so many other people so far ahead? It’s demoralising… Though admittedly I haven’t spent that long on it, I guess.

    I might as well take this opportunity to explain what I’m using for this: C++ with SDL, in the Code::Blocks IDE. GIMP for the graphics… and that’s about it. :(

  • Recent Comments

  • Recent Tweets (Tag: #LD48)

  • Categories

  • Meta

  • Recent Trophies

    The LD to "Chart Topping" Kongregate Award
    Awarded by PoV on March 17, 2010
    The "Ludum Dare Entry on iPhone" Award
    Awarded by PoV on March 17, 2010
    The "Ludum Dare Entry on iPhone" Award
    Awarded by PoV on March 17, 2010
    The "Ludum Dare Entry on Steam" Award
    Awarded by PoV on March 17, 2010
    The Lonely Clapper Award
    Awarded by PoV on March 16, 2010
    The "Ludum Dare Entry in SOWN" Award
    Awarded by PoV on January 26, 2010
    The "Ludum Dare Entry in the IGF" Award
    Awarded by PoV on January 26, 2010
    The "Ludum Dare Entry in the IGF" Award
    Awarded by PoV on January 26, 2010
    The "Funnest Looking Animated GIF Ever" Award
    Awarded by PoV on January 26, 2010
    The "Breakfast With Awesome Thing" Award
    Awarded by PoV on January 26, 2010
    The Official SonnyBone 'RAD GAME' Award
    Awarded by SonnyBone on January 3, 2010
    The Madk Award for Excellence in Graphic Art
    Awarded by madk on January 2, 2010

  • All posts, images, and comments are owned by their creators.