Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice
  3. Join us on November 16th, 2023, between 1 pm and 9 pm CET for Ask the Experts Online on Discord and on Unity Discussions.
    Dismiss Notice

Making 3D platformer, looking for recommendations

Discussion in 'General Discussion' started by jochou, Jun 21, 2016.

  1. jochou

    jochou

    Joined:
    Jun 21, 2016
    Posts:
    16
    Hey all,

    Name's Josh and I've been doing amateur game development for a couple of years now. I've been saving up money and will be ending my job next month, so I figured why not try and work on game development for the rest of the year? See where it takes me. It's fun for 10 hours a week. How about 40+?

    Anywho, I'm working on a 3D open-ish world platformer (something akin to Super Mario 64, Banjo-Kazooie, etc.). Character can roll around, jump, and grab and throw specific objects. There will be 2-3 different collectibles, but the game is more story focused. I've dabbled in top-down and side-view 2D platformers, but this is my first foray into true 3D. I'm looking into a short-ish experience (2-5 hours), but long enough where environments need to be built with some speed. Graphics are mostly going to be simple polygons like spheres and cubes. My goal is to finish this by the end of the year, but, realistically, it will likely take another half year for playtesting and polish.

    Big questions:
    1. Are there any programs (free or paid) that you'd recommend for building open 3D environments?
    2. What are some common pitfalls you see new developers fall into when tackling 3D?
    3. Are there any GDC talks, gamasutra articles, holy prophecies you recommend for 3D development?
    4. Any code snippets you recommend for jumping with directional changes in air or camera-related code for 3D?

    Of course, any help is greatly appreciated. Thanks for you time! :)
     
  2. KnightsHouseGames

    KnightsHouseGames

    Joined:
    Jun 25, 2015
    Posts:
    850
    Well, being that I've taken a shot at one of these in the past, I'll give you what insight I can

    Open world and platformer to me are two very different genres. If you look at the classic 3D platformers like Super Mario 64 or the PS1 Crash Bandicoot games, there were always routes though the level that set up discreet challenges and ways to the finish. Liniarity is not nessessarily a bad thing, especially for a good platformer. Open world is for people who have teams, and in most cases, big teams.

    By comparison, I tried doing a 3D metroid-vania style platformer, and I had 4 people working on the project over the course of a year in college, and I still didn't complete the project to where I wanted it to be.The hardest lesson of all to learn is managing the scope of your game. Ask Square Enix, they still haven't learned that lesson yet. Make your game much smaller than you expect, and don't try to make your game to an hourly gameplay target. We thought we had over an hour of gameplay in the final version of our game, it turned out to be a little less than 15 minutes.

    If you are just using primitives, I;ve heard theres a really nice plugin for level development for Unity called Probuilder that looks really cool.

    Lets just hope you never need character models, unless you can afford Maya. Maya LT, though horrifically crippled compared to it's full featured counterpart, is an option if you can afford that price though.

    If you're looking for 3D camera code, I used a tutorial for a Zelda style camera that worked nicely with some modification. It wasn't perfect, but it was much better than Unity's default character controller.



    Very good tutorial series, well explained and indepth.
     
  3. darkhog

    darkhog

    Joined:
    Dec 4, 2012
    Posts:
    2,218
    @jochou, will send you a PM in a moment.
     
    jochou likes this.
  4. jochou

    jochou

    Joined:
    Jun 21, 2016
    Posts:
    16
    The game I was planning had elements of open world, but would mostly be semi-linear discreet levels. The idea is that each level would have at least two paths to the end, one requiring more precision platforming and another requiring more thought / puzzles. I'm definitely not thinking open world in the sense of hundreds of side quests everywhere, randomly-generated dungeons, and a seamless world. I think Super Mario 64 was the best analogy, but I'm not suggesting what I'm making will approach that level of quality, even if I'm coming to it 20 years later. That said, I appreciate you looking out for me. :p

    Scope is tough, eh? Even though I mentioned a 2-5 hour gameplay length, I actually have no idea how long it takes to make a minute of content for a platformer. The estimate was based on the fact that I have a script about self-discovery, and narrators that talk as you play, and I didn't want what the narrator was saying to cut off. So the levels had to be big enough that even a fast player wouldn't be able to miss some dialogue, but also interesting enough that the player doesn't feel like they're rolling through emptiness.

    Probuilder and that tutorial look awesome! Thanks for the tip! :) You weren't kidding about Maya though. Thankfully, I'm just working with cubes and spheres, but dang, it's something to think about for the future.
     
  5. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,327
    Trying to make skyrim, mmorpg or a huge openworld game as their first project.

    You can make 3d models with blender 3d. It is free and fairly powerful.

    Murphy's law?

    That stuff is not really worth putting into code snippet and is fairly easy to figure out.
    Basically, ask questions on scripting forum here, or google them. ("unity camera control C#" and the like)
     
    jochou likes this.
  6. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,469
    Depend on how tight you want your control, I spent 3 years making something like mario 64 and not like the typical controller you see on unity. It's surprisingly hard to have frame perfect with good collision. If you don't thrust me look at this:

    https://roystanross.wordpress.com/2...-controller-in-unity-part-6-ground-detection/

    Now you can be smart and live with sloppy controller, unlike me, and finish a game, unlike me.
     
    jochou likes this.
  7. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,790
    I've not played mario 64 so I don't know your comparison. If it is similar in level design to any of the ratchet and clank games - I understand the comparison to the open world type gameplay.
    Those games had no real path between the points of interest. Beginning at point A - the player could traverse the level however they wanted to in order to get to point B. This isn't what open world is considered now, but it can be considered open world platformer because there is no 'right or wrong path to get to the next goal.

    I purchased object master a while back - https://www.assetstore.unity3d.com/en/#!/content/35911
    and from the limited extent I've used it - it has been a great addition setting up 3D spaces - level design.
     
    jochou likes this.
  8. Ippokratis

    Ippokratis

    Joined:
    Oct 13, 2008
    Posts:
    1,521
    Hi,
    I suggest having a look at Captain Toad.
    It is a relatively recent 3d platformer.
    Then try to recreate the first level.
    If you see that it takes too long, e.g. over a few months, try something easier than a 3d platformer.
    Or, accept the fact it will take years to finish it and plan your course with this in mind.
    Kind regards,
    -Ippokratis
     
    theANMATOR2b and jochou like this.
  9. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,469
    I wouldn't classify captain toad as a platformer at all
     
  10. ElectroMantis

    ElectroMantis

    Joined:
    Sep 15, 2013
    Posts:
    78
    Right it's more of a puzzle game I guess? But I think his point was to start with something small in scope like a captain toad level, and then see if it's a project you want to stick with.
     
  11. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,469
    Captain toad is anything but as trivial and small in context as you present it.
     
  12. Ippokratis

    Ippokratis

    Joined:
    Oct 13, 2008
    Posts:
    1,521
    I do not consider Captain Toad as simple or trivial.
    Making a level of Captain Toad is easier though than making a level of Mario Galaxy. And it is "more contemporary".
    There is still a port of a Mario Galaxy level to unity in the net, although it was banned by Nintendo, if you search enough, to serve as a base.
    You wanna classify it as a puzzle game, be my guest, it looks like a platformer to me but whatever.
    Cheers.

    Edit : From Nintendo -> by Nintendo
     
    Last edited: Jun 24, 2016
  13. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,469
    About the port (it's mario 64 not galaxy) I linked the article where he talk about problem he have, he also have created a custom collision engine that takes polygon soup ... so it's not trivial. And even then he had massive collision problem to meet the standard of good control, in fact it's a cool toy but not ready for production. I have the code.

    I'm still contesting captain toad is "easy", you don't jump so it is as much as a platformer as zelda or the original pacman. Turok, a fps, is more of a platformer than captain toad :D

    The problem with nintendo is that they make stuff look easy, simple, approachable and friendly, until you try to replicate them and see how many subtle stuff they had to make it works.

    I want to highlight problem you will meet with platformer:

    1. no cylinder collision, it mean managing edge can be a headache, character will slip off edge and mess with control (happen in mario galaxy not in mario 64). If you jump on edge at certain angle/distance, the character will "float" above the edge a bit before slipping to his doom if above bottomless pit or trap. It's crap for feedback, it's crap for good control.

    2. multiple contacts is expensive. You need more than one contact point to make good and sophisticate control logic (see the article I linked to). So you either use rigidbody which is expensive or you use kinematic collision which don't register any contact :eek:. And you need concave collision mesh for the level anyway, at least if you don't want to be limited to square platform.

    3. Physics will mess you up, platformer don't use real physics, so you need to move the collider by code. So you need rigidbody because kinetic will just go through obstacle anyway. If you use rigidbody, the system will fight you every step by clogging performance.

    I spent 3 years having a decent 3d platformer controller, I tried any solution out there ... they are bad for a quality game, if you want to go beyond family hobbyist game.

    You can still make something around the limitation though, make level using convex/box shape you interpenetrate together. Use raycast for the ground and use a collider to an offset of the ground, use collider (rigidbody) to avoid going through wall, don't expect complex logic like state of art 3d platformer.
     
  14. Ippokratis

    Ippokratis

    Joined:
    Oct 13, 2008
    Posts:
    1,521
    Raycasting seems the right approach but it is just one of the many issues that will appear.
    No much jumping = easier mechanics.
    But not easy.

    I wonder if there are any published or leaked guidelines from Nintendo regarding game development. I really appreciate their games.
     
    theANMATOR2b and goat like this.
  15. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,469
    No jumping no platformer :D

    Nintendo has some stuff scattered around if you follo.. stalk their dev and interview :p For example they mostly used kisho ten ketsu for level design
     
  16. jochou

    jochou

    Joined:
    Jun 21, 2016
    Posts:
    16
    I just want to say thanks for all the guidance I've received here. This has given me a good start and perspective, and I have some idea of where I can go from here.

    As for the length of the project, I gave myself 5-6 months to see if I can handle the full-time nature of a project. If I can, I can see this turning into a longer, more complete project. My last project lasted about 5 months, part-time, so I'm constantly trying to push the boundaries of what I can personally do. 5 months part-time to 5 months full-time.

    As for Captain Toad being a platformer... I guess? I always thought about it as a puzzle game myself. Loved it, mind you, but not for the same reasons I liked Super Mario 3D World. In some ways, the mini-game version of it served as a "change of pace" / "difference of kind" for that game. That said, recreating the first level is not a terrible idea. However, it does have some features that my current game has no intention of using, so I wonder if the time spent is worth it.

    And on "ki shou ten ketsu" (起承転結), I think that's just a general good rule of thumb for game design. Introduce a concept. Expand on the concept in a simple way. Use that concept in a new way. Have space to reflect on what you've learned.

    For instance: 起 Introduce platforms that move horizontally by using a single platform to get across a gap. No failure for falling. 承 Then you need to jump from one moving platform to another. They both move in similar patterns. 転 Three moving platforms move in circular motions, two clockwise, one counter-clockwise. You need to coordinate your jumps to get across. 結 The final area has some moving platforms, that if jumped on correctly, take you right to the end of the level. Falling makes you have to take a little longer, but is trivial. The player can rest knowing that the 3 moving platform section is behind them, but if they still have the mental energy, the final area isn't too challenging either.

    Anywho, thanks for all the help. Hope I can help others the way you've all helped me! :)
     
    AndrewGrayGames likes this.
  17. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,790
    Some of the better information can be gained from designer/developers who have studied the mechanics of Nintendo's masterful creations.
    Though I don't normally link to extra credit content because - I don't buy into all the - too overly thought insights - I think they are spot on with this video
     
    jochou and AndrewGrayGames like this.