8
10 Comments

The tools I used to make my .io game?

@Keuxdi asked me what tools I used to make golfroyale.io

  • VSCode for IDE
  • NodeJS for web/game servers
  • ES6 vanilla JS converted to ES5 for front-end
  • Lit Element/Lit HTML for making HTML components
  • PostgreSQL for DB
  • Cloudflare as CDN/Cache
  • Docker/Dockerhub to make my deploy images
  • BabylonJS as the rendering framework
  • Sentry for client-side bug reports
  • Uptime Robot for server down notifications
  • Let's Encrypt for SSL
  • Discord for community management
  • Google analytics for stats
  • AdInPlay for banner/video ads
  • Socket.io to do the game networking

Would I change anything about this stack if I did it again?

Socket.io - I had scaling problems, memory leaks, and disconnect problems with it at scale. The reason I picked it is the API is so easy to use, which it is, but if I did it again I would probably look at using uWebSockets

Some key takeaways about game/cloud projects in general.

  • Solve the problem using the solution that is suitable for the number of customers you currently have.
  • Expect to grow and change your stack as you get more customers.
  • Prefer faster solutions, even if they are temporary because velocity helps motivation and getting a change in front of your customers and getting their thoughts is what matters are the end of the day.
  • A lot of times good enough is good enough.

Where did I run all my stuff?

Gameservers + Webserver + Object Storage + Managed DB on Digital Ocean
Cloudflare for CDN/caching

posted to Icon for group Developers
Developers
on May 28, 2020
  1. 2

    That's pretty cool!

    I also worked on a .io game before the company went bakrupt, which has very demanding real-time networking requirmenets. We used https://github.com/websockets/ws with Protobuf serialization (we were in the process of switching to the flatbuffers as the serialization/deserialization of Protobuf messages was pretty slow and generated garbage). Rendering is done using Pixi.js and some custom WebGL for rendering the lines (dynamic geometry).

    Let me know if you have any questions about scaling, WebGL performance, game design, ads or anything related to .io games.

    1. 2

      I am intending to start working on .io games but just wanted to ask is it still a profitable niche now? There's a .io game out there for every single idea and I would say its oversaturated. Do you think it's still possible to build self sustaining games that can atleast generate enough revenue considering time sunk in it?

      1. 1

        Hi Erbium,

        Sorry for the late response, I just noticed your message.

        I don't think .io games were ever profitable, or a niche. There were always hundreds or thousands of .io games, but only the top 1-10 were actually make decent money.

        This is the same as any other business, you need to find a niche, but also a way to market it and reach your audience. And also make sure you have a good way of monetizing it, ads only work if you have huge amounts of traffic.

    2. 1

      Very nice UI and presentation, I wish I could do that. As for the tech and scaling. Yeah, if I did it all again I would use something different for the networking for sure. I did a tonne of perf optimisation to get my game running okay on a chomebook because I assumed (correctly it turned out) that the hardware profile of users playing these web games is basically they play on weak or old machines.

      I see you guys use AdInPlay too, they've been pretty good to deal with for me.

      How did your .io game go once it launched, did it get much attention? Obviously the company went bankrupt, but did anyone play the game much when you put it out into the wild?

      1. 1

        The game is a new version of an existing franchise (CurveFever), so we already had a player base.

        We have an in-game monetization system and didn't plan to add ads to the game, but when the company died we had to add them in order for the game to sustain itself (pay for the servers).

        The game grew very slowly over time, but not fast enough. It's funny that now when the COVID pandemic started there was a huge player influx for a few weeks, I think the game had like 2k concurrent users at some point. If this happend before the company went bakrupt, the business would have survived I think. When we had to close the company the game had around 200k MAU I think.

        The problem with the game was targeting the wrong audience and also that the actual player base which were mostly kids in school whplay IO games. can't really pay for in-game stuff.

        1. 2

          Yeah, in regards to audience, same here. I talk to my players directly in our Discord, they are nearly all school kids haha. 2K CCU, nice!

  2. 1

    That's very impressive you didn't use any game engine or framework. It's probably easier to customize and get performance out of more vanilla libraries I'm guessing. Good job!

    1. 1

      He said he did use BabylonJS for rendering. For .io games it's usually easier and more performant to just use JavaScript (TypeScript) if you know how to code.

      1. 1

        You're right, for some reason I though Babylon was super low level graphics but it looks like it kind of has everything (I was comparing in my head to something like phaser.io). I've only used javascript for "normal" web dev so I wouldn't even know how to begin using it for a game.

        1. 1

          Games are pretty simple, you just have a canvas where you display images and update them usually at 60 FPS, so you have a loop running in which you check player input and update position of objects on screen and that's mostly it 😅

Trending on Indie Hackers
I spent $0 on marketing and got 1,200 website visitors - Here's my exact playbook User Avatar 58 comments Veo 3.1 vs Sora 2: AI Video Generation in 2025 🎬🤖 User Avatar 27 comments Codenhack Beta — Full Access + Referral User Avatar 21 comments I built eSIMKitStore — helping travelers stay online with instant QR-based eSIMs 🌍 User Avatar 20 comments 🚀 Get Your Brand Featured on FaceSeek User Avatar 18 comments Day 6 - Slow days as a solo founder User Avatar 16 comments