Get the top HN stories in your inbox every day.
Cyberdogs7
CGamesPlay
I found it very funny that the "multiplayer game engine" hero video had... 0 players in it.
armanboyaci
I am seeing multi cars in the screenshots, maybe those are controlled by the players :)
TobiasEnholmX
Ambient co-founder here. You're right, thanks for the feedback, we'll update the website with one soon.
nicolaslegland
Regarding that video, stuttering on a travelling content made me tick. Video has a lot of duplicate frames, not in a perfect ratio of the encoded 60Hz.
• Check https://global-uploads.webflow.com/63e51fd138280b42988eb5e6/... in VLC, pause the video then press the "e" key to advance frame by frame.
• Open https://www.youtube.com/watch?v=f_BaT3LDwo8, advance with the "." (dot) key.
neogodless
I was wondering what was going on. I'm sensitive to low refresh rates (my screen is 144Hz, had 2 concussions) but watching that video was nauseating.
franciscop
Exactly, the video shown seems just like a 3d model and the camera going through it, something that could have been done in e.g. Blender with nothing to do with games.
senectus1
the blog post announcing it has a bunch more info and videos https://www.ambient.run/post/introducing-ambient
undefined
undefined
nobu-mori
What are the guarantees about the networking? I saw this in the blog post:
> The server state is automatically synchronized to clients, and the data model is the same on the server and client. This means that in the future you can move your code between backend and frontend, or even run it on both seamlessly.
Different types of games need different types of networking. It seems like it's going to be hard to reason about how to program the game without knowing the constraints and guarantees on the network code.
FredrikNoren
Ambient CPTO here; We're working on expanding the docs on this, here's the GitHub issue: https://github.com/AmbientRun/Ambient/issues/150
whizzter
Not necessarily, emulators has been doing this a while I think and with WASM this is the second impl I'm seeing of this.
Basically, keep a "full" state backlog and ship user control events, if control events arrive late you simulate forward to "now" from the backlog with corrected input.
I've been working on something very similar, gonna comment on the top-level.
raizer88
Unless they are cooperative games giving copies of the server data model to the client inevitably leads to wild cheating. I give you the example of Escape for tarkov, where not only the data model is shared, but the client is authoritative over the server. A beautiful game ruined by the incompetence of the network-side development team.
Hikikomori
Tarkov like most games uses client side prediction with some server side checks on actions, it can be hard to see the difference between a predicted action and client authority, they've been slowly increasing checks over the years as cheat developers finds new things to exploit. Since checks can be costly for performance you don't want to check things you don't have to, so doing it incrementally as you need is ok, for a game that is in a heavy development stage.
Unfortunately they are not doing lazy loading of loose loot and containers (including player/scav), so ESP is extra powerful in this game. But since Tarkov has complex maps there's little point in trying to hide players that are not visible, CSGO and Valorant are the only FPS games that does this but they also have simple and small maps with fewer players. So player-ESP and aimbot will most likely always be possible as long as you can bypass Battleye, so instead of cheaters rushing for loot they can see you might just go and kill you.
whizzter
Giving state isn't the problem, the client being authoritive is the problem.
What I'm describing is so-called rollback based netcode, the server should always keep an canonical state and deviating from it is at a clients peril.
meheleventyone
Yup it relies on two things though, the simulation being deterministic which is easier said than done and the simulation being cheap enough you can replay enough frames to correct the missed inputs without derailing the current frame.
undefined
tormeh
I have to ask: Why not contribute to Bevy instead?
Edit: Ah... I see it's a SaaS startup that wants to offer the servers as a service for game developers. Building on someone else's engine would make the hosting brand weaker.
raincole
Bevy really needs some love. It looks very promising.
But I'm being hypocritical here... knowing I have no time to contribute to Bevy and just hoping someone else to do my job.
tormeh
Bevy had 83 contributors last one month according to github. I wish they had more (more is more), but I think they’ll be fine.
omershapira
Engines need to be high-performance across machines and networks, a challenge in itself, and their maintenance is more complicated than an operating system's. This is an observation based on the current engine and OS market. Why is it bad that they're a SaaS business? What other business models are ok for making game engines?
tormeh
It’s not bad, but it explains the logic.
pjmlp
A game engine for the Web without any usable demo, only a video. Who knows how it came to be.
Being used to most Web productions never coming at the level of Infinity Blade, seeing a video isn't really something that impresses the crowd.
https://www.polygon.com/2013/9/10/4715534/infinity-blade-3-c...
tomcam
Not trying to be rude, but I can’t decipher what you are saying in the second paragraph. Is infinity blade created using the Ambient engine, or does it have deceptive demo videos, or what? Sorry, not trying to be dense.
pjmlp
Besides what the others answered, not only it showed off what was capable on iPhone, it showed what OpenGL ES 3.0 (the WebGL 2.0 foundation) could do.
Most stuff on the Web thus far, with exception of Google Earth and a few ecommerce sites, is closer to Flash 2D games than anything else.
Hence when a game engine advertises itself as WebGPU, I expect a browser demo at the same level as Infinity Blade, Unreal Citadel, or After the Flood graphics, not a video.
anentropic
WebGPU doesn't necessarily mean "in the browser" though
Rust game engines are using it as a library for native games
jnwatson
Infinity Blade was an iOS game released 13 years ago that was among the first to truly show off what you could do in 3d on an iPhone. It was an early killer app.
wlesieutre
Might also be thinking of Epic Citadel which was a related UE3 to WebGL tech demo
https://web.archive.org/web/20140210210113/http://www.unreal...
tomcam
Ah. Thanks much!
timeon
I'm sorry this is not really relevant to your comment, but I think it is important to restate the obvious. Why this page needs to put cookie panel? It takes 1/3 of page. Also there is just 'I Accept' button.
93po
Use the annoyances lists on uBlock Origin. They're not enabled by default but they help a lot.
FredrikNoren
Ambient CPTO here; We're not quite on the web just yet! We're currently working on it though and it's looking promising, so stay tuned
oldstrangers
Your site has a horizontal scroll bar on a QHD display.
If you're using 100vw you need to set a max-width in percent since VW doesn't account for the width of the scrollbar.
@media screen and (min-width: 1280px) .footer { width: 100vw; max-width: 100%; }
ambientqtns
"Why not Rust?" is a question I ask about game development a lot these days.
I'm an engineer with a decade of experience as a web services engineer, and 5 years of game development engineering. Rust seems like the right direction for game developers -- safer code, faster compile times, more portable binaries.
Ambient looks very cool, but I had some questions --
1) WebAssembly, but no native web player? One of the most powerful things a game dev can do is provide a link to a game and just let people play it on itch or other space. Having a binary you have to download to play is a major turn off for small time games. It looks like it's on the roadmap, but without a clear target?
2) No editor/tooling yet? What's the plan for a unity-like editor interface? How do non-developers (designers, artists, audio folks) interact with a game made with ambient? Is that in the plans for the future? Could you expand on it a bit more?
3) Sustainability? A five person crew working on a free product, how do you plan on monetizing it?
4) Single executable? One concern that jumps out right away is the single executable for server and client. Often in multiplayer games you want to avoid shipping server binaries (for cheat protection, for instance, or to avoid the cost of deploying a large client to a headless server environment). Are there plans to provide the ability to separate client and server builds?
5) HTML for front end? Games are increasingly moving to HTML to power their UI. Given you are already using WebAssembly, it seems like it wouldn't be that far off to enable an interface so that UI could be handled in JS/HTML. (Yes, this is performant enough for games. Yes, it's being done in AAA games. No, you aren't the first commenter who thinks that UI shouldn't be done in HTML. No, I'm not interested in hearing complaints about it.)
Nevertheless, this looks neat,
sarchertech
Rust faster compile time? Faster than what? The terrible compile time is a big reason why I avoid rust for game dev.
vvanders
Last game engine(C++) I worked on was a full hour to build if you touched a core header, and that was with Incredibuild that farmed out the compile across the studio.
If you care about compile/iteration times you can get them down to a reasonable level, Bevy does a good job splitting the heavy lift part into a section that is linked dynamically[1] which leads to pretty reasonable compile times even in something Rust based.
That said most of the high-churn areas I've seen drop to some scripting language(ex: Lua or others) for both hot-reload and avoiding compile times. Usually the heavy compute pieces are out in native with orchestration in scripting or something more flexible.
[1] https://bevyengine.org/learn/book/getting-started/setup/#ena...
pjmlp
That is why we now have incremental linking, hot-code reloading and for the lucky ones on VC++, modules.
This toy application https://github.com/pjmlp/gwc-rs takes about 15 minutes to compile from scratch on a humble Asus 1215B, whereas the C++ original (thanks to having Gtkmm available as binary), takes about 2 minutes.
echelon
> The terrible compile time is a big reason why I avoid rust for game dev.
Compile times are the least of your worry.
The big problem is lack of tools and libraries in Rust gamedev. You can't even achieve PS2-era graphics with Rust right now. Neither Bevy nor FyRox support blend shapes / morph targets, and that's a two decades old and absolutely essential animation tool.
Rust for gamedev is going to take a decade to really get going.
shmerl
> You can't even achieve PS2-era graphics with Rust right now.
Don't you have access to Vulkan from Rust? So you should be able to do whatever you want, same as doing it in any other language I assume that can plug into it.
MindSpunk
> You can't even achieve PS2-era graphics with Rust right now
That's just straight up false:
https://github.com/EmbarkStudios/kajiya https://github.com/BVE-Reborn/rend3
Ygg2
Same with any OSS software, you get what you give.
FredrikNoren
Hi, Ambient CPTO here.
1) Yes, we're currently working on this and progress is good, so stay tuned for that! 2) We actually built a collaborative editor for this, which we've been using in-house for a year now. We choose to not release it right now, as there's still some things we need to work out with it, but it's coming too! 3) We plan to monetize services around this, such as game server hosting and tools for people to monetize what they create. 4) So the runtime is completely open source, so anyone can look into the code anyway. If you build something on top of this, you will also be able to choose if your own code should live on the server, client or both. If it's server only it won't be sent to the clients. 5) We've experimented with partial html UIs, but support for it on Rust native isn't great yet. We do have a fairly decent UI implementation (see examples here: https://github.com/AmbientRun/Ambient/tree/main/crates/ui/ex...) though it's not exposed to user code yet, but yeah I hear you that there's a lot of people who know html based UI tech. We'll see exactly where we end up there, but most likely the first step will be to expose the UI library we've built already to users.
Thanks!
aww_dang
>1) WebAssembly, but no native web player? One of the most powerful things a game dev can do is provide a link to a game and just let people play it on itch or other space. Having a binary you have to download to play is a major turn off for small time games. It looks like it's on the roadmap, but without a clear target?
Appstores, antiviruses and gatekeepers of every sort. Employees want to play games without installing.
>HTML...
The problem is with CSS and the ever evolving HTML standard. Feels a bit heavy and the implemented features will always be incomplete.
krapp
Steam and the app stores seem to be doing just fine. Maybe there's a popular indie title only released for browsers but I can't think of it.
tormeh
There's this small one called Farmville. Though granted I don't know if it's still printing cash the way it used to. It's possible smartphones killed that sort of game.
prophesi
The trick is to use itch for an easily accessible early build, then transition to Steam / mobile stores once you have monetization in place.
jalbertoni
> Yes, this is performant enough for games. Yes, it's being done in AAA games.
Every time someone says something mildly controversial about weird technology being used for UI in games, I like to point out Skyrim used Flash for its UI. Bunch of .swf files inside the packed data file. It used some weird non-100%-standard player, but it was still Flash.
msk-lywenn
Probably used scaleform. It was used by many games. It was a massive headache for engine programmers. The thing really had very very poor performance... I think it was always heavily hacked so that it could run decently, both the actionscript side and the scaleform side. At least that's what a programmer did for a year to get something decent. I can't believe it could have ended up anywhere else with that tech. Still, it was amazing for artists.
pjmlp
Most likely Skyrim used Scaleform, https://en.wikipedia.org/wiki/Scaleform_GFx.
Arena Wars was one of the first games using .NET already in 2004, years before Managed Direct X or XNA came to be, with direct bindings to OpenGL. [0]
Then we have quite a few sucessful ones in XNA, some of them them ending up as quite relevant IP franchises.
Minecraft being a success, regardless of being written in Java.
Runescape, a plain Java applet that kept legions of gamers occupied.
Or for that matter the 1990's game development literature trying to move the ecosystem from raw Assembly to C, and how long C++ needed to gain traction over C in most studios. Even today many of them rather code in "C with C++ compiler" style.
Which shows that even C++ had quite an uphill being adopted by the industry.
Tech doesn't matter if game design and IP is compeling enough to make people enjoy the game.
A great engine, with a top language and bad game design, doesn't go far.
undefined
chillfox
"Why not Rust?"
Well, if you have got access to a language designed for making games like Jai, then that would presumably be better than Rust.
omershapira
Engines that reached escape velocity often did so by having usable artist tools and [...] no, that's pretty much the defining factor. Artists used them. Seeing people in the age of 2 commercial engines (and only one you can reliably ship with...) attempt to challenge architectures the incumbents instilled, knowing the challenge of getting games made with a new engine, gives my cynicism a run for its' money.
chillfox
Yep, good tools was the minimum a decade ago, these days you also need an asset store. I suspect the next decade you will need to have integrated AI tools.
The only opensource game engine that looks interesting is Godot, they are working hard on making their tools better and growing their asset store.
omershapira
"Integrated", imho, is exactly how large engines will win. Modularity is a huge challenge (ABI, Data Pipeline, where compute happens), but without modularity, only engines with teams of hundreds will be serious contestants.
mikae1
Just by seeing those two peeps in the sofa I immediately knew they were Swedish (and right I was). :) Isn't it funny how easy it is to sometimes spot your own nationality?
Congrats on the release!
thaumasiotes
[flagged]
swexbe
Tiny? It's quite a bit larger than California.
thaumasiotes
That's like saying Alaska is larger than California. It's not relevant.
(Also, unlike the claim that Alaska is larger than California, yours isn't even true... Sweden is, geographically, 105% of the size of California.)
EugeneOZ
Another example for you: people from Russia, Ukraine, Belarus can easily recognize other people from these countries (but we cannot recognize for sure what country exactly).
modeless
> The compiled assets are always streamed to clients, so that they can immediately start playing without having to download all of the content first.
I think there's a real opportunity here, if done well. It should be feasible to get initial load times down to single digit seconds, https://venge.io style, but then with progressive enhancement to AAA level graphics assets. I think that could be disruptive.
Load times on most games are ridiculously huge especially if you include download/install times, which you should, and not just initially but for patches too. There's no fundamental reason it needs to be so slow, and I think the industry is underestimating how much it's collectively costing them.
bootloop
This is what I didn't understand about Google Stadia. I thought they will make gaming bigger in Youtube and automatically show a "play now" button next to the video. Maybe even the possibility to join the game of the streamer. It would work in an instant without download.
And because you have control over the game you can give everyone a hour or so free demo time, only then they need an abo.
modeless
Yeah, Stadia's load times were still bad, it was silly. And they didn't streamline entry into most games so you'd still be watching publisher logos, pressing Start to continue, navigating menus, logging in, accepting additional clickthrough license agreements, etc. What a farce that was.
Tossrock
This is how Roblox has worked for more than a decade. Note the valuation.
whizzter
This seems like a mostly very well thought out design (I have a qualm about one detail but maybe they're hiding it), I've been rebuilding an old prototype of mine in a very similar way.
The DoD ECS pattern should allow for easy state/log shipping to clients, with those 2 parts you can easily build what fighting games terms as "rollback" based netcode.
Rollback is often characterized as complicated but clean, the truth is that if you structure your data around rollback capable simulation from day one it becomes easy (and DoD ECS naturally fits there just like shipping to separate CPU parts back on the PS3)
This "trick" of fully shipping state images isn't exactly new, some emulators has done memory image shipping in the past and Ian Kettlewell published a WASM-heap shipping experiment(1) recently that works on the same principle.
Compared to the snapshot/heap shipping of emulators/WASM is that Ambient should allow for server introspection and upgrades of state.
Overall I like Ambient, and I'd recommend a look. Only big omission I see right now is audio being missing and it can be a tricky part to synchronize (due to how mixing works).
charcircuit
"the multiplayer game engine"
Yet I can't find any mention of multilayer in the documentation. The github mentions it offers synchronization of data, but what about things like rollback, interpolation, exterpolation, VoIP, messaging, P2P, load balancing, autoscaling, measuring latency, persistence, etc that are needed for multilayer games?
sandos
Sadly there is this snippet:
All gameplay logic is currently server-authoritative. We currently do not have any form of latency-hiding, including prediction, rollback, or clientside logic. We previously had rollback, but removed it due to its relative inflexibility. Our plan is to introduce clientside and shared logic that can be used for user-defined prediction with runtime assistance, but this will take some time.
hummus_bae
[dead]
brucethemoose2
I wonder how it can scale?
Even with the battle royale craze, it seems like nothing has really replicated Planetside 2's black magic netcode (or at least amassed a playerbase big enough to show it off).
ElFitz
> it seems like nothing has really replicated Planetside 2's black magic netcode
Or tried to. From what I’ve read online they massively rely on client-side computation, even for hit detection.
It seems more like trading security for performance than any sort of technical miracle black magic.
Unless I’ve missed something?
e12e
I know Planetside 1 was pretty heavy on client side - not sure about PS2 (but my impression was that it would be less client side logic - to avoid some of the cheating.
wsc981
I think some time ago (2 years or more?) there was this guy, I believe from The Netherlands, who had made a game that seemed to be to support a massive number of players with minimal hardware requirements.
I wish I could find the post, but I tried to search it in the past, without success. He did have a video with many players in game on YouTube.
Perhaps someone else remembers and can find the post.
Thaxll
Planetside 2 netcode is terrible, people forget that it runs at 5hz, at that sim speed any game can put 100's of people on screen.
Also client side hit detection, lol. Full of cheat and completely inacurate gameplay.
scktt
found a small thread on reddit which posed the same questions [0]. it looks like the above comment hit it on the head; mostly client side with server just handling messages. looks like it didnt scale well either.
[0] https://www.reddit.com/r/Planetside/comments/8hx7t1/comment/...
squeaky-clean
It scaled very well as long as you didn't have any hackers in your region. I remember having battles with well over 500 players and very little lag.
brucethemoose2
Perhaps that is the compromise, but that also feels like an oversimplification of the challenge, and I'm happy with the in-game results.
tacticalmook
Improbable claims that their SpatialOS service can scale beyond what Planetside 2 achieves.
brucethemoose2
Yeah they've claimed that for awhile with no results. Dual Universe (which I backed) also demoed a many player test, but its never accumulated much pop and is not really a "fast" fps either.
neural_thing
EVE online also has mad scaling through time dilation
plopz
which is an incredibly unfun awful mechanic
Get the top HN stories in your inbox every day.
Always good to see more game engines coming out. Might I make a suggestion though. For your hero video on the site, I would expect it to be showing off the multiplayer aspect of the engine. Rendering environments, even in extreme detail, is considered table stakes for a game engine. Show off your unique selling point, making multiplayer games much easier than with a different engine.