[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)