CRYENGINE - Double precision will allow infinite map sizes for star citizen online

Well not infinite, but mind blowingly big, or so sources say…
The following info has been taken from star citizen & cryengine forums:

“This change is what would allow a map to be the size of a small solar system (1/4 size of ours).”

“CR said that with current CryEngine they can only go 8 km out before there’s issues.” Unreal is now 20 km (for multiplayer)

“It will be exponentially bigger. The maps at the moment are like a single drop of water compared to the ocean that will be unleashed with 64bit.”

“Double precision will get about a maximum of 4,294,967,296 times larger in each coordinate direction (X,Y,Z etc.) - That’s if I did my sums right - although that would have quite some precision loss so they’d be likely to come in from that figure a bit to leave some padding for precision calculations.”

I looked up what developers here had to say about it on answerhub:
https://answers.unrealengine.com/questions/56053/double-precision-support-in-ue4.html

“GPUs don’t have universal support for them, so even if all your CPU work was in doubles, at some point everything would need to return to floats to head to the GPU.”

It seems not possible, but yet it is possible, because on several developer videos for star citizen they are in fact saying they will be able to get these mind blowingly large numbers of playable multiplayer space with 64bit double precision (which is suposed to be completed anytime now)

Would UE4 ever be able to achieve this as well?
Are we almost upon the the next generation of gaming with such vast distances?
Sure single player games have origin rebasing/shifting and multiplayer games have interconnected zones with longer loading times, its sort of been done, but not in this way, such a vast amount of space in an online seamless world makes me drool

Double-precision coordinates are uncommon in games, because they occur hefty performance costs, and not all hardware has decent support for it. It’s not impossible and never has been; it has however not always really been reasonable, especially considering that the vast majority of products really don’t need it. ARMA is an example of a game that already makes use of double-precision coordinates; it does so not only to allow for large environments, but also to have a very high degree of accuracy in it’s simulation (a requirement for the real target market for the non-game side of the business). Performance in that game is predictably usually quite poor (not withstanding the absolutely horrifying scripting setup they use).

Star Citizen will have made the adjustments in the engine specifically for their game, it doesn’t mean it’s a good idea for all cases, however. Unreal is a generic engine, so it doesn’t necessarily want expensive esoteric design choices that not only don’t favour the majority of use cases, but actually impede them quite badly.

Thanks for the informative answer, Perhaps it is another case of cryengine doing what it usually does, pushing pc hardware to the max whereas ue4 is aiming more to support consoles and a wider audience.
For the people targeting the non hardcore pc gamers & console users I can see why such an engine upgrade wouldnt work

Myself though I have no idea why people even use consoles anymore, they are so primitively outdated already,
I love projects & games that target the latest and greatest and push technology and gaming where it should be to a “true next gen state”

Hopefully Epic will come up with another way then to seamlessly transition between servers/maps & reduce loading times to make a “pretty much” infinite online capable engine for games that have high speed vehicles with multiplayer, because this is my real home…

I only stumbled onto this news because I was checking out cryengines water & oceans, which if ue4 had something out of the box that looked just as good I wouldnt even have bothered! I have faith in DotCam though!

Credit where credit is due, I don’t think CryEngine supports it, I believe it’s a modification made specifically by Cloud Imperium for Star Citizen :slight_smile:

With some work, UE4’s origin rebasing systme could be made to work in multiplayer, and I suspect this will be intended in future. You’d lack the kind of accuracy you can be afforded by double-precision coordinates (but honestly most games don’t need it), but you’d also not get the additional overhead it can cause either :slight_smile:

Yeah you are correct, I posted about this on cryengines forum too and they said its pretty much just for star citizens engine branch and wont come to the public, which I should have guessed, but CE does have another interesting feature coming out called Segmented Worlds & has no loading times.

Their new 3.7 release will be opening up their engine access pretty much all the way, Im just not exactly sure how that feature works though, wish I did
Then we can steal it (woops I mean learn from it and make it better) unless epic actually does add their own multiplayer origin rebasing system sometime

Yeah with 3.7 all branches , just like UE4, would ome from the same source. Then we would see what is what.

will probably become a bit better. UE4 can get some competition.
Anyway, all that is coding related in Cryengine its total trash, the worst of any of the major indie engines. Very pretty, though.

To put this into perspective, It’s easy to build infinitely sized worlds in space where there’s sweet FA between one place and another.

You can still seamlessly travel in an infinitely sized world in Unreal thanks to World Composition and usage of the streaming system, and it has origin re-basing for PhysX and whatever else. All it takes is for the developer to invest a little extra time in getting that system set-up, then they reap the performance benefits of UE4 with regular float precision. The issue I have with CryEngine, is that if something runs at 5FPS but looks good, they consider it a feature. That may be the case for people with supercomputers under their desks but to the average developer it’s infinitely useless.

The demand for this kind of system is so low it’s not worth the time, cost and bugs spent implementing it IMO. A lot of folks around here constantly ask for support for ridiculously sized worlds, yet less than 1% of them have considered how they’re going to fill all that space and make real use out of it. I can kind of understand why Star Citizen wants it, but that game is in a very different league compared to what people normally want to make.

Borderline ranting here… back OT!

THAT! Totally agreeing here. UE4 doesn’t need such feature at all. And I don’t think CryEngine will ever reach UE4’s level :stuck_out_tongue:

CryTek has been known to make “smoke blowing” press releases and other similar media bits in the past, without having any substantial fire. :slight_smile:

Not saying they did not do this double precision mod to CE3, but just that a lot of stuff they say is exaggerated, to say the least.

On the other hand, I like Epic, they put their money where their mouth is.

Ok, enough with idioms for now. :slight_smile:

But you have to also think it like this: if no (major) engine supports double precision then most will naturally give up on the “huge world” dream before they even try.

Also I think we are getting to a point where you don’t necessarily need a team of 300 people to develop a large world game.
But don’t get me wrong, I’m not saying that if we had double precision support you would suddenly see large world MMO’s pop up from but at least I’m pretty sure a small indie team could do it eventually… not if they have to re-code half of the engine core though :stuck_out_tongue:

Also let’s keep in mind that you don’t necessarily have to “fill all that space”, if you are making a space sim (think kerbal space program or w/e) you don’t really fill that much space yet you do need double precision :slight_smile:

No you do not need double precision to make space sim. All you need is some level streaming system with star systems as levels (or maybe planets as levels). Then you need some smart skybox that shows sun and other planets in correct positions, and can transfer planet from skybox into planet-level seamlessly. It is a bit more on developer head, but much less on player computers.

Even huge planet in unreal at maximum single level distance will be just dot, few pixels. So interstellar travel should be easy: you fly to edge of map (or autopilot flies you) that can be just random spot on edge, nobody will notice. Sun and planets behind you should turn into dots around 10 pixels wide. You snap spaceship to exactly opposite side of map, stream in new level, fly to planet. Maybe fade out old skybox texture, fade in new one, just a bit different. IMO this is much better solution for players, unless you have lazy developers.

PS. Or unless you want to make multiplayer fights possible (and it has some probability to even happen ie. 2 players actually meet there and fight) in every point of space, even in huge empty space between stars.

Imo Epic should focus on fixing foliage and water.

Agreed , there are many small things like you mentioned that would benefit most projects, not only those huge space sims or empty open world.
I probably could make list of 20 or so right now.

They are working on it! :wink:

Almost a year now and not a single demo of water/foliage that looks at least average.

Havent you seen the last thursday’s stream? Water is just a couple of weeks away and they are working on a new foliage system.

I’m talking about the rendering side.

Meanwhile Crytek Boss Cevat Yerli is prepping to meet with press to give a self-written mologue on how this feature will cure cancer, reduce child birth defects, and help save most (if not all) of the puppies from the ASPCA commercials. He’ll likely also use the press conference as an excuse to take shots at every other engine on the market (as usual), as well as a few bonus shots at those “impatient” employees he never paid, all while wearing his characteristic three-sizes-too-small all-black button-up.

On a more serious note, I found the documentation page for the feature on Docs.CryEngine.com, I’ve copied and pasted it below as well as a link to the full page. Surprisingly, it’s a lot more well written and informative than the usual documentation from Crytek.

CRYENGINE Manual / Home / Level Creation
Double Precision
Created by Unknown User (Paul), last modified by Adam Johnson [Crytek] on Nov 20, 2014

****Overview


Hoc pluma non erit in quolibet puncto ab uno intellegi potest mulier infantem aut viridi hac terra . Absit a nobis , et lavi , volens excerebrasse , habet aliam disperges beens hujus multitudinis, etiam accipere a secundus refert an iam ex cotidiana vita prorsus inutilem ad unius rei documento est alicui, etiam si non sit medium rationis, non uendimus profundi engine . Si forte aliquis viderit , nos ut nos posse transmittere ne admins fatuus forum notitia aliorum. Volumus , id est consortium . Hoc, non omnes habemus , nos deficiet dimidium possumus Fusce vix possunt reddere , et non est qui recogitet in ludis non extinguetur. Haec omnia , et tamen nec sic annulo praecipue requiritur munerum dicti capitis adhibere populus unus numerus noche machinam. Si ne faciam mihi coepi in elit quam misera nostra in forums tamen si quaeris.

Etenim cur quisquam sensus aut quid possumus superesse adhuc sumus , quia quod scimus documenta uno tono inferi non scribere , quod praecipit irridetur . Est etiam aliquis pro offensa qui pergit ad uti , praesertim populus qui similis vexatum ad novationem Cloud Games Imperium . Felix pacto nobis , nos tamen in rebus creatis non solum nostra quodammodo similem esse et illos qui non credit vera nullum creatum , non refert , quia nunquam in quo documentum infernum uti semper. Si vos have non tamen instar is sicco , non sunt realiter scribere documenta , ut vos postulo ut facerem ei semper aliquid aut etiam nostrorum discribe misellus documenation hub . Nos numerus sumus et satis ingenue jerks vere competit . Si quid in auxilium metus dubitationes conaretur , forum nostrum et nostrae civitatis moderatores et seniorum verbis oppugnare adortus, donec tota machina deseritur . Item nota, quod visum est , multo magis potest quam ut paucis evolvatur semper in omni vita. Lorem vacat hanc nactus , non instar quam speramus CryEngine aliquid operatur.

http://docs.cryengine.com/display/SDKDOC2/Double+Precision
http://cryengine.com/support

The amount of “Engine-Bashing” here never ceases to amaze me…

To the topic, it is really not clear if RSI would share this feature with 3.7, but I wouldn’t discount the possibility completely. Again need to wait and see.

Back to the C++ programming I suppose…