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

“Agile” : my first Unity3D mini game

Discussion in 'Made With Unity' started by GFX47, Dec 15, 2010.

  1. GFX47

    GFX47

    Joined:
    Dec 7, 2010
    Posts:
    124
    Here is a first mini game I developed using Unity3D during the past few days.
    It’s pretty much a mix between a FPS and a platformer game.
    The 2 first levels are more tutorials than real challenges but you’ll have to be “Agile” to achieve a good score on level 3! ^^

    Don’t expect too much visually, as I only used basic primitives for level design.
    You can try the Web Player version (130 Ko) here.
    Can’t wait for your feedbacks!

     
    Last edited: Mar 22, 2011
  2. Prestigeindustries

    Prestigeindustries

    Joined:
    Jul 18, 2010
    Posts:
    65
    not bad for your first one, although i dont like level three
     
  3. SgtWombat

    SgtWombat

    Joined:
    May 19, 2009
    Posts:
    11
    Nice start! I enjoyed the gameplay...it reminded me of Mirror's Edge quite a bit. I can see how there could be a lot of potential in the type of puzzles you create. The graphics aren't too bad for how basic they are...fits the style. But yeah, I like it, considering I really enjoy Mirror's Edge, Portal, etc...those type of games.
     
  4. RGKD

    RGKD

    Joined:
    Apr 12, 2010
    Posts:
    162
    Seriously good. I loved how responsive the controls were but I'm of the opinion a First Person view is just madness for a platformer. Took a second before I realised the directional input affects wall jump strength, might be worth adding another GUI text in to explain it, once I discovered that I got a final time of 1127.

    Really good test demo, can't wait to see more.
     
  5. Benopaluz

    Benopaluz

    Joined:
    Aug 14, 2010
    Posts:
    300
    very nice, lvl 3.. eh work on level design now.
     
  6. GFX47

    GFX47

    Joined:
    Dec 7, 2010
    Posts:
    124
    Thanks guys for those first feedbacks! Didn't expect it to be so quick :-o


    Thanks! Could you be more specific about the things you didn't like in level3?
    Did you find it too difficult at this stage of the game?
    I'm quit sure the "Now tricky!" part must be pretty discouraging for a first playthrough... :roll:


    Thanks for your support!
    The" jumpable walls" idea came more from War§ow than Mirror's Edge but I must admit the analogy crossed my mind during "game design" :D
    About portal analogy, I started testing a feature where player could make pop new walls from projectiles ("DBZ capsule" like system) but the feeling was not so good, I've chosen not to show it in the first version... maybe later if I manage to make it feel right.


    Thanks also and GG for your score! :D
    I think I'll stick to the FPS view for now as I don't have any reliable asset for a 3rd person version...
    But I totally agree it's an hardcore way of playing.

    You're definitely right concerning the wall jump explanation, I'm missing something to introduce it to the player.
    Maybe GUI text is not enough (even if I think it's working pretty well for the other features)...
    The main idea is to jump toward wall, change look direction to where you want to go and then jump again.
    The look direction before second jump is very important and I don't think it's clear enough.
    Will work on that point before everything else.


    Thanks! This was really just a rough level design to test the game mechanism, I'll try to do something solid in next version.

    Keep you posted!...
     
  7. Al-Anselmo

    Al-Anselmo

    Joined:
    Apr 6, 2010
    Posts:
    86
    Nice start!

    The only part I felt frustrating was the "Now Tricky!" part. I was in a good flow all the game, until I reach that part.
    I got stuck and frustrated for a minute trying to walljump those 2 walls. I succeeded after that, but in this area you require a player's skill that wasn't required before. I felt this tutorial part too extreme, since it's an Agile game and I think you usually don't want players to get stuck for a while. Maybe lowering the upper platform a bit is enough to teach the player that new move and then you can require walljumps to higher platforms.
     
  8. GFX47

    GFX47

    Joined:
    Dec 7, 2010
    Posts:
    124
    Got it, the tricky part is definitely too tricky XD
     
  9. Artimese

    Artimese

    Joined:
    Nov 22, 2009
    Posts:
    794
    Just as i was about to beat lvl 3 i jumped so high that i fell off the level.....

    ah my high score was 69... hahah :p

    Btw, a suggestion for harder levels, moving walls!
     
    Last edited: Dec 27, 2010
  10. vlk2

    vlk2

    Joined:
    Nov 4, 2009
    Posts:
    43
    Very fun game indeed.

    But i found it annoying sometimes too.

    A third person with a smart camera (like, when walljumping, the camera goes to a good static angle, or something) would help a lot. In first person i often had to watch the floor so i knew where to jump, if i watched the next platform i often pressed jump too late or early. But if i watch floor i cant see where i have to land :p

    Also walljumping is better if i jump sideways, but that way sometimes i jump one more because i cant seee where to stop, and with no wall to support my jump good, i fall back between the two wall.

    Maybe it would be too easy, but it would be good if i could use the arrows, when i'm in air. :p and, jump once even if i am not collideing with anything. Like, a timer for it: if i collided with wall in the last .5 sec and i didnt jump in .5 sec, i can jump. Or something like that.
     
  11. Blacklight

    Blacklight

    Joined:
    Dec 6, 2009
    Posts:
    1,241
    I liked it, though perhaps you should add some checkpoints.

    My Final Score was 0.
     
  12. bgivenb

    bgivenb

    Joined:
    Sep 15, 2010
    Posts:
    449
    Reminds me of an old learning project that I made. If you want some of my prefabs, Ill gladly post a package.
     
  13. Alexander Patrick

    Alexander Patrick

    Joined:
    Dec 28, 2010
    Posts:
    1
    I only managed to get a score of 63. Maybe a better score next time.
    The now tricky part is challenging. I can get it done but I am not sure if I am doing it correctly.

    A shadow for the player and end caps for the platforms could help with timing jumps and running of platforms.

    To go with the checkpoints should be a rescue button that repositions the player at the last reached checkpoint or maybe the last collected orb.

    I like the moving walls suggestion. I could picture a cool level where there are two parallel small walls that the player has to wall jump off of repeatedly while they are travelling up. (I am picturing two elevators side by side in a shaft moving up)
     
  14. GibTreaty

    GibTreaty

    Joined:
    Aug 25, 2010
    Posts:
    792
    You could also try adding some wall running into it. The "Tricky" level I thought was nice. The first tricky wall took me a few seconds to realize how to use, it was a nice challenge.
     
  15. GFX47

    GFX47

    Joined:
    Dec 7, 2010
    Posts:
    124
    Here is a new version of the game including several new levels and some improves/fixes on existing ones.

    I don't think I will continue developing it as I have other projects in mind now and that was just a first try anyway.

    If anyone wants to give it a try or just have a look at the code behind it, I'll be glad to share it ;)
     
    Last edited: Mar 22, 2011
  16. bgivenb

    bgivenb

    Joined:
    Sep 15, 2010
    Posts:
    449
    Hey, again, nice game. If you don't mind, how did you get the player to rebound off of the walls?
    Do you mind if I look at the code behind that action?
     
  17. psyclone

    psyclone

    Joined:
    Nov 17, 2009
    Posts:
    245
    Id be interested in the code behind it as well GFX47....
     
  18. GFX47

    GFX47

    Joined:
    Dec 7, 2010
    Posts:
    124
    Here is the most important part of the code, handling player controls:

    Code (csharp):
    1. #pragma strict
    2.  
    3. public var walkMoveSpeed : float = 5.0;
    4. public var runMoveSpeed : float = 10.0;
    5. public var jumpSpeed : float = 8.0;
    6. public var rebound : float = 10.0;
    7. public var airGravity : float = 20.0;
    8. public var wallGravity : float = 20.0;
    9. public var maxLateralSpeed : float = 15.0;
    10.  
    11. public var jumpSound : AudioClip;
    12.  
    13. private var moveDirection = Vector3.zero;
    14. private var grounded : boolean = false;
    15. private var walled : boolean = false;
    16. private var lastCollisionNormal : Vector3 = Vector3.zero;
    17. private var jump : boolean = false;
    18.  
    19. function Update()
    20. {
    21.     // Jump button detection
    22.     if (Input.GetButtonDown("Jump"))
    23.         jump = true;
    24. }
    25.    
    26. function FixedUpdate()
    27. {
    28.     // Move
    29.     if (grounded || (jump  walled))
    30.     {
    31.         // We are grounded, so recalculate movedirection directly from axes
    32.         moveDirection.y = 0;
    33.         moveDirection.x = Input.GetAxis("Horizontal");
    34.         moveDirection.z = Input.GetAxis("Vertical");
    35.        
    36.         // Avoids speedy diagonals
    37.         moveDirection = moveDirection.normalized * Mathf.Max(Mathf.Abs(moveDirection.x), Mathf.Abs(moveDirection.z));
    38.  
    39.         // Move speed
    40.         moveDirection *= Input.GetButton("Run") ? runMoveSpeed : walkMoveSpeed;
    41.  
    42.         // Local to global direction
    43.         moveDirection = transform.TransformDirection(moveDirection);
    44.     }
    45.  
    46.     // Jump
    47.     if (jump  (grounded || walled))
    48.     {
    49.         // Vertical jump
    50.         moveDirection.y = jumpSpeed;
    51.  
    52.         // Plays jump sound
    53.         audio.pitch = Random.Range(0.9, 1.1);
    54.         audio.PlayOneShot(jumpSound);
    55.  
    56.         // Rebound
    57.         if (walled  !grounded)
    58.             moveDirection += rebound * lastCollisionNormal;
    59.     }
    60.  
    61.     // Apply gravity
    62.     moveDirection.y -= (walled ? wallGravity : airGravity) * Time.deltaTime;
    63.    
    64.     // Max lateral speed
    65.     var lateralMove : Vector3 = Vector3(moveDirection.x, 0, moveDirection.z);
    66.     if (lateralMove.magnitude > maxLateralSpeed)
    67.     {
    68.         //Debug.Log(moveDirection.magnitude);
    69.         lateralMove = lateralMove.normalized * maxLateralSpeed;
    70.         moveDirection.x = lateralMove.x;
    71.         moveDirection.z = lateralMove.z;
    72.     }
    73.    
    74.     // Move the controller
    75.     var controller : CharacterController = GetComponent(CharacterController) as CharacterController;
    76.     var flags : CollisionFlags = controller.Move(moveDirection * Time.deltaTime);
    77.  
    78.     // Grounded / walled?
    79.     grounded = (flags  CollisionFlags.Below) != 0;
    80.     walled = (flags  CollisionFlags.Sides) != 0;
    81.  
    82.     // Resets jump indicator
    83.     if (jump)
    84.         jump = false;
    85. }
    86.  
    87. function OnControllerColliderHit(hit : ControllerColliderHit)
    88. {
    89.     lastCollisionNormal = hit.normal;
    90. }
    91.  
    92. @script RequireComponent(CharacterController)
    93.  
     
  19. GFX47

    GFX47

    Joined:
    Dec 7, 2010
    Posts:
    124
    Did it help guys?