Tuesday 22 October 2013

Tuesday Talkathon

The Day

Starting at 8AM, I started talking and did not stop until 2:20PM. After a cup of coffee, I had a conference call and talked intermittently for another 95 minutes. After 8 hours of continual chatter, I pretty much exhausted my tank for self expression!

The Meeting

A productive meeting, which clearly trivialized some items on the project list and magnified others. The top priority agreed by all was the matter of engine performance, overruling pretty much every other feature consideration. The demo itself performed well enough, with only smoothing and tweaking to bring it up to scratch, but the lack-luster performance clearly affected the whole experience. My PC is no slouch, not a high-end unit (three years old at least), but I should be getting MUCH better numbers from the frame rate.

The conclusion was that I should spend several DAYS just on performance, and keep drilling down until every lazy function and process has been chased from the software.  To this end I began my profiling activity.

Profiling 

The art and science of profiling is the methods by which a programmer can determine which individual component of a larger more complex system is causing the greatest burden on overall performance. The identification of the most serious bottle-necks will invariably lead to rapid increases in speed, but finding them can be tricky.

To hand I have a profiler (all be it a simple one) in the engine already, tracking the time taken to execute each of the main processes. Right now the values returned do not make a whole lot of sense, showing 'AI and Physics' taking almost no time and 'terrain and misc' consuming over 80% between them. I also have the NSIGHT GPU profiler and compatible graphics card which will allow me to dive deep into the cost of the shaders and video memory I am using.  I also have a full Intel developer suite, allowing me to make some very detailed profiles of the CPU and threading activity of the engine too.

I have the basis of some insanely precise profiling, all I am requiring is some fresh eyes and daylight.  Having the green light from the management team to post-pone adding more assets and tweaks, and focus entirely on getting the engine as fast as possible is music to me, and I am sure that everyone on the list to receive the impending beta will also delight in this pursuit.

Signing Off

As I promised a screen shot, and I am sure the idea of a mini-game might have tantalized unduly, I attach one here for your consideration.


It shows all the slider panels the engine has so far, and as you see I am getting carried away with them. The backdrop shows a scene from my little game, just before the compound entrance and nasty enemies beyond. Past the buildings is a dock and freedom (well, a win zone).

What I really want to enter into evidence is not the completeness of the game or my make-shift scene, but the present FPS count of 21.  My hope is to bring you another screen shot of much the same scene but a considerably higher number.  All my energies this week will be to that end, and hopefully have some interesting stories for you as to where the bottle-necks where hiding.

39 comments:

  1. Looking cool lee (The conclusion was that I should spend several DAYS just on performance)i think we should leave you alone now and let you get on.Assets look cool to,thanks to those guys to.

    ReplyDelete
  2. Another Thank you and thumbs up to hear that!

    Performance Optimisation and Improvements please. No1

    Nothing else to say but Thank You.

    Way to go!

    :-)

    ReplyDelete
  3. Could it be that the whole slider thingies need some performance or what is the stuff behind "misc"?
    Otherwise great to know that a lot of work gets used for performance and such stuf.. I wish you any luck you need.

    ReplyDelete
  4. That screenshot looks really impressive Lee. The best you've given us to date. THIS, is the kind of screenshots that represent reloaded well. I just hope you can get that performance up a considerable amount. Shame you didn't say anything about the LUA situation, I think pretty much everyone was hoping, and expecting some words on that.

    ReplyDelete
    Replies
    1. Not really I am glad he kept quiet and dealing with perf.

      Let him take a long time to decide pushing decision is a bad move. I am sure when the time is right he will let us know. All should be excited about next week More :)

      Delete
    2. As much as I am thrilled Lee is spending time on performance now, I also would have liked to hear more about the LUA situation.

      I think you'd probably better get used to the idea that LUA is going to be the new language, science man, because it seems to me like Lee is going to go in that direction.

      Delete
  5. Looks very good. Did you get my email?

    Also what do the "surface" values do?

    ReplyDelete
  6. And also, I'm not usually a performance bore - I'd much rather see pretty things - but I agree it does look like performance needs a boost. Good to concentrate on that.

    ReplyDelete
  7. Nice. Performance streamlining is definitely a good thing. A lot of the most played games today don't do that and you can clearly see the dissatisfaction from users on their respective message boards.

    On an un-related note, I hope you take my previous suggestion into consideration about having a slider system for movement mechanics such as:
    *Max run speed
    *Max walk speed
    *Max crouch speed
    *Acceleration and de-acceleration values from stationary to full-speed and vice-versa (all with their own sliders).
    *Max jump height
    *How much you slow down upon landing after a jump.
    *How much you can strafe/maneuver while airborn.
    *How much your character slows down if he is hit with a bullet while running.
    etc.

    Also, a simple system for adding new guns if you have your own gun-models or even modifying values for already-present guns such as:
    *Fire-rate
    *Clip-capacity
    *Maximum ammo capacity
    *Accuracy while standing still, running, walking, crouching, crouch-walking etc (I mean, it makes sense that you are more accurate if you are standing still than if you are running)
    *Run-speed with individual weapons (would be silly to run at the same speed with a pistol and a rocket-launcher right?)
    *Recoil-pattern on each individual gun (where your bullets go on a X and Y axis if you fire continuously)
    *Damage
    *There are more parameters but this is a good start.

    All of this will make a huge difference in making a distinction between FPSCR games so they won't all feel like clones.

    ReplyDelete
  8. Amazing screenshot Lee.

    We are all behind you on your quest to find those performance bottlenecks and kick them well and truly out of the engine. I agree that we all need to take a step back and allow you to focus on this for the rest of the week.

    I think you need to add draw calls to the performance monitoring panel. This is a really key thing to see when you are performance profiling a game. Also lets hope your monster terrain shader is not proving to be too much of a beast here.

    It sounded like you still have a lot of optimisation techniques to have a play with so I guess once you've identified the ones causing the biggest problems and addressed those you can then start adding more optimisations to keep everything else in check.

    I think that cloned entities and texture batching for static entities will give you some really big performance benefits.

    ReplyDelete
  9. "I'd much rather see pretty things"

    You cant have pretty things unless you have performance to accommodate them.

    Performance is a much more important issue than LUA and there is no comparison in the priority stakes at all, not even worth considering the priority for a second, which is why Lee has presumably chosen to look at performance now and to if necessary spend the time need to make the necessary optimizations.

    After that LUA .fpi whatever, whichever of those at any other, no matter, if and when they are integrated and implemented then presuming they will have a benefit on performance then that what is needed and if not and prove to be detrimental to it then I would expect that Lee will again look to optimise that too and minimize any adverse performance affect.

    As to the Reloaded objective which I presume is to "make a game" as easily as is possible and to deploy it successfully as efficiently as is possible in the shortest possible amount of time then your end user will not care in the slightest which script or programming language is used but they will certainly care if the performance level during game play impacts on their enjoyment and expectations of it.

    When Reloaded is viewed in the wider world and by potential user purchasers or anyone else for that matter any official or other demo or available games made with it which anyone will look at to access its potential and suitability will look at not only the capability, design, features, content and visual quality and everything else it comprises of that demo or game and will also certainly give high consideration to the stability and performance during game play and access the suitability and quality of the product accordingly but will have no consideration whatsoever of the technologies used at all in its creation. They simply do not care how or what you used to make a game only what the end result is.

    Poor quality, stability, performance and bad feedback and reviews are not good either for sales or reputation of the product which once set are extremely difficult to remove. Every company that has fallen foul to such will confirm that. Bad PR can and does kill many a product and or company dead in the water and is to be minimised if at all possible.

    Game Players simply don't want to know what the technologies or problems are and expect that your game will be playable without undue performance or any other issues.

    more.....

    ReplyDelete
  10. .... continued

    Script language - the only people who care about that are your game makers and they too being an important part of the whole route of game making and Reloaded success of course should not be forgotten for without them you cant sell your Reloaded product or get the games to market in the first place thus their needs too should be accommodated in the same vein with an eye to performance, stability, efficiency as well as ease of use for a Rapid Application Development environment and pipeline product.

    In all of this the end objective is the games made and the end game player so sight of that should always be kept in mind.

    Given successful implementation of these things there is no reason why Reloaded can't appeal to the widest possible user base both novice and or experienced game makers requiring an advanced engine, features and capability and anyone in between or even non game makers at all who would nevertheless have an interest in doing so and successfully meet with the end objectives and aspirations of both game makers and game players.

    The rest is down to the users to make use of the product in ways which best they are able and suit their needs.

    I applaude TGC for the work to date and the current giving of priority to performance issue at this stage.

    I think they have done a fantastic job in the actual development to date and listening to users as much as is possible and in interacting with them as they have done. They have done the right things in the right order and hope that continues. I have faith that TGC will continue to develop Reloaded with progress to achieve everyone's objectives to the fullest extent possible given any prevailing circumstances and achieve the best possible outcome whatever than might be and you cant ask any more than that of anyone.

    A personal opinion but there you have it.

    :-)

    ReplyDelete
  11. No LUA news? Oh man lol the forums are going to continue to be a headed debate on that side of things.

    ReplyDelete
  12. Yes there is news - it will be delayed or at least is was never going to be something at that would would be implemented relatively quickly.

    Whatever sooner or later you will get a permanent script solution and in the meantime enjoy the debate and Reloaded without it when you get it. That is unless you can get an instant plugin :-)

    ReplyDelete
  13. Just an idea, we could use Script boxes or something where you can put a script just to run globally on the map, like you have to do for those CoD Health Scripts I posted on the forum
    http://forum.thegamecreators.com/?m=forum_view&t=189569&b=23

    See, you have to put all those in trigger zones, so maybe we could have "Script Boxes" or something

    For forced camera movements for use in cutscenes, there could be a feature that lets you record your mouse movements with smooth camera or something and then makes it replay your WASD and Mouse while the hud disappears or something.

    Just things I thought of today while at work, love the blog :D

    ReplyDelete
  14. Amazing screenshot, looking gooood! :)

    ReplyDelete
  15. Awesome screenshot! I am VERY happy to hear that the top priority is going to be performance. This can make or break an engine in the long run, so good to hear it's being tackled in full now. Keep up the good work Lee.

    ReplyDelete
  16. Awesome work Lee!

    I have a question: From FPSC Classic you had 99 lives by default and 100 health.
    Will it be possible not to use lives but only health as a means of counting the player's damage?

    Keep up the good work!

    ReplyDelete
    Replies
    1. I'm hoping with all my heart that Lee implements a series of GUI commands/systems that allow us to completely define how we display things like that and make completely new systems. This is the last major thing I want so badly for Reloaded so all us puzzle game makers can really get our teeth into our creative ideas. I think it's important to give the tools to do the basic things rather than giving options for the basic things.

      Delete
    2. As unfortunate as it is, I have to err on the side of "not yet" when it comes to whether or not Lee will give us decent GUI systems. I'm fairly sure that Lee isn't doing anything major about the GUI just yet, though I fully expect to see large improvements in that area >V1.

      Delete
    3. I agree somewhat. After having tested reloaded, Lee really needs to spend some time on a lot of areas. The terrain editor is incredibly lacking right now.

      Delete
    4. Oh? What's wrong with the terrain editor? It seems to me to be just as good as most terrain editors.

      Delete
    5. Nothing that can't be fixed easily. Right now the texture support is abysmal, we need to be able to import a good number of textures rather than being limited to three. Two grounds and one grass(which seems to only be obtainable alongside the grass entities being drawn).

      We need bigger brush support, and custom brush support really. Either that or provide us with a decent set of brushes. We really could do with 360 degree rotation in the editor because it's very hard to get an idea of scale for the terrain.

      Quite important also is a "soften" ability. It becomes very difficult to smooth out areas you made to rough without starting over so such a tool would be very handy.

      And lastly, we need to be able to choose a terrain size and water level. So much unneeded terrain is being drawn.

      There are some other niggles, like the start position marker only working on the lower levels, (which actually is a pretty big problem now that I think about it.) and some sliders which are desperately needed, like the ability to edit the brush strength so you can add in those fine details without making unintentional mountains. Furthermore, the ability to choose grass density both as a player setting to improve performance and an editor choice so we can have sparser areas.

      It's a good start, and I've managed to create something interesting with the tools, but most specifically, that texture problem needs to be sorted near immediately. It's so incredibly, face-palmingly limiting.

      Delete
    6. Hey? What? You've used the editor? Wait, you're not the unnamed "sound guy", are you?

      Except for the fact that I'm pretty sure there is a smooth tool already, I have to agree with everything you say, and take your word for the stuff I don't know about :)

      Delete
    7. Rick asked for some people to help him get some nice screenshots using the software. I offered and he said yes. I'm not quite as special as that. ;)

      Delete
  17. Another sneak peak available or Reloaded here:

    http://www.youtube.com/watch?v=VI6CX7J0TsI

    Looking awesome. I can almost start the 1 week countdown for the 1st BETA

    ReplyDelete
  18. Minor point of order. It's not a clip, it's a magazine.

    http://outfitterlife.files.wordpress.com/2012/04/magazine-vs-clip.jpg

    Other than that, can't wait :)

    ReplyDelete
    Replies
    1. Thanks for that image. I've always known what a magazine was, but never what a clip was or why some people called mags clips. Now I know. Thanks :D

      Delete
  19. "Oh? What's wrong with the terrain editor? It seems to me to be just as good as most terrain editors"

    People expect a lot. Reloaded is a long development Job. Much longer than most wish it was so to be. It is likely to take many Years an not 1 or 2 before it becomes anything like mature as to what users and indeed TGC aspire for it to become and do.

    Thus during the long development things being put in place are still as it were largely "Place Holders" and will have basic features or functionality - just enough to get things working and tested with the core feature stability and performances being kept very much in mind while these things are integrated so as to see the whole picture.

    When the Core things are done then the next priorities will be done and all will be moved along in kind of common sense order of logic and priority and things will be added and updated. How else would such be done. You only strop along the way to add something extra when the Core is done.

    People are clearly expecting to much if they think any one feature is going to be complete or anywhere near so for a quite some time. Everything to date is in its basic form and still in a process of design and may even need to be changed out or updated at the core so details have to wait.

    There's nothing at all wrong with the Terrain feature to date excepting that it need updating an so on and extensively so for that you have to wait.

    Terrain in this instance is at a early stage where it is to enable you and other game entities to walk around - Thats it.

    In early development and Beta stages that's is sole purpose by and large. To test that and such things as the Physics which is not even integrated fully yet.

    Heaven forbid!

    People really do need to get used to the idea that Reloaded is going to be a long job.

    I have no idea why anyone would have ever have thought otherwise or would expect anything other for any feature other than what you have right now.

    This is the same for any feature that any one is mentioning like Huds. Game screens and interfaces or anything else. You will have to wait and potentially wait a very long time for everything you want and to be at a standard you want. Potentailly many, many years.

    A the moment you cant even save a Game .exe or publish it and you may not hav, game menus and so on are just a waste of time including at this time and for Lee to waste development time on time on as you cant make anything worthy of calling a game of a standard that Reloaded aspires too.

    Sorry Reloaded too is an FPS game maker first and foremost so that needs to take priority. Scripting features, Huds and anything else must support that first and foremost and the overall objectives and Vision for Reloaded.

    Patience and a lot of it is required and also due consideration as a priority of whats best for the Reloaded product overall in the long term.

    :-)

    ReplyDelete
    Replies
    1. Then why comment against my comment of patience when you agree with umans comment about waiting and patience ;) or was that your cheeky self being cheeky :)

      Delete
    2. No no, I didn't mean to have a double standard. I totally agree with anyone that promotes patience. When I said I wanted to hear more about the LUA situation, I was just displaying my lack of patience ;) When I said you should get used to the idea of LUA, I was trying to help you by suggesting you prepare yourself. Still, no one is 100% sure the LUA thing will even go ahead, so you may have nothing to worry about.

      Delete
    3. Clonkex I was being fun. I was attempting light hearted fun. I admire cheeky. Twas being playful I thought some light hearted nice fun qas needed all good hence smiling and a kiss further up.

      Delete
    4. Oh, ok. I couldn't tell if they were sarcastic smiles or actual smiles :P Ew, and now you're kissing me?? lol :D

      Delete
  20. @Peter:
    I think most of the people commenting on the blog realise that. Still, there is nothing wrong with pointing out what could be improved on in-case Lee missed it. Lee and the dev team can then prioritize the suggestions and their own "suggestions" in an order that they see fit.

    ReplyDelete
    Replies
    1. This pretty much sums up my opinion on his post.

      Delete