15 ms·
Ambient: The Multiplayer Game Engine
- caporaltito 4y agoLooks like a good start for a game engine. It definitely good to have professional competitors to Unreal.
- brucethemoose2 4y agoI 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).
- Thaxll 4y agoPlanetside 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.
- tacticalmook 4y agoImprobable claims that their SpatialOS service can scale beyond what Planetside 2 achieves.
- brucethemoose2 4y agoYeah 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.
- ElFitz 4y ago> 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 4y agoI 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.
- scktt 4y agofound 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/dyna2ib/?utm_source=share&utm_medium=web2x&context=3 https://www.reddit.com/r/Planetside/comments/8hx7t1/comment/...
- brucethemoose2 4y agoPerhaps that is the compromise, but that also feels like an oversimplification of the challenge, and I'm happy with the in-game results.
- squeaky-clean 4y agoIt 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.
- wsc981 4y agoI 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.
- neural_thing 4y agoEVE online also has mad scaling through time dilation
- plopz 4y agowhich is an incredibly unfun awful mechanic
- trynewideas 4y agoPreviously: https://news.ycombinator.com/item?id=34894922 https://news.ycombinator.com/item?id=34894922
- Cyberdogs7 4y agoAlways 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.
- senectus1 4y agothe blog post announcing it has a bunch more info and videos https://www.ambient.run/post/introducing-ambient https://www.ambient.run/post/introducing-ambient
- CGamesPlay 4y agoI found it very funny that the "multiplayer game engine" hero video had... 0 players in it.
- armanboyaci 4y agoI am seeing multi cars in the screenshots, maybe those are controlled by the players :)
- loup-vaillant 4y agoZero is plural in English.
- guhidalg 4y ago:| :| You got me there
- deleted 4y ago[deleted]
- franciscop 4y agoExactly, 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.
- ambientqtns 4y ago"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,
- aww_dang 4y ago>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.
- 4y ago
- charcircuit 4y ago"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 4y agoSadly 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 4y ago[dead]
- omershapira 4y agoEngines 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 4y agoYep, 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 4y ago"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.
- oldstrangers 4y agoYour 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%; }
- tormeh 4y agoI 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 4y agoBevy 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 4y agoBevy 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 4y agoEngines 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 4y agoIt’s not bad, but it explains the logic.
- keyle 4y agoA couple of questions... Is it using Vulkan at the back or WebGL? I'm surprised that it's not mentioned in large bold text, typically that is the case. How are you financing this project? You're hiring people, so clearly there is a budget, but the engine is license under MIT, is it based on subscription for support or royalties?
- None4U 4y agoIt is stated that it uses the Rust wgpu library. Usually for wgpu apps: Vulkan does not exist on the web, but on the web it can use WebGPU or WebGL WebGL does not exist on desktop, it will default to Vulkan but also able to use DirectX 11 and 12
- unconed 4y agoIt says it is using WebGPU, which is the successor to WebGL.
- coderedart 4y agoits using `wgpu`: a rust library which provides safe graphics api and uses opengl (webgl2), vk, dx, mtl, webgpu as backends. c++ has a similar, but much older project called `bgfx`. If you see wgpu on web, its most likely using webgl2. webgpu only exists in like the most bleeding edge chrome/firefox builds and even then its very hit and miss. maybe it will start working properly after chrome ships it in september-ish.
- FredrikNoren 4y agoHi, Ambient CPTO here; We're using wgpu (a rust crate), which supports a number of different backends, including Vulcan and WebGL (and Directx, WebGPU, Metal). We're VC backed, which is how we finance the project right now. Long term we plan to monetize additional (optional) services around Ambient, such as game servers.
- ReactiveJelly 4y agoThis confused me: > Ambient is a single executable which can run on Windows, Mac and Linux Until I read this: > Note that content is always streamed so the only thing the joining user requires is Ambient itself to join the session. So that's what the wasm is for. Even the client code is streamed to the client when you connect to a server. Interesting take. I hope it's not, as someone else said, an "open core" SaaS where all the useful features will be behind a paywall and PRs for them rejected. I guess the advantage over pure web games is that you don't need a website to host it? > the runtime handles synchronization of data for you. btw this sounds a lil bogus...
- jay_kyburz 4y ago> the runtime handles synchronization of data for you. The first implementation probably just synchronizes every single change in state of the worlds database. I wonder if you can flag things that only the server should know, and somehow calculate what each client can see and know about.
- FredrikNoren 4y agoAmbient CPTO here; Yeah that's pretty much how it works; changes on the server state and replicated to clients, which keeps "mirrors" of that state and can augment it in different ways. And yes you can specify exactly which entities and/or components get replicated to the clients. We're working on adding more details on the networking stack: https://github.com/AmbientRun/Ambient/issues/150 https://github.com/AmbientRun/Ambient/issues/150
- nobu-mori 4y agoWhat 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.
- deleted 4y ago[deleted]
- whizzter 4y agoNot 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 4y agoUnless 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.
- pjmlp 4y agoA 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-coming-to-ios https://www.polygon.com/2013/9/10/4715534/infinity-blade-3-c...
- tomcam 4y agoNot 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.
- jnwatson 4y agoInfinity 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 4y agoMight also be thinking of Epic Citadel which was a related UE3 to WebGL tech demo https://web.archive.org/web/20140210210113/http://www.unrealengine.com/html5_faq/ https://web.archive.org/web/20140210210113/http://www.unreal...
- pjmlp 4y agoHistorical note, it was originally done as UE3 to Flash C++ Crossbridge / Stage 3D, the WebGL version came later. https://www.shacknews.com/article/72813/epic-releases-epic-citadel-unreal-engine-demo-in-flash https://www.shacknews.com/article/72813/epic-releases-epic-c... "Unreal Engine 3 Support for Adobe Flash Player - Epic Citadel" -- https://www.youtube.com/watch?v=xzyCTt5KLKU https://www.youtube.com/watch?v=xzyCTt5KLKU https://adobe-flash.github.io/crossbridge/ https://adobe-flash.github.io/crossbridge/ https://help.adobe.com/en_US/as3/dev/WSF24A5A75-38D6-4a44-BDC6-927A2B123E90.html https://help.adobe.com/en_US/as3/dev/WSF24A5A75-38D6-4a44-BD...
- oscribinn 4y agothat silky smooth 10fps video capture, great job rustaceans really knocking this whole "game development" shit out of the park.
- mikae1 4y agoJust 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 4y ago[flagged]
- swexbe 4y agoTiny? It's quite a bit larger than California.
- thaumasiotes 4y agoThat'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.)
- swexbe 4y ago447/403 = 1.05? Maybe you should check your calculator. Not sure how Alaska is relevant.
- EugeneOZ 4y agoAnother 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 4y ago> 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 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 4y agoThis 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 4y agoYeah, 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 4y agoThis is how Roblox has worked for more than a decade. Note the valuation.
- tomekowal 4y agoNice idea and cool looking website! I would re-record the video. It is jittery and it makes the top of the website off-putting. Good luck!
- EugeneOZ 4y ago> Contributors: 4 That's very impressive! I believe that web-browser games are the next big thing.
- FredrikNoren 4y agoWe're actually only three full time devs :) But we're hiring! See the careers section on the website.
- davedx 4y agoFeatures look quite similar to what Unity offers (networking support, asset streaming, runs in browser). Maybe would be good to have a comparison page with Unity and other similar engines, so you can see "why choose Ambient"? Congrats on the release, and good luck!
- SCLeo 4y agoI really don't want to be dismissive, but you really should not put a Mac on the front page of a game engine.
- whizzter 4y agoThis 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). 1: https://github.com/kettle11/tangle https://github.com/kettle11/tangle
- jordanwallwork 4y agoI was shocked to see Stephen Merchant as a co-founder
- defrost 4y agoYeah - Spitting Images material right there. That said I wouldn't be altogether shocked to see the real Merchant as a funding | creative founder of a game - he has money to invest and has past form developing voice character parts for established games in addition to having solid screen writing chops which can transfer to game universe development.
- unixhero 4y agoWell what can I say. Really frigging cool. That's all I have.
- mentos 4y agoBiggest issue I have with my current game engine is compile times are about a minute for C++. I don’t see it anywhere but would love to find that Ambient can go from code change to running multiplayer clients in < 10 seconds
- FredrikNoren 4y agoYeah that's the idea; as a user you build multiple independent modules, which each are compiled in isolation, and which each produce a WASM module. The runtime then loads that module. All of this is very fast on the Rust toolchain with incremental builds, though of course it depends on the user breaking their code up into reasonably sized modules. The modules can independently be hot-reloaded (we had this before but it went away in a refactor, but we're planning to re-add again).
- Jzush 4y agoThis site is blocked for me, marked as malware.
- bob1029 4y agoI am at a point where I do not believe I could outsource the net code for the kinds of games that I'd like to develop anymore. By extension, this sort of ruins my ability to use any commercial product like UE5/Unity/et. al. Networking is very fundamental to some types of games and the expected player experience. Grabbing a generic "this is multiplayer :D" box off the shelf and cramming it into your concept will likely fail miserably if you are seeking a high-quality outcome. Certain flavors of net code cut extremely deeply into the game engine concerns. Rollback net code is a pretty big dragon in that it suggests your simulation must remain deterministic at all times. Ideally, if you are planning time traveling style net code, you would first have this problem cooking before you send a single byte across the wire.
- ramesh31 4y ago>Grabbing a generic "this is multiplayer :D" box off the shelf and cramming it into your concept will likely fail miserably if you are seeking a high-quality outcome. How many completed games have you shipped with your custom netcode and engine?
- golergka 4y agoUnity multiplayer implementations have been very awful indeed. But UE4 netcode was pretty decent for local small room (under 16 people, whole scene loaded at once) scenarios out of the box.
- codeflo 4y agoIt's interesting in that respect what the developers of Frost Giant Studios, comprised of ex-Blizzard RTS devs, are planning for Stormgate. Complex RTS games need a deterministic ("lockstep") simulation to be viable over the network. On the other hand, they are using UE5, which as you indicate, has a completely different server/client model. What I've gleaned from interviews is that the simulation part of the game including the netcode will be completely custom. The way I understand it, they're effectively only using Unreal Engine for rendering, sound, UI, cutscenes and so on, but all the gameplay logic is their code. Customizing an off-the-shelf engine to that level has to be highly nontrivial, and probably out of reach for smaller projects.
- turbobooster 4y agoBetter to use Unity
- tadasZ 4y agoIs it only for me or the video in ambient.run page looks laggy?
- johnnyApplePRNG 4y agoWhen I view it in Firefox v78.15.0esr it is flashing annoyingly.
- DanielVZ 4y agoI was waiting for something like this to build the simplest MMO I could (like pixels fighting or something like that). Maybe I’ll try it later this year if my current side project flops (which is highly likely)