Show HN: I built an indie, browser-based MMORPG I've been working on an MMORPG that is now in alpha as a solo developer. Here are the major open source technologies that I use: Blender - 3D modeling software for creating the overall environment and every game object. I've gotten a lot of CC and Public Domain assets from https://poly.pizza GLTF - I export assets from blender to the GLTF asset format JSON - I write a JSON config for every game object that describes things like its name, its interactions, its collisions, etc. Node.js exporter - I iterate over the environment and every asset to create a scene hierarchy. I use gltf-transform for processing all GLTF files, compressing them, removing redundancies, etc. Node.js server - Uses express and socket.io to process game state updates. It keeps track of every client's game state and issues delta's at each game tick (currently 600ms). The client can send interactions with different objects. The server validates those and updates the game state accordingly. HTML/CSS/JavaScript/Three.js client - I use regular web technologies for the UI elements and three.js for the 3D rending on the browser. The client is responsible for rending the world state and providing the client with different interactions. All code is written in JavaScript which means less context switching. Performance seems to be good enough, and I figure I can always optimize the server code in C++ if necessary. I am currently running two cheap shared instances but based on my testing, they can likely support about 200 users each. This is a low-poly browser based game so it should be compatible across many devices. The data a user needs to download to play, including all 3d assets, is approximately 2 MB, even though there are hundreds of assets. Overall, it's been a fun project. Web development and open source software have progressed to the point that this is no longer an incredibly difficult feat. I feel like development is going pretty well and in a year or so there will be plenty of good content to play. https://ift.tt/tUEyjVk June 26, 2024 at 11:23PM
Show HN: I built an indie, browser-based MMORPG https://ift.tt/UwDdqIJ
Related Articles
Show HN: ffmpeg-english "capture from /dev/video0 every 1 second to jpg files" https://ift.tt/BIsXDrCShow HN: ffmpeg-english "capture from /dev/video0 every 1 second to jp… Read More
Show HN: I built a website to create financial models for any stock online https://ift.tt/ARYyjbDShow HN: I built a website to create financial models for any stock on… Read More
Show HN: Drivr – VR with real vehicles [video] https://ift.tt/2jCf3yzShow HN: Drivr – VR with real vehicles [video] This project combines V… Read More
Show HN: A Golang CP/M emulator https://ift.tt/4dOt8G0Show HN: A Golang CP/M emulator https://ift.tt/PS8brgl May 18, 2024 at… Read More
Show HN: I built an app that writes your life story https://ift.tt/mj7k9ACShow HN: I built an app that writes your life story https://memoir-app… Read More
Show HN: Schedule SSH Execution of Bash/PowerShell/SQL Scripts https://ift.tt/QjCBXGDShow HN: Schedule SSH Execution of Bash/PowerShell/SQL Scripts https:/… Read More
Show HN: Solafans MPPT Charger Data Query and Home Assistant Integration https://ift.tt/XTo58bnShow HN: Solafans MPPT Charger Data Query and Home Assistant Integrati… Read More
Show HN: Recall Memory – Your Personal Local Time Machine for Mac https://ift.tt/neUmduHShow HN: Recall Memory – Your Personal Local Time Machine for Mac Reca… Read More
0 Comments: