Ludum Dare 33
The Theme is:
You are the Monster

PlayRate80Star

Judging Ends in
3 weeks of Playing and Rating games!

Posts Tagged ‘roguelike’

Posted by (twitter: @@donpastor82)
Saturday, August 29th, 2015 2:24 pm

I added a not-so-obvious improvement to the post-jam version: audio is now streamed instead of preloaded thanks to the buzz.js library.

This makes the game loading much quicker (as the biggest files were the background music in ogg and mp3 format) and opens the possibility of playing many different tunes without increasing load times.

sstp30

The downside is that with slow connections music might take a few seconds to start, but that doesn’t affect gameplay at all.

Should I keep the music streaming or should I go back to preloading?

Play the jam version HERE or the updated post-jam version HERE

Post-Jam version uploaded

Posted by (twitter: @@donpastor82)
Saturday, August 29th, 2015 10:55 am

Hi! I’ve been working on my entry after the submission date and implementing many of the features suggested by users. While still it is not complete (you’ll find bugs), this is the changelog compared to the original jam entry:

  • Quantity of potions has been reduced.
  • Healing potions nerfed. Now they heal a random amount between 1 and 5 HP.
  • Ascending one floor heals now 15 HP.
  • Implemented FOV (albeit a very simple algorythm).
  • Implemented SPEED (enemies faster than you will deal damage first).
  • Implemented DIAGONALS (smarter enemy movement, ramped up difficulty).
  • Enemies are tied now to certain depths. Ninjas will appear on last two floors.
  • Added Infravision (+1 light radius) and Speed (+1 speed) potions.
  • Added the ability of waiting one turn without moving.
  • Implemented touch controls.
New and shiny version!

New and shiny version!

Still to-do:

  • Proper procedural map generation. Working on it!
  • Mix procedural and hand-created maps. I’d like first map to be the one in the intro. And the last one could be the town over the dungeon. Like in Angband.
  • More different enemy types.
  • Eyecandy: floating numbers, popups, speech bubbles, hit animation.
  • Proper victory and game over screens. Popups are cheap.
  • Proper intro.
  • Different sets of music and tilesets based on depth (mines? underground forest? pirate ship?).
  • Better FOV algorythm.
  • Implementing STATES with cooldown counters, like POISON and BURN.
  • Adding monster abilities (poisonous mist, random laser, autoevade and fury are planned).
  • Of course, adding potions of mutation. Wouldn’t be cool to have several abilities at once?
  • After implementing all of this, balance difficulty. A lot.

And some pro-tips:

  • Don’t let enemies sorround you. You can now be attacked from up to 8 directions first.
  • Use hallways to your advantage.
  • Use skip turn key (S or SPACEBAR) to let foes approach and attack fist.
  • If sorrounded, kill stronger foes first.
  • Before entering a room, evaluate the risks and benefits.
  • If low on HP, run to the stairs! You’ll recover 15 HP.

You can play the post-jam version HERE and the original jam version HERE.

Don’t forget to drop a comment if you liked it!

Speedy update

Posted by (twitter: @@donpastor82)
Thursday, August 27th, 2015 5:56 pm

I’m still working on the post-jam version of Someone stole the Princess!.

So far I have finished implementing the new speed stat. Also added a speed potion (for a grand total of 7 potion types, for now), which adds +1 speed to the player. Speed affects combat, as the speedier character will attack first.

Let’s put the troll as an example: the troll is very strong and has lots of hp, but unless he drinks lots of speed potions he will be hit by enemies before dealing damage.

Another finished feature is different behaviors for enemy types. The ninja, for example, is faster that the player by default and can attack TWICE!!! Luckily for the player that enemy will only appear in the two last floors, where the player should should already be stronger.

Ouch! Ninjas pack a punch now.

Ouch! Ninjas pack a punch now.

Working FOV

Posted by (twitter: @@donpastor82)
Thursday, August 27th, 2015 4:05 pm

I’m working on a post-jam version of my entry.

I already have a working implementation of Field of View algorithm. Of course the extremely rare potions of infravision are in the game too, adding +1 to the player’s view range.

Trolls are short-sighted

It’s a known fact that trolls short-sighted

I’ll post a link to the new version once it is finished.

BTW, I have a question. As I just added touch controls to the new version, would backporting that feature (in order to add an Android version) to the original jam entry be allowed?

Someone stole the Princess! Post-Mortem

Posted by (twitter: @@donpastor82)
Thursday, August 27th, 2015 5:52 am

TL;DR WARNING!!!

 

Let’s code a roguelike. Should be easy, right?

Oh man, I was SO wrong. A roguelike might be one of the most complex game types to code, given the amount of interactions possible between its elements (just take a look at NetHack).

From the start I planned a short dungeon romp (about 10 floors deep) with no inventory screen. The original plan was an icon to appear over the player’s head when stepping over an equipment piece for exchanging gear (with the future difference in stats reflected in the GUI).

Of course, as monster can’t hold much equipment (they are not that intelligent) I wanted to put emphasis on drinking potions. Lots of potions with crazy effects affecting gameplay.

You can see the details in my Super Awesome Design Doc ©

Greatest concept art ever

Greatest concept art ever

The challenges

A roguelike is NOT a realtime game. Monsters move when you press a key, and the game world is divided in tiles (usually square tiles, but not always). Each key press is a “turn” and, as there are many actors involved in a turn, there must be a way of managing everything.

Another obvious challenge is map generation. In roguelikes every game is different. Maps are procedurally generated, as well as item end enemy location.

Other not-so-obvious challenges involve enemy AI (foes should chase you in an intelligent way) and field of view, where only the visited rooms are drawn in the map (strategy players will know this as ‘fog of war’).

What???

What the hell?

How does a turn work?

I designed the turn management (turn-o-matic in my code) as a fixed series of events:

Player movement → Enemy movement → Effects update (poison, burn, etc)

First the game would check what kind of tile the player wants to move towards. Depending on the tile type different actions will be triggered:

  • If it’s a wall, player won’t move.
  • If a potion, player will pick it up and effects will be applied.
  • If an enemy, combat will be triggered.
  • If a closed door, it will be opened.
  • If a ladder, player will climb and map will change.
  • Finally, if it’s floor or an open door, player will move.

Next would be enemy movement. Enemies chase the player when there is a path available. That was accomplished thanks to the EaysStar.js library, that allows asynchronous A* pathfinding in your game.

For EasyStar to work, you must provide an array filled with numbers and tell which tiles are walkable, and the start and destination coordinates. For example:

      var walkablemap = [[0,0,0,0],[0,1,1,0],[0,1,1,0],[0,0,0,0]];
      estar = new EasyStar.js
      estar.setGrid(walkablemap);
      estar.setAcceptableTiles([1]);
      estar.findPath(foe.posX,foe.posY, player.posX, player.posY, function (path) {
          if (path) {
              //if success then move the player
          }
      }

EasyStar returns a “path” array containing all the calculated steps to the target. So for a turn we would take the second element of the array, as the first one is the origin point:

    moveFoe(path[1].x,path[1].y);

As EasyStar wouldn’t let the foe step over a wall, game must only check if the destination tile is an empty tile (in that case the foe move towards that tile) ot the player (then it triggers combat).

As for the effects updating, things like ‘Poison’, ‘Burning’, ‘Weakened’, ‘Silenced’ and such were planned but not implemented, so this part is empty.

What went well

Tileset generation went smoothly. Cosmigo ProMotion, while not very intuitive, is a great tool for making tilesets. I also tried Pyxel Edit and liked it even more, but sadly the outdated free version was full of bugs, like refusing to load half of the tiles when loading a project.

The game flow coding went smoothly. Almost a pseudocode to code direct translation.

The map rendering worked on the first try. While some of the wall tiles are not drawn correctly, it doesn’t affect gameplay. It will be corrected soon (that should count as a bugfix for the entry, right?).

¡Behold this amazing black screen!

¡Behold this amazing black screen!

What went wrong

Map generation. For the map generation I took a look at this code, and while I got it somewhat working, didn’t have time to fully integrate it with my game. This is something I’m looking for in the post-LD version I’m making.
I ended choosing a random map between 20-something premade maps. While not common it is possible to see a repeated map ingame.

Field of view is not implemented at all. Shouldn’t be hard to generate a rogue-style FOV, where the full room is revealed once it’s in the player’s range. I’ll leave that for the post-LD version.

Content and gameplay balancing. Base game took so long to code that I didn’t have time to implement many of the things I planned: different foes with different behaviours appearing at different depths, player abilities, equipment system and, of course, some eye-candy.

Map generation needs work

Ouch! Map generation needs some work.

Thoughts

Just as last LD, this was a really fun experience. While I didn’t enjoy the theme much, I’ve always wanted to code a roguelike. I did not completely succeed, but at least my entry is in a somewhat playable state. I’m fine with that :-)

See you at next Ludum Dare!

You can play my entry HERE. Feedback is welcome.

MiniLD59 – Keith Karnage in the Omega Zone

Posted by
Friday, May 29th, 2015 12:13 am

Here is my MiniLD59 entry.

sprites

 

 

I put in some mouse controls really quick, which seem to work.  I’m not sure why the keyboard input wasn’t working, but it wasn’t working on itch.io either.

Did anyone ever make an archive of all the images.  I downloaded about 60 from the swapShop.  I provided alpha channels for about four of them, mostly because they were really nice, but looked terrible with big white boxes around everything.

 

 

Great LD 32 Games

Posted by
Monday, May 11th, 2015 4:29 pm

I had a really good time with these games.  Ld32 is about to finish, if you still have time don´t forget to rate them. 😉

…………………………………..

B • Scott

by TridecimalJam Entry

x

One of my favourites, it´s a whole short game. Very well programmed and challenging. People say that it’s to hard, I say is as hard as it should.

………………………….

Operation H.A.N.D.s

by The Capitalist CrayfishJam Entry

Strage shoot’em up,: Your weapon is a hand…. with five fingers. It’s a crazy idea, and I love it. The game has the funniest power up I’ve ever seen.

………………………………

Don’t Be Afraid Of The Dark

by RomixalJam Entry

I wasn´t afraid of the dark, but I was afraid of this little red thing up to the right. Play it and you´ll see what I mean. Great game, great mood.

……………………………………

A Knife Made Of Whispers

by ManagoreCompo Entry

A lot of people is speaking about this game, and they are right, it´s a very good one. Great mood, beautiful story, cool aesthetics.

………………………………………..

Eye Rush

by asobi techJam Entry

Hey hey! Fast gameplay, cool music, great gameboy like aesthetics. It´s addicitive, I had a great time with it.

Last Ark Walkthrough (with all embryos saved)

Posted by (twitter: @NuclearNapalm)
Thursday, December 11th, 2014 9:43 pm

Some people asked in comments if it’s really possible to “win” the game and keep all embryos alive? Yes, it is possible. I recorded walkthrough GIF to prove it.

Click to view full-size
Last Ark WalkthroughIt still requires some luck (digging resources, find a star), but still, it is possible :)

TRY TO SAVE ALL EMBRYOS

 LastArk_thumb

Last Ark

Posted by (twitter: @NuclearNapalm)
Sunday, December 7th, 2014 7:05 pm

LastArk_thumb

I didn’t believe that I can do it until this moment! Here is my compo-entry LAST ARK

Roguelike survival about artificial life in deep space after the end of the Earth.

This is a point & click game.
You manage oxygen consumption, energy, health and resources. Your goal is to find a planet suitable for living. When you have landed at the planet – the game is over. So choose wisely. Check planets info to figure out if it’s good or not. The far you travel, the higher chance to find an appropriate planet you have.

LastArk_header

I hope you’ll enjoy it!

Heads up’s what’s up!

Posted by
Sunday, December 7th, 2014 1:36 pm

4

Lot’s of visual progress since my last update!  Got a nice HUD up and running with various useful informations.  Now, though, the thing I’ve been avoiding, which is to make items interact-with-able.  First picking up and dropping, then equipping weapons.  Then I’ll need an enemy.  Then attack.  Then a million other things!  Aaaah!

Finally a bit of progress

Posted by
Saturday, December 6th, 2014 8:24 pm

3

I got stuck with some nasty bugs for several hours right after my last update and ended up bashing my head against them for hours before giving up, deleting several hours of work, and redoing the sections from scratch.  It’s sad and frustrating, but I’ve now got it working so that I have a dude who can walk around, bump into walls, open doors, see around himself, and remember the terrain he’s already been through.  Huzzah!  Now I need items and enemies!  Also I need to decide how I’m going to make this game unique and interesting…

LD31 – Update 2: A New Generation

Posted by
Saturday, December 6th, 2014 10:21 am

2

As claimed in the previous update, my level gen code didn’t take much longer to complete.  I can now generate an interconnected system of rooms and hallways, separated by doors.  Making doors something that can be opened/closed will not be difficult once I actually get a character in and moving around.  That’s the next goal:  Dude and move.  Then doors and vision.  Then we work on stats, enemies, combat, inventories… so much left to do!  But at least I’m already the furthest I’ve ever made it on a rouge-like, so I’ve already succeeded at something great!

You are in a box. It is dark. There is no you.

Posted by
Saturday, December 6th, 2014 8:45 am

1

That is currently the state of my game.  I think you can already see what I’m going for, though:  A single-screen rogue-like!  I’ve always wanted to do a good rogue-like, but never gotten past the planning stages before, so I’m really excited for this one.  Despite the simplicity of this screenshot, I’m actually very close to having full-on level generation up and working – You’ll see within a few hours.

As for pacing – I let myself get a solid five hours of sleep last night since I was wiped out from the week, and have taken a couple breaks for things like food  and stretches so I’m about 6-7 hours into actual development time, split fairly evenly so far between design, research, and actual code time.  Getting to be about 300 lines of code, by raw line count.  More to come soon, I hope

Eureka!

Friday, August 22nd, 2014 8:50 pm

Hi there. Nice to be part of a LudumDare again. Hope all of you’re enjoying this weekend.

My idea is not finalized. Have to go to bed and lucid dreaming about it. Maybe there are possible better ideas for a 48h competition. But here is, what I have so far:

Name of the Game: WhatHappendToBetelgeuse.

Plot: Earth founded a colony at Betelgeuse hundred of years ago. Colonists were traveling via generation spaceship. Successfully they founded a colony. After years contact to Betelgeuse gets lost. What happend. After many years mankind was building a ship with a stardrive engine to be able to look after Betelgeuse and the lost colonists.

Mechanics: Star map is generated randomly. Your ship is starting at earth to reach Betelgeuse. But every turn ship will use power, food and integrity. If you will reach Betelgeuse, you have to visit asteroid fields, plantes and unknown entities on the m,ap to restock your resources and improve the skills of the crew. If there is no food, your crew will loose skill and die after some time. If your energy cells are empty your ship will not move and you’ll loose everything. If integrity is low your ship will use more energy per move and finally will be destroyed.

Thats it so far … here is a rapidly created concept image

Concept

Now I have to sleep. Hopefully I’ll be back at 10am MET for development and livestreaming. Bye and good night!

I don’t know what I’m doing!… kinda

Posted by (twitter: @jeromBD)
Sunday, April 27th, 2014 5:36 pm

Well, this game will not be my best Lumdum Dare attempt: right now, I struggle to add basic roguelike features: inventory, mobs, etc. And I have no idea how to add Line of Sight or Field of Vision with construct 2… I made an effective LoS once with Game Maker 8, but Construct 2 is really different. Anyway, I may finish something playable tomorrow for the Jam.

I use tiles from tilesets made by Derk Yu and others found on the Dwarf Fortress team.

Klondike_screen1wip

I’m starting from scratch

Posted by (twitter: @jeromBD)
Saturday, April 26th, 2014 11:05 am

Well, I spent these last 6 hours working on a idea i liked (controlling dreams & nightmares of a character, his different conscience states, etc.), but the gameplay was really shitty, and I couldn’t improved it  due to my limited skills with construct2… At the end, I started from scratch this afternoon, and now I’m working on a basic roguelike… yes, it’s not very original XD I wanted to create a roguelike since months anyway, and I didn’t have the time to start one, so, afterall, this Ludum Dare is the perfect moment to do it.

I will set the roguelike in a gold mine during the XIXth Klondike Gold Rush. Goals? collect gold nuggets, fight grizzly, avoid ghosts of dead prospector, etc. that kind of silly things.

Graphics will be very basic (ascii tileset probably…).

[cache: storing page]