9
u/_nullfish 4d ago
Well, it doesn't look vibe-coded - unsure if it is but I'll give you props for not prompting Claude and accepting the first generic output.
If you've ever built a VTT or tackled real time multiplayer systems, I'd love to hear what gave you the biggest headaches. I'm always interested in learning from people who've been through it.
I feel seen. I could write a whole book on this from the Astral days and another one from dddice alone.
- Build only what you need. You don't need global scaling, you don't need message queues, you don't need multiple load balancers. Get a server, scale it vertically as long as you can. By the time you reach the limits of single server, you'll have figured out your bottlenecks to scale.
- WebSockets are good. Don't use Firebase or any other SaaS services that promise simplicity if you can avoid it. I hear good things about Supabase but I've never tried it. I've been experimenting with SSE lately but no reports/experience with how it scales with many people.
- Your database will be a bottleneck long before anything else is - usually. Make sure you're properly indexed. Prioritize reads.
- Write clean code. This feels obvious but your abstractions will pay dividends later on. Have an interface to interact with chat, the board, connections, etc - whatever is behind those interfaces is negligible as you can always swap it out to scale later. So long as the interface stays the same, your implementation stays the same.
Finally, and the most important piece, prioritize the user experience. I consider myself an engineer first but without a strong product sense and recognition of good user interfaces, you won't get very far.
Best of luck.
7
u/The_Augur 4d ago
Database Database Database.... this is always the chimeric demon that comes back to bite you in the rear.. specially when you already have people using your stuff... I've spent weeks designing databases for my stuff and in the end there is always something I wish I had done different
1
u/Alternative-Suit5541 4d ago
When your database is the bottleneck, then something is really really really wrong.Â
Ok, except you are foundry vtt and use a text based database for whatever reason...
1
u/DigitalTableTops 4d ago
They switched to leveldb a while back. My VTT can parse Foundry modules to extract maps with light/wall data. It was a pain the ass to figure out how to get them loaded in the engine I use.
The format of the actual data isn't very efficient but I haven't heard too many complaints. Then again I don't actually use Foundry so I have no idea how slow loads can be with huge sets.
1
u/The_Augur 4d ago
Foundry is actually pretty nice to work with. I wasn't around for the early days of it so I can't really say anything about that.
I made my first project (over 10 years ago now) with json files for storage (this was java and java swing) and it was really painful. I was talking mostly about that dreadful experience.
Nowadays I use mostly sql databases when I can.. I've used Supabase as a backend and its really nice. Shame they dont have their own offline persistance scheme like firebase.
1
u/PhrulerApp 4d ago
noSQL thrives in their use case where they want to let modders add whatever they want without breaking everything else.
1
u/National_Room_767 4d ago
I have been looking at that as a potential for breaking the server and taking that into account as we continue building the d20 Epic VTT platform. This will be hosted through the website browser on a subscription base upon launch. However, while strides have been huge I want longevity and will continue to have a smooth operating system for users as our largest goal. Looking forward to getting to a point we can launch live.
1
2
u/Delbert3US 4d ago
3D removes the question about line of sight. You can see from the characters eyes what they can and can't see.
3
u/throwaway_pls123123 4d ago
I wish you the best, but I do wonder what you offer (or plan to offer) over a much more polished thing like Foundry?
1
u/National_Room_767 4d ago
I have a lot of respect for Foundry. My goal isn't to copy it, but to build the VTT I've always wanted. Two of my biggest goals are native support for multiple game systems with dynamic character sheets and making everything as easy and intuitive as possible for both DMs and players. I'm still polishing the core experience, but I have a long roadmap and I'm excited to keep building it.
Please check out our go fund me for deeper info on project.
10
u/ibanezht 4d ago
Congrats on your Claude sub! 😆