SurvivorRL – Success!


SurvivorRL is now officially a success. It’s by no means the game I dreamed up, and though fully-featured, it lacks the juice I was attempting to squeeze into it. However, it is complete, it is completely functioning, it is significantly more polished than last year’s entry. I am satisfied with what I ended up with.


  • The Foot: Your primary means of walking, to at most 2 tiles away from your current location. WASD works for single-tile movement.
  • The Hand: Your primary means of interacting with things. On campfire, will try to cook food. On trees, will collect stray branches. On hut, will try to sleep.
  • The Fire: Click on an empty space to make a campfire, if you have enough wood.
  • The Boxes: Make a storage area. (Use hand on it to sleep, really not clear, but yes.)
  • The Water-drop: Make a water barrel, which fills up with rainwater. (Use hand on it to drink.)
  • The Spear: Initially gray, clicking on it will try to make a spear (if you have enough wood). With it created, use on water to fish. (Use hand on campfire to eat the fish.)
  • The Axe: Initially gray, clicking on it will try to make an axe (need a lot of wood). With it created, use on trees to cut them down for lots of wood.
  • The Fence: Build undestroyable fences, for aesthetic purposes. (Were initially planned to make safe-camps from mobs.)
  • The Boat: Click on an empty space to make a working area for creating a boat. Use on the boat to transfer provisions and build it further. (Use hand on the boat to see the state of your boat.)
  • The Horizon: Click on your boat with it to set sail and try your luck. (Use the hand on the boat first to see your chances of success. Different amounts of provisions will have different results.)

Notice: The game is quite unbalanced at the beginning, although with good cause. Starting out, you need to get a few things as fast as possible: a water barrel, a fire and a spear, possibly in that order. Failure to get one of those soon enough could lead to being too hungry/thirsty to make it/build it in order to satisfy your hunger/thirst, in a vicious cycle. At that point, there’s no choice but to restart the game, sadly.

Comments and criticisms are appreciated!


13 thoughts on “SurvivorRL – Success!”

  1. i enjoyed it , for a 7drl i think it’s nearly perfect, quiet repetitive/ simple .. it’s made in 7 days so i understand.. but yeah…a bit more work on it could make it into a very entertaining game. Good work , hope you’ll keep updating this ^^_

  2. Nice game. 🙂 However, you forgot to include the noise function in the source. Could you upload it somewhere please? I also use Perlin noise for map generation and it doesn’t look nearly as well. 🙁

      1. That was a brilliant idea for island generation, thanks a lot. 😀 (though I failed miserably even in copying bell curve generation from your code, but it’s the idea that matters)

        One last question – how do you generate the trees? I’m staring at the relevant line, but I cannot even begin to fathom when it’s supposed to decide to jot down a tree. Any help?

        1. If it’s over a certain height (quite high), AND if a random perlin function at that point (different from the one used for the heights) is also quite high (so trees aren’t literally everywhere the height is high enough), then place a tree. Very simple, leads to nice grouping for forests!

  3. Found it a little frustrating that you can’t tell if you have enough wood for something. I kept trying to build the water barrel but didn’t get any feedback so I wasn’t sure if it was broke or I didn’t have enough wood for the longest time (think i eventually worked out that you need about 120 wood or thereabouts)

    The general theme of surviving day to day was nice though and one i enjoy seeing explored. There’s something cathartic about finding a ‘daily routine’ sometimes which is half the joy of games like Persona 3 and co.

  4. Can you ever actually leave the island? I’ve got over 25,000 wood and 25,000 food but still not sea-worthy.

    Also, the player probably shouldn’t be allowed to build fires and stuff on the water.

    1. You can. Use the boat building tool on the boat itself to move provisions to the ship itself. Should have made that clearer, or made it depend on your current stocks. Oh well.

      And yes, that’s a bug. Didn’t even cross my mind, oops.

  5. Also, you did TrapRL last year right? Why do you consider SurvivorRL to be “sig­nif­i­cantly more pol­ished than last year’s entry”? I quite liked TrapRL. It didn’t have the graphics SurvivorRL has, but I think it had far more gameplay.

    1. I did. It’s more polished from a back-end perspective. Less hacked-together Python code, and more properly-designed C++ code, with no real engine bugs (besides me forgetting to set the window to non-resizeable). From a gameplay perspective, yeah, this game is incomplete, and thus unpolished.

      You might be happy to know I’m remaking TrapRL in C++ then! (Without the unavoidable/unpredictable traps, even!)

  6. I managed to compile and run this on mac.
    So a few comments:
    INTMAX seems to be ms specific. If you want to do it C++ way, it’s better to use std::numeric_limits from header.
    Like this:
    int val=std::numeric_limits::max();

    In C++ you should use const char* for static strings.”something” works in your code solely because of strings pooling. Depending on compile options this might not work. Use std::string to store and compare strings.

    According to standard function abs takes int and returns int. The fact that it works with floats in ms compiler is a fluke. Use fabs if you meant floating point absolute value.

    About gameplay: it’s pretty neat attempt, fisheye view is awesome! As for survival – you basically need to start gathering food. Once you have food, water and campfire, it feels a little tedious to gather more and more wood and food. Cutting trees with axe doesn’t seems to be productive, as you need to go farther and farther. You gain 200 wood by collecting it with hands infinitely from the same bush and only 250 wood from cutting it permanently, and spending approximately the same amount of hunger for both activities. All in all the game really lacks variety. But still it’s a nice game to win 🙂

    1. Thanks for the feedback!

      I have literally no experience with making code cross-platform compatible, so it’s good to find out at least a few things I’m doing wrong in that regard. I’ll try my best to make my code compatible in the future.

Leave a Reply