Search Unity

  1. Are you interested in providing feedback directly to Unity teams? Sign up to become a member of Unity Pulse, our new product feedback and research community.
    Dismiss Notice

UFPS : Ultimate FPS [ RELEASED ]

Discussion in 'Assets and Asset Store' started by VisionPunk, Mar 9, 2012.

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

    ozoner

    Joined:
    Jun 8, 2009
    Posts:
    82
  2. MrBananaDragon

    MrBananaDragon

    Joined:
    Jul 22, 2012
    Posts:
    16
    Hey Cal, just thought I'd make a video of what I've done with your amazing asset. All the gun models are made by me, all the other models were found online, or on the asset store.
     
    Last edited: Aug 29, 2012
  3. MrBananaDragon

    MrBananaDragon

    Joined:
    Jul 22, 2012
    Posts:
    16
  4. bravery

    bravery

    Joined:
    Mar 26, 2009
    Posts:
    270
    Hello Cal,

    I'm planning to build an FPS game, and I like to ask some question about the future update of this kit:

    1- Is there any AI pack that you recommend and it's compatible with your Kit to do FPS AI? team AI? Behaviour AI?
    2- Are you planning to include multiplayer feature? OR integrate with existing One like photon for example?
    3- will there by any Covering system? something like integrat with "Unity Cover System" in the asset store OR will you build your own?
    4- Any idea to create a save \ load feature? or at least integrate it with save \ load system?
    5- Are you going to provide integration (even as seperate add-on) for good GUI system like nGUI for example (to make it eaiser to create a stunning GUI)?
    6- Will you build a weapon upgrade system?
    7- Will there be a pickup system for health, ammo, armor ... etc?
    8- Will there be a shop / store feature to sell / buy weapons items and such?
    9- ability to change multiple crosshair and the aility to change between them?
    10- Hit detection for different body parts?
    11- Add a secondary fire for the weapons?
    12- The ability to add multiple weapons like flamethrower, and laser beam?
    13- the ability to hold two guns in both hands?

    Thanks In advance.
     
    Last edited: Aug 29, 2012
  5. VisionPunk

    VisionPunk

    Joined:
    Mar 9, 2012
    Posts:
    711
    That's really cool. Nice to see the system in use with other settings and weapons for a change :) What type of game is it gonna be?
     
  6. TwiiK

    TwiiK

    Joined:
    Oct 23, 2007
    Posts:
    1,702
    Correct. Also the dual camera setup doesn't properly support sun shafts and possibly other image effects, but the lack of shadows was my main reason. As for the clipping issue I'm trying to work with the philosophy that if the weapon or hands clip through an object then I've done something wrong because they shouldn't to that. :) So rather than forcing them to be rendered last with a second camera I'll try to actually make them actually avoid the scenarios which would cause them to clip in the first place. We will see how that goes. :)

    I was working on a simple ingame settings menu for another project so maybe I'll finish it and include it so people can tweak the graphics. Originally I was making the game to run on my computer and present the middle finger to anyone with a less powerful setup, but working on that menu was fun so we'll see. :)

    Why do I get the feeling so many people on these forums are actually looking to mod an existing game instead of actually creating a game themselves? Sounds to me like you would prefer this asset to include a complete game.
     
  7. VisionPunk

    VisionPunk

    Joined:
    Mar 9, 2012
    Posts:
    711
    Hello there,

    I am always trying to keep this asset as generic and modular as possible. You should be able to use it for anything that needs a player in 3D space with a third person view. If you don't want a certain feature it should be easy to take out, and the asset should stay reasonably compatible with other assets.

    Most of my customers use it for shooters. A few want hard core realism, a lot of people want to make mobile games and some want crazy old school FPS gameplay with cartoony physics. To my surprise someone even took out the guns and used it to build an online 3D shop. Since most users do want weapons gameplay I have provided lots of functionality for that. But I am trying to stay out of specific FPS genres since it narrows down the user base significantly.

    In short: the likelihood of any one feature to be included will increase if it's generic enough to have a place in many different first person gameplay types, platforms, settings and genres (arena deathmatch, fantasy, sneaker, military, zombies, mobile etc.).

    With this in mind it becomes easy to answer your questions :)

    This system mainly deals with the player, camera and weapons so it shouldn't overlap or be incomatible with an AI system. Let me know if it is.

    I'm looking into it since it's an eagerly requested feature (along with better mobile support) but haven't made a definitive decision as of yet.

    Hopefully it's compatible with said cover system. It is a too genre specific feature (I'm thinking: modern hard core military shooter?) to be included in this asset.

    I think this should be handled by a separate asset. There are a few options in the Asset Store i think. If there is any incompatibility between my system and any of these, I'll be happy to resolve any issues.

    There is a tiny seed for a HUD in the package in the form of a HUD folder with a vp_Crosshair class in it, and this may get expanded in the coming months. I also have included example code to draw the current health and ammo. It doesn't look very stunning though ;)

    No, this is a game specific feature imho.

    Yes, since this is very generic and shared between many types of FPS games. Can't say when though.

    That should be a different system altogether, so not likely.

    Maybe. Atleast the crosshair class may be fleshed out a bit at some point (see HUD answer above).

    Atleast for head shots, and maybe with a bit higher resolution than that. Nothing advanced though.

    This is already supported. You can fire different projectiles with different recoil etc. from the same weapon. Just add more than one vp_FPSShooter script to a weapon and bind different keys to each shooter. Drop me a line if you have problems with this.

    Yes. There's already the ability to script your own weapons. The shooter class, for example, can shoot any type of gameobject, not just bullets. Stay tuned for info on new "official" weapons.

    Yes. This is something I have wanted to look into myself for quite some time, so that's very likely. Can't say when though.

    My pleasure :)

    /Cal
     
    Last edited: Sep 28, 2012
  8. MrBananaDragon

    MrBananaDragon

    Joined:
    Jul 22, 2012
    Posts:
    16
    I'm hoping to create an online multiplayer FPS shooter. I see no reason for it not being free to play, seeing as half (at this point) of the game is your coding ;)

    EDIT: And before people start yelling at me for biting off more than I can chew, I KNOW what I'm getting into with multiplayer programming and such, although I am right now in the process of moving, so that may take a while.
     
    Last edited: Aug 29, 2012
  9. VisionPunk

    VisionPunk

    Joined:
    Mar 9, 2012
    Posts:
    711
    Actually, it's easier than ever to create a full game on your own. Roughly speaking: games that required a 50 people team in 2002 only requires 10 people today. Games that required 10 people in 2002 can be made by a single person fairly easily today. All the black magic is being stripped away by middleware, stock content, outsourcing and procedural systems. The programmer "priesthood" is being demystified if you will ;) Ofcourse AAA studios with headcounts in the thousands are creating games that you will never be able to touch but the markets are in upheaval and tiny teams are dominating with games like Minecraft. Exciting times! The only thing that is not getting easier is beautiful game design.
     
  10. MrBananaDragon

    MrBananaDragon

    Joined:
    Jul 22, 2012
    Posts:
    16
    Yes, that is true.

    And by the way, that ammo GUI script you were talking about a while ago, where is that? I've been struggling to create my own, even though I've done about five times :p
     
  11. MrBananaDragon

    MrBananaDragon

    Joined:
    Jul 22, 2012
    Posts:
    16
    Oh, and I'm not sure if you noticed, but in the video, and in the description, I put a link to your video ;)
     
  12. VisionPunk

    VisionPunk

    Joined:
    Mar 9, 2012
    Posts:
    711
    Go to Asset Store and Upgrade to the latest version (1.31).
    The ammo and health gui snippets are in the vp_FPSPlayer.cs script. They are commented out though so just fix that. It's not pretty but it works..
     
  13. MrBananaDragon

    MrBananaDragon

    Joined:
    Jul 22, 2012
    Posts:
    16
    I'm working on another update video of a new map and a few texture adjustments. Will post when finished.
     
  14. MrBananaDragon

    MrBananaDragon

    Joined:
    Jul 22, 2012
    Posts:
    16
    Thanks, I didn't notice there WAS a 1.3.1 ;)
     
  15. MrBananaDragon

    MrBananaDragon

    Joined:
    Jul 22, 2012
    Posts:
    16
    Here's the new video with a new map and a detail texture added to the weapons.
     
  16. bravery

    bravery

    Joined:
    Mar 26, 2009
    Posts:
    270
    Cal,

    Thanks for your reply.

    I was wondering if you have a roadmap for your development that you can share with us?
     
  17. VisionPunk

    VisionPunk

    Joined:
    Mar 9, 2012
    Posts:
    711
    Not at this point. I don't want to commit to features in advance. It just takes the fun out of development. But I do listen to - and write down - all requests. That said, I'm planning to provide some sort of feature voting system once I get my site up and running properly.
     
  18. MrBananaDragon

    MrBananaDragon

    Joined:
    Jul 22, 2012
    Posts:
    16
    Hey Cal, I was wondering. Whenever I start my game, my character is about twice as tall as he should be. But when I crouch and stand back up, it's fine. Would you mind trying to figure whats happening?
     
  19. Kinos141

    Kinos141

    Joined:
    Jun 22, 2011
    Posts:
    969
    noob question: how do I change the vaules so they stick? Every time I change a value, it reverts back to an old value set. I'm using the prefab FPS player. This makes little sense.

    FIXED: I had to apply the prefab. kinda weird to me, but hey good work!!!

    PRO TIP: You should instantiate a prefab with an audio source that destroys the length of the audio file. It makes shooting sound more satisfying.
     
    Last edited: Aug 30, 2012
  20. blueice08

    blueice08

    Joined:
    Jul 2, 2012
    Posts:
    28
    Hi, I'm trying make it work on iOS but I'm not able to expose a variable to the inspector:

    Code (csharp):
    1.   public  Texture2D panimage;
    this is within:

    Code (csharp):
    1.  public class vp_FPSCamera : vp_Component
    2.   {
    3.    public  Texture2D panimage;

    Thanks
     
    Last edited: Aug 31, 2012
  21. VisionPunk

    VisionPunk

    Joined:
    Mar 9, 2012
    Posts:
    711
    Hmm, my spontaneous thought is: have a look at the Transform position of the FPSCamera object in the Inspector. Perhaps it is off by some Y value, and the position gets reset to its proper value when you crouch? Try to make sure that Y=0. (By "twice as tall as he should be", I assume you mean the position of the camera and not the player model.)
     
  22. VisionPunk

    VisionPunk

    Joined:
    Mar 9, 2012
    Posts:
    711
    Hi blueice,

    The vp_FPSCamera uses a Custom Editor. This means you have to expose the 'panimage' variable in the 'OnInspectorGUI()' method of 'Editor/vp_FPSCameraEditor.cs'. I think this would be the code to draw the control:

    Code (csharp):
    1. panimage = (Texture2D)EditorGUILayout.ObjectField("panimage", m_Component.panimage, typeof(Texture2D), false);
    Let me know if it doesn't work.

    /Cal
     
  23. VisionPunk

    VisionPunk

    Joined:
    Mar 9, 2012
    Posts:
    711
    Hi Kinos141, It sounds like you might be using a really old version of Ultimate FPS Camera. Please go to the Asset Store and upgrade to the latest version (1.31).

    Cheers

    /Cal
     
  24. Bariel

    Bariel

    Joined:
    Mar 8, 2012
    Posts:
    34
    Just implemented the pack into our game and must say it looks fantastic, still using the demo guns at the moment but it's a huge step forward from the FPS camera and scripts we were using before.. Thank you for developing this and at $20 it's a steal!!

    Quick pic of the pack in game:
    $Furor20120831_1.jpg

    Link to full size image: Click here
     
    Last edited: Sep 1, 2012
  25. MrBananaDragon

    MrBananaDragon

    Joined:
    Jul 22, 2012
    Posts:
    16
    Thanks, that is indeed what I meant :)
     
  26. jopmdev

    jopmdev

    Joined:
    Sep 1, 2012
    Posts:
    13
    How to use touch controls?
    I am new in this.
     
  27. WarpZone

    WarpZone

    Joined:
    Oct 29, 2007
    Posts:
    325
    Hey VisionPunk, here's some more feature requests, of varying difficulty:

    Easy: Add a realtime point light that toggles on along with the muzzleflash. Ideally this would be attached to each gun's model and would not need to be instantiated each time the gun is fired, just toggled on and off.

    Moderate: Ensure the Muzzleflash is drawn at full brightness/opacity for at least one full frame. This prevents the muzzleflash from looking "faded" or "washed out" when the game is a little slow.

    Tedious: Make everything (animations, bounce, etc) compatible with Time.DeltaTime so we can do trivially easy pause, "bullet-time," etc.

    Just throw them on the "to-do, maybe" pile. :)
     
  28. Acelondoner

    Acelondoner

    Joined:
    Jul 27, 2012
    Posts:
    101
    @VisionPunk

    Do you have any plans on adding a melee system? That's the one feature I would love to be added :)
     
  29. yahodahan

    yahodahan

    Joined:
    Apr 26, 2009
    Posts:
    1,377
    This looks great! Just have to ask, was the original TF2-ish "Orange" map created using ProBuilder? :D
     
  30. VisionPunk

    VisionPunk

    Joined:
    Mar 9, 2012
    Posts:
    711
    @Bariel: Glad you like the asset. That looks awesome !! :)
     
  31. VisionPunk

    VisionPunk

    Joined:
    Mar 9, 2012
    Posts:
    711
  32. VisionPunk

    VisionPunk

    Joined:
    Mar 9, 2012
    Posts:
    711
    Hi Warpzone. Yeah, the first and last request are on the pile already :) I'll have to think about the opacity thing. Sounds like a good idea.

    /Cal
     
  33. VisionPunk

    VisionPunk

    Joined:
    Mar 9, 2012
    Posts:
    711
    Hi Acelondoner, I have definitely been toying with the idea. Haven't decided yet but this might be a good future release. I think the spring system would be very suited for this.

    /Cal
     
  34. VisionPunk

    VisionPunk

    Joined:
    Mar 9, 2012
    Posts:
    711
    No, but I see what you mean ;) It was built in Modo. Probuilder looks awesome though!

    Cheers

    /Cal
     
  35. yahodahan

    yahodahan

    Joined:
    Apr 26, 2009
    Posts:
    1,377
    Your webplayer Demo convinced me- purchased!
     
  36. VisionPunk

    VisionPunk

    Joined:
    Mar 9, 2012
    Posts:
    711
    What do you guys think about the new state system? I've gotten no feedback on it yet. How's the workflow?

    Thanks

    /Cal
     
  37. WarpZone

    WarpZone

    Joined:
    Oct 29, 2007
    Posts:
    325
    To be honest, haven't worked with adding new cameras or modes yet-- still too busy trying to integrate my own stupid random features before I worry about actually using it as the developer intended. :p

    Right now I'm trying to make a third camera draw the sky (including dynamic content like animated clouds) before everything else. For some reason, the system does not seem to trust the user to make changes, and insists on initializing all the cameras at runtime and disabling any unexpected cameras. Which script is doing this?

    I have already modified the cameras in the Hierarchy to use the values they would have been forced to at runtime anyway (for an accurate, real-time preview in the Game View,) so there should be no need to initialize them, right? Unless I'm missing something?
     
    Last edited: Sep 6, 2012
  38. VisionPunk

    VisionPunk

    Joined:
    Mar 9, 2012
    Posts:
    711
    @WarpZone: What exactly is it you want to do with the sky rendering, and how ? Custom shader coding, image effects, some other method?

    The only functionality I can think of that would disable objects unexpectedly would be weapon toggling / setting (but I assume you know by now that every child of the FPSCamera will be interpreted as a weapon and must have an FPSWeapon component or a WeaponCamera in order to work in this system). Anything below the FPSCamera will be dominated by the FPSCamera, but it shouldn't mess with anything outside it.

    I'm thinking you may be having an issue with camera order, or tagging (maincamera tag etc.) ...

    BTW what version are you using?
     
  39. WarpZone

    WarpZone

    Joined:
    Oct 29, 2007
    Posts:
    325
    I had my custom camera parented to FPSCamera as a way of forcing it to automatically face the same angle as FPSCamera. The cloud mesh (and all other skybox-drawn objects) would then follow the player around physically. Why do it this way?

    Well, normally, I would just have my camera off in its own little spot in the world and use a script to copy the angle of camera.MainCamera, but I can't seem to get it to look right. The rotation of the skybox camera is always one step behind the FPS cameras. I've tried updating transform.rotation and transform.localRotation in Update, LateUpdate and FixedUpdate, and they all look the same.

    My guess is you're already doing the camera movement in LateUpdate, which means in order for this to even have a chance of working, we'd need some sort of an EvenLaterUpdate method. :/

    Maybe I can just edit Vp_FPSCamera and have it send a message every update from there. It's kinda messy (especially if I update later,) but it might be the only way.
     
    Last edited: Sep 7, 2012
  40. MrBananaDragon

    MrBananaDragon

    Joined:
    Jul 22, 2012
    Posts:
    16


    Just a little snapshot of what's to come from my end of things ;)

    P.S, Just a suggestion, melee weapons would be a HUGE advantage to me, particularly a knife :)
     
  41. VisionPunk

    VisionPunk

    Joined:
    Mar 9, 2012
    Posts:
    711
    Ah, I see. Well, how about going the component route? Create a new MonoBehaviour script with a LateUpdate method to your FPSGamera gameobject. Make sure it's listed above the vp_FPSCamera component in the Inspector (that is: you may have to remove your camera script, add your new script, then add the camera script back). Essentially, it will give you the 'EvenLaterUpdate' method you were talking about, and does not involve messing with the scripts. I just tried this and got the LateUpdates firing in the right order.

    EDIT: In fact, it's likely necessary to modify the Script Execution Order in the editor to produce consistent results. See the below post.
     
    Last edited: Sep 7, 2012
  42. VisionPunk

    VisionPunk

    Joined:
    Mar 9, 2012
    Posts:
    711
    Cool! (FYI: I couldn't see the image in the forum thread, but copied the link and navigated manually).
    Got you on the knife. It's very eagerly requested so it has a high prio.
     
  43. WarpZone

    WarpZone

    Joined:
    Oct 29, 2007
    Posts:
    325
    Huh. I figured if it was called from inside vp_FPSCamera, I could place the code so that it is called right after the script updates the camera's position, but if it were in another script, it would happen randomly either before or after the other script. So you're saying that most recently added script components execute first?
     
  44. WarpZone

    WarpZone

    Joined:
    Oct 29, 2007
    Posts:
    325
    Maybe I misunderstood you. I added a script to my FPSCamera object. This script contains a LateUpdate. In fact, here's the entire script:

    Code (csharp):
    1.  
    2. #pragma strict
    3. var skyCamera: Camera;
    4.  
    5. function Start () {
    6.  
    7. }
    8.  
    9. function Update(){
    10.     UpdateRoation();
    11. }
    12.  
    13. function FixedUpdate(){
    14.     UpdateRoation();
    15. }
    16.  
    17. function LateUpdate(){
    18.     UpdateRoation();
    19. }
    20.  
    21. function UpdateRoation(){
    22.     if(skyCamera){
    23.         skyCamera.transform.rotation = transform.rotation;
    24.     } else {
    25.         skyCamera = GameObject.Find("Skybox Camera").camera;
    26.     }  
    27. }
    28.  
    I even tried placing this before Vp_FPSCamera, after it, and even before and after it at the same time.

    No matter what I do, the clouds update one frame behind the rest of the camera movement. It looks shaky and unnatural.

    Update: I even tried it in all three update methods. Changed the code to show you what I mean. Are you sure you just tried this? It's always one frame late.
     
    Last edited: Sep 7, 2012
  45. VisionPunk

    VisionPunk

    Joined:
    Mar 9, 2012
    Posts:
    711
    Yeah, but I looked into this further and since the execution order of scripts may change depending on when they were loaded, my test might produce a different result on another machine. Try this:

    1. From the Unity main menu, go to "Edit -> Project Settings -> Script Execution Order"
    2. Add the vp_FPSCamera script to the execution order by pressing the "+". Do the same for your custom script.
    3. Test how the application behaves depending on which script executes first. Drag to rearrange the scripts. Note that you may also drag a script above the "Default Time", in which case it will execute before all other scripts.

    To test this I added the following debug output to LateUpdate in vp_FPSCamera:

    Code (csharp):
    1. Debug.Log("1, Frame: " + Time.frameCount);
    Then I added this line to LateUpdate in my test script, which is above the vp_FPSCamera component in the inspector:

    Code (csharp):
    1. Debug.Log("2, Frame: " + Time.frameCount);
    This should produce the following console output, confirming that the LateUpdate methods execute in the same frame and in the right order:

    1, Frame: 116
    2, Frame: 116
    1, Frame: 117
    2, Frame: 117
    etc.

    For the reference on execution order look here.

    Hope this helps!
     
    Last edited: Sep 7, 2012
  46. chlagovich

    chlagovich

    Joined:
    Jun 14, 2010
    Posts:
    103
    Hi ,

    I really enjoyed your stuff good job it's awesome, and I would ask you if I can use your spring System for another purpose like ropes or something like that ? in that case can you give me some explanation on how we reuse it ?

    thanks
     
  47. MrBananaDragon

    MrBananaDragon

    Joined:
    Jul 22, 2012
    Posts:
    16
    Thanks, that's all I wanted to hear :D
     
  48. VisionPunk

    VisionPunk

    Joined:
    Mar 9, 2012
    Posts:
    711
    Hi chlagovich, Ofcourse you can! As long as you follow the Unity Asset Store EULA (in essence: use it for your commercial game in any way you like but you can't resell your rope implementation as a standalone asset if it includes code based on my spring system).

    Unfortunately I don't have much time for thinking up a rope implementation. But off the top of my head: study carefully how the springs are instantiated and used in the vp_FPSCamera and vp_FPSWeapon classes. Then you should be able to create a rope mesh with bones in a 3D package, and assign one spring object to each bone. You could experiment with using the position, rotation and scale modes of the spring class to try out different behaviors. But to tell you the truth I think you would be better off looking for rope systems in the Asset Store (that would probably save you some time and headache :)).

    Cheers

    /Cal
     
    Last edited: Sep 10, 2012
  49. VisionPunk

    VisionPunk

    Joined:
    Mar 9, 2012
    Posts:
    711
    Last edited: Sep 11, 2012
  50. rgrlee71

    rgrlee71

    Joined:
    Sep 11, 2012
    Posts:
    35
    Hi,

    Just bought the Ultimate FPS Camera a couple of weeks ago and I've been able to figure out the stuff I needed except for one issue. What's the easiest way to disable the hit decals? I can't find in any of the scripts where the call is made to apply the decal. I'm sure I'm just missing it, but I want to disable them for my little personal project.

    Any help will be appreciated.....

    PS: This camera is fantastic, thanks for developing it!!
     
Thread Status:
Not open for further replies.
unityunity