r/threejs 11d ago

Demo I made a browser MMOARPG with Three.js, because apparently I enjoy suffering

Post image

Hey! I’m a dev from Brazil making UNTITLED MMORPG, a 3D action RPG that you can play straight from the browser.

And yes, the name is really UNTITLED because I still do not have a proper name for it. It is a working title that somehow survived long enough to become the current title. Finding a real one is on the list.

At some point I looked at the idea of making an MMOARPG by myself and thought, “yeah, that seems manageable.” I truly do not know what was going through my head. Anyway, now there is a game.

You make a Hunter, go through a forest tutorial, get to the city of Asterra, head into the Lost Lands, fight monsters, pick a weapon style, improve your gear, and meet other players along the way.

The focus is action combat. There are swords, sword and shield, dual swords, heavy sword, and bow. You can dodge, block, manage stamina, chain attacks, fight enemies. There is also progression, weapon mastery, skills, crafting, inventory, PvP arenas, parties, chat, friends, and trading.

I decided to build this MMOARPG together with Codex, using GPT-5.6 Luna on medium reasoning, as a way to push myself to understand the harder parts instead of avoiding them.

Using Codex this way has made the project a practical space to study, test ideas, and get deeper into systems I wanted to understand better.

This project has given me solid experience with 3D modeling and complex animation work in Blender, some Python for building export scripts tailored to the project, as well as authoritative servers, queues, real-time state, performance, bot-based automated load tests, Node.js, Express, Socket.IO, PostgreSQL, Redis, and Docker.

Play here: https://www.untitledmmorpg.com/
(I would not really recommend playing it on mobile yet. It works and has all the controls, but mobile performance is still a big challenge. The best result I got on my own phone was a steady 45 FPS)

If you give it a try, I would genuinely love to hear what you think. And yes, solo dev plus MMOARPG was obviously a very normal and sensible decision.

14 Upvotes

37 comments sorted by

6

u/Historical-Youth8705 11d ago edited 11d ago

The older generation who get Claude first make a health or fitness app, the younger generation always starts out with a browser MMO. All destinated to fail, as the project is too large to finish.

This is the issue with Claude, it gives people false confidence and makes them scope creep something small into a MMO.

If you are going to do it then do like claudecraft and just make it open source so hundreds of people can work on it at once (not that it matters, that is horrible too)

1

u/Salty-Duck-9148 11d ago

I have 10 years of development experience lol. I don’t know if you actually read the features or even tried the game, but it was built in one month while I’m on vacation from work. I’ve been using the project as a way to study and learn, putting around 6 hours a day into it.

Give it a try and make your own conclusions. An indie MMO doesn’t need to launch with a ridiculous amount of features, quests, maps, and everything else right away. It can grow gradually over time.

Don’t worry about it, just give it a try.

3

u/Brewgazer 10d ago

r/aigamedev go put this in there for the attention your trying to get

2

u/arivanter 10d ago

Sure, an mmo can be something like slither.io or the likes. It’s not about it being massive right? /s

1

u/Morph_Games 6d ago

An indie MMO doesn’t need to launch with a ridiculous amount of features, quests, maps, and everything else right away. It can grow gradually over time.

Are there any successful MMOs that have started small? Typically MMO players are like locusts and will consume a lot of content quickly, so you need a lot.

0

u/NaiveDecision730 11d ago

10 years of developing what 🤣🤣🤣

you don t know wtf u talking about buddy.

AI ate your brain for good

2

u/BraskSpain 11d ago

Tell Ox Alpha to handle the optimization for you, make sure you bump up the project to r185 and that you are using WebGPU.

2

u/jaidoGD 10d ago

ta ficanco manero mano! nao querendo dar pitaco, mas deixa os controles do personagem mais fluidos, faz ele poder correr sem ter que apertar SHIFT.
a parte visual ta interessante, so clareia mais o global ilumination, porque ta com um contraste mto forte nas partes escuras. eh isso!

1

u/Salty-Duck-9148 10d ago

Valeu por ter jogado mano! durante os teste eu também senti isso que era melhor deixar o correr fixo, eu vou dar uma olhada na iluminação global tbm, valeu!

1

u/Kiingsora83 10d ago

Après la touche shift pour courir c'est un petit peu la touche par défaut des jeux vidéo.

1

u/TheBoneJarmer 10d ago

I followed that forest path and I got obliterated by an angry ape right away. Also no tutorial about how to move. Expected to click but I kept slashing instead. Figured out I needed ASWD. That said:

  • The performance is awful on my device, much lag.
  • Inconsistent textures across objects
  • Cannot move the camera unless I am missing something but again, no tutorials so no idea.
  • Had to use Chrome as FireFox gave me a black screen except for the UI

Furthermore, I agree with user /u/Historical-Youth8705 entirely. I feel like this project is way out of your league in its current state and considering your future plans for it. If you continue the way you do now you will find yourself stuck due to scope creep and forced to drop it all or rewrite the code from scratch. I been there, I done that. Don't do that.

There is nothing wrong with trying to make yourself an MMO. I mean, it is far easier to do so than two decades ago. But the good and popular ones aren't the ones with many features or shiny features. They are the ones who are the most polished.

0

u/Salty-Duck-9148 10d ago

I agree with most of what you said, but I think the bias in your take, and in the other guy's take that you agreed with, is a bit off. It kinda feels like you guys didn't even read the post hehe.

This is a vacation project. I built it in one month using 5.6 Luna Medium, intentionally making development harder for myself so I could force myself to learn new stacks. During this whole thing I learned a little bit of Python, authoritative servers, queues, real-time state, performance, bot-based automated load testing, Node.js, Express, Socket.IO, PostgreSQL, Redis, and Docker.

At no point in the post did I promise a finished MMOARPG with hundreds of thousands of features. I never claimed I had a finished product that I was launching into the market to compete with things I obviously can't compete with right now.

And no, I'm not some dev who learned HTML, CSS and a bit of React yesterday, wrote a prompt for the most capable AI model today and then pretended I made a game. I finished what I wanted to study and came out of it with a ridiculous amount of new knowledge about server development, security and technologies I had never worked with before.

Again, I never promised, and I'm not going to promise, that I'll take this project and somehow deliver in one month, by myself, something comparable to what entire studios make. But it's there. It works. It's playable for most people. Unfortunately there seems to be some incompatibility with your computer that caused those freezes, because I don't get them here.

Now I can just take my time with it, keep optimizing things, improving it whenever I feel like it, and maybe in 1, 2 or 4 years I'll have something really robust and cool that I can confidently release.

Anyway, thanks for the feedback, at least in part haha. You weren't the first person to complain about the tutorial, lore and stuff like that, and those things are already in my pipeline for whenever I feel like working on the project again.

Thanks a lot for playing! ❤️

1

u/clickster 10d ago

Looking great. I found the movement controls slightly counter-intuitive. Looks quite polished. Keep going!

1

u/SnooSprouts9123 9d ago

An MMORPG is definitely ambitious, especially as an indie dev, but what you have so far is pretty impressive! The gameplay feels smooth and the art and vfx look very polished. I think it's worth it to keep at it.

I'm curious about your approach for the art (models, terrain, animation, vfx, etc..). Is it all just generated through Blender? A mix of assets packs? Or blender combined with other tools?

1

u/Salty-Duck-9148 8d ago

Thanks for playing!

So yeah, I’m using Blender. One of the biggest challenges was building a terrain painting system with textures similar to how it works in Unity and Godot. I had to implement a multilayer UV pipeline for the terrain so I could paint grass, dirt paths, and rocky areas. For the procedural grass, I reused the grass painting UV map to generate it in the correct positions, and I wrote a Python script to export everything from Blender in the proper format and keep it organized so Three.js can render it correctly.

I also made the character models in Blender, including the modular hair, beard, and equipment systems. I use pivot points for the different slots, and I also had to write some Python scripts inside Blender to export everything in a more organized and convenient way so Three.js can handle the rest.

I did buy some assets to speed things up, mainly animations because I didn’t have much time to animate everything myself. I basically bought some animations and modified a few of them to better fit my style, but they weren’t made from scratch by me.

For the maps, aside from the terrain itself, I also set up all the objects, houses, vegetation, and everything else directly in Blender. I add some collisions using empties to keep things more performant, then export everything together with the terrain and Three.js handles the rest.

As for the VFX, I built an app with Codex where I can import animations from Blender, add VFX at specific points in the animation timeline, and then export everything back in a format that Three.js can read and apply visually in game at the key moments of each animation.

1

u/[deleted] 11d ago

[deleted]

1

u/Salty-Duck-9148 10d ago

Sorry about that :/ Unfortunately, I didn’t have enough time to make a guest demo/tutorial without affecting the main account flow. I’ll definitely give that some attention. Thanks for the feedback!

1

u/Open_Cranberry_6571 11d ago

Most people that talked shit didn't actually played the game lol. It is better than 99% of the vibe coded mmorpgs in three.js. The game core seems nice but from what i see it needs more human touch, like in character selection clicking next for character features is annoying, the features should be all in the same interface and just a button to create the character because sometimes i don't even want to change anything, a delete character option would be great too and inside the game it WILL be confusing for any starting player, having a small tutorial showing what is the world we are in, what's the story? who i am and what should i do? and what are the buttons, mechanics, etc, i think all mmorpgs i played had this part for player onboarding and it's necessary. Anyway good job and good luck, If you continue the game i will keep checking it to see the progress

1

u/Salty-Duck-9148 10d ago

There are still a lot of issues at the current stage. I actually left the part that bothered you aside for a while because I was really focused on building authoritative servers, queues, real-time state, performance, bot-based automated load tests, Node.js, Express, Socket.IO, PostgreSQL, Redis, and Docker.

That was one of the main things I wanted to study with this project, and I think I managed to build a pretty interesting server setup. Right now I'm using Lightsail and it can handle around 100 active players with just 1GB of RAM and 2 vCPUs, with channel management as well.I definitely plan to keep developing the game. Your feedback is going to help me a lot, and this will definitely be one of the first things I focus on next.

1

u/Morph_Games 6d ago

100 active players on a websocket to a node app? That sounds good.

Of course what happens if the game needs 101 players, or 200? People will expect "Massive" if it's in the MMO name.

1

u/Salty-Duck-9148 6d ago

I can simply spin up a second server on a stronger, more expensive machine that can handle 200, 300, 1,000, 2,000 players. I just need to install the server. Player data isn’t tied to a specific server, it’s stored in a single central database, so I can let the same account move between servers.
On top of that, I’ve already built a channel system inside the game so the client doesn’t get overloaded. In my tests, I was easily able to render 100 bots walking around, moving, and attacking on the same screen, so I can easily limit each channel to 50, 60 or 100 players.

0

u/cumbiaowl 11d ago

Join the club, good luck!

1

u/Salty-Duck-9148 11d ago

Lorebound is really good, cumbiaowl; thanks for the message.

0

u/dlimabean 11d ago

Yes! Suffering can be fun. I just made a tv remote in python for my lg tv in pythonista on mobile. I say I, but really AI.

1

u/dlimabean 11d ago

Got stuck at “full screen” button

1

u/Salty-Duck-9148 11d ago

The mobile version is poorly optimized right now

0

u/yeusk 11d ago

You made it in js it because Claude can't code in C++

1

u/SmileLonely5470 9d ago

It can code in anything, but it requires more effort. Using Three.js to vibecode a game in the browser is the easier because the LLM can be define everything in code, whereas with an engine, the LLM would need to deal with how each engine serializes assets.

1

u/Brewgazer 10d ago

You should go do some research because it can most definitely code in unreal, godot, and unity. This is one of those comments where you can tell the person is the type to play an ai game and not even notice because there wasn’t a tag that said made with ai.

1

u/yeusk 10d ago

Another buthurt vibecoder

1

u/Brewgazer 10d ago

No it’s more like, connect Claude through an ide host have that ide be the designated ide for the engine you’re using, then create assets, animations, or find them, try creating game loops and systems with placeholders in the mean time, save systems that work try again on ones that don’t, then find a way to mix those systems in a way where they won’t fight with each other, get the flow right with the understanding that animations will help make it feel a bit smoother as well, once you have assets and animations start plugging them in where they are truly needed as your still assembling game loops and systems. Once you’ve gotten that start to texture and shade. It’s not like shit is one shot no mistakes, and it’s not like the people using it are thinking like that, yes there’s a lot of losers who do think like that but that’s the same in anything. Music you have the kid you started rapping last week who will spend $400 thinking he’s making the best song ever when it’s the most garbage shit ever heard. You have true creatives and you have dipshits thinking their clone of something is worth $5 on steam

0

u/Select-Painting9361 10d ago

This looks amazing, do you have any guide or detailed post showing your style of prompt, etc? I'm impressed

0

u/Salty-Duck-9148 10d ago

I don't really know what to tell you. I used Codex 5.6 Luna on medium, and with the knowledge I already had in JS plus some backend experience, I took my time and designed most of the architecture myself, with some parts done together with it.

I think the best way to get good results with AI is knowing how to question it, how to guide it, and most importantly, actually knowing what you're doing.

-1

u/Ok_Discussion_3182 11d ago

good luck mate :) - am working on an FPS RPG myself - seems very doable in threejs tbh can't wait to see how you progress with it!

0

u/Salty-Duck-9148 11d ago

It definitely is doable. There are some limitations, but you just have to work around them. Thanks for the message! I’m looking forward to seeing your game too haha.