Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

How to make an AAA game in Unity (or fail badly)

Discussion in 'General Discussion' started by Billy4184, Mar 10, 2016.

Thread Status:
Not open for further replies.
  1. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    You mean two very talented people ;)
     
  2. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,492
    Martin_H likes this.
  3. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    Nice tools they used


     
  4. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,492
    The second one is just a shader though, not sure the first one is hard to emulate (placing stuff based on slopes and direction)
     
    Martin_H and AcidArrow like this.
  5. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,436
    I've spent the last two days testing how different things affect performance. I did most tests in the editor, because making a build for every small change is just sooo cumbersume. I've kind of lost my faith in the stats that Unity is showing me. The stats in the game window were measuring fps rates in the 200+ area when fraps was measuring below 60. And in a build (which on average performs better than the editor, at least in my case) I had below 60 as well. I think @frosted may have had similar experiences with how Unity displays framerates. For the moment I only watch the fps counter from fraps.

    That sounds like a nightmare! Sorry to hear you had to shelve the project.

    I'm not going for full blown RTS, I don't really know how to call it. I think 100 active enemy units should be more than enough, and I can have those with my current solution it seems.

    The only AI I ever wrote ran on a second gen iPod touch, I don't think I'll do too many complex calculations here. Pathfinding will be heavier, but I'm using AStarPP and that is multi-threaded afaik.

    Through testing I've found out that a surprisingly high amount of CPU is being eaten by IK solvers and rotation limits. I won't be able to have many mechs in the game, but I wasn't planning on that anyway. Even the turrets of the tanks, which only have rotation limits from the FinalIK asset, take up a very significant part of the total CPU time. But I can optimize those a lot to not be used on every frame by every unit. The next big performance hog will be just rigidbodies of debris I think, and maybe Raycasts and particles.

    That's true. Thanks for all the advice! I've worked for years on an iPhone game where I optimized the crap out of everything. In the end:
    a) I abandoned the project anyway.
    b) It all took so long to develop that during those years the capabilities of mobile devices multiplied, and all those fancy optimizations became essentially obsolete.
    c) If I had invested that time into making it prettier instead of faster, I'd at least have better screenshots to show for it now. No one cares how optimized a non-released game is. On the other hand top notch screenshots of art assets that I make, can contribute to my portfolio.

    For this new thing my minimum target plattform is an i7, because that's what I have. One of the reasons I abandoned the iOS project, is that I don't want to deal with the mobile market. It's just not my world, I don't even have a smart phone and I barely use the 2 iPods and the iPad that I bought for on-device testing.

    I'm treating myself to the luxury of only seeing this as a hobby (for a commercial project it would be a questionable choice to only target highend hardware, can't argue with that). If I should change my mind on that, I can always go back and optimize further. If I waste development time now on something that doesn't really benefit me, I can't get that time back. So I'm trying to make smarter time investments this time around. It'll probably take years till (if) that game gets ever finished anyway ^^.
     
    AcidArrow and frosted like this.
  6. frosted

    frosted

    Joined:
    Jan 17, 2014
    Posts:
    4,044
    The stats window is a strange beast, I'm not really sure what that number is. It does go up and down with optimizations and stuff (it will show a higher number when things are running smoother) - but the actual number it shows has no relationship to the actual fps. You can use it as a rough barometer in terms of "did that change impact performance?" so it's useful.

    If you are going to spend more than a day or two on performance, I suggest spending a couple hours building your own fps tracking using update. I added some very minor 'stopwatch' kind of functionality to my display and it really ended up saving a lot of time and preventing a lot of error. This is -very- easy to do and quite handy. Eyeballing fps numbers or digging through profiler is very inefficient, you need to rely on averages and high/low points or its impossible to really keep track of stuff.
     
    landon912 and Martin_H like this.
  7. gian-reto-alig

    gian-reto-alig

    Joined:
    Apr 30, 2013
    Posts:
    756
    That is what everyone will learn with some expierience in Unity.

    never. ever. trust. Unity. in-editor. stats.

    Like, ever.... it has been showing crap numbers for as long as I could remember. In my case it was often showing my horribly unoptimized games running at 30 Hz max in the editor with vsync off. FPS went up to 36 Hz with Vsync ON (hows that even possible IDK... I don't have 36/72 Hz screens, just your average 60 Hz ones :))...
    When I built the game and played it with FRAPS on, FPS was in the 50-60 Hz range...

    I was like "WTF is going on?". Then I read other peoples getting wrong readings from Unity too. Problem as far as I can tell is that a) the Unity editor is running in the background, potentially decreasing performance, b) the game is not built, so you are playing a potentially vastly different "build" as you would with the built game.

    Just use the Unity in editor stats for what they are useful for... for example trying to measure the impact of a new imageEffect in percentages.
    (In my case, SSAA with a QHD resolution being downsampled to HD lowers FPS from 60-ish Hz to 30-ish Hz... which makes sense given that QHD is about 80% more pixels to crunch, and then there is the additional overhead for the downsampling going on. I cannot say if the halfing of the framerate is really accurate. But its going to be a big impact nonetheless).

    If you need exact readings and tests, build the game, and test the actual build

    Well, its not the full story (project scope was also a little bit to big (Hi-res models and textures would have been needed, spent way too much time on creating these, and while the basic idea was fun, there where some inherent question not answered yet about how to implement certain aspects), in the end it was just the rough Upgrade to Unity 5 that broke the camels back.

    Which was good in some ways, sometimes you need a wakeup call to take some time off your projects and start to see them in a different light.

    One day, I might revisit the project, this time hopefully with a better physics engine at hand (and a better plan :))


    Well, sure, PhysX should be able to handle 100's of SIMPLE physics interactions without problems. I was doing tests with tons of spent cartridges managed by PhysX rigidbodys... at some 100's of them the game would start to slow down, until I started optimizing it. But with some optimization, no problem even in the old PhysX version.


    Now, 4 wheel colliders per tanks, AND the needed corrective forces to make them behave nicely is not going to be just as simple anymore. You can optimize it, for example:
    only run physics where needed, eg switch off rigidbodys (or set them to kinematic) and all physics for tanks that are not moving and only reactivate them as soon as the tank is moving... only run physics for visible units, switch to a simpler system for offscreen units, only updating the position in a very rough way per script, run some synching routine when the unit comes close to being onscreen to make sure it is in a position/rotation that will allow you to startup the physics without it going haywire.

    Of course, if everything runs fine on your end, that might not be needed.

    I was speaking more generally. "Would your rather spend your CPU cycles in physics (which most of the time will add little to how fun the game is, as soon as everything FEELS physically correct), or on more important things?"

    I found that you can spend A LOT of CPU time in physics. Yet it often doesn't even look that good because PhysX is not really physically that accurate for anything more complex, unless you massage it to do your bidding (often by adding additional physics calculations on top).
    While abusing the physics engine to move your stuff might save you some work early in prototyping, you can save a lot of performance by simplyfing or outight removing physics on nonimportant stuff.

    Which is what a lot of AAA developers as of lately have done. You read a lot about it. Developer A wants to implement Kick-ass Havok physics into his game to make all the gubbinz move on your vehicle, physically accurate. They want to have buildings collapse physically accurate, shot into small pieces.
    They build up an exciting prototype and run it at 20-30 Hz on their big testing rig. Then they test it on a smaller machine, and the FPS are single digits.
    After a lot of tries optimizing things they either abandon the idea, or limit it to the most important objects.

    Takeaway is physics calculations are heavy, even on a big CPU. And your players will most probably not have a big CPU. Not all of them, anyway.


    I worked with a lot of DIY calculations for my own turret rotations. Ended up in quite some scripting, but was working fine.
    I would do the same in the future. For simple "animations" like turret rotation, moving the bones/gameObjects through scripts is the best way IMO.... unless proven wrong I would also assume its cheaper, as IK solver most probably always have a lot of overhead.

    Way I did was setting up an invisible "rotation target" gameObject for both turret and gun, and then every frame rotate the visible turret and gun at a given rotational speed (set per vehicle as a parameter) to match the target.

    Target would be lined up to point at a locked Point (like a target vehicle), or the mouse pointer with the lookAt method. Visible Turret would then always work at keeping up with the invisible Target.

    Worked like a charm for me, even got it to work with an offAxis weapon (main gun was shifted to the side).
    I would probably simplify this for your use case, but would pick that over trying to to IK Solvers and Animation my bidding.

    If you want to, I can dig through my old code and give you a code sample.


    For your mechs, that DIY route would most probably quickly get too complicated (and most probably more expensive than using bake animations)... maybe go easy on the IK. What do you need all the IK for anyway? The legs? Can you run the IK solvers at a lower precision / reduced framerate (don't know, no expierience with IK yet)?
    Are you running ALL IK Solvers ALL the time (unneeded until your legs come close to the ground, for example)?


    I see where you are coming from. I would only optimize if a) your are running into such a low performance that it starts to affect your development speed, b) you are unsure if you go into a direction that will not allow to optimize more and you need to make a decision now before continuing (for example before you order your artist to create 100'000 polygon characters, you should test if you can run 100's of them in your scene)... or c) you have a finished project and want to maximize the potential audience and lower minimum specs.

    So take my advice with a heap of salt. I have been burned by issues with physics before, thus I am wary to overuse it. But of course, scripting is not free either, and YMMV.
     
    Martin_H and frosted like this.
  8. frosted

    frosted

    Joined:
    Jan 17, 2014
    Posts:
    4,044
    Worth noting that this kind of thing can also be somewhat problematic in terms of optimization since you get into issues where many legs come close to ground at the same time and you have giant spikes. Especially in early development I often prefer to keep these kinds of optimizations off the table. If you work in the 'worst case' you can often find more solid solutions. When you're looking at these numbers, you need to look at the spikes first, not just the averages.
     
    Martin_H and gian-reto-alig like this.
  9. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,436
    Yeah, after realizing how off the numbers on the stats display were I stopped using several stacked SSAO effects, but watching editor FPS while tweaking values still was helpful in finding a good compromise between quality and performance.

    I did a few performance comparisons on 100 tanks today, all measured with Fraps and with proper builds. I tried these things:
    - everything activated, random torque force on each wheel collider
    - above but without forces applied
    - wheel colliders off entirely
    - above + rigid bodies set to kinematic
    - above + turret controllers disabled

    Every test gave me 63 or 64 fps, which means my test setup was garbage because the framerate was still GPU limited, but I only noticed that later. Well, I'm still learning ^^.

    The most interesting thing I found out today was that turning all the tank turrets every frame only gave me such a heavy FPS drop because they had their own colliders and Physx seems to need to recalculate some things when the compound collider of the rigidbody changes. Probably nothing new to most here, but I didn't think of it. Replacing the turret and barrel box colliders with a single sphere collider that is attached to the hull of the tank is a no-brainer because it gives a significant performance increase (at least with 400 tanks, tested in editor) and I think I'll be able to live without the moving collider on the tank's barrel.

    And I did a few more tests on the wheel colliders with a setup that wasn't GPU limited, but I didn't have the patience to make a build again each time. It seems just having the wheel colliders isn't expensive. If I spawn 400 tanks a bit above ground, with 4 wheel colliders each, they bounce a little and once they get to rest the framerate goes up again. So they seem to be well optimized.

    You've got a good point! I'm starting to realize too that PhysX doesn't look as realistic as I'd like it to. Maybe I'll invest more CPU time into particle effects, we'll see.

    I agree! That sounds like how I'm doing it already. I'm not using full blown IK solvers, just the rotation limit hinges. I've seen that kind of setup in a FinalIK demo scene or tutorial I think. This is my code for aiming the turret and barrel:

    Code (csharp):
    1.  
    2. using UnityEngine;
    3. using System.Collections;
    4. using RootMotion.FinalIK;
    5.  
    6. public class MTurretController : MonoBehaviour {
    7.  
    8.    public Transform aimTarget = null;
    9.    public Transform barrel = null;
    10.  
    11.    private RotationLimitHinge rlTurret = null;
    12.    private RotationLimitHinge rlBarrel = null;
    13.  
    14.    public float aimSpeed = 50.0f;
    15.  
    16.  
    17.  
    18.    void Start () {
    19.      rlTurret = GetComponent<RotationLimitHinge>();
    20.      rlBarrel = barrel.GetComponent<RotationLimitHinge>();
    21. //     if (aimTarget) aimTarget.parent = null;
    22.  
    23.  
    24.  
    25.    }//start
    26.  
    27.  
    28.  
    29.    void Update () {
    30.  
    31.  
    32.      // aim
    33.      if (aimTarget && rlTurret) {
    34.      
    35.        transform.rotation = Quaternion.RotateTowards (transform.rotation, Quaternion.LookRotation(aimTarget.position - transform.position, transform.up), aimSpeed * Time.deltaTime);
    36.        rlTurret.Apply();
    37.  
    38.        if (barrel && rlBarrel) {
    39.        
    40.          barrel.rotation = Quaternion.RotateTowards (barrel.rotation, Quaternion.LookRotation(aimTarget.position - barrel.position, barrel.up), aimSpeed * Time.deltaTime);
    41.          rlBarrel.Apply();
    42.        }//if
    43.  
    44.      }//if
    45.  
    46.  
    47.  
    48.    }//update
    49.  
    50.  
    51.  
    52. }
    53.  
    54.  



    That walking animation is 100% IK, with me moving the solver targets with scripts. I have no baked animation that is being modified by IK grounders. So unless the mech is standing perfectly still I need all the legs to use their IK solvers. For 4 legs there's no noticable cost, but 100 would weigh heavy on the framerate. But that's ok, I'll likely only ever need between 4 and 8 of those.
     
    Deleted User likes this.
  10. gian-reto-alig

    gian-reto-alig

    Joined:
    Apr 30, 2013
    Posts:
    756
    SSAO is expensive no matter what you do. I also went with two stacked SSAO effects for my former project, to get near detailed AO and far, more wide spread AO. The better way would be to modify or write your own AO so you could do both in a single pass (like what SC2 does with its AO).

    With my current project I ended up using a single AO Effect and modifying the AO Settings as the Player zooms in and out. That makes sure I get a nice AO effect going fully zoomed out, but a nice detailed AO when fully zoomed in. As the AO settings are only changed when the player zooms, don't think that this will do much to the performance.


    Well, the positive side to that is that you still got some headroom on the CPU. Not a reason to party and go wild on wasting CPU cycles, but it is something :)


    I was using a collider for the body of the vehicles, and one for the turret. That was all the colliders used for physics (Used mesh triggers for the hit model, but that was a separate setup). Never had a problem with it. Could it be that you would get a better performance with keeping the colliders separate (just make sure they do not overlap), instead of trying to use one single compound collider?

    Other question of course is if you need more than one single collider. Physics collision should be kept as simple as possible, ESPECIALLY as physical collision as calculated by physX is highly unrealistic anyway. Two vehicles colliding will be treated as, well, rigid Bodys... not even armoured vehicles are 100% rigid. If we go to unarmoured cars, they are extremly deformable.
    All this stuff PhysX does not take into account (how could it, you tell it to use "rigid body physics" and don't provide any information about how deformable the material is). If you want a more realistic behaviour, you need to fix the unrealistic trajectories and forces that PhysX applies to the colliding rigidBodys with your own scripts and corrective forces. Thus a sphere collider will probably do the job anyway. With the added bonus of you having to hack the physics materials less to get overly slippery.... box and mesh colliders have a nasty habit of sticking to other colliders if they hit them. Might be better for sphere collider because of missing angles, don't know.


    As to the wheel colliders. They might be quite optimized, so it might be moot trying to optimize them further, true. Again, if you are not to concerned about realistic wheel and suspension behaviour (wheel collider are not very realistic behaving)... given you use them on tanks, I guess that does not matter anyway.
    Still, later I would think about LOD-ing the physics setup somehow, so your are not calculating the wheel colliders for tanks not in the visible frustum of the camera. Seems wasteful to me, expecially given the numbers of wheel colliders in use.


    Well, on the lowest level PhysX is fine. Stuff like catapulting objects into the air and letting drag and gravity bring it back down, or simple collisions (stone vs stone for example), PhysX does quite well.
    If you want to go beyond that, and trust PhysX to be faster than your own scripts (which could very well be, don't know about PhysX 3.3, PhysX 2.8 was a resource hog even compared to Unitys C# scripts), you can still use it as the basic building block (by using its ability to apply forces and smooth the resulting trajectories and speeds with drag and gravity), but you will need to come up with your own scripted complex physical interactions.

    As an example, two cars crashing together. No problems using wheel colliders (with some hacks to make them behave more realistic outside of the ideal on-the-road-driving-straight cases), and rigidbodys with colliders as the basic setup.
    When the crash occurs, its up to your own scripts though to measure the impact force, measure the REAL normals of the cars at the colliding points (as colliders are almost always simplified), adjust for material deformation (even if your mesh does not deform, you should take this into account for the physical behaviour, else it will look off), and calculate the resulting trajectories and speeds yourself. Apply that as forces to the cars, either adjusting the forces applied to the cars by physX because of the collision, or overriding them.


    For your case though I think you should really go easy on stuff like that. Given your vehicles are small, collisions do not happen that often, they player cannot really see the car well enough to judge if the wheelcolliders are really behaving realistic or not, try it out without hacks first.
    Just take it as a warning, if something looks off, its not you, or your models, or Unity. Most probably is PhysX just using a way to simple physical model to be able to calculate a realistic result.


    As an anecdote, my friend was shocked when he realized that there was a setting in Unity for PhysX called "iteration count"... real physical calculations are not iterated upon, they don't need to be. They are one, big, fat formula.


    That looks quite simple... I just question what you need the RotationLimitHinge for.... surely you could adjust that with simpler means in a C# script.
    Don't know really how expensive that is to do in PhysX... in C# it is just a few lines of code with very simple calculations (basically if the rotation is higher than a certain threshold, adjust it).


    Mmmmh... I might not be the right guy to make the call here (still something of a newbie when it comes to animations), but wouldn't it be cheaper to only use the IK solvers for the actual footplacement, and have baked animations for the normal walk cycle? That way the animation would be ALMOST free on the CPU (uses more Memory though AFAIK), while only using additional CPU where it is really needed (when the foot comes close to the ground).

    But then, as said, I am not the right guy to really judge this.
     
    frosted and Martin_H like this.
  11. frosted

    frosted

    Joined:
    Jan 17, 2014
    Posts:
    4,044
    I tend to look at performance tuning not so much in terms of saving cycles, but more spending them where I want to spend them. You do what you can hacking the living hell out of everything of 'secondary' importance so that you lavish as much of your budget on the things that really matter.

    I just spend half a week performance tuning, the result - my fps is actually very slightly lower than it was when I started. Did I fail at making things faster? No, I took the savings from x, y, and z, and reinvested them in making more stuff shiny. I gained stuff like AO and DoF on my base hardware target, at very close to the same FPS. It's a huge win in my book.

    Stuff like dynamic animation and the like is one of those places where I tend to think lavishing cpu is often worth it. Especially if it's on your centerpiece.
     
    gian-reto-alig and Martin_H like this.
  12. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,492
    I have been talking about black people rendering a lot in this thread, I don't think most people are really interesting in the challenge. But I discovered a neat "tut" for hair modeling of tight curl, I'm exciting so I share it for no real reason :D

    Enter next gen afro hair!

    More: https://www.artstation.com/artwork/v4QwO

    It doesn't cover all aspect of afro haircut but that's one hell of modelling right there! I think I can extend from there :cool:

     
    Ryiah, landon912, frosted and 2 others like this.
  13. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,492
    Not solo (15 peoples) but some are trying similar things, very instructive video about doing things differently:



     
    frosted and Martin_H like this.
  14. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    Hand crafted character will always be far superior to some tool generated character :p
     
  15. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,492
    Well it really depend of what aspect precisely, not that the hair is half generated by tools, though the procedure was "designed" ;)
     
  16. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,436
    I'm interested specifically because it seems to be hard ^^.

    Sounds interesting, I'll have a look.
    The title of the game Hellblade is too generic imho, I thought I already had it on my steam wishlist, but that turned out to be HellRAID. Usually I'm good with such things, so I predict lots of "Idiots in a hurry" confusing the two, and that might already be enough to get sued over name similarities in a worst case scenario.
     
    neoshaman likes this.
  17. MV10

    MV10

    Joined:
    Nov 6, 2015
    Posts:
    1,889
    With regards to procedural storyline generation that came up in another thread (and should be migrating here in 3... 2... 1...) that reminded me of these news tidbits that show up in some of my AGI-related RSS feeds:

    http://www.digitaltrends.com/cool-t...-passes-first-round-nationanl-literary-prize/

    Though one commenter says: "Read the novel, tried the generator on their site. Don't worry, writers, this isn't going to get anywhere. It writes *one* pre-programmed story with randomized characters with profiles to match. Every story is otherwise identical."

    http://thenextweb.com/google/2016/05/05/googles-ai-read-enough-romance-novels-write-one/

    http://www.theverge.com/2014/11/25/7276157/nanogenmo-robot-author-novel

    And more narrowly, from quite awhile back:

    https://techcrunch.com/2010/11/12/automated-news-sports-statsheet/
     
    Billy4184 likes this.
  18. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,492
    I want to shed some light on the mechanics, I follow this very closely, and while I didn't have the time to dive myself experimentally within it, I can share some of my finding and how close we are to something decent.

    The first thing is to have the right expectation, a lot of people will simply move the goalpost to keep human centrality. The problem is that it doesn't have to be great to change everything. While we are closing onto a "generic ai" solution with deep learning it's not quite general intelligence, a big missing part will be real life experience.

    To understand something like:
    - I'm leaving you
    - who is he?
    Is not just intelligence, it's experience and intuitive knowledge of human experience. It's a problem of dictionary, experience is basically anyone dictionary of events in a life. It's basically a problem of culture.

    Regarding story generation there is many dimension to handle, structure, intention and prose are generally evaluated together but a distinct aspect of story. I would argue that story is already solved by itself! It's not hard, you can use template within template in a complex madlib, in fact that's all the writing tips you will find to help you (ex: the 3-4-6-9-12 acts structures).

    The problem is that the product result can feel nonsensical and mechanical, ie lacking in intention (meaning, experience) and prose (fluidity). The mechanical part can be lessen using heavy hand made style rules hacks, to make it more stylistically human, hi level chatbot use that, they are basically parsing text into concept, match a hand made response pattern from a dictionary, then use rules to make it stylistically human.

    The other way promising AI result has been done was with RNN (recurrent neural network), who are basically glorified markov chain with deeper pattern prediction. They can take random text input and learn the inherent structure without intervention. The end product is that they are able to generate stylistic output close to what human would do, except it's mostly nonsensical (absence of intention) and lack higher structures which betray their origin.

    However RNN have many interesting properties, such as encoding emergent topics of the learned corpus, by classifying the sequences using proximity in a multidimensional space. You can basically do mathematical operation that give coherent semantic result such as "king - woman" which give "queen". So this technique was heavily used for machine translation (mapping concept space to concept space using a joint corpus) or "style transfer" (rewrite in the style of).

    I think that's what happen in there. They use a template based approach and use style transfer to make the prose readable, basically transferring the mechanical style to human style! And the article show that it fumble precisely where it should, ie with intention (character description). The kicker is that it's not terribly complex techniques and it's not inaccessible either. If it almost won a prize, it's good enough for video games, because writing there is terrible so far :D

    Here is the kicker:
    RNN also translate image to text, and text to image, can pick a low resolution image and make it higher rez, etc ... so if it works for text IT WILL WORK FOR VIDEO! :eek: Sound is not there yet. You will still need a human but it lower the bar massively.

    I give 5 years for a complete revolution in entertainment industry.
     
  19. Billy4184

    Billy4184

    Joined:
    Jul 7, 2014
    Posts:
    6,008
    @neoshaman, I think you made a great point that a lot of people don't realize - a story is not constituted by what is on the page, but rather what the words leverage in the mind, memories and imagination of the person reading it. A story is simply a series of hooks that grab onto the first thing that comes to mind when you read it. That's why a lot of new writers over-describe everything and generally make it harder for story experience to emerge inside the reader.

    And that means that to some extent, an AI writer simply has to know how to push the right buttons inside the reader - and to some extent does not need to actually have a human perspective of their own.

    EDIT: I hope I didn't misinterpret what you wrote! But anyway this is certainly what I think ...
     
  20. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,492
    Well I leave a lot in this, else I do an essay lol. You didn't misinterpret what I said, but I would say you push some more idea I avoided on purpose.

    There is a certain pleasure in the texture that some people appreciate in literrature, ie the prose is more than the immediate style of writing, there is a bit of intention. Prose can be written to evoke human sensation without naming them. I left this part, because in the context of video game, and this conversation, it is lost (we don't see the words of the prose), and I'm aiming at good enough, not true art! And also this level of mastery is less about story, which was my focus.

    Here is the high bar of the dictionary problem, maybe not impossible to reach but uncertain right now, where prose texture is intentional:





    So the reason I think there might be way to achieve this level of prose, with computer, is sentiment analysis. It's a simple technique that class words into positive or negative strength, so by measuring the frequency of negative vs positive words, we can infer an overall sentiment (aka negative or positive) of a message. It turns out that this classification emerged naturally from RNN learning and that we can make operation on it. So if we discover other directional vector that encode other human sensation, we might be able to do analogy operation on the transfer of style! Though continuity and relevance of intention will be harder.

    Now remember I'm not an expert and this is speculation based on the research I read. I'm just merely interested and haven't taken the plunge personally in these techniques to see if the hype is real. :p I'm still optimist, I follow people on the field and they geek out severly on it.

    For example go here ( https://twitter.com/dribnet ) where a person is applying what I said to face recognition and applying semantic vector translation in the learned space ... ie what you are seeing is NOT animation, it's the representation of a face reconstructed from the perception of the neuron and then translated in the representation of the neuron. It's not text but has the same power! So the guy had found the direction in which smile are encoded and apply it to image, which give the illusion of animation, that's insane, INSANE :eek:
     
    Last edited: Jul 23, 2016
    Billy4184 likes this.
  21. MV10

    MV10

    Joined:
    Nov 6, 2015
    Posts:
    1,889
  22. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,492


    Great explanation of current deep learning and creativity
     
  23. MV10

    MV10

    Joined:
    Nov 6, 2015
    Posts:
    1,889
    Applying the label "creativity" is just anthropomorphization at this point.
     
    neoshaman likes this.
  24. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,492
    It's a simplified explanation gear toward clarity, but debate about creativity was never settled ever, not in art, not in philosophy, and it has been reignited with recent development of AI and procedural generation. I would say it's highly debatable at this point :D

    Personally I have spectrum of creativity that is inside a triangle of meaning, chaos and order. But meaning itself is a wildcard, can you define meaning?
     
  25. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,492
  26. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    Another one man game looking more impressive
     
    Billy4184 likes this.
  27. Billy4184

    Billy4184

    Joined:
    Jul 7, 2014
    Posts:
    6,008
    Great to see a low-budget game that makes a point of having a bit of cinematic depth.
     
  28. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,492
    It look impressive sure, I don't know if it looks more impressive though, animation is spotty, environment is sparse (the other game have dense environments with dense interaction, and god like animation standard), but it does make a case that AAA looking vs simply AAA, most people wouldn't know the difference :D so I think that's a win, and a demonstrable target. It also show that "style" is important in fooling people, they associate style with proven quality, Harryhausen mice will lose to final fantasy as AAA big spectacle quality. It did help me choose the direction to go for my project though, so thanks! I'll rather make a smoke and mirror splash, given the project's nature, than going all "artsy".
     
    Martin_H likes this.
  29. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,492
    Billy4184 likes this.
  30. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    C mon, anyone will recognize the AAA gameplay and AAA graphics, the game has already baught many people and got lot of attention. Make the same as good as him than we'll talk later about AAA :p
     
    Billy4184 likes this.
  31. Billy4184

    Billy4184

    Joined:
    Jul 7, 2014
    Posts:
    6,008
    That's the thing - whatever you want to call it, that sort of game I'd say is the pinnacle of of what a solo indie can achieve, and it looks better than 95% of indie games anyway. Only problem I thought was the terrain, it looked low quality in a few places.

    What really impressed me was the atmosphere and cinematics, it's the kind of game that doesn't use good graphics as an excuse for lacking atmosphere, which to me is a great thing as both are important to me.

    I also liked the rat game, it's not totally my cup of tea but it comes across as having a lot of character. These kinds of examples are great inspiration.
     
  32. gian-reto-alig

    gian-reto-alig

    Joined:
    Apr 30, 2013
    Posts:
    756
    Also noticed the Terrain sometimes looking not so good... could be the vegetation/gras on the terrain though. Overall, if this really is being made by a small Indie, good grief, that is some achievement still. I really love the animations.

    The voice acting though is pretty bad... heard worse of course, but its at a level that I wished the dev would have gone for text instead of voice acting.

    Not interested in the game, but if I was into hack'n'slash games, final fantasy like costumes and weird looking enemies might give it a try as it looks pretty decent.


    The Mouse game on the other side. Boy, does that look gorgeous. And it must have been in development for ages. Seen screenshots of the game being used to advertise a decal system in 2013, and the game looked pretty much like the final product by then. Guess that is why it is looking so good and obviously is also well done as a game if it really was done by a single guy.
    Guess its a reminder what you can achieve if you stick to your project far longer than any sane person could bear to.

    I might actually buy that game when it leaves early access.
     
    Billy4184 and Martin_H like this.
  33. Billy4184

    Billy4184

    Joined:
    Jul 7, 2014
    Posts:
    6,008
    @gian-reto-alig it isn't so much that the cinematics are that great in themselves, but that the dev really aimed at a bit more drama and atmosphere than you would see in the typical indie game. I also thought the camera shots were pretty good.

    I agree the voice acting (especially the background commentator) was not really very good. But at least for me, I can feel it's trying to be something a bit more artistic than usual and it's something that means a lot for me. So many indie games I see just don't even attempt to have any of that metal-gear style cinematic drama, with facial animation, well-executed movie-like camera shots and so forth. They usually try to convey the atmosphere through some kind of fun factor, stylistic flair or extreme 'less is more' mentality which only takes you so far.

    I realize it's not a universally good thing for everyone, but I like to see games that have a real chunk of machinima in there, and it being probably one of the most difficult things to pull off with limited resources, it's great to see a one man team pushing in that direction a little.
     
  34. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,436
    https://forums.unrealengine.com/showthread.php?118030-Lost-Soul-Aside-a-fantasy-action-game

    100% Blueprints he says:
    I wouldn't be surprised if his primary education is art-related. That'd be quite a compelling example of visual scripting being a good thing (and powerful too).

    Edit:
    Seems to be a cool dude. Doesn't want the responsibility of a Kickstarter project right now and seems to manage to stay humble in spite of all the attention he is getting.

    http://www.kotaku.com.au/2016/08/man-sees-final-fantasy-xv-trailers-decides-to-make-indie-game/
     
    Billy4184 likes this.
  35. Billy4184

    Billy4184

    Joined:
    Jul 7, 2014
    Posts:
    6,008
    Why am I not surprised? This is the future of game creation. No endless reprogramming the same tasks over and over again. A massive online library/store of blueprints does everyone a favor, cuts costs and time, and raises the possibilities of what indies can achieve. Now all we need are virtual developer assistants with a speech recognition interface :D
     
  36. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,492
    Well I don't think it's true that anyone will recognize it as AAA, but it does tell us something that you can't see what purist will see, and that's the lesson :p I see it as very rough as I have some art education. Also the talk about atmosphere and contrasting it to other indie with the angle they didn't put the effort is crazy talk to me! From a purist perspective, the mice's idle is way better than all the animation of the other game combined, they are stiff, not very expressive and it's cliché. However it HAS the signifier of AAA quality, stuff that profane will pick up. I'm a snob so ....

    BUT it's actually massively interesting :D let me stress the important part again: from a purist perspective! That is the crazy thing we missed in all that discussion about the possibility of solo AAA, ie that AAA are overpolished, wannabe AAA don't fail because they just lack polish, they failed because they are underpolish. Ie they miss the signifier of AAA quality and has signifier of bad quality, the presence of these thing are "tell", irrelevant of the actual performance under the hood of the production.

    What does that mean? Well AAA employ top talents, and those talents try to match they own high standard, which is full of subtleties and snobbish evaluation. Problem is that the audience miss all these subtle cues that only talk to those in the know, they don't care about cliché, about stiff animation, as long as those don't actively detract (signifier of bad quality) from the experience. That's good news! because it mean a solo AAA can design with audience perception in mind instead of the "snob" standard of the art. It's the Michael Bay effect, if you are a writer and are verse in the art, mickeal bay movies are trite overstuffed repetition, but to the audience is unbelievable, it's cool.

    Being an indie who want to score big you want to be the Mickael Bay and not try to chase the audience of "every frame is a painting", ie the snob. The idea is then is to find way to increase the signifier of quality and decrease signifier of bad quality, and that does not necessarily mean going for subtleties, but easy stuff that sells the game, to design around hiding the seam and promote stuff that people see as cool.

    For example, particle effect at the right moment (like in this video) that don't kill the frame rate but only exist at that moment to sell the situation. It's not entirely new, remember when I showed that mgs5 screenshot with ps2 level shoulder geometry? well nobody care about shoulder, nobody notice but the purist, but we care about face, so the care goes to the face ... and the cigar because round object are signifier of quality (we don't see the cigar in situation where the details would kill the framerate). If Konami can do it in a game praise for its graphics why not indie? Though it does take talents to see where you can cut the overpolish. Good news, that's learnable, measurable and don't take finesse to get it.

    Since all the discussion were about how AAA where too polish and that indie could not achieve that, well we have just proven that wasn't necessary to achieve the same effect!

    Do you follow?

    For historical context, it's similar to disney style vs anime style. Disney had the constant 24 images by second animation full of unnecessary details, cutting the fps down lead to massive drop in quality. Manga came and swipe that through by using more impactful composition with less animation, putting emphasis on composition and emotional impact over constant fps, and what they save with moment of stillness was rebudget in hi quality spectacular sequence. Stillness wasn't seen as signifier of bad quality because they find a way to make them significant in the editing to build tension, so people start anticipating stuff that actually saved cost.

    And that allowed them to be more ambitious in seeting and story, much more than anything hanna barbera or disney ever achieved. Moment where there is no animation in no way diminish the master piece that are ghost in the shell, made with a fraction of a disney movie. That's what we should strive for. Disney was slave of the 24fps and almost disappeared until procedural rendering with pixar transformed the art for good. Remember, Osemu tezuka was the one who invented the modern animation style of anime, he was a mangaka that didn't knew how to animate, and nobody wanted him in their studio because he didn't had the skills. He did what he wanted, he created a method to make 20mn of animation alone, per week. He changed the art forever.
     
  37. Billy4184

    Billy4184

    Joined:
    Jul 7, 2014
    Posts:
    6,008
    So I went into Blender yesterday morning and wrestled the python to try and optimize my modelling workflow by automating the preparation and export of lowpoly and highpoly objects (triangulate, apply modifiers, slide over mirrored UVs and export) with a script. That worked out pretty darn good - I don't think I realised how much time I wasted redoing that after every tweak.

    ...And I got a bit sidetracked and ended up with a script for greebelizing stuff:

    Greebles.png

    I'll see where I can take it once I spend some time and come up with a better grammar for it. For my own game I really want to avoid the greeble-fests that seems to drive a lot of scifi design - something more clean, aesthetic and subtle with plenty of resting space, more like Halo's style or something, would be good, but anyway we'll see how it goes.
     
    Martin_H likes this.
  38. MV10

    MV10

    Joined:
    Nov 6, 2015
    Posts:
    1,889
    I dunno, actual spacecraft are pretty greebled-up, which is why guys like Fon Davis host entire classes on the subject.

     
  39. Billy4184

    Billy4184

    Joined:
    Jul 7, 2014
    Posts:
    6,008
  40. Billy4184

    Billy4184

    Joined:
    Jul 7, 2014
    Posts:
    6,008
    @MV10 I do think greebles are used as a bit of a crutch, it often ruins the silhouette and just looks random. Some of the Star Wars stuff was really good though despite being a bit too busy for my liking.

    Really, the problem is that a lot of times the greebles don't enhance the shape or communicate any sort of structural intent, and they just come across as confusing. It's not so much that there's too much detail but often there's no hierarchy to it, it's all just thrown over.

    I think halo did a fantastic job of taking care of shape (which is the most important thing), rather than the smallest details. I really admire the aesthetic, and I could sit and stare at it for hours if I had nothing else to do:

    Halo-4-E3-2012-Screenshot-14.jpg

    ps sometimes realism isn't the greatest thing!
     
    gian-reto-alig likes this.
  41. MV10

    MV10

    Joined:
    Nov 6, 2015
    Posts:
    1,889
    We were fortunate enough to actually see Fon speak about modeling (both practical and digital) and he pointed out greeble is there to give people something to see. While that sounds obvious, the lack of traditional greeble-everywhere design in modern 3D models is perhaps due to the very high quality rendering we enjoy these days. There's still "something to see" but now it includes reflections, soft shadows, lighting effects, and other things that were either unreasonably expensive or simply impossible in previous generations.

    "It's greeble, but not as we know it."
     
    Ryiah and Martin_H like this.
  42. Billy4184

    Billy4184

    Joined:
    Jul 7, 2014
    Posts:
    6,008
    @MV10 that makes sense. Put it this way, I think that detail should be put down in such a way that at each successive scale of detail, the design is still pretty to look at.

    Let's say you're detailing a ship. The first scale is obviously the hull itself. Next might be the paint scheme. Next might be separation of 'subsystems' using large-scale extrusions. Next might be hull plating. Then small functional elements such as hatches and pipes. etc.

    At each of these scales, the details should clearly defer to the scale above them and accomodate themselves to the shape and detail focal point. But so many times I just see what looks like a ship that has been unwrapped onto a randomly generated greeble map of uniform detail, and while the sheer detail density is eye-catching at first, imo it doesn't come off very pleasant.

    For a ship, here's an example of what I consider to be very good design, there's a lot of resting space that really offsets the detail and makes you pay attention to the places where detail is shown:

    sparth-argent-moon-sparth-flat-final.jpg
     
    MV10 likes this.
  43. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,436
    This seems relevant:

    I might have posted it before. The rule of thumb I remember from that vid is to go for a "1-2-3" read on the shapes of hard surface sci-fi objects. Have a clear hierarchy in the shapes. So, basically what you just said.
     
    Billy4184 likes this.
  44. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,492
    Speaking of procedural generation no man sky is out and it really looks like my first procedural generation game, they struck some luck with the art direction, but I have so many thing to say about how they handle things ... They did also the same mistake as when I tried to make terrain the first time, focusing on middle and hi frequency instead of low frequency, small voxel precision is a delusion and hog your performance only for vanity gain. Also it seems they have a lot of downgrade in the generation process because their seamless generation surely must be costly, it's strange as other have managed to get better performance even with unity. There is very little innovation and very little awareness about the state of art and not a deep understanding of what progen can do. Also the gameplay is a bit too strict too, but that's another problem.
     
    Last edited: Aug 27, 2016
  45. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,958
    Sounds like you at least managed to get past the Hello Games logo. Mine crashed a few times before I decided that paying AAA prices for what amounted to an early access title was far too much so I requested and received a refund from Steam.

    I'm very much still eager to play the game but I'll wait till it goes on sale for one-third the price before giving it another go.
     
    Martin_H likes this.
  46. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,436
    To be honest NMS looked even more boring to me in Jim Sterlings video, than I imagined it to be. Not quite my cup of tea I fear. I might give it a try if it ever comes in a humble monthly bundle or so.
     
    aer0ace likes this.
  47. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,554
    Shortly after game launch there was some time where nobody was playing the game but there were already 800 negative reviews (and the game was "mostly negative") on steam with 0.2..0.6 hours of playtime because the game was constantly crashing and nobody could get it running.

    It seems that the situation at least got partially resolved later.

    Ken perlin had a procedural earth on his site:
    https://mrl.nyu.edu/~perlin/recompiled/Planet.html

    Noise based.

    Would be nice to see someone doing something similar.
     
    Billy4184 and Ryiah like this.
  48. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    10,083
    I was able to get it running after uninstalling and reinstalling it, but the thing still crashes all the time and runs choppily as hell on my 1070gtx. As far as PC ports go, this is pretty poor. It's a bad port. Arkham Knight bad, honestly.
     
    Martin_H likes this.
  49. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,958
    Yes, I saw that as well. I might very well cave over the next couple of days if they patch it sufficiently. I have friends who were able to get it running and I was going to play at the same time as them. We'll see. :p

    Have you seen Space Engine? A number of NMS fans were discussing it for a good while at one point.

    http://en.spaceengine.org/
     
    Last edited: Aug 13, 2016
  50. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,554
    That's not quite it.

    In the Ken Perlin example, the planet is a function.

    In most modern crafting game, the planet is voxel data.

    The reason while I like the Ken Perlin example is because it pretty much uses the function directly to display the data.
     
Thread Status:
Not open for further replies.