Ask our Engine Programmer: Brendan Jackson

  • ShaderBoy

    Developer

    Posts: 65

    Posted:

    Developer

    Posted:
    johan26:

    Hi Brendan ! I am a Level Design Student fan of CryEngine 3.

    You must be so happy to work in a game for high end PC !
    It should let you unleashed your hunger of engineering.


    -What kind of lightning will be used in StarCitizen ? A next Gen one like SVOGI Global illumination ? Or a more low performance coast one already inside CryEngine 3 ?
    Have you heard about this CRAZY technique from Guerilla Games with ImageBasedLightning + BRDF + Ray Tracing reflexions ?

    I was shocked by this very early use of realtime raytracing reflexions in videogames ! Do you think you are able to use it in CryEngine 3 ? I am not graphic programmer but I think this technique is working with compute shaders isnt it ?
    Then it is more easy to acheived it on PS4 without DirectCompute / OpenCL bottleneck than on PC..
    But Nvidia look to be able to do it with Optix for CUDA Cores very well.


    -What is actually the Vram budget target for the game ? I know a lot of us have a 1 or 2Gb In most of gamers GPU now but In maybe less than 2 years the next Nvidia & AMD GPUs will handle an average of 4 or 6 Gigs. Im sure this if a hard decision to make xP
    Maybe our virtual memory pool with DDR3 System could be usable ?

    - Did StarCitizen & Squadron 42 will have some next gen technology like DX 11 Mesh Inscancing or Virtual textures ?

    - Are you developping your own shader system or mastering this wonderfull Ubershader for CryEngine 3 ?

    -Isnt too complicate in therms of netcode to handle with less bandwith usage as possible this zero gravity physics when more than 50 ships are on a server actually ? Or Maybe there is no Physics Gravity at all ?


    You got all my respect for this outstanding work you are doing actually , good luck !
    Thanks for your time ; Johan. ( Sorry about my English if there is any mistakes ;) )

    In the order you asked :)

    -We're planning to use CE's Light Propagation Volumes. CE also implements screen space ray tracing, which is the technique you see in the Killzone video. Regarding SVOGI, it looks like Unreal have moved away from it for the current gen.

    -We're aiming to be able to run on a range of gfx cards. Personally I would consider 1GB to be a minimum for a modern game but how much we need will depend on a few factors, screen resolution and anti-aliasing method will be the biggest determiners.

    -I believe we will need to use mesh instancing to achieve the look we're aiming for. Virtual textures is not something we're exploring at this point as it works best for an environment that has mostly static lighting.

    -We're using CE's shader system as the basis for our work, writing new shaders where we need to and extending the existing shaders otherwise.

    - Networking questions are more for our network ninja's Tom Sawyer and Jason Spangler

    B
  • ShaderBoy

    Developer

    Posts: 65

    Posted:

    Developer

    Posted:

    I'm curious how much attention is being given to lense flares? What layer will they be in if used? Technically lens flares show up because of imperfections in the layers in the glass. So you could get them off of a pilot's space suit visor, or the cockpit class. If the game camera is actually supposed to be in place of your eyes you shouldn't really see flares when in FPS mode looking at lights in a hallway. Film makers use that for effect and it's a product of the camera lense glass. So what route are you guys looking at with SC?

    Lens flares in games show up because we're trying for a filmic look. CE already supports lens flare so it's more of an art & design question at this point.
  • ShaderBoy

    Developer

    Posts: 65

    Posted:

    Developer

    Posted:

    Oh here is a Renderer Christ.
    do you have nightmares about shader code? i do.

    Mine are about geometry ;) shader code is just time consuming, geometry is hard.

    I think this quote says it all :)

    “I hate meshes. I cannot believe how hard this is. Geometry is hard.”
    — David Baraff, Senior Research Scientist, Pixar Animation Studios
  • ShaderBoy

    Developer

    Posts: 65

    Posted:

    Developer

    Posted:

    I recently posted a thread in General chat, I was wondering if you had read it and if the bug in question is something CIG should be worried about: http://www.robertsspaceindustries.com/forum/showthread.php?21672-Must-Read-for-Dev-Team-SC-and-CryEngine-BUG

    Thanks for posting it. I wasn't aware of the issue, we're probably on a different version of the engine to MWO so it's possible the bug doesn't exist in the version we use. I've also passed the article on to Paul Reindell who is our local scaleform integration expert.
  • ShaderBoy

    Developer

    Posts: 65

    Posted:

    Developer

    Posted:
    morb84:

    hey i was wondering we have been told that you can hire NPCs to crew your ship and you can pay for better qualified NPC, but can I hire or buy a cheap NPC and then train it in difrent areas to train it to be a Guner or pilot ?

    This is more a question for our lead designer Rob Irving
  • ShaderBoy

    Developer

    Posts: 65

    Posted:

    Developer

    Posted:
    JoeDeadly:

    Hi Brendan,
    Just looking at JumpPoint issue 2 and noticed the full geometry and material tests of the Bengal carrier on page 24 and noticed the FPS at 7.8 with not much other action going on, are these the sort of FPS rates that we can expect in the finished product?
    Cheers Joe
    Sorry if this has been asked b4...

    The frame rate in the final game should be much higher. There are several reasons for the low FPS in the screenshot :

    [LIST=1]
    [*]The screen shot was taken on an older lower spec machine.
    [*]The Bengal is made up of lots of sub-meshes, each of which requires one or more draw calls, multiplied by the number of lights that hit the Bengal.
    [*]We are currently always rendering the complete interior of the ship.
    [*]We haven't done a Level Of Detail (LOD) pass over the mesh. Usually we would generate several versions of the Bengal mesh, each one having progressively more detail (triangles). These lod's will be used for the rendering based on how far away the Bengal is (plus how powerful the PC is). One of the features we expect to write is an addition to the CE's LOD system that allows us to approximate a ship made of multiple sub-parts with 1+ less detailed meshes for rendering in the distance. CE's current LOD system allows us to substitute a lower detail mesh for a sub-part but not to combine multiple sub-parts into 1 mesh.
    [/LIST]

    I hope this answers your question adequately.
  • Forrest

    Developer

    Posted:
    Posted:
    PixelPunisher:

    The frame rate in the final game should be much higher. There are several reasons for the low FPS in the screenshot :

    [LIST=1]
    [*]The screen shot was taken on an older lower spec machine.
    [*]The Bengal is made up of lots of sub-meshes, each of which requires one or more draw calls, multiplied by the number of lights that hit the Bengal.
    [*]We are currently always rendering the complete interior of the ship.
    [*]We haven't done a Level Of Detail (LOD) pass over the mesh. Usually we would generate several versions of the Bengal mesh, each one having progressively more detail (triangles). These lod's will be used for the rendering based on how far away the Bengal is (plus how powerful the PC is). One of the features we expect to write is an addition to the CE's LOD system that allows us to approximate a ship made of multiple sub-parts with 1+ less detailed meshes for rendering in the distance. CE's current LOD system allows us to substitute a lower detail mesh for a sub-part but not to combine multiple sub-parts into 1 mesh.
    [/LIST]

    I hope this answers your question adequately.

    To second what Brendan has mentioned...the frame rate in that screen does not represent the frame rate you would receive in the game. That particular screen was taken on an early non-optimized version of the Bengal Carrier. All 7.2 million polys of the carrier was being rendered without any kind of optimization or culling including the whole entire interior mesh as well as the interior lighting, all at once. To top it off, it was being rendered in-engine on a old graphics card on ultra settings. :cool:
  • ShaderBoy

    Developer

    Posts: 65

    Posted:

    Developer

    Posted:
    Kickassspacer:

    Im not sure if this is a good question for you or someone else. Will the ships in SC act like planes in space or will they maneuver much like they do in Battlestar?

    This is more of a Game/Design question, so Jeff Uriarte or the designers Rob Irving and Nate Blaisdell would the best people to ask.

    That said my understanding is that we will have a full Newtonian physics model but that it will be possible to control the ship as though it were an airplane. The underlying computers will just be doing the calculations to make it happen correctly and you should see your reaction thrusters working to make it happen.
  • ShaderBoy

    Developer

    Posts: 65

    Posted:

    Developer

    Posted:

    Hi Brendan,
    can you give us infos whether AMD, intel, and nVidia guys are in some way working you you guys?
    Thanks.

    We are in discussions with the hardware manufacturers, but at this point I can't give any details.
  • ShaderBoy

    Developer

    Posts: 65

    Posted:

    Developer

    Posted:
    remosito:

    So if a old graphics card can run non-optimized ultra settings of a full bengal including interior rendering and lightning at 7.8fps. Wouldn't that strongly hint at your performance target being to low? Sounds like even a lowly gtx660ti would be bored out of her mind while spitting out 100+fps on a optimized, LOD enabled, interior-render-and-lighting-turned-off versioin of the game???

    Basically: Moa Polygons/Eyecandy/HighresTextures!?!?!?!? :cool:

    The aim as always is to have an experience that scales reasonably, not everyone will have the highest end equipment. That said we are looking to push the high end first. And if we don't push it far enough there's always 16X SSAA ;)
  • ShaderBoy

    Developer

    Posts: 65

    Posted:

    Developer

    Posted:
    LostInSpacebar:

    Brendan,

    In laymen's terms, how do you represent ship size at distance in space? Is it about graphics like lighting and poly count or context clues?

    Thanks!
    Chain

    The main way we indicate it is through depth cues. The most common ones are depth of field blur and depth fog.

    Depth of field uses the distance from the eye to the focus object and blurs objects based on the difference between their eye distance and the focus objects eye distance.

    Depth fog changes the color of objects based on the distance from the eye. In atmosphere we have various scattering effects that tend to make far objects turn blue.
    [ATTACH=CONFIG]8208[/ATTACH]
    In space we'll probably use black.

    Other than that it's really hard to provide any size cues, similarly to how it's hard to judge the size of a high flying aircraft on a cloudless day. Plus sometimes we want to misdirect for that wow effect when you get close.
  • ShaderBoy

    Developer

    Posts: 65

    Posted:
    Edited:

    Developer

    Posted:
    Edited:

    Regarding depth of space "fog" what ever. Space is black. Even those colorful nebula photos are false color based on temp and gas makeup. One of the things I didn't like about Eve and so many other modern space games is sticking everything in a brightly colored nebs. Nebs are fine if they aren't every where you look/go.

    And the background in X:BFT was one of the things I really liked, though the lens flare on the stars was a bit over done. It made you feel like you where in space and that if you went very far past the area between the gates, you'd be lost forever.

    The look of space in the game is the purview of the art department.

    A visible light picture of a galaxy

  • ShaderBoy

    Developer

    Posts: 65

    Posted:

    Developer

    Posted:

    Hi Brendan,

    How have you planned to make an open world game in Cryengine 3, who has a rather finite limit on how large maps can be?

    CryEngine has previously been used to make a few 1st/3rd person MMO's, we'll be extending that technology to support the 3d environment of space.

  • ShaderBoy

    Developer

    Posts: 65

    Posted:

    Developer

    Posted:

    Hi Brendan,

    what are the minimum system requirements for a massive space battle with 50 spaceships and more in maximum graphic settings?

    I would expect a high end machine to achieve maximum graphic settings. Since we're still developing the space combat visuals and gameplay I can't give a definite specification at this point.

  • ShaderBoy

    Developer

    Posts: 65

    Posted:

    Developer

    Posted:

    Brendan,

    Will we have the ability to change the paint jobs on our ships or load our own designs into the Electro Skin?

    The ability to modify your ships paint job is one of our goals.
  • ShaderBoy

    Developer

    Posts: 65

    Posted:

    Developer

    Posted:
    TaM | TaM said:

    Hallo Brendan,
    in the last episode "Wingman's hangar ep026" Eric says "make it good footage"
    in addition I have a question: when I play with the "Oculust Rift," I can only record the RIFT looks!
    Is there a way in game to record a demo, as in Half-Life1 or Battlefield recorder?
    Then you could play again after playing all and in the normal 2D optical recording!

    At the moment I don't believe there is a way built in to CryEngine to record the state of the level/game every frame to enable benchmarking/playback. There are commands to capture single or sequential screenshots, we use these for our screenshots and movies. The screenshots do have a performance cost though, about the same as recording through fraps.
  • ShaderBoy

    Developer

    Posts: 65

    Posted:
    Edited:

    Developer

    Posted:
    Edited:

    Regarding depth of space "fog" what ever. Space is black. Even those colorful nebula photos are false color based on temp and gas makeup. One of the things I didn't like about Eve and so many other modern space games is sticking everything in a brightly colored nebs. Nebs are fine if they aren't every where you look/go.

    And the background in X:BFT was one of the things I really liked, though the lens flare on the stars was a bit over done. It made you feel like you where in space and that if you went very far past the area between the gates, you'd be lost forever.

    The look of space in the game is the purview of the art department.

    A visible light picture of a galaxy
    Sorry, not visble light:

    An infrared view of NGC 1365, a beautiful barred spiral galaxy in the Fornax cluster of galaxies, about 60 million light-years from Earth.

    I don't think you would see a whole galaxy like that with the naked eye unless maybe you where located just right some place outside the galaxy.
    I was referring to the comparison image further down the article.
  • ShaderBoy

    Developer

    Posts: 65

    Posted:

    Developer

    Posted:

    Hey Brendan!
    I have some concerns about CryEngine and 3d Support in Star Citizen.
    Crysis 3 was not that impressive in 3d due to using a kind of "fake" 3d by creating the frames for each eye from just the same angle instead of diverging.
    Do you guys plan on doing the same thing or is the CryEngine limited to this 3d mode?
    It would be a shame if you could not fully immerse in the world because you have to play it without real depth.

    The engine itself has the ability to do both "fake" and dual view rendering. For SC it will probably be user selectable, with a recommendation based on your PC specification.
  • ShaderBoy

    Developer

    Posts: 65

    Posted:

    Developer

    Posted:

    hey brendan if your still answering questions i have 2.
    1.In the falllout series the players are given a pip-boy to keep track of there inventory, quest, health etc. will there be something like this in star citizen,but not just a pause menu but an actual device you log on to that you can personalize.

    2.Will it be possible to go in to a bar and start a shoot out, or rob banks when you land on a planet will we even have the option to kill friendly npcs

    thanks

    These are both good questions for the design team, Here a link to our lead designers question thread.

  • ShaderBoy

    Developer

    Posts: 65

    Posted:

    Developer

    Posted:

    Brendan,

    I recall many years ago that when I played Shadowbane, it had the ability to reduce detail in the scene in order to keep the FPS to a reasonable level. Does Cryengine support something like this, where one could specify a min FPS, ie. 30, and when you're flying in less populated areas, it cranks up the details, but if you get into an area with more players, it lowers shadows, shading, etc. to keep your framerate above the specified minimum?

    I haven't been able to find anything on google with regards to this, but my search-fu might be weak in this area.

    As far as I know CryEngine doesn't have this feature built in. Currently we have no plans to add it. It may come up as a potential feature in the future once we have people playing the game and we see variable frame rates being a problem that prevents people from enjoying the game.
  • ShaderBoy

    Developer

    Posts: 65

    Posted:
    Edited:

    Developer

    Posted:
    Edited:

    With the hangar module release getting closer what version of Direct X will my GPU need to work with to be able to access the module?

    You will need a DirectX 11 capable card.

    An nVidia GeForce 400 class or better, Or an AMD Radeon 5000 class or better.
    I estimate the minimum specification at equivalent perfomance to a nVidia GeForce 460, although better cards should see better lighting and more detail.
  • ShaderBoy

    Developer

    Posts: 65

    Posted:

    Developer

    Posted:

    Hi, I was wondering if external devices would be utilized to perform menial task when you were away from the game. Say a smart phone or a tablet. Also would it lower the cost to the company to utilize some distributed computing to some of the veteran backers to help run the game. I personally have a decent PC and a small server that is mostly idle. It would possibly decrease the amount of dedicated servers needed.

    I am not aware of any plans in this direction. Chris R and Eric P would be the people with the definitive answers though.
  • ShaderBoy

    Developer

    Posts: 65

    Posted:

    Developer

    Posted:

    CryEngine3 doesn't support extremely huge environments, and from what I understand there was a bit of coding that makes it so that the next "level or heightmap" gets loaded in when the player gets near to it. Is there any chance you could share that code with the community? as it could be the best way of fixing a skyrim issue where worlds cannot be larger than -64,64 because a bug won't allow activation scripts if the player isn't facing towards the center of the world. However since I plan on making Westeros with several other modders we basically have to split the heightmap up into several pieces to get rid of the bug. That however would of course ruin the experience:( so I was wondering whether it would be possible to auto load in the "next" heightmap when the player gets close and one of the best ways to test that would be through trial and error.

    The "Infinite World" code is supplied by Crytek to licensees that want it. So unfortunately there is no chance that we could share it with the community.

  • ShaderBoy

    Developer

    Posts: 65

    Posted:

    Developer

    Posted:

    Will the engine support TrackIR?

    TrackIR support is one of the funding goals we have committed to.
  • ShaderBoy

    Developer

    Posts: 65

    Posted:

    Developer

    Posted:

    Hi!
    There has been alot of talk about the CryEngine which you guys are using. I was wondering if you could expand on what needed to be done to the CryEngine to be able to use models when the poly's are 300,000 or a million.

    Perhaps you could explain what customizations had to be preformed to engine, if the models are brought into the engine in smaller pieces, how you went about designing custom vehicle control scripts.

    I just thought it would be a nice technical addition for those of us who play around with game stuff in our spare time.

    Thanks,
    Seeley

    Paul Reindell our Lead Engine Programmer would be the person to best answer this as he and Chris Roberts have written most of the changes to the vehicle system.

    We build all the objects we use out of components that are composed together at runtime. The space ships start as a basic frame upon which we attach the various components that make up that variation.

  • ShaderBoy

    Developer

    Posts: 65

    Posted:

    Developer

    Posted:

    An nvidia 580 GTX is capable of rendering approximately 2 billion triangle per second, but is limited to 2000-3000 objects per frame.

    Is this a vRAM size constraint?
    No. It's complicated but it mostly comes down to the cost of having an operating system that has to be able to share the hardware between several programs and prevent a single program from crashing the whole computer. The upper maximum of 5000 - 6000 draw calls per frame ( spread over depth pre-pass, regular render and shadows ) has been a pretty consistent number on windows pc's for about the last decade. The 2000 - 3000 objects per frame is because we have to repeatedly draw some of the objects for each of the different types of pass.

  • ShaderBoy

    Developer

    Posts: 65

    Posted:

    Developer

    Posted:

    Ok, so I currently have NVIDIA GeForece 9800 GT which does not support direct X 11, so I have to buy a new card. Now i'm running Intel Core i7 CPU 860 @2.8 Ghz with 4 GB Ram,

    Would I be able to run alpha with the above plus 1 of the 2 cards below, and which one should I get ?

    ASUS GT520 Silent CSM GeForce GT 520 1GB PCI-E w/ DVI, VGA, HDMI 49.99 http://www.memoryexpress.com/Products/MX35819

    MSI N610GT GeForce GT 610 2GB PCI-E w/ DVI, HDMI, VGA http://www.memoryexpress.com/Products/MX40034

    This is a personal opinion since I haven't tested the performance of the game on those cards or seen a review of them.

    Going by the PassMark benchmark they both seem to fall a long way below what I would estimate to be a minimum spec for the game.
    http://www.videocardbenchmark.net/video_lookup.php?gpu=GeForce+GT+610
    http://www.videocardbenchmark.net/video_lookup.php?gpu=GeForce+GT+520

    I would expect your cpu to be fine but you may need more memory.

    My recommendation is to check your machine against Crysis 3.
  • ShaderBoy

    Developer

    Posts: 65

    Posted:

    Developer

    Posted:

    Dear Brendan,

    I hope you're the person that I can point this question towards:
    Does the engine allow for multi monitor setups where certain parts of the game are ported to individual monitors?

    For example: I am using one main 27'' monitor. Under that, I have two tiny 8'' monitors with attached Thrustmaster Cougar MFD bezels.

    In a simulation environment, this is a great setup, because I can port the flight simulator's MFD displays directly onto my 8'' monitors (so those are static and only display the MFDs of the game's simulated airplane), while my 27'' is the main view monitor.
    DCS World engine allows this in a simple manner: you set up all your monitors as an extended desktop (so I put the main monitor at 1920x1080 on top, and the small 8'' monitors with 800x600 resolution in the bottom). In the game, you set a total resolution to encompass all your monitors. Then you just do simple math: You want your main view on the big monitor, so you write down "main view starts at pixel 0,0, and is 1920x1080 pixels large". Then, you want your left MFD display to show up on your left 8'' monitor, so you write "left MFD starts at pixel 0, -1080, and is 800x600 pixels large". And for your right MFD, you write "right MFD starts at pixel 800, -1080, and is 800x600 pixels large".

    Is something like this possible in the Cryengine3? Like: you have your main view on your main monitor (where gadgets like TrackIR work, allowing 6DOF), but you port your avionics displays onto secondary monitors (and those are static and don't change no matter how you move your head with TrackIR)?

    As far as I'm aware it is not currently possible to do this. I'm not aware of any current plans to change it either. They only working setup at the moment is 1 large render surface.

  • ShaderBoy

    Developer

    Posts: 65

    Posted:

    Developer

    Posted:

    Brendan,

    I am interested in learning about the CIG design approach for creating CryEngine 3 levels to simulate open space in Star Citizen. I have created CryEngine (CE) levels before for land based games. I posed a question for clarification to CIG team member Jeff Uriarte it goes as follows:

    "I have created CE2 and CE3 levels for land based games using the CE Sandbox Editor. Could you explain the dimensions of your reference to segments being 8k^3? I assume you mean 8192x8192x8192 meters with the chosen scaling factor (1,2 ,4, 8, 16 etc.) as the cubic dimension of a "segment". Also, visually and sound wise what would a SC pilot see and hear when flying from one "segment" to the next? Are "jumps" required to go from one "segment" to the next "segment"? Does a "segment" represent one CE level? Lastly, can you provide more detail about "larger areas can be handled seamlessly through proxies near the borders."

    Brendan, can you shed further light on this?

    Regards,

    Aidan :O)

    JeffU is crazy ;)

    Where is there a reference to 8km^3 segments. Last time it was discussed we were limited by the physics system to segments smaller than that, probably around 2km^3..

    Regarding the traversing between segments in space, it should be invisible to the player. Only transitions between solar systems and possibly landing on a planet will have a traverse/jump effect.

    I have no idea what he meant by proxies near the borders.
  • ShaderBoy

    Developer

    Posts: 65

    Posted:

    Developer

    Posted:

    Jeff told me to point this one for you tks

    How you guys planning to render the SPACE, because it is huge, i have read in other forums that CryEngine can render a MAP of size between 4km x 4km and 8km x 8km
    I also know that some kind of sector will be implemented so if a player is at some point of space the engine will render the map for that particular sector and when the player move..... the next sector will be streamed without any load screen

    Based on that info the engine will keep the player always at the center of the sector streaming in and out the sector parts that are out of scope?

    how will this work with big objects like space stations, Bengal , derelicts that can be out of the current sector where the player is ?

    They will be visible because I'm pretty sure a Bengal / space station can be spotted beyond 4 km (middle of the sector)?

    This is an area we are still researching. Our basic plan is to have space conceptually split into 2 zones, a regular rendering zone and a far rendering zone where only objects above a certain size are visible (planets, moons, space stations, etc.). The regular rendering zone may be larger than a single map/server segment.
This discussion has been closed.