What's currently the best tech to go with for making a browser game?

I’m honestly a big fan of the Canvas API and have built a small game with it in vanilla JS. If you want to understand how game engines work, go for it!

Ainsley said:
I’m honestly a big fan of the Canvas API and have built a small game with it in vanilla JS. If you want to understand how game engines work, go for it!

Hell yeah canvas API is all you need for 2D stuff. Building a turn-based tactics game as we speak.

Godot exports to web really well.

Alexis said:
Godot exports to web really well.

There was an issue with self-hosting Godot built and exported games, a while back—has that been fixed?

P5.js is super nice.

Go Unity man. Use a game engine.

Kai said:
Go Unity man. Use a game engine.

I approve of using a game engine for people who’s goal is to make a game, but I’m really looking to learn and to get something I can show off to employers.

If you want to make your own engine then just use plain JavaScript. Why do you need a framework?

Love2D works great, love to program in LUA. Btw what’s wrong with a tech being old?

ThreeJS is great but a little hard. It can do both 2D and 3D. PixiJS I think I liked most for strictly 2D.

+1 for Phaser - done a few games with it, it’s great.

Defold. Very small runtime. Exports to HTML5.

Check out zimjs - https://zimjs.com/ pretty simple to get to grips with, and very well documented.

HTML canvas is all you need.

I suggest you try Unity first. It’s not just for browsers, and you can use JavaScript or C#. More benefits than any JavaScript-only engine.

threeJS works actually quite well for 2D as well, with an orthographic camera and ignoring one of the axes.

Take a look at sunflower land. It’s built with x state and it’s fully open source.

It really depends on the type of game you want to build. If you’re building your own engine, canvas & typescript is definitely enough.

I like this one: https://docs.joinplayroom.com/ (if you need multiplayer)

And PixiJS.

I’ve never used it for a game, but I’d look into making it outside the browser and then loading it with webgl/webasm.