How to AVOID Game Development Analysis Paralysis

แชร์
ฝัง
  • เผยแพร่เมื่อ 16 มิ.ย. 2024
  • Game Development is hard. Analysis Paralysis is one of the biggest causes of game development burnout, affecting motivation and productivity. Even if you're getting started developing your indie game, it can lead to overthinking, overanalyzing and lead you to abandon your indie game project.
    In this video, we discuss why game development is hard, Analysis Paralysis and its effect on game development, burnout, and productivity. I've experienced this through out my game dev journey and wanted to share my game dev tips that help finish my game. 5 ways to prevent game development Analysis Paralysis affecting the development of your game, game code and game development journey.
    No matter what game engine - Unity, Unreal Engine, Godot or GameMaker - or whether you're a programmer, 3D modeller, composer or environment artist, hopefully, these game dev tips will help you continue game development and finish your indie game.
    This is a very meta game development tutorial... or game devlog...
    💻 Links
    Support me on Patreon: / darkdax
    Follow me on Twitter: / thisisdarkdax
    Join me on Twitch: twitch.com/darkdax96
    👾 AI and Games: / aigamesseries
    Behaviour Tree video: • Behaviour Trees: The C...
    🌴 Chris Simpson's Behaviour Tree Post: www.gamedeveloper.com/program...
    🎬 Timestamps
    00:00 - Introduction
    00:17 - Analysis Paralysis
    01:16 - Analysis Paralysis: Losing my mind
    02:14 - #1 - Brute Force
    03:17 - #2 - The Power of Research
    04:18 - #3 - You're Overcomplicating It
    05:18 - #4 - Perfection lead to Burnout
    06:33 - #5 - Game Development is Hard
    07:28 - The Best Part
    Stay Safe & Thanks for watching! ~(˘▾˘~)
    #GameDevelopment #GameDev #IndieDev
  • เกม

ความคิดเห็น • 43

  • @lendrigangames
    @lendrigangames 2 ปีที่แล้ว +11

    I've managed to avoid the paralysis by keeping my milestone increments small. I keep the entire system in my mind as a roadmap, but whenever I pick at it, I'm working towards a single prat of that system (i.e. focusing on a behavioral branch while making the behavioral tree) .

  • @PeterDanielBerg
    @PeterDanielBerg 2 ปีที่แล้ว +5

    the dumbest roadblock i had to get over was worrying about code the way an author worries about prose. the player doesnt actually see the code, so it doesnt matter how "elegant" it looks, function is all that matters. and the further you get the more minor the optimizations and tweaks get and you just reach diminishing returns. so i just put all the little tweaks i'd want to make on a cheatsheet and taped it to my wall so i can do them on the first pass anyway. these days i map things out on sticky notes before i code them so the structure always comes first.

    • @DarkDax
      @DarkDax  2 ปีที่แล้ว +2

      That’s great way of helping yourself push forward. Honestly get stuck up on stuff like that myself and it’s usually because of that perfectionist inside us.
      Like you say, properly planning these systems definitely helps in the long run!

    • @PeterDanielBerg
      @PeterDanielBerg 2 ปีที่แล้ว +2

      @@DarkDax i think it's also important to recognize that a certain segment of players are surprisingly tolerant of poor optimization. there will always be some portion of players for whom dips to 20 fps and crappy 3d modeling aren't a dealbreaker, as long as it's fun and you price it what it's worth. if you've got something that can go from beginning to end without crashing or softlocking then you can start optimizing. it really is true what they say, perfect is the enemy of good enough.

    • @DarkDax
      @DarkDax  2 ปีที่แล้ว +2

      @@PeterDanielBerg if what you’ve made is fun, it’s surprising what players are willing to deal with haha

  • @spacenoomad
    @spacenoomad 2 ปีที่แล้ว +5

    starting with spaghetti-ish code and then refining it is generally a good idea especially while prototyping. if you waste a lot of time on prototyping, first of all, you wasted a lot of time on something that might not work at all. but second - you'll get demotivated so quickly because "damn, i spent this much time on PROTOTYPING? this will never be done!"
    anyways, nice video!

    • @DarkDax
      @DarkDax  2 ปีที่แล้ว

      Thanks mate!
      Totally, its super important to prototype but you've got to make it straight forward and understand what it is your wanting to make before making it intricate

  • @najwan3672
    @najwan3672 2 ปีที่แล้ว +13

    this video is something I needed a few years back when I was still making games.
    the game engine I used at the time was Game Maker Studio 1.4 (NOT Game Maker Studio 2 which is what's common today) and I'd say I used it pretty well. one day, I was inspired by a youtuber who was streaming himself making a simple arcade shooter in GMS 2 and I was thinking I could take a jab at making that. sounds pretty simple, I thought.
    well, it COULD'VE been simple, but I was obssessed on optimizing every single thing. like, I was trying to figure out how to make the bullets the player fire be the exact same object as what the enemies would fire, and there was a logic in place telling the game how to differentiate between the two. this was ultimately useless, as it just complicates what should've been simple and made my brain fry the next day as I try to read my own code. it doesn't even improve performance in a major way. I just wanted it to look nice on my assets library. is it efficient? probably, yeah. but is it readable for ME? not even. I tangled so much of the code with one object having to refer with another object that has to refer to ANOTHER object. it was so confusing it discouraged me from ever continuing it to this day. I haven't even added enemies yet. I was just obsessing with the bullets thing. yes, it was THAT dumb.
    hopefully, future developers don't fall into the same hole I did. this video is important for all to hear, and I thank you for making it. cheers.

    • @DarkDax
      @DarkDax  2 ปีที่แล้ว +3

      Thanks mate! I’m glad this video can be of some use to people - you and I both could have used this a while ago haha.
      I’ve often over complicated elements of my own projects (as I mention in the video) - sometimes we just need that reminder to reset our mindset and simplify our approach.
      Thanks for sharing your experience!

  • @toastedperfection2488
    @toastedperfection2488 2 ปีที่แล้ว +9

    4 is something that always gets to me.
    I constantly aim for perfection and I often forget that's impossible.
    It's especially clear when I first design a game before I even make it. Just trying to come up with a good idea. I end up getting stuck in an infinite improvement loop and just get myself burnt out before I even start.

    • @DarkDax
      @DarkDax  2 ปีที่แล้ว +2

      There's always a perfectionist inside us, those who are better at dealing with it have learnt to the same way everyone else eventually does. It's really good to take time to design anything before you start work on it, but even you've got to keep perfectionism a bay (something I'm definitely still working on myself)
      Thanks for sharing mate!

  • @Teflora
    @Teflora 2 ปีที่แล้ว +2

    When I add a new feature, at first I only try to make the absolute basic core work. Not thinking much about performance or memory or any other improvement. I just want an oversight of "what do I actually need for this". It's kinda like laying and sorting out my legos to make the building process easier.
    The next step is "what can I get rid off?", strapping that basic core down, getting rid of redundant code etc.
    and THEN I can start thinking about either more refined features, or making it easier to use, or start working on performance and other improvements. By then I'm already in such a flow and have a good mental map of everything for it to work, I can navigate easily through it. But it always starts super simple and barebones and not refined or good at all.

    • @DarkDax
      @DarkDax  2 ปีที่แล้ว +1

      Great methodical approach! Structuring everything really goes a long way and helps yourself in more ways than the obvious.
      Thanks for sharing!

  • @morkbla3218
    @morkbla3218 2 ปีที่แล้ว +7

    Great advice, a lot of it could actually be applied, with a bit of modification, to a lot of things not related to games or code if you think about it. The phenomenon of analysis paralysis will pop up in other places as well.
    Also, nice jab at CP2077 there. :P

    • @DarkDax
      @DarkDax  2 ปีที่แล้ว +1

      Oh definitely! I tried to make it as open as possible while still using Game Dev as a foundation. I think of lot of analysis paralysis can sometimes come down to getting caught up in your own mind or plan. It’s comes up almost anywhere!
      If there’s an opportunity, it’s worth the jab hahaha

  • @EnricoUniverse
    @EnricoUniverse 2 ปีที่แล้ว +3

    thanks for this video, really needed to hear that today!

    • @DarkDax
      @DarkDax  2 ปีที่แล้ว +1

      Glad you found it helpful!

  • @krankerapfel
    @krankerapfel ปีที่แล้ว

    Thank you a lot for this video, I didn't know other people feel like that sometimes too.
    I'm often paralyzed when I code at work because I'm always thinking "Would my technical leader have done it this way?" and I'm afraid of coding in the wrong direction and add work for him because he has to refactoring everything behind me to meet the deadlines...
    Over thinking makes me over engineering and here we are with the mess !
    I used to feel ashamed and stupid, but my leader continue to congrats me and that helps me to feel useful.
    I try to remember it's been only 2 months since I graduated, this is my first real job so I don't have to compare myself with a skilled senior with +10 years of experience.
    Anyway, I'm very happy to work with him because he teaches me a lot.

    • @DarkDax
      @DarkDax  ปีที่แล้ว

      Totally mate, I get hit by this now and then. Overthinking can really stop you in your tracks until you try something different or just have that eureka moment.
      Keep up the great work mate, I was in the exact same position as you 2 years ago. Sounds like a great learning environment with a great lead!

  • @malavidra
    @malavidra 2 ปีที่แล้ว +1

    How did I not find your channel earlier? Top quality content and value. Really enjoyed the video. Great job mate :)

    • @DarkDax
      @DarkDax  2 ปีที่แล้ว

      Thanks so much mate, glad you enjoyed it! There's more on the way!

  • @ProjectShinkai
    @ProjectShinkai 10 หลายเดือนก่อน

    this is actually helping me in my indie game development, you just earned a subscribber.

    • @DarkDax
      @DarkDax  10 หลายเดือนก่อน

      Thanks man, glad to have you!

  • @GrahamOfLegend
    @GrahamOfLegend 2 ปีที่แล้ว +1

    Yo, #4 is so real! Perfection is a lie. Also, what’s perfect for you may not be perfect to the audience, and MORE IMPORTANTLY! something that’s a 6 or 7 to you could be a 10 to majority of your player base. Once you understand what your audience expects of you, you can stop trying to be a perfectionist for an audience of one (yourself).

  • @madhero2333
    @madhero2333 2 ปีที่แล้ว +1

    Stuck?
    Take some time off the computer
    Go for a walk or drink some tea and come back
    You will be able to approach your difficult situation differently and sometimes you just figure it out completely.

    • @DarkDax
      @DarkDax  2 ปีที่แล้ว +1

      I cannot stress how important this is and how this has helped me even unintentionally. Sometimes it really does take you a couple hours or days away from it before you suddenly have a power brain move and are back at it

  • @karenpettigrew1511
    @karenpettigrew1511 2 ปีที่แล้ว

    You make me laugh out loud JP and your coffee cup changed 🤣😘

  • @illjan
    @illjan 2 ปีที่แล้ว +1

    great vid
    too little funny animals though

    • @DarkDax
      @DarkDax  2 ปีที่แล้ว +1

      Not enough funny balls

  • @johnleorid
    @johnleorid 2 ปีที่แล้ว

    I think you are already done with the beaviour tree system? I wrote on about a year ago and oh boy, I had the same paralysis when it came to the blackboard and variables.

    • @DarkDax
      @DarkDax  2 ปีที่แล้ว +1

      Honestly mate I think what I’ve got so far is alright for a super basic implementation that could possibly be improved in places. But thankfully it works for the scope of the project I’m using it for.
      I experienced the exact same paralysis for the exact same thing, and boy did it prolong it all. Not to mention the decision of whether certain logic should be within node or an external component. No wonder it’s taken me so long despite the size of the project haha.
      Only hope yours came along well mate!

    • @johnleorid
      @johnleorid 2 ปีที่แล้ว

      @@DarkDax The exact same problems haha - I also struggled with the "where does my code belong" thing, I settled for "if is is a thinking or decision making process, I put it in the node". But of course the node fires the raycast to check clear sight to the player and then it has to make a decision based on the result of said raycast .. at the end, I made a "vision" component and the node calls "HasVision()" on it.
      I wanted to have the variables as flexible as possible - I started with an enum but later wanted to be able to create variables in the editor, as I wrote a visual editor for the behaviour trees (using Experimental.GraphView which is the framework Unity used for ShaderGraph). I then switched everything everywhere to ScriptableObject Variables, because I can duplicate them without writing any code.
      Now I needed references everywhere and I didn't like that, also I wanted to save data in the CONTEXT (inside the Agent) and have the whole tree only once in memory (like in the original "true" form - idk why, I guess I watched too much GDC talks). So I went with dictionaries. Well, did you know that calling UnityEngine.Object.name creates garbage? And that boxing also creates a lot of garbage when you pass a ValueType as System.Object? Well, now I know xD
      And that's pretty much the current state, once I got these things sorted and rewrote some of the Visual Editor for QOL, it's quite cool to use. Only downside are Dictionary calls - with only 5 Agents I get more than 3000 calls to the dictionary per frame and this costs about 2ms. It's okay for our current game, but when I want to use my behaviour trees in future projects, I have to solve this (hopefully) last performance sink.
      Link to a picture of my Editor:
      forum.unity.com/threads/the-tools-i-wrote-to-cope-with-the-impossibly-ambitious-games-we-are-making.1208803/#post-7717363

  • @krisztiankoblos1948
    @krisztiankoblos1948 3 หลายเดือนก่อน

    I don't know how other are with this but the fustration to make something what is not working again and go and debug for days also stop me from start and code.

    • @DarkDax
      @DarkDax  3 หลายเดือนก่อน +1

      It’s such a motivational drain. The last thing you want to do is take a break and move onto something else for a bit but often it really does help. It’s a huge game of preventing burn out.

  • @Random_gamePlay566
    @Random_gamePlay566 2 ปีที่แล้ว

    This help me alot I finally got my ai enemy done and my friend say to nerf it

    • @DarkDax
      @DarkDax  2 ปีที่แล้ว

      Glad it helped! AI is definitely not an easy process so well done mate!

    • @Random_gamePlay566
      @Random_gamePlay566 2 ปีที่แล้ว

      @@DarkDax just need to adjust the AI FOV because right now it have 360 vision

    • @Random_gamePlay566
      @Random_gamePlay566 2 ปีที่แล้ว

      For a top down shooter

  • @TyroKitsune
    @TyroKitsune 2 ปีที่แล้ว +2

    Learn some coding structures. A few basics like how to best stack inheritances or component model and all that nonsense can help when trying to plan things out initially.
    Also! DIAGRAMS. AND. COMMENTS. ARE. IMPORTANT. Especially when working with others. Not sure how best to arrange something? Go sketch it out roughly as a UML diagram then go and build it. It makes it much easier to describe to a colleague too. Also, commenting. Please do it. You will forget things and if you ever have to explain things to someone else, it can slow everything down as you page fault over and over trying to retrieve what 'denoiseJSONDatabaseWithExtraSprinkleSauce' was supposed to do from your Brain's long term memory.
    It's also handy for keeping track of code. Typically, anything that's long and intensive should have some comments to explain bits that aren't self-evident. It helps to break up parts of the code and explain what each step in the process does. It could also help with refactoring and bug fixing as you'll need to explain what something does, so making sure it does what you say it does would be good. The refactoring comes in when you're code sounds long, overly complicated and messy in description. usually a big flag that it could do with a re-write.

    • @DarkDax
      @DarkDax  2 ปีที่แล้ว

      I cannot stress how useful and important comments and overly clear method names can be. Like you say, it only takes you to work on another area to then come back and having to 'reteach' yourself your own code when wanting to use or refactor it.

  • @Poopymancer
    @Poopymancer หลายเดือนก่อน

    This givin me a bit of motivation to get back into the thick of it. I got burnt out just trying to figure out how to make an effective player controller without having weird glitches, then trying to learn how to make a state machine to make it work better and just getting overwhelmed. I've been focusing on the more creative side and learning blender instead of unity, making models and animations instead of getting brain boggled by code. I'll give the player controller struggle another go soon thank u

    • @DarkDax
      @DarkDax  หลายเดือนก่อน +1

      I know that exact feeling. I get strong tunnel vision whenever I'm stuck on something whether it's a mechanic or just a seemingly simple system. Hyper fixating on details rather than being happy with what I have or coming back to it later.
      What works best for me is just literally taking a break from it. Shower thoughts suddenly click things into place and sometimes there's that one article or tutorial that makes it all make sense!
      Good luck mate!

    • @Poopymancer
      @Poopymancer หลายเดือนก่อน

      @@DarkDax well i took like a 5 month break lol and im just gonna start over from scratch with a different project that will require me to learn the same thing but I'll look at some different tutorials this time to get a better understanding of it. Thanks for the reply chief