Search Unity

Character Controller Improvements

Discussion in 'Wish List' started by Jedimace1, Jan 2, 2010.

  1. Jedimace1

    Jedimace1

    Joined:
    Jan 2, 2010
    Posts:
    119
    Many different games need good character controller support, from an RPG to FPS games, to MMO games to adventure games. I think that Unity, in supporting many different game types, should support smooth character controllers. Some features I think are required for a lot of users of Unity are sliding, support for walking smoothly with terrain normals(bumpiness while walking down larger slopes), and support for different complex shapes. A smooth character controller is vital to making high quality games, and that is the goal of any game engine.

    A good example of a character controller is in Leadwerks. It feels really smooth while playing the demos. There was only a tiny bit of jitter when walking down steep slopes where in Unity you are almost jumping each frame.

    http://leadwerks.com/engine_physics.html

    I know that people always get the response that they are supposed to program it themselves on a per game basis, but the character controller doesn't even support that well. It should at least tell you if you are standing on a slope that you can't walk up or not, and the normal of that point. An upgrade of the physics engine might help with this, since the Unity version of PhysX seems to be old. Vote for it here:

    http://feedback.unity3d.com/pages/1...iding-support-and-other-small-useful-features
     
  2. Eric5h5

    Eric5h5

    Volunteer Moderator Moderator

    Joined:
    Jul 19, 2006
    Posts:
    32,401
    Well, the character controller is just a prefab with a fairly basic script. So you can replace the script with something better and put it on the wiki if you like; updating the physics engine isn't necessary.

    --Eric
     
  3. Quietus2

    Quietus2

    Joined:
    Mar 28, 2008
    Posts:
    2,058
    If you search the forums, there are dozens of examples of getting a surface normal for things like hovercraft and such. Not being able to add the features you wish to the character controller, is not a deficiency in the controller itself.
     
  4. Jedimace1

    Jedimace1

    Joined:
    Jan 2, 2010
    Posts:
    119
    But after getting the terrain normal and finding the position of the player and seeing if he hits the ground, we're not even using the character controller anymore. Anyways, game engines are supposed to make you focus on your specific game and make it easier to make a game, and I don't think anyone wants a different type of sliding for character controllers. Also; the character controller isn't a script, "FPS Walker" is the script, and I am actually talking about an update to the character controller.
     
  5. andyz

    andyz

    Joined:
    Jan 5, 2010
    Posts:
    2,276
    I was going to make a new post on this subject. I am just starting to evaluate Unity and the character controller shortcomings are the first thing I noticed in the initial FPS demo. I have done some programming before with PhysX and seen the failings evident in the basic character controller included - which Unity seems to be using as-is (am I wrong?).

    One major problem is slope sliding - or rather lack of it. A character can not walk up a steep slope, but can jump up it and also walk slowly down it without slipping.

    Another is walk speed up/down slopes which I think is constant parallel to the ground plane so that a character will actually speed up when walking up-hill (if measuring along the terrain), rather than slowing down as would normally happen. Characters tend to bounce down steep slopes too because the move vector is flat and gravity takes time to catch up if walking fast.

    Outside of Unity the PhysX character controller can be modified or re-written as the code is included with the SDK, but I'm not sure what is possible within Unity.

    I hope that the Unity development team will customize the default PhysX character controller in the future to provide better out-of-the-box support for slopes.
     
  6. Jedimace1

    Jedimace1

    Joined:
    Jan 2, 2010
    Posts:
    119
    So, here's the deal. Quietus said that there a bunch of rigid body character controllers on the forums and Eric5h5 even created an FPSWalker_Enhanced script on the wiki. Even though these may temporarily fix the problem, the Unity Character Controller STILL needs a serious update. I mean, there are a bunch of workarounds, but none of them have the quality required in a commercial game. I'm selling a product to my customers, and the first thing the will notice is the horrible character controller. I'm surprised UT still hasn't created an acceptable character controller. It's not like if you ignore it, it'll go away. The problem is still here and is extremely unsatisfying. Look at Leadwerks, the character controller alone is enough reason to switch to Leadwerks. If an entire company can't provide the quality that 1 person can, we have a serious problem. I payed for Unity Indie, and I still expect quality support that I payed for, even if it is free now. Does anyone have an example of a good, bug-free character controller in a game? I don't think so, because with Unity, it is not possible.
     
  7. fallingbrickwork

    fallingbrickwork

    Joined:
    Mar 16, 2009
    Posts:
    1,072
    I'm not sure if this post is a genuine FPS Controller post or a general dig at Unity with the FPS controller as a smoke screen (maybe you bought Unity before it was free and now wish you'd spend the money on LE)... you mention Leadwerks a few times and i know you are a member of the LE community because I am also.

    I'm not getting into a Unity vs Leadwerks debate as i too am a LE customer (from early on). To say that the character control alone is reason enough to leave Unity for Leadwerks is... well, I wont say what that is. There are too many reason why i now use Unity over Leadwerks.

    I haven't found anything so far that Unity hasn't been able to do (with a little tweaking)... can you not write your own character functionality?

    Failing that, if LE has what you want... well, it's only a cheap buy button away.

    I wish you well getting things sorted.

    Regards, Matt.
     
  8. Jedimace1

    Jedimace1

    Joined:
    Jan 2, 2010
    Posts:
    119
    The stuff you can write with the current character controller is limited, and requires a lot of workarounds that aren't always a good solution.
     
  9. AlbertoT

    AlbertoT

    Joined:
    Mar 27, 2009
    Posts:
    159
    Well, in my opinion it is interesting to compare different engines as long as it does not turn into a flame war

    Never used Leadwerks and frankly speaking I dont trust 1 person game engines

    Hoewever I went through Leadwerks video and commands list
    I must say I have been impressed

    So what advantages can I expect from the 1.500 usd Unity over the 200 usd Leadwerks ?
     
  10. Jedimace1

    Jedimace1

    Joined:
    Jan 2, 2010
    Posts:
    119
    AlbertoT: Exacytly, 1300$ more, and I don't see enough advantages to Unity for it to be worth that much more. Anyways, I've recently made the switch to UDK. It's much more efficient.
     
  11. AlbertoT

    AlbertoT

    Joined:
    Mar 27, 2009
    Posts:
    159
    From my experience, the most important feature of a game engine is stability
    If you just go through the list of features , you can find a lot of impressive engines around but just a few of them allow you to finish a game
    For this reason I dont trust 1 person engines, the developer may be a smart guy but he has no time enough for debugging

    Unity3d seems to be rock solid engine and Leadwerks ?

    Apparentely Leadwerk looks like Blitz3d as far as the commands are concerned, may be the developer has reused part of code
    If so it should be stable
     
  12. Jedimace1

    Jedimace1

    Joined:
    Jan 2, 2010
    Posts:
    119
    Unity isn't that stable. On my old Mac(Powerbook G4, sold it), it never really worked because it had these insane graphical errors. SSAO in Unity Pro ruins the lighting, so you can't receive and cast shadows at the same time, and some objects can't cast shadows. Multiplayer simply doesn't work. A lot of models, especially the ones that I used when working with Yahodahan on his model viewer, don't work when importing them from FBX. The transparent cutout shader has horrible mipmap problems when rendering from anywhere past about 1 unity with something like a fence(and there's not a lot more that you'd use a transparent cutout shader for). The dynamic shadows in Unity Pro have this really weird noise problem, where, if you look in the distance(not that far, about 200 units), you'll see the shadows have like a noise or artifact or something that is pretty obvious. And then the character controller problems I mentioned above. The list goes on.

    The point is, I could take all of the time to fix these, but in that same amount of time, I could be much farther in Leadwerks or UDK than I am now in Unity after a month of working. Unity isn't built for big projects. It sucks. Also, the alternatives our cheaper. Give me a reason to not switch?
     
  13. AlbertoT

    AlbertoT

    Joined:
    Mar 27, 2009
    Posts:
    159
    I agree with you as far as FBX is concerned
    I dont really understand why Unity3d refuse to admit that some other simpler but much more reliable file format should be supported

    For the rest I did never come across any issue with Unity3d but my experience with the engine is quite limited and I dont own the Pro version

    However I understood that , from your experience, Leadwerks is reasoanbly stable
    You can finish a game, I mean
    It it right ?

    well of course UDK is a number one, but royalties can be a sufficient reason to stay away from it
     
  14. Jedimace1

    Jedimace1

    Joined:
    Jan 2, 2010
    Posts:
    119
    A lot of the bugs are from Unity Pro, and some of them could be system specific. The point is that Unity is definitely not stable.

    You're going to get royalties when you're making a game. You are going to get distributor royalties, also, with like Steam. Also, making a game with royalties keeps initial costs down.
     
  15. Nick-Wiggill

    Nick-Wiggill

    Joined:
    Jan 31, 2010
    Posts:
    46
    People are welcome to say what they think, that's how things in this world improve. But don't ask for other people's help to think things through when you have an inherently negative attitude to start, because most people will just ignore you.

    (EDIT: Going off-topic will do the same thing for you.)

    You may think that jumping around between engines every time something goes wrong that you lack the ingenuity to fix, is the right approach. Good luck -- you'll be jumping between engines a lot, then. Like any engineering solution, I'd be kinda surprised if Unity didn't have flaws, particularly considering some of the amazing things it can do, e.g. deploying fast 3D content through a browser.
     
  16. Tysoe

    Tysoe

    Joined:
    Jul 6, 2009
    Posts:
    577
    Leadwerks uses deferred shading and only works well with a pixel shader 3.0 video card. Unity works on a much broader range of hardware and platforms than Leadwerks, and is also easier to use than leadwerks.

    I came from the blitz3d/blitzmax communities, leadwerks is built on the foundations of those two languages and is a decent engine.

    I think the basic character controller with unity is very helpful for people new to the engine but isn't supposed to replace programming knowledge. It's nice that unity lets you create basic gameplay and prototypes with hardly any understanding of programming, and the character controller is a nice basic example that shows beginners how Unity works, or lets them jump in and have something moving around in moments just by dragging and dropping a script.

    I've been blown away by Unity and won't be going back to blitzmax any time soon. I wish unity had come out for PC sooner so I wouldn't have spent so much time working on an ogre game dev framework for blitzmax. Unity is fairly easy to use, has powerful tools like keyframe animation editing, and runs on mac, PC. Iphone, web browsers and soon iPad and 360. It's a very good tool, I guess it may not be for everyone but there are plenty of other alternatives out there, though not many that are multi platform and easy to use.
     
  17. kyoryu

    kyoryu

    Joined:
    Feb 15, 2010
    Posts:
    8
    Call me weird, but I'm using Unity over UDK right now specifically *because* of things like the controller script. I found myself spending more time in UDK fighting through their code than actually writing my own.

    I considered cobbling together my own engine, but would need to find a way to integrate an editor, a graphics engine, physics, and a GUI system... and then I noticed that Unity is basically that.
     
  18. Caps

    Caps

    Joined:
    Jul 23, 2010
    Posts:
    21
    Hi guys.

    I´ve found this thread because I´m having trouble also with the Character Controller.

    The biggest constraints for me at the moment are the jitter/jerkiness of movements and the slope issue while using Character Controller.

    Now, from what I´ve read on this thread so far, I´m afraid to admit that this discussion of wich engine is better is not the issue but rather the title posted: "Character Controller Improvements". Character Controller could definitely use some improvements and I don´t think that should offend anyone.

    I´m with Jedimace1 on this and it doesn´t matter if this Character Controller is to be used by newbies or pros. The thing is that it should work properly, that´s the bottom line.

    So I thought I was taking a shortcut using Character Controller for my game, actually I got into some big problems because some things don´t seem right and probably don´t have a workaround and I´m now considering writing my controller scripts again, from scratch.

    This is frustrating of course, because I´ve spent a few weeks to find out I have the same problems as other users, so it´s something wrong with Character Controller, so, yes, it needs improvements!

    We are supposed to report these issues not only to Unity but for the community. Better is always better, not the same or worst. Give us a better Character Controller. :-|
     
  19. Ricks

    Ricks

    Joined:
    Jun 17, 2010
    Posts:
    650
    I just ranted in the Unity Support section. This charactercontroller is indeed a joke... with its jittering and hopping down slopes. It definitely needs improvements, otherwise it draws down the quality of any decent game needing 1st person view a lot. I wouldn't want to release any game with that amateurish "professional" charactercontroller.
     
  20. Eric5h5

    Eric5h5

    Volunteer Moderator Moderator

    Joined:
    Jul 19, 2006
    Posts:
    32,401
    They did improve the character controller, by quite a lot. The one in Unity 3 doesn't jitter or hop down slopes; this topic is outdated.

    --Eric
     
  21. U7Games

    U7Games

    Joined:
    May 21, 2011
    Posts:
    943
    May 24 :) , all you guys are expert in Unity today lol... is funny, all here were saying that character controller script is basic and when i saw it i said : "agghhh.. i never understand this ·$%"@ script, it is the most complete thing i have never seen.. (completely rookie)..

    Today i'm looking it again and...

    the same thing i say heh.. but no matter, the script looks works correctly...

    my only problem was that there was too many vars.. but now it is fine..
     
  22. tariq86

    tariq86

    Joined:
    Nov 25, 2010
    Posts:
    7
    how to implement jump like in rat on scooter
     
  23. FierceForm

    FierceForm

    Joined:
    Jun 25, 2010
    Posts:
    124
    This is a year old. The character motor pretty much fixed this.