Dungeon Crawler (prototype)


I am trying to develop dungeon crawler game in defold something like might and magic. Now i have a base prototype that work.

I put sources of prototype on git.So you can use it if want. :grinning:

Now i play all dungeon crawlers that i can find, thinking about my game,
and improve prototype.
If you know cool but not popular dungeon crawler, tell me please.
If you have some advices, or think that prototype should have some feature, please tell me too. :grinning:

On base prototype i mean that it can:

  1. Load map.
  2. Player can move and rotate.
  3. Drawing walls and enemies
  4. Correctly scaled when aspect changed

Loading map.
Map is lua table with cells and some additional data.
Every cell is a table {} with fields(north, south, east, west, other). North and south can’t draw together, because we see only on side at a time. other draw always when cell is visible.

Map can be very big, so i can’t create all sprites when load, because defold have sprite limits. So in scene there are only visible sprites.
To find visible cell i use raycasting, it is not best way, but i have a realy fast raycasting code from Defold raycasting. On my map i can throw 1000 rays per ms(ray len is 20 cells) in browser. On right top corner you can see a map with visible cells.

Player can move and rotate.
It is simple =) Only moving and rotate go.

Drawing walls and enemies
walls and enemies is a sprite that rendered in 3d. I have some problem with them Problem with deep mask buy discard in shader fixed it. I read that if and discard in shader is slow, but for now i don’t have any problens with performance :grinning:

Visible enemies is change their rotation every frame to look on player. I tryed to make a billboard shader, but can’t make it in defold. If some can help me with that shader it will be awesome :grinning:

Game also have a fog shader.

Label in 3d
I can show label like sprites(always looks on player). I don’t know why i make it maybe because i can=)

On left top corner, you can see minimap. It is made in gui.Player is always on center. For finding visble cells, i also use a raycasting.

I tryed to make a skybox with cubemap texture but have, some problems. So now i used a sphere with texture.

I used some assets from community.
1)Rendercam. It is awesone lib to worked with camera.
2)DefOs and mnu. To make a resizer. Screen size "presets" for dmengine
3)Logger .It show line where log is called.And more features.
4)DrawPixels. For debug minimap.
5)Standart geometry. 3d models and textures. Used for stars sky


Might want to add ( movement keys on first wall )


obviously 3D :wink:
As I understand you’re using your C++ raycasting code for this, right?


Only function that cast rays. Graphic is a sprites in 3d world.