Quantcast

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Star Citizen - in depth look at ship repair and maintenance

2»

Comments

  • filmoretfilmoret Member EpicPosts: 4,906
    I don't honestly see how everything in this game will eventually tie together successfully.
    Are you onto something or just on something?
  • Dagon13Dagon13 Member UncommonPosts: 566
    Skill based repair doesn't sound fun to be.  I don't want to be a mechanic, I want to be a pilot.
    And I want to be a mechanic, part of the crew of a friends ship.  I don't really have much interest in the game but I have several friends who do and I think it would be fun to play in a supporting role for them.
  • ErillionErillion Member EpicPosts: 10,232
    Dagon13 said:
    And I want to be a mechanic, part of the crew of a friends ship.  I don't really have much interest in the game but I have several friends who do and I think it would be fun to play in a supporting role for them.
    Hi @Dagon13

    it is why a lot of people loved Star Wars Galaxies. People like me did not want to be Luke Skywalker. We wanted to be "Uncle Owen". Farmers. Craftsmen. Ship Builders. Mechanics. Shop Owners. Interior Designers. etc.

    I hope you become the best SC mechanic out there !


    Have fun
  • filmoretfilmoret Member EpicPosts: 4,906
    And if you cant find other players to help repair your ship then you can buy this early access ship repair crew for 5000000$ for a limited time.
    Are you onto something or just on something?
  • Turrican187Turrican187 Member UncommonPosts: 787
    Brenics said:
    I guess we agree to disagree, the CryEngine isn't made for the type of game CR wants and will have to build on that engine to make it to what he wants. Why you think he hired so many that know the CryEngine? Then you have to look why one of the top dudes with the CryEngine left! 

    Let's wait and see what happens after the Holidays and see if even more of them leave. 
    Well from the big engines they could choose CryEngine was not the best choice. Nevertheless the big problem that noone is talking about is the floating point error handling.

    Excursion the floating point error handling:
    Every Game has a 0 Vector thats where it starts from this  point you can calculate your units of all assets how they navigate. I.e. a flea simulator will have 1Unit = 2mm that means the smalest step a flea can take is 2mm in any direction. If I place a dog in my flea Simulator I can scale up the steps of the dog to 2cm per step but as long as there are fleas in my scene I have to have the 1Unit = 2mm fidelity in.
    Because I don't want to waste all the fidelity on the dogs I would instance it, the flees are happy can see all the other dogs in the world, and can hop around in their 2mm units while the dog can move with the 2cm units.
    The Downside of this is that a flea can not enter the dogs instance and must remain on it's own dog.

    Now you can say that these super genuis' Devs have ported Cry to 64bit that means the Integer max number is raised to 9.223.372.036.854.775.807 hat should be enough to have a large universe (we let alone the scaling for now because everyhing would scale including step distance). Unfortunately the GPU pipeline is 32bit that means our nice big number scales down to signed float 3,4e+38 or unsigned int 2.147.483.647. This is still a great number we would have 10737418,235m Units when we place the fidelity to 1cm steps (that's what SC uses) this means roundabout 10km in every direction this is our max Instance size.

    Unfortunately computers are not good at calculating big floating numbers, converting them to 32bit and forwarding to the GPU this results into floating point errors - the Game would start to "jitter" (alot) - so it's trial and error to downsize this number to a stable distance to stop jittering.

    But <10km is not enough for a space game, we need to trick here (every game does).
    We can not leave the Ship itself as an instance because players can leave their ships.
    We can not set the zero Vector on every player this would result in server chaos to calculate the deltas.

    So a super genius dev (I guess the same who writes Wikipedia articles in his/her spare time) came to the conclusion we need dynamic pocket dogs .. ermh instances and made a nice 2D demonstration (which is not working in 3d) of this where the instance border is expanding on the amount of players http://starcitizen.wikia.com/wiki/Instancing . This would work if the instances could overlap and the ship movement would be predictable.

    TL:DR with this fidelity of character movement in and outside of ships compared to movement and action of the ships themselves - they will run into problems of jittering, ghosting and an amount of exploits that can not been forseen, in an instance size <10km.
    Solution > pure 64bit GPUs (which are not invented yet)

    When you have cake, it is not the cake that creates the most magnificent of experiences, but it is the emotions attached to it.
    The cake is a lie.

  • ErillionErillion Member EpicPosts: 10,232
    edited November 2015
    Some details on the engine modifications by CIG devs:

    http://www.dsogaming.com/interviews/cloud-imperium-on-star-citizen-mods-pc-exclusivity-graphical-features-directx12-multi-core-cpus/

    http://www.gamersnexus.net/gg/2019-star-citizen-multi-crew-interview-with-chris-roberts


    and how another dev from Ascent sees it:

    https://archive.is/fCIXd

    and how others discuss his comments:

    https://www.reddit.com/r/starcitizen/comments/3psoao/a_response_to_ascents_lead_devs_blog_on_sc_from/

    with more information on instancing:

    https://forums.robertsspaceindustries.com/discussion/comment/5284313/#Comment_5284313

    http://www.gamersnexus.net/gg/1854-chris-roberts-pax-east-instancing-and-zoning

    and more discussion on the floating point numbers:

    https://forums.robertsspaceindustries.com/discussion/20820/concern-cryengine-3-16-bit-half-float-only

    "The designers of Star Citizen have used a sneaky trick to increase the accuracy of floating point numbers. Traditionally the entire x/y/z coordinates are stored using the single floating point number. This decreased the accuracy it can provide because for every extra digit you need for the whole number portion of the location you loose a decimal place of precision. (Eg 12.345678 this number is very precise but can only range from 0 to 99 (The number before the decimal point) compared to 1234.5678 which is not very precise but can range from 0-9999).

    In Star Citizen instead of trying to fit the whole number and decimal part in a single floating point variable, they are using multiple integers for each coordinate. This allows them to have massive precision and a very large range. (Eg. Using 1 variable for the range, and a seperate number for the decimal component. Which gives you 12345678.90123456 But they are using more than 2 variables per coordinate I believe)"

    "...Seems they have already settled for a solution. They seem to use a composite data type, where INTs will identify the sector of the Solar System and FLOATs will hold the accurate position within the sector..."


    Have fun




  • Turrican187Turrican187 Member UncommonPosts: 787
    Erillion said:
    Some details on the engine modifications by CIG devs:

    http://www.dsogaming.com/interviews/cloud-imperium-on-star-citizen-mods-pc-exclusivity-graphical-features-directx12-multi-core-cpus/

    http://www.gamersnexus.net/gg/2019-star-citizen-multi-crew-interview-with-chris-roberts


    and how another dev from Ascent sees it:

    https://archive.is/fCIXd

    and how others discuss his comments:

    https://www.reddit.com/r/starcitizen/comments/3psoao/a_response_to_ascents_lead_devs_blog_on_sc_from/

    with more information on instancing:

    https://forums.robertsspaceindustries.com/discussion/comment/5284313/#Comment_5284313

    http://www.gamersnexus.net/gg/1854-chris-roberts-pax-east-instancing-and-zoning

    and more discussion on the floating point numbers:

    https://forums.robertsspaceindustries.com/discussion/20820/concern-cryengine-3-16-bit-half-float-only

    "The designers of Star Citizen have used a sneaky trick to increase the accuracy of floating point numbers. Traditionally the entire x/y/z coordinates are stored using the single floating point number. This decreased the accuracy it can provide because for every extra digit you need for the whole number portion of the location you loose a decimal place of precision. (Eg 12.345678 this number is very precise but can only range from 0 to 99 (The number before the decimal point) compared to 1234.5678 which is not very precise but can range from 0-9999).

    In Star Citizen instead of trying to fit the whole number and decimal part in a single floating point variable, they are using multiple integers for each coordinate. This allows them to have massive precision and a very large range. (Eg. Using 1 variable for the range, and a seperate number for the decimal component. Which gives you 12345678.90123456 But they are using more than 2 variables per coordinate I believe)"

    "...Seems they have already settled for a solution. They seem to use a composite data type, where INTs will identify the sector of the Solar System and FLOATs will hold the accurate position within the sector..."


    Have fun




    Yes they would have to manage multiple dynamic instances we will see how this plays out, nevertheless it leaves room for all kinds of unwanted shadows/jitter/etc in all this you have a constant 20ms+ lag that you have to count in.

    BTW 12.345678 has exactly the same range and precision as 1234.5678 it depends only on the definition (100.000.000 different states).
    you surely can use 1234i16,5678f16 which would result in 1234,5678f32 but it does not give you more precision nor fast processing (in fact it's much slower). In the end the GPU understands only a 32bit binary number, it does not mind at all how it is calculated. You can only trade precision for processing speed.
    In other words: safety for freedom > this goes back to Heisenberg trade in/trade off this aspect applies to almost everything including programming.
    In one of my projects I had to round the float error to make it predictable (I just subtracted 0.0000001m per Unit(1m)) so that after 10.000km from the zero Vector all assets would be 1m off - fortunately there where not nearly such big instances in the game. This resulted in zero jittering and a fast and stable play experience (and for the Users a very precise).

    To use an Int for numbering your sectors is nice but has nothing to do with the actual problem > the exact position in the sector is a problem.

    When you have cake, it is not the cake that creates the most magnificent of experiences, but it is the emotions attached to it.
    The cake is a lie.

Sign In or Register to comment.