[HN Gopher] Show HN: I'm open-sourcing my game engine ___________________________________________________________________ Show HN: I'm open-sourcing my game engine Modd.io is a collaborative game editor that runs in browser. It's kind of like Figma for game dev. We made this engine low-code and multiplayer-first, so developeres can quickly prototype casual multiplayer games. I hope some of you guys will find this useful. Would love to hear feedback also. Thank you. Engine Demo: https://www.modd.io Author : m0dE Score : 152 points Date : 2023-12-20 07:38 UTC (1 days ago) (HTM) web link (github.com) (TXT) w3m dump (github.com) | beeman wrote: | This looks really cool! Thanks for sharing! | Kiro wrote: | I wasn't expecting this to be modd.io when I saw the title. It's | a popular framework/platform for building IO games. | ianlevesque wrote: | I play a lot of games and sold some in the past, but I've never | heard the term. What is an IO game? | 542458 wrote: | I believe it refers to casual multiplayer browser-based | games. | xmprt wrote: | IO game is a catch all term for these types of mechanically | simple, multiplayer, web-based games . The name comes from | the fact that many of these games are hosted on .io domains. | Well known examples are agar.io and slither.io. | deadbabe wrote: | I find that node js based multiplayer backends will eventually | slow to a crawl as the number of connections goes up. How have | you solved this problem? Wouldn't something like Go be a better | alternative here? | johnwheeler wrote: | I don't see why. Connection-wise, the node event would loop | make I/o blocking from the http request / response side a non | issue. I doubt the backend is doing physics heavy stuff for the | front end. | deadbabe wrote: | You must perform physics calculations on the backend if they | are significant features that influence player positions. | | Node also only works off a single core. | johnwheeler wrote: | I see. That makes sense. | nine_k wrote: | Node of course can work on multiple cores, using worker | threads [1]. You can even share large data efficiently | using a SharedArrayBuffer. | | [1]: https://nodejs.org/api/worker_threads.html | moffkalast wrote: | There is still considerable overhead turning things into | buffers and back. Was there ever a good reason given as | to why passing an object to a worker normally has to | convert everything to string and back? It is just so | completely idiotic. | deadbabe wrote: | It isn't trivial to just split up a game into multiple | worker threads and keep everything in sync. With Go, it's | much easier. | holografix wrote: | Can you expand on the low hanging fruit of splitting a | game into multiple goroutines? | | What lends itself well to this? | deadbabe wrote: | goroutines | Kiro wrote: | I get the feeling that the bottleneck in most IO games is the | IO (no pun intended, the genre name comes from the TLD), which | makes Node a good choice. | ahuhz wrote: | Glad to see more open source projects like this out there. | Surprised it has under 100 stars on GitHub. | bitcharmer wrote: | Please don't get it the wrong way, this is genuine question. | Why is under 100 stars on GitHub surprising? | moffkalast wrote: | It's generally correlated with overall popularity would be my | guess? | pkoird wrote: | Perhaps because they just made it public? | johnwheeler wrote: | It is no short feat getting users to adopt your game engine, | especially closed source. How did you manage to do that so well | so far with the gallery of games you have on your site? Are those | just a few friends or is there a pretty active community? | nine_k wrote: | A combination of good capabilities, ease of learning, and low | commitment (casual, a few days or even hours of effort to | meaningful result) can go a long way. Remember Flash. | dimgl wrote: | Impressive project, thanks for sharing! | ianbicking wrote: | I've had some hobby projects that seem like a good fit here. The | low-code and interactive editor make it nice for a hobbyist, even | though I can code... there's a certain concentration I just don't | feel like when I'm doing a hobby project. | | For me personally the thing I've excited about is generating maps | and worlds. It looks like the best way to do this is to export | the game as JSON, programmatically edit it, and then import? | | I'm a little intimidated though... the unedited tutorial world is | 3500 lines of JSON. There's a lot to try to understand there. | | My first idea at how to do that is to make deliberate edits and | see how that changes the JSON (I also need to look up a nice JSON | diff viewer). This will help point to the parts I want to touch. | I'm also guessing I'll do things like collect assets and map | tiles in the interactive editor. | | Is this a reasonable approach? Are there tools to help here? | Phristov wrote: | I'm surprised it's not written in Rust :thinking: | pipeline_peak wrote: | Unless it's as advanced as Unity, is it possible to even sell an | engine these days? | | Something like this is expected to be free | kyleyeats wrote: | With Unity, the trust is gone. I don't think there's ever been | a good time to be in the game engine business but this is | probably the _best_ time. | pkoird wrote: | This is an unfair comparison imo. Just because Dewalt (or | similar) sell a comprehensive toolbox does not mean people | won't pay for a standalone screwdriver. It all depends on what | people feel they need. | pipeline_peak wrote: | I looked at, at least 8 different moddio games. They're all | top down Newgrounds games with painfully obvious | similarities. The only exception was one where you control a | fish. In that one the water splash animation occurred on the | grass leaving me to believe the game was pushing the envelope | of what the engine could do. | | One trick pony engines worked in the 90's because something | like an FPS required rare personnel to develop given the | limited hardware. That's why you'd get weird kids stuff like | Nerf Arena Blast (Unreal 1) and Super 3D Noah's Ark | (Wolfenstein 3D engine). | | There's a world of JS game engines, more advanced, for free | today https://github.com/collections/javascript-game-engines | | Moddio has built in multiplayer server support that seems | pretty intuitive, that's definitely something special. But a | tool that makes Stick RPG clones isn't very profitiable. | holografix wrote: | This is a fantastic project to open source, thank you so much! | I'm going to be pouring over the code during the EOY holidays! | bsdpufferfish wrote: | A sure way to never finish a game is to start by writing an | engine. | | You can absolutely make your own tech but at every step that tech | should be tailored for your project, as opposed just a general | game platform. | nathandaly wrote: | The android app sign up page seems to want me to enter my Google | username and password _inside the app,_ in what _looks like_ a | web form, but as a user I have no way to tell if the app is | snooping on my password. | | It seems like Apps usually navigate away to a sign in, and then | navigate back. Is that pattern hard to implement? Is the issue | about cross platform support? Thanks | posting_mess wrote: | What's your motivation for building a new engine? | | Seems like you've built in some really specific things (from the | README); | | - Weapon system (melee & projectile) | | - Shops | | - Client-side predicted projectile + unit movement | | - ETC | | Why did you decide to bake those into the engine instead of | "copyable" plug-ins? Of course lots of games dont need these | things - is this a game engine? or is this a FPS/RPG/Else game | engine? | | I dont hate on tech, but im still left asking "why"? What's it | for? Why would I use this over "Three.js" and my own server? :) | (I ask only to get your take) ___________________________________________________________________ (page generated 2023-12-21 23:00 UTC)