Herfi - 3D multiplayer game prototype (PvP)

Hi all :wave:t2:

I’ve created a 3D multiplayer game prototype written in Clojure and ClojureScript :video_game:. Hope you like it!

Demo link: https://herfi.fly.dev
GitHub: https://github.com/ertugrulcetin/herfi

All comments and feedback are welcome!

7 Likes

Hey @ertucetin, I just tried it out. It’s really cool! Can you tell us a little more about it? Which libraries did you use? Was it hard? What are your next plans?

1 Like

Thanks @plexus,

Since I’m not a game developer, it was a bit hard to develop a game for me. It’s a demo/prototype, probably I won’t add anything new to it (This was an experiment). Also, Three.js is not a game engine, so you need to do many things by yourself. I’m considering using PlayCanvas (WebGL game engine) with ClojureScript - this is going to be my new plan.

Clojure part;
Aleph - HTTP server
Manifold - Some async tasks (collecting events from users and putting them into the stream after some logic)
MessagePack (Also in ClojureScript) - Converts your data structures into binary format (so it goes faster back and forth in the WebSocket)
Used Luminus template for creating the backend

ClojureScript part;
Three.js - Graphics
haslett - WebSocket client (uses core.async)
core.async - Some async tasks as well + processing world snaphots + holding world’s state for a couple of secs (a/sliding-buffer 10)
re-frame - Game UI - HUD (Health, mana, skill bar etc)
specter - for fast data structure updates
tilakone - FSM (used for animations)

4 Likes

I tried it out a bit earlier today. Super impressed!

I want to know how I shoot. I was alone in there when I tried it, but just in case. :smile:

Should this maybe be added as a candidate to this request?

Glad you liked it! You can share the link with one of your friends or open the link from another tab could work as well :smiley: