3 ms·
A lot of these projects are very serious, make the world a better place kind of thing, which is awesome, so I apologize if my project is more of just a fun thin
by LoveMe2Times 5y ago
A lot of these projects are very serious, make the world a better place kind of thing, which is awesome, so I apologize if my project is more of just a fun thing. With Flash now being EOL, a lot of Flash games are disappearing from the net. While there are existing projects to create an open source Flash player which is good for legacy compatibility, nobody will build new Flash games. So my vision is to create a modern browser based platform that offers a vaguely similar but overall superior experience.
I'm using JavaScript to leverage modern browsers and Node.js to create a platform that makes the creation of online, multiplayer games easy. It is comprised of a few different interesting sub-projects like an async streaming library and my own rendering/templating library (which I know will annoy some people for not using an existing framework).
Right now it's only a few thousand lines of JavaScript but it's complicated due to a large number of moving pieces. Also, I'm using things that require the very latest browsers and Node versions to make life easier, like top level await. Getting Node and the browsers to use the same modules is a PITA to set up initially but then reduces effort moving forward. My outlook is we can circle back and address compatibility issues after making a full POC.
There are lots of interesting problems in this space, dealing with concurrency, async, race conditions, consistency, serializing/deserializing cycle detection, and also interesting browser side stuff with the rendering framework.
The future vision is to make Electron/Cordava (or similar) apps and replicate some of the old flash game sites like Kongregate. We will open source the underlying tech, make some of our own games, and then get others to make games and publish on our site.
Anybody who is good with modern async JavaScript can help, and knowledge of XML, HTML, CSS, SVG, Node, WebASM, Electron/Cordova (or similar) is all helpful. I'm open to converting to TypeScript if somebody knows it well, but it's not a priority.
In my estimate, there's a hundred hours of work required to have a solid POC.
If any of this sounds interesting, email is in my profile.
- tomcam 5y agoI may misunderstand your intention, but isn't this well handled by projects such as https://phaser.io/ https://phaser.io/ and https://pixijs.com https://pixijs.com?
- LoveMe2Times 5y agoYou are correct that there are plenty of game engines out there, JS and otherwise, and I am not trying to replicate or compete with that. I would potentially look at offering integrations with them for people who want this kind of sprite based action/platform/shooter game. My focus is more on a distributed compute framework specifically oriented at running online, multiplayer games where the Authoritative Game State is maintained server side and multiple game clients connect via websockets. There is a loosely connected rendering library for building menus, lobbies, chatrooms, deckbuilders, auction houses etc, and potentially the games themselves if SVG is sufficient. The shadow DOM also enables screen sharing, remote viewing and streaming applications (except canvas). This would also be suitable for creating non-gaming applications focused around online collaboration. Sprites, animation, physics, canvas/webgl are out of scope, but it might make sense to pick something and make it the easy/default integration. Hope this clarifies things. Thanks for the comment!
- tomcam 5y agoThat makes a lot of sense. Good luck in this very ambitious undertaking, but I think you’re right: it would serve the needs of many many modern game developers.