Monday 4 November 2013

Monday Vegetables

Eating My Greens

After my success with the terrain LOD performance improvements, I turned my attention to the vegetation system and the hundreds of thousands of polygons that little monster was consuming.  As some beta testers have observed, the vegetables are perhaps the hungriest component of the lot and switching them off provides an immediate speed gain.

I therefore decided to add some additional slider controls to the creation of vegetation and also improve the back-end so that the engine was not rendering invisible grass objects. I had thought that polygons where not the bottleneck, but it seems on older or less powerful graphics chips they are a factor. By not even rendering them in the first place, I could get a speed boost in this area.

The Gain

The upshot of my evenings work dropped the polygon count from 500K down to 200K without ANY visual difference in the scene.


By changing the sliders in a new Quality Settings panel, I managed to drop it down to 86K polygons without too much visual difference.  


When I made my slider adjustments I went from 77fps to 104fps, and remember the 77fps was a lot lower when we had half a million invisible grass polygons knocking about.  

All in all, I am pretty happy with the improvements to the vegetation system and all it has really cost is 4MB for the new grass grid array and some variable quality loss when you start playing with the sliders.  There could even be a way to get that quality back by using larger grass textures with more grass stalks per image, but that is for another day with a friendly neighborhood artists on standby.

Signing Off

I hope you don't mind me making my blogs a little shorter these days as I want to spend more time in fixing and tweaking while the beta is in it's formative months.  

I've used my little 'run to river' game as a benchmark and it looks like controlled vegetation behaves itself now, so the next offenders are a tie between the shadows casting and the AI module.  I have a plan for improved shadow casting speed and also some notion that perhaps the DarkAI is NOT using multi-core which it was designed to do.  These will be my prey tonight, but not too late as I have a few conference calls on Tuesday. You may wander what conference calls have to do with coding, but it's the price you pay for being in a team and coordinating a larger project offensive.

25 comments:

  1. Very nice lee,when will we get the sound fix.I'me one of the people without ssound,very boring.

    ReplyDelete
  2. Why the graphic in reloaded looks terrific ? I don't think it's important but reloaded should look better than Unity (for example) :)

    ReplyDelete
    Replies
    1. No. I disagree. It should not look "better" than Unity. It should look better than FPSC-Classic.

      Delete
  3. seconded. Can't wait for the sound fix. This status was good, IMO, in terms of length and detail. A book isn't necessary. Too much and you're spending too much time writing a blog vs fixing bugs.

    ReplyDelete
    Replies
    1. Its important he gives write ups to his activities... i mean after all I'd love to know the progress as we can help steer it as well with feedback. That's the whole point.

      Delete
  4. Excellent!! I'm not yet a beta user because I have no money, but soon I will be and then I will really appreciate the work you're putting in :D

    4MB is what I'd call negligible, so that change was WELL worth it :)

    ReplyDelete
    Replies
    1. I honestly expected you to be a backer lol

      Delete
    2. I expected people would think I was a backer the way I talked, but I tend to imagine what I'd be feeling if I were a backer ;)

      Delete
    3. lol very true (frustration is what you'd be feeling)

      Delete
  5. Lee, I really think that the blob system is a good idea. But maybe removing the segments system is. Unless a way to convert segments to blobs is created, I think Reloaded should have a way to load segments and blobs. Maybe you can chose which on to use when you create your project.

    ReplyDelete
  6. Any chance of an undo button in the near future? Or am I just not seeing it, because I'm not wearing my glasses :P

    ReplyDelete
    Replies
    1. That would be handly, especially when you by accident have the "spray" function active (without knowing) when placing a house :)

      Delete
    2. Next version changes the highlight cursor so you know you're in an altered state (much like the auto flatten does now).

      Delete
  7. I am hoping come Friday we can get more than the 2-4 texture types. With our own. Plus how you make a terrain texture. :) that is when different art photos will show up. And people create their more unique world :)

    ReplyDelete
  8. Segments and Blobs would be incompatible and two systems not realistic.

    Other suggestions like undo is great.

    The Texture System ;

    I have said this before/elsewhere and I know its rather advanced and would take a lot of work, what is ideal would have been to have a Texture/Materials Editor Feature that is integrated with texture management in one item all to hand.

    Texture/Materials Editor : Set/Edit all associated Properties for a texture and save as material to be used/painted to Terrain, perhaps blobs, elsewhere? Terrain especially where flexibility is required and could add many additional texture management details all in one place.

    Load/Select/Choose Surface Texture

    Select the Textures bump map

    Select Shader material affect, Metal, wood and so on.

    Select the Textures sound - floor, grass, lava, water, stone, wood and so on so that player walk sounds or other things that collide are different applied to the Texture being interacted with.

    Select Texture surface properties : Friction, so that the player or objects on it move with more or less resistance. e.g. Ground, stone, oil, Ice some slippery or not. Control full resistance to movement - slower - faster - down to no forward movement at all so preventing moving up cliffs or hills or even preventing the player and enemies moving to areas not desired for game design purposes or control of access to areas. Fort example - prevent moving to edge of world - this would remove the need for continuous physical Boundaries, walls, fences or invisible walls.

    More settings if applicable I am sure...."Reflective" Dull and so on. Most of these things above could be provided by default choices already made available out of the box. Shader, bump, sound and so on so only those wanting to create additional ones would have too.

    I understand something is already being done about painting fences which may impact on Polys?

    Edit texture properties and save as material.

    Then in editor choose material and paint terrain using tools, spray (editable nozzle spray denisty), paint, blend edges, Transparency and so on.

    Anyway You know what I mean here. Its something like pro systems and engines, editors might have so is a big job I guess but seriously adds to users development from all aspects, speed, quality of game and so on and is well just better for them and their games and gives Reloaded a Pro feature abilities

    Just a suggestion perhaps for later but how you would then go back to integrate such would be a nightmare later I Guess. Its a ground up thing I presume?

    I had expected the texture management to be a little more flexible, helpful, sophisticated and easy to use both than it is though I understand and accept of course its early days.

    :-)

    ReplyDelete
  9. I think, that you should also add a double sided material for the foliage with no collision to get a nice looking trees.

    ReplyDelete
  10. Totally off topic, however just want to comment on the recent news update on the FPS Creator Reloaded home page - potential Oculus Rift support!!!!! THANK YOU LEE!!!! My rift is waiting in front of me for any support I can offer :) I have also gone ahead and posted on the official Oculus Rift forum linking to the news of the potential support - let's grow Reloaded!!!

    ReplyDelete
  11. Lets please finish Reloaded as a complete FPS game making tool first containing all the necessary core element features so you can develop something worthy as a completed game to "Rift".

    :-)

    ReplyDelete
  12. I don't see what non critical game making features are being given any consideration at this moment in time when there are so many important critical things to get in place, up and running and stable that will actually contribute to the physical game making construction, development and deployment process.

    :-)

    ReplyDelete
  13. Rick asked for a photo with me holding the Rift ;) If I start blogging about developing Rift features and ignoring performance, fixes and tweaks, you can rip me a new one at your convenience ;) As an indicator of restraint, I have had the Rift since the kickstarter started sending them out, but apart from looking at a few demos it has remained untouched. The potential of the device is insane, but we first need a solid game maker before we can do justice to that amazing piece of kit!

    ReplyDelete
  14. "The potential of the device is insane"

    Yes and the future of game making/game playing I am sure.

    I can imagine perhaps your itching to get going with it (Rift) as I am sure it would be great to see your hard work and Reloaded utilising it in such immersive ways as the result and satisfaction to you especially having developed Reloaded personally I guess would be immense.

    No doubt it would also contribute to the promotion of Reloaded as a product too.

    :-)

    ReplyDelete
  15. Interested to no Lee,what was the problem with sound.wierd some people have it some dont (glad you found the fix by the way)looking forward to friday.

    ReplyDelete
  16. Finally opened the zip file :D whatever you guys did, or however many times it took it fixed it now!

    ReplyDelete
    Replies
    1. So glad you got it working! Nothing worse than paying the money and not being able to use the thing! :)

      Delete