Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Show HN: DotBigBang – Multiplayer game engine with 120fps and 2 second load time (dotbigbang.com)
269 points by bobbydigitales on Oct 6, 2023 | hide | past | favorite | 121 comments
With all the turmoil in the game engine world recently, I thought I'd quickly post to show progress on our game platform dotbigbang.com.

It's a fully integrated game platform where the multiplayer game editor and games all run on the web. You can make multiplayer games and share them with just a link with no setup at all.

Breakdown of major features here: https://twitter.com/bobbydigitales/status/152647067103481856...

We have comprehensive docs at http://docs.dotbigbang.com and a cosy Discord server at https://dotbigbang.com/discord

All updates are on our blog here: https://blog.dotbigbang.com/



I assumed this would be unusable on my phone, but it actually works great!

And nice work on the load time. Every time a non-photorealistic game takes more than a few seconds to load on my desktop, I get unreasonably annoyed.

Note: I don’t think I’d ever want to really play a first person 3D game on my phone, but it’s fun to see that it would be possible.


Thanks! We work hard to make it work well on all our platforms. I can get 120fps on my Samsung Galaxy S23 on simple games!

Yes FPS can be a bit hard on mobile devices, but a lot of younger players only play e.g. Minecraft on phones!

If you want a 3rd person experience, this is a nice one for an ambient experience: https://dotbigbang.com/game/cab2b545338144d68fb8934801a1cd97...

And this is a good 3rd person game: https://dotbigbang.com/game/567aa34f2ee14adbb2cb1ea87cc65eff...


Honestly, I really enjoyed COD mobile when I played and was pleasantly surprised with the 3D on a phone experience. I’m interested to see what cool and unique things people will make with this :)


Thanks!


Impressive. I like the 3rd person game better. Both runs fair on my pixel 2.


Thanks!


FYI, ran great on an oldish Pixel 5. Nice work.


Great, thanks :)


Oh so awesome!


Thanks!


Hey, I work with bobbydigitales on this (along with a bunch of others) and had a hand in making a lot of the games including Diamond Wars linked here so if anyone has question about gamedev on dot big bang please ask away!

If you’re interested as a developer and want to know how we plan to support you we have this landing page: https://developers.dotbigbang.com/


If Meta was still allowed to buy things, you'd be billionaires. This is pretty much as good as their horizon platform but can actually run on my phone. Good job


Thanks! My DMs and bank account are open :)


How long did it take to build this, and how many people? My brother was interested in game development and I wanted to send him something inspiring, but not "I will never do this in a million years"


It's actually a complete game development platform. The game I posted was made using only the tools available on the website. The game editor is multiplayer and runs in the browser.

Overall it took a long time as it's a complete platform, engine, tools and editors, multiplayer system and website! I do free game dev mentoring though and I can be reached at https://mastodon.gamedev.place/@bobbydigitales


The game that’s linked was built on dot big bang itself by a team of two developers and one artist with occasional help. The total dev time to make it was about six months, a lot of which was spent refining the game and making sure it was super solid as we launched it with a livestream in front of thousands of people!

Games on dot big bang come in a variety of shapes and sizes though. You can make something in a couple of hours or take your time. For some smaller examples:

This fun puzzle game was made by one of our community for our summer game jam: https://dotbigbang.com/game/0c4038a5fe064711ba339b1e1c2bbd74...

We also run a weekly scripting challenge in our Discord for tiny experiments on a theme, here’s a pachinko potion mixing game that got made for one: https://dotbigbang.com/game/69153d59db5b45f3aa4485e8af2dafa1...


This is very cool, but doesn't actually load in two seconds. I would have been really impressed if that part was legitimately true.


Thanks! Load times obviously vary depending on your connection, hardware and so on. I expect two seconds is true for bobbydigitales. We’ll continue to optimise loading though so it’s great for everyone.


I'm on a z flip 3 android device with 500mbps WiFi, and seeing closer to 20 seconds than 2 seconds on all the links shared here.


Thanks for letting us know.


Thanks for testing! Could you try this game: https://dotbigbang.com/game/cab2b545338144d68fb8934801a1cd97...

And could you let me know which browser you're using?


Using Firefox for android.

That link is about 6 seconds for me. Its still quick, but a good chunk off 2 seconds


Thanks for testing and going the info! Firefox is about 40% slower than Chromium-based browsers and Safari for us, we focus on the default browser on each platform so Firefox isn't tested often. Firefox also accounts for about 0.4% of our traffic and their performance analysis tools aren't very deep, so unfortunately it's hard to justify allocating time to improve there.

We also can't load in 2 seconds on any device we can run on. There are obviously some devices that ship Chrome on Android that can load the game, but are incredibly slow. So yes, not always 2 seconds!

Finally, we still have a huge amount of known performance we can gain in our loading, so I do hope I can come back in the future and show that 2 second loading on a lot more devices!


FWIW, I see the same speeds on chrome on the same device .

> We also can't load in 2 seconds on any device we can run on.

Of course, but a 2 year old flagship device I would expect to be closer to your advertised number!

For what it's worth, the 6 second load you shared is about as long as it takes Facebook, linkedin or Airbnb to load. Your numbers are impressive enough that I don't think you need to fluff them. My work UE5 project only gets to a splash screen in 6 seconds on my workstation.


Thanks for testing! I do see around a 2 second load time on my current device (s23) see the video here: https://youtube.com/shorts/OQ8x92hPfkA?si=6ugW-JGSgIVWtqkv

I'll check out the SoC for your phone and see if we have specific problems there, and what we need to optimize, thanks!


Thanks for trying it out! I see a 2 second load time on Chrome on my macbook air on WiFi, what device and browser are you using?


Firefox Android on a Samsung S7. Varying loading times is obviously completely normal. I was just hoping to see an optimization deep dive based on the title here.


Ah interesting! It's great to know what the expectations are! I'll think about doing that in a future post once we've done some more optimization!


Is this after deleting the browser cache?


You should be able to see that loading performance on a "cold load" yes, but it's difficult to account for all network conditions. It's also possible for the multiplayer connection to take a little longer. I think if we messaged that more clearly then it would explain what's happening. We also considered just putting you in the game before you got the multiplayer connection, but that might be a bit jarring when it added all the players and entities in. We should maybe still think about it!

There's also a lot more room for loading optimization, I think we can maybe go 2-5x faster than what we have currently!


I think the https://www.dotbigbang.com/game ‘101 tutorial’ is down?


Looks like https://dotbigbang.com/game (no www) works


Thanks! Where did you get the original link from?


Looks awesome! I worked on Krunker.io a few years back (which had a UGC aspect similar to this), love seeing more people picking up on the < 5s time-to-fun mechanic.


Thanks! Krunker is super awesome! What parts did you work on?


I was employee #1, worked on basically everything that wasn't actual gameplay (core engine, matchmaking/servers, WASM-based anticheat) and left mid-2020. I work with a lot of non-web games nowadays, but I really miss building for web (esp with WebGPU & WebTransport in the mix now).

Hope we cross paths at a conference at some point!


Ah awesome, well well done, it's such an awesome example of what can be done with the web!


Oh, I didn’t know Krunker had a UGC aspect, I need to test this. Super short time-to-fun is really awesome. I’m working on a UGC platform too, and it’s one thing we do consider / try to improve. However, our main point of friction is the sign up process (checking for DOB at least). It’s mandatory when bringing people together (realtime multiplayer), especially with chat features enabled. Has this been considered for Krunker?


> breakdown of major features

This link only shows:

> Now that we released @_dotbigbang_ v0.8, I thought I’d spend a bit of time to go over what we’ve launched so far and what we have left to do before we get close to a 1.0 release! ()

And a single gif. I wouldn't call this a breakdown. It's not really a last or anything.


Hey! Thanks for checking it out. Twitter broke threads for people who aren't signed in sometime this year so unless your signed in, they will only show you the first tweet in a thread. Previously you could use Twitter as a place to post general information like this, but since they broke it I should really move the information somewhere else!


Thanks again for the feedback. We moved this information to our blog now: https://blog.dotbigbang.com/2023/10/10/dot-big-bang-v0-8/


It’s a Twitter thread so the rest of the breakdown is threaded as replies.


They didn't show up for me.


Yeah Twitter has been wonky for a while now.


This is like Roblox, right? What are the differences between the two?


1) You can send a link to anyone and they can play on any device in multiplayer, no install needed.

2) All the tools you need are built in and supported on all platforms (even XBOX!), no separate downloads. Windows, Mac, Linux (including Raspberry Pi), XBOX Series S/X. Android, iOS have a simplified editor.

3) We'll give the majority of revenue to the creator where Roblox take about 86% themselves.


This works on my six year old phone - impressive, considering that more often than not in such cases I don't even get past the loading screen.

I like the architecture - most game engines working in the browser don't use anything resembling ECS, which makes it impossible for me to produce anything but very simple demos.


Thanks, glad it worked for you! We want to make sure it actually works on a broad range of devices! Our lead artist regularly tests on his Pixel 2 :)


I tried on my pinephone, made it all the way to actually rendering a frame of 3D gameplay then either didn't have working controls or froze. And I expected it to crash the browser (firefox). So well done!


Thanks! In our testing, Firefox is about 40% slower than Chromium-based browsers or Safari. Would be interesting to know what the performance was like with Chromium on that device! https://download-chromium.appspot.com/


Diamonds was a good game - last two, opponent heavily outgunning me, he builds a bridge in my direction, runs across it, is sent flying into the blue abyss on a springboard I'd dropped at the same time.

Sadly tho, it's not getting anywhere near a steady frame rate in Firefox on my 4790k @ 3440x1440.


Lol sounds like an epic last play :) In terms of performance, Firefox is about 40% slower than Chromium-based browser or Safari, basically purely in the performance of Spidermonkey. We have tried to optimize on Firefox in the past, however the development tools there make it difficult to determine what the problem might be beyon "everything is slower". For V8 we have the Chromium tracing tools that les us understand where V8 is spending time on potentially unoptimized code, or on megamorphic property access. Finally, unfortunately Firefox is currently used by 1% of our players, so it's hard to find time to improve it.

I would love to know how vanilla Chromium performed on the same machine! https://download-chromium.appspot.com/


The springboard trap is a classic, another fun one is the baseball bat to send people flying. It’s really underrated if you’re behind the upgrade curve.

Performance wise we find Firefox approximately halves the performance sadly, mostly in the speed of execution of the JS code. Both Safari and Chromium based browsers perform significantly better. Games really expose the differences in the various engine implementations because they rely on executing a lot of code all the time. That said we have an enormous amount of head room to optimise the engine so will make progress so it’s less of an issue.


Hey, is the loading screen implemented by the game itself or does dotbigbang measure and provide that? In the latter case, could you make it so it shows progress? Im no web designer but i think its crucial in rather resource-heavy settings and/or the potential of old devices.


Thanks for the feedback, the loading screen should show progress in a bar in the middle of the screen so I’m interested to know what you’re seeing specifically.


There isnt any progress for me on mobile, its just boxes cycling and a loading... text underneath. Perhaps it has something to do with content blocking?? Im not sure.


Thanks, sorry it’s not working properly for you. If you have the time it’d be great to know what device and browser you are using and is there anything non-default about the setup? On desktop it can be hard to account for all the extensions people load into their browsers which tend to cause issues occasionally but usually that’s not so much of a problem on mobile. You could also try loading in incognito.


What’s the stack look like?


It's Python and Go on the backend and TypeScript on the front end :)


The rendering is done entirely in typescript? Very impressive. Great work - I was actually curious about how one could crest something like animal crossing hah


Yes it's all TypeScript and there's still a lot more performance left on the table!


Where do you host your servers ? And why GO? Do you use Three.js ? Thanks


Servers are on AWS and Cloudfront. We started out with three.js for rendering but we froze at 78 and are currently working on rewriting the renderer to not use the scene-graph and instead move to a more data oriented design.


Have you seen the HypeHype renderer talk?


Yep! It's very interesting, but our problem space is a bit different because we can do some optimizations based on our models being voxels. Great stuff though!


Why did you use GO for server side ? did you test with other teach ? Can you share how your server side design of servers looks like ? Do you use simple ec2 or what ?


We went for Go as it's 1) about 100x faster than Python in testing 2) Garbage collected so prevents many memory-related bugs (many of us have a C++ background so we're familiar with manual memory management and its pitfalls) and 3) It's super stable.

We did look at Rust, but Rust suffers from a little bit of the "shiny new thing" syndrome. We have simple needs and wanted something fast and boring :)

The server-side design is also as boring as possible, just standard web stack for serving, and websockets for multiplayer. We use EC2 for everything yep!


ok thanks , do you use GOLANG for the web front end or just backend WS service ? Can you share which GOLANG framework ? or all standard GO std ?


What is written in Python and what in Go and why?


We're moving from Python to Go as we see about a 100x performance improvement for our specific use case. So it's basically old stuff in Python and new stuff in Go :)


Beauty back and forth you mean.

Web assembly? Pricing?

Typo: Web assembly


I don't know if this is a question! If it is, I don't understand, I'm sorry!


Yes, it is a question whether the stack includes Web assembly? Also, is there a pricing or business model for the platform/engine?


We do use some WASM yes and intend to use more in the future, but the majority of the engine is still TypeScript compiled to Javascript.

The pricing model is not yet announced, but it'll be a rev share between the creator of the game and us. More info here: https://developers.dotbigbang.com/


Regarding the platform, I read the landing page for developers. I see a lot of good intentions. But how do you back it up? What guarantees do you provide for developers not to get vendor locked with you, at your mercy?


We are first and foremost a platform and as such the success of developers on it is our success. It doesn’t make sense for us to act in a way that’s against the interests of our third-party developers. I personally think the Unity fiasco and developer dissatisfaction towards Roblox strongly shows the problems a company out of touch with that can manifest.

That said we can only back up our good intentions with actions. Right now the strongest thing I can point to is our terms of service which explicitly make sure you retain ownership of anything you build on dot big bang.

We’re at an early stage with monetization and will have more concrete guarantees published in the near future. The aim there is to be fair and explicit. Particularly in comparison to other platforms.

In terms of vendor lock in we do intend to make it easy to bring your assets off the platform. This is currently quite easy with scripts but we will be allowing people to export models as well in the near term. We’ve also talked about providing the means to export games wholesale so you could build a game on dot big bang and sell it on Steam etc. How that would all work is very much a work in progress. More good intentions I know but we are a small team with a broad scope building as fast as we can! We’re all long tenured game developers and recognise these concerns as they have often been our own!

If you have specific projects, ideas and what not you’d like to chat about we’d love to hear from you directly.


Just adding on to this, I have a work-in-progress GLTF exporter that enables you to export your game level from dot big bang into Godot(https://bobbydigitales.github.io/twitter/data/tweets_media/1...), Unreal Engine 5 (https://bobbydigitales.github.io/twitter/data/tweets_media/1...) Unity (https://bobbydigitales.github.io/twitter/data/tweets_media/1...) and Blender (https://bobbydigitales.github.io/twitter/data/tweets_media/1...)

It's nice because all the game entities end up being separate entities in the destination tools, so you can rearrange and move things around vs it just being a monolithic blob.

I would like to consider open sourcing the engine at some point in the future, at least for single-player games, but my view is that with a small team, we have to make the engine excellent and the platform successful before we do that.


The quickstart and such have links to https://www.dotbigbang.com which is showing me a SSL_ERROR_NO_CYPHER_OVERLAP on Firefox 117.


Thanks for reporting, we have a fix for this that will be rolling out soon!


Thank you for letting us know we’ll get that fixed!


This is very impressive, especially this working well on mobile! One suggestion, if it isn't already possible (maybe it is if you have an account), would be configurable keybinds. I'm using a wonky split ergonomic keyboard and the space bar is on the right side, so I can't do WASD + space + mouse at the same time.


Thanks!, This really is something we just haven't got to. I'm adding a task right now for it!


Thanks, I develop on a Kinesis keyboard so know your pain, some games support using ‘v’ to jump but will check if that’s the case and get it fixed if not. Abstracting our input api to allow the setup of keybindings at the platform level is on our list of things to do!


This is so cool! Though, how do you ensure that people are playing fair? When I dabbled in web-based games a year ago, I noticed that it's pretty difficult to have a good anti-cheat system for games that runs on browsers.


For a lot of types of games (e.g. social, creative, silly fun) it doesn't matter. For those where it does you have to run servers that you control and write server-authoritative code.

You have to assume clients are hacked whenever you're writing competitive games anyway, so there's not much difference there.


Fair enough, I guess it doesn't really matter if someone hacks a drawing/building game. But people love competitive games.

I guess you can prevent most overt hacks through server-side validation. But still, that doesn't stop more sophisticated users from creating and using subtler hacks (such as aimbots).


Yep! Cheating and combating cheating is a never-ending arms race! You can use heuristics on the server to try and detect suspect behavior, but the issue is that the very best players can be very difficult to distinguish from cheaters. Even with client-side anti-cheat, you have to have the cheat before you can add the signature to have the client-side search for it and ban the player, so there are no simple solutions unfortunately. (Most of this coming from my previous life working on PC games :) )


Haha, this looks AWESOME. I just played a bit of "Escape Unspeakable" (one of the featured games) and if it's any indication, dotbigbang is going to do very well. Great job! Good luck!


Thanks so much! Yes Escape Unspeakeable is a very silly fun game :)


I made this game so thanks!


http://docs.dotbigbang.com/ gives 403 ERROR The request could not be satisfied.


That's super weird! It's working for me here on wifi and on my cell connection on my phone. Could you try another connection?


Same here, from the Netherlands.

Small print on the error page says:

   Generated by cloudfront (CloudFront)
   Request ID: nu9PuEmZJeaWA8op7PaSfAal0M3IfCzp9mnd04PlxRiSWErx1M4qOw


Thanks for reporting, we're working on it!


Same here. From germany, if that makes any difference.


Thanks for reporting, we'll look into it!


It didn’t matter for me but maybe try https rather than http. On iOS Safari it redirected me to the https url and loaded.



We have a fix for this that will be rolling out soon, thanks!


Their company website: https://controlzee.com/#job-list


Had a really intense battle on my first try, the response time is great and very playable. Great lobby music too. thanks


Awesome, glad you enjoyed it! Those lobbies can get pretty sweaty!


Runs pretty damn smooth on my budget android!


Thanks so much! We work hard to make it run well on lower-spec devices!


This looks very impressive, great work and best of luck with the platform


Thanks so much!


Absolutely blown away. Not sure what I’m looking at but it’s amazing.


Thanks so much! Don't need to know what you're looking at if you like it! :)


Diamond Dropper is actually a lot of fun. Great work.


Thanks! It was a lot of fun to make and it’s really nice to hear from people enjoying it.


Are you the dev of diamond dropper? There's people pulling the old civ 5 unready troll by leaving/entering the circle since it begins a new countdown whenever a player enters/leaves the room queue square


You mean Diamond Wars? That exploit should be fixed and it should prevent the timer restarting when a person the circle has already seen renters it. We’ll investigate and fix it again though! Thanks a lot for letting us know.


Great work Robert!


Thanks!


Wait a second!


Super impressive. Good work!


Thanks!


Love the arcade skin :)


Thanks it's one my favorites too!


It doesn't lock mouse cursor on Safari, making it impossible to play.


Thanks for the report. We'll take a look, Safari pointer lock is sometimes a bit fickle and we have a regression there!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: