Labyrinth: a hack-and-slash with a shifting map

Alright, this is a big post, update 12:

This is both a summary of recent progress made and of the overall state of the game.

I added a lot to the item / weapon system; items now have a cooldown before they can be re-used, and there are now some more projectile weapons, such as this shotgun with some nice particle effects:

In preparation for the release of a playable demo, I’ve worked some on enemy AI; while there is only one land-based enemy right now, the code and setup that I’ve made progress on will be easily extensible so I can make some new enemies pretty quickly.

The enemy behavior is now getting a little better. Enemies typically ‘walk’ towards the player, but will detect pitfalls and jump over them:

Internally, this is done through the use of some extra ‘sensor’ colliders attached to the enemy collection: these colliders are triggers which track the number of tiles overlapping them. When the enemy detects that the sensor it’s moving in alignment with is not in contact with any tiles, it assumes that there is an upcoming pitfall and leaps forward. Of course, if there isn’t any further ledge for the enemy to reach, it’ll just fall into the abyss / lava; I’m going to alter enemy behavior and add some more sensors so that the enemy turns around and moves back and forth if it’s on an isolated platform.

Debug physics with the ‘sensor’ colliders shown under the enemy:

General layout of the enemy collection:

Overall, I’m really happy with how the game’s progressed so far; the map / room setup has worked pretty well so far, and enemy AI and weapons have advanced to the point where gameplay is finally becoming challenging and enjoyable. I’ll have a demo out soon.

8 Likes

Quick little post before the demo release tomorrow.

The game isn’t anywhere near a version 1.0 release yet, but it’s becoming less of a proof of a concept and more of a game so it’s time for a playable demo.

The AI on the enemies has been improved; enemies now keep their distance from each other as to not overlap:

Falling into a pit and into lava now both inflict damage on the player and reposition the player at the spot that they entered the room from:

For the demo tomorrow, I’m going to make some more rooms since there aren’t that many as of right now, and I’m going to make enemies occasionally drop items upon death. The player will start out with a limited inventory and have to explore to collect better items.

6 Likes

Brilliant! I’m really looking forward to testing Labyrinth!

2 Likes

The first playable demo of Labyrinth is available! Builds are included for OS X and Windows, for the time being I have shifted focus away from mobile support and on to core functionality so there are no mobile builds.

Here’s the link to it.

Sample of some gameplay from the demo:

I’d love to hear any feedback you have about the game so far; even if it’s just a little thing you noticed, any constructive criticism would be helpful!

3 Likes

Cool! I gave it a try on OSX, and here are some observations:

  • There are sometimes some horizontal gaps between tiles when window is resized (see attached screenshot)
  • There are sometimes some horizontal gaps between tiles when transitioning to a new room (visible even without resizing the window)
  • I managed to get some permanent flying ability (see attached screenshot)
  • The shotgun felt like the most powerful weapon
  • I want a minimap!

2 Likes

I see same problem - do you have extruded borders on in your atlas/tilesource? Or is an odd number placement issue? Is the orange color your clear color?

Those background tiles are too similar to the foreground tiles imo - they look like they are platforms but are not. Made a solid color ones that doesn’t have the soil on top - or use a slightly lighter color than the color which makes up the majority of those tiles? The solid color version may not be as pretty but it may do a better job of saying that it’s not something you can land on.

Maybe make inventory auto close after a few seconds of it being open and not being interacted with?

I was able to get the permanent flying glitch too, and it makes the character permanently flat if on the ground. Looks like flag glitch related to ladders and screen transitions maybe?

If player is not moving, and mobs can’t possibly reach the player maybe make them go into idle wander mode instead of forever chasing.

You should change the landing bounce animation intensity based on height fallen.

When shooting a bow, because your player gets pushed back too, you can’t tell that the bow also has an animation - unless your back is against a wall - I’d make the movement of the bow greater than the distance the player is pushed back.

Add double jump, wall jump, and wall slide? Make jump height based on time held down? If you add wall jump / wall slide / double jump I’d remove a majority of the vines. It’s more fun to jump around than climb.

Consider adding maybe a swirling “spawning in progress” animation for where enemies will appear.

Screen transition is a little jarring for me.

Got another example of the graphic problem - this looks like texture bleeding to me?

4 Likes

Screen transition is a little jarring for me.

The screen transition felt odd for me also.

Add […] a wall jump […]. It’s more fun to jump around than climb.

I think this would be a huge improvement to the gameplay, it just felt like you should be able to jump on walls to traverse some of the rooms.

Maybe the mobs should spawn when you enter the room? And not when you get to the middle. I jumped into the mobs as they spawned a lot, and felt tricked by the game for lying/not giving me the info.

The weapons needs number tweaking.

I also noticed a bug where if a monster fell down a hole it didn’t die, so the room stayed locked.

The tile error is very visible (on mac) and makes it a bit hard to play, it happens every time the camera is changed/shaken.

4 Likes

Thanks for the thorough report everyone!

The tile issue and fly glitch are known issues - if a player transitions between two rooms through vines, sometimes this can happen. I’m working on a fix for this, it depends on the order that trigger_response messages get sent relative to some other events happening.

For a while I thought tile error was just a spacing issue since I’m not using a tilemap for certain reasons, as soon as @pkeod mentioned the thing about the clear color I realized that the issue is texture bleeding, like he suggested. I should be able to fix that in the atlas.

The weapons definitely need some power adjustments - the shotgun is heavily overpowered, as is the staff if used properly.

As far as room transitions, I’ll take a look at that. Is it the transition type, or the speed that seems odd?

3 Likes

I like the idea with the less colorful tiles for the background - when I get through a couple things that I need to fix and implement I’ll see if I can get something like that set up.

3 Likes

After being inactive for a little while, I’m finally back at development of Labyrinth! Update 13:


Bugfixes

Still trying to figure out a better way to do room transitions. Defold 1.2.82 has some optimizations that greatly improve the engine’s performance, preventing the stutter that might have been unsightly in room transitions. The transition curve might need some tweaking.

The odd lines rendering between tiles are fixed now; I’m still working on the fly glitch, I found the cause for it and it requires some modifications to the map / room-loading system.


Features

I’ve been experimenting with a little minimap that procedurally generates tile textures from room data and displays rooms as they’re discovered:

The minimap is normally minimized into the top-right corner and is toggled into a full-screen mode via the ‘M’ key:

When minimized, all of the minimap tiles outside of a 5-by-5 square around the player fade away to keep the UI free of clutter.


Overall, I haven’t gotten too much done since the last update; I wasn’t able to put that much time towards development as I’ve had to focus on other things. In the near future the pace of progress should pick back up though.

4 Likes

Tab is a common key for mini map toggles too.

3 Likes

Good point! I’ll set that up in the keybinding.

1 Like

Thank you for the update! I’m looking forward to testing the next version!

2 Likes

Alright, I think I fixed the vine climbing / fly glitch - anyone want to try it out and confirm that?

To trigger the bug, go up and down between rooms by climbing the vines, and pop back and forth between them quickly. I tried to trigger it after I applied the fix, and it doesn’t seem to be happening anymore.

Builds for Windows and OS X are available here.

4 Likes

I was still able to get the infinite flying bug to occur. I spammed going back and forth between screens very quickly while on a rope.

2 Likes

Yikes. I’ll make some changes to the colliders and see if that helps.

1 Like

What is your main character dimensions? Is it 4x6 pixels?

1 Like

Yup! Pixel art is really low-res in Labyrinth.

Then i think you should change physics scale from 0.02 to 0.33 ( 2 meters / 6 pixels). That may be the source of “fly bug”.

1 Like

Nice! The game is improving! I wasn’t able to reproduce the flying bug anymore. But the game is hard, at least when played using a keyboard. I think I would have preferred to jump on another key than currently assigned one.

3 Likes