Roguelike Dungeon Game Research Suggestions

Hey Guys,

Been doing some research on this project. Main question is how to build this thing. Using html elements like divs, canvas, webgl? I saw some really nice implementations of this project here on forum. So, I would like to create this thing as a game like interactivity, not just squares like on demo.

So far my thoughts:

  • Use game of life type of algorithm to build the maps

  • Add Redux - to keep the state and functions organized.

  • Use Pixi.js and sprites - to create the walls, player, enemies, items etc.

The last part is the one I’m still considering. What would be the best approach here? I don’t want to waste too much time and code on actual game, rather focus on logic and react. But I’d also like for the game to be enjoyable and elegant to look at. Plain canvas coding is too much bulky, so I’m leaning towards some library/framework to do the heavy lifting here. Any suggestions? I was considering three.js and pixi.js. React will be used to control the state/data and game logic.

Have you looked at using Unity and publishing to the web player?

I know it’s not using JS or the JS frameworks, but it is a wonderful engine to learn if you’re looking to make games.

1 Like

DON’T use Unity if you plan to publish for Web. Their web player is deprecated (not working on Chrome) and their builds for WebGL are far from being good. It’s a great engine but not for Web. If you want to make games for Web use Three.js or Playcanvas for 3d and Phaser for 2d. Od course there are more good frameworks but these 3 will definitely not dissapoint.

1 Like

No, I didnt look into unity because I’m not really into actual game development. I just want to create this project in a nice way, but also with less hassle.

I heard some people complaining about three.js on 2D and that it makes it harder to code, rather than using plain 2d libraries. So, I guess I will go with Pixi.js… Thanks for Phaser. I will look into it as well…

Yeah like I said Three.js and Playcanvas are for 3d. You can do 2d but it can be problematic. For 2d Pixi would be ok but AFAIR it doesn’t have physics and collisions included in the engine. Phaser has everything you need so it’s more complementary

1 Like

There are a few options if are planning on doing it in 3d…

Unity does allow for publishing to the browser as it now supports export to WebGL (withhout the need for the now defunct Unity Web Player). However, as others mentioned, there are some downsides to Unity for the web. Unity compiles from its native code down to javascript, so there is a degree of bloat there. Also, last time I looked the webgl player does not work for mobile which for me would be a show stopper. I can’t see any point in developing a browser based experience which is not mobile friendly. I’d rather build just build a native game for Steam, or make a more lightweight experience that does play on mobile. Finally, I can’t image its going to play nicely with existing js frameworks like React that you may wish to use - its all about making it in Unity and then exporting the whole package.

Another option is PlayCanvas, which as the advantage of being written in pure Javascript. You can actually download the whole open source engine and use it to write a browser game… However, if you want to take advantage of the game editor (which is really the thing’s raison d’être ) you will need to subscribe and either host your projects on their servers or pay £15.00 to have access to the export option where you have the option of exporting your project and self-hosting. It actually looks quite good as an engine but I’ve personally been a bit turned-off because I hate the idea of having my work tied to a subscription package. Something to consider though…

A final option is Three.js, a fully open-source javascipt library. It can be integrated quite nicely with React, jQuery, Webpack etc. and there are loads of other libraries available to expand its (functionality such as ThreeX). It does require more hand coding, and there isn’t a fully fledged commercial game editor (though this online tool is a starting point… https://threejs.org/editor/). I like it personally because it has quite a lot of features but is only one level of abstraction above writing straight webgl code…

There is a Javascript library specifically for 2D Roguelike games called rot.js It’s very comprehensive.