I open-sourced my multiplayer shooter game - Wizard Masters

Hello BabylonJS community!

I’m excited to share that I’ve open-sourced Wizard Masters, a multiplayer battle arena game built using BabylonJS!

About the Game:

Wizard Masters is a fast-paced third-person shooter where players control wizards with different elemental powers. The game features spell-based combat in an immersive 3D environment.

Technical Stack:

  • Frontend: ClojureScript with BabylonJS for rendering and physics

  • Backend: Clojure server handling multiplayer interactions

  • Libraries used: Havok Physics, BabylonJS GUI, Materials, and more

The project demonstrates how BabylonJS can be used to create a complete game experience with features like:

  • Fully 3D environment with physics interactions

  • Particle effects for spells and abilities

  • Custom materials and shaders

  • Multiplayer networking

You can check out the source code on GitHub: GitHub - ertugrulcetin/wizard-masters: Spell based third-person shooter game

I’m looking forward to your feedback and hope this can serve as a reference for others building games with BabylonJS!

19 Likes

Crazy ! :scream:

Maybe you should provide a simpler way to connect to the production server, since many people might have no clue about editing the .cljs

What about having this option in the UI after game starts ?


Anyway, I just gave it a try, I killed I don’t know who exactly, but I had a lot of fun ! :grin:

1 Like

Amazing decision. :sparkles:
Gentlemen, press STAR :star: on this repository. It deserve of it.

2 Likes

Glad you liked it! About prod server, I think it’s pretty easy, just changing if flag to false. (if config/dev? ... => (if false ...

Yup, that’s what I did :slight_smile:

@CodingCrusader you were interested in this project last week, I’m tagging you, you can check the source code.

1 Like

@ertugrulcetin I just want to report an issue :

  • After a fresh page reload (first visit), clicking the screen to join the game, the pointer lock won’t work the first time (and I need to click & drag to rotate camera)
  • If I leave the tab context (for example clicking an other tab) and come back, then I have (again) a “click to join” button, and now only will it lock pointer

Always easy to point out an issue :
→ The rest works FLAWLESSLY :+1: !

1 Like

So cool! And thanks for making it OSS!

1 Like

Thank you for creating BabylonJS!

2 Likes