DEV Community


Discussion on: Help Me (Properly) Open-Source My Vanilla JavaScript Game Engine!

andrewbrown profile image
Andrew Brown 🇨🇦

I was building my own open-source video game a few years ago. Feels like yesterday. Work and babies took hold so I have yet to return to its completion.

I think open-source works when you think "how am I going to build a team who wants to work on this?" Instead of "how do I choose the right technology".

When I built mine it was originally Coffeescript designed to run in the web-browser backed by Rails and then morphed into Typescript with Electron backed by Phoenix (Elixir). I would suggest not to set hard rules.

What helped was having a Discord and doing outreach to social communities about my progress. In short-time I had a team of 7 doing various things where they could to build the game.

It was important to set milestones and then reach those goals and ship them, to create a pattern of trust that the project is going to meet its end goal. If I had no updates for a week people thought the project was dead, over and over again.

If you're building a game with an online component you'll need to ensure the game is deterministic. Anyone who has made any headway with online games knows this truth, and so until you've done so you may have poor quality contributors.

Test code is another large importance. It helps people from stepping on other people's toes.

Documenting how to get the game working end-to-end is the most important.

isalevine profile image
Isa Levine Author

Thank you so much for sharing your experience! It’s a lot of good stuff to digest—I’m sure I’ll keep coming back to this and bugging you again and again… ;)

First question: any recommendations for testing in a vanilla JavaScript frontend? A little poking around indicates that using Jest is the most painless route, but…I like a challenge? Is purely-vanilla-JS testing (at my level) even possible?

Also: for getting the game going end-to-end in different environments, is that something I can easily mock on a single computer with some virtual machines? (The last time I used a virtual machine was trying to get my Windows games onto my first Linux laptop…)

Thanks again Andrew!! :)