BEHIND the SCENES of a Unity Game - Explained

Поделиться
HTML-код
  • Опубликовано: 7 ноя 2024
  • Wishlist UNFAIR RAMPAGE: KNIGHTFALL here: store.steampow...
    Sentry Application Monitoring: bit.ly/3UiIvfn
    FlowEnt Animation/Tweening library (Free!): flowent.frieds...
    In this video, I show you behind the scenes what my most recent Unity game looks like. You'll find that it's pretty messy, but when you are a solo developer on a smaller project you may need to prioritize progress over beauty so it is worth pushing ahead and coming back if some parts need improving.
    You can support me on Patreon:
    / imphenzia
    The palette texture used in this video is public domain and can be downloaded from www.imphenzia.com - look for the ImphenziaPixPal texture in the asset section.
    LEARN LOW POLY Character Modeling - Blender 3.5 Full Course: • LEARN LOW POLY Charact...
    Watch this video to learn every step of the way to create your very own characters!
    My website:
    www.imphenzia.com
    Universal Sound FX:
    www.imphenzia....
    Imphenzia Discord server invite:
    / discord
    My Instagram:
    / imphenzia
    Twitter:
    / imphenzia
    My Itch.Io page with all my Ludum Dare games:
    imphenzia.itch...
    Imphenzia Merch:
    teespring.com/...
    My Twitch Channel:
    / imphenzia
    In-depth learn how Low Poly Modeling in Blender:
    • Learn Low Poly Modelin...
    I use a Sony FX3 camera with a Sony FE 2.8/24-70mm GM lens. My primary microphone is now the Shure SM7B, and I use a Rode NTG3 shotgun mic if I need it to be out of view. I downgraded to a Focusrite Solo from my wonderful RME Fireface UFX II that I had to sell when I moved from Sweden to Australia.
    Thanks a lot for watching and sharing my videos :)

Комментарии • 117

  • @zionen01
    @zionen01 Месяц назад +14

    These type of videos is why I've been following this channel for so long, clear in-depth behind-the-scenes work explained in simple terms, very few do it this well. Added game to Wishlist ofc.
    Would love to see a tutorial on the trees, they look really nice.

    • @Imphenzia
      @Imphenzia  Месяц назад +2

      I really appreciate that. I will add more videos like this shortly, I am just editing the next one that looks at the progress after each 10 hours up until 400 hours =)

  • @kendalledwards4848
    @kendalledwards4848 Месяц назад +5

    I cannot wait until you complete the course, and make it available. This is exactly what I've been looking for, since I decided to get involved with game development. Please keep us informed. Great video, and it looks like an amazing game !!!

    • @Imphenzia
      @Imphenzia  Месяц назад +2

      Thanks happy to hear that!! A lot of work still for the course material but I will keep you posted on this channel.

  • @shyamarama
    @shyamarama Месяц назад +4

    This looks incredible, looking forward to the tutorials!

    • @Imphenzia
      @Imphenzia  Месяц назад +2

      Thanks! More to come =)

  • @motioncache
    @motioncache Месяц назад +2

    This video has so much value. It's nice to see a fully functioning game behind the scenes with all of its quirks and tricks to make the game what it is. As a new dev, this is invaluable.

    • @Imphenzia
      @Imphenzia  Месяц назад

      Thanks, I will follow up with more videos on this!

  • @Gijz74
    @Gijz74 Месяц назад

    Great to see how many things go on in the background and the things you had to overcome. Fun to watch and also quite educational.

    • @Imphenzia
      @Imphenzia  Месяц назад

      You're welcome, glad you like it!

  • @jeanmakesgames
    @jeanmakesgames Месяц назад +5

    that looks very good man, the game seems super fun to play, well done! Can't wait to see your course when it'll be out :)

    • @Imphenzia
      @Imphenzia  Месяц назад +5

      Hey, thanks! I found it fun and addictive to play during development, but it's funny how small changes can have a big impact on fun-factor. I increased the durability of the blocks and slowed down the bullet rate for a while, and it took all the fun away. Now you feel powerful and "in-the-flow" when you play so it's pretty interesting how two small number changes can have such a big impact. Will be excited to release the course later :)

  • @advanches
    @advanches Месяц назад +1

    Amazing! Thanks a lot for sharing this behind the scenes to how a game is made. As a game dev myself I find this super inspiring and informative. Hats off!

    • @Imphenzia
      @Imphenzia  Месяц назад +2

      Thanks, very happy to hear that. Another video about this game development journey is coming soon!

  • @DoubleNation
    @DoubleNation Месяц назад +1

    Really awesome video. I was always wondering how a more or less finished game would look like inside a game engine!

    • @Imphenzia
      @Imphenzia  Месяц назад +1

      Cool, I will be happy to share more!

  • @crush1975
    @crush1975 Месяц назад +2

    I love these Unity videos. Well explained, especially the performance stuff was very helpful for me.

    • @Imphenzia
      @Imphenzia  Месяц назад

      That's great to hear, glad you find it useful!

  • @Katti79x
    @Katti79x Месяц назад +1

    Such an informational video! The game looks and sounds awesome. Great tips for performance too.

    • @Imphenzia
      @Imphenzia  Месяц назад

      Thanks, glad you like it! I :D

  • @dropthepress
    @dropthepress Месяц назад +1

    This is the exact content I need! More like this please!

    • @Imphenzia
      @Imphenzia  Месяц назад +2

      Great to hear as I have many more ideas for videos like this :)

  • @TheGonzaDev
    @TheGonzaDev Месяц назад +5

    Is there a reason for doing the hole game in one scene? or is it just for this type of games?
    I thought that, for a non infinite pre made game, doing everything in scenes and loading them asynchronously was the best choice so you are not having big fps drops when things load
    Either way, I learned a lot of random things, thanks!

    • @Imphenzia
      @Imphenzia  Месяц назад +3

      I find the workflow to be faster when I work in a single scene and since the level modules are instantiated from a random selection depending on how far into the game you get, there was no benefit of building something in a scene. As someone pointed out too, for large worlds it would be better to do scenes as all referenced prefabs are loaded into memory, but for this small game there would be no benefit to have multiple scenes. Transitioning from Menu to Play can be done without any scene-loading this way.

  • @keelfly
    @keelfly Месяц назад

    Good video for beginners. Not many videos like that. Most people just copy an old tutoral and push it out. This provides them with proper insights.

    • @Imphenzia
      @Imphenzia  Месяц назад +1

      Thanks, will.cover more topics specifically like this.

    • @keelfly
      @keelfly Месяц назад

      ​@@ImphenziaI was thinking of the same. I am happy to see it is a good idea.

  • @rootbindev
    @rootbindev Месяц назад +6

    this is so awesome

  • @Veles017
    @Veles017 29 дней назад

    It's amazing! You're really cool!

  • @motbus3
    @motbus3 Месяц назад

    Honestly, this is a great idea for a series. Thanks ❤

    • @Imphenzia
      @Imphenzia  Месяц назад +3

      That's great, I will make more videos about the making of this game!

  • @spider853
    @spider853 Месяц назад +4

    2 months? That's impressive!

    • @Imphenzia
      @Imphenzia  Месяц назад +5

      Thanks! Yes, it was a full focus effort every day (between 8-14 hours every day). The game was pretty playable after one week, but it is easy to underestimate the extra time required for polish and things like controller remapping etc.

  • @drpainnuk3d
    @drpainnuk3d Месяц назад

    Thank you for the great insight! Really cool to see what goes into the game 😅

  • @szyslay
    @szyslay Месяц назад +2

    What an awesome Creator you are :D I'm using you sound FX asset in my game ! Thank you so much ! I love what I do.... one suggestion! Could you please consider disabling the faces/vertexes behind the blocka and grass to same on overdraw? Should be an easy model edit :D +also wishlisted! One more thing... It seems Turrican was a great inspiration here!!! Awesome music! Chris Huelsbeck would be happy!

    • @Imphenzia
      @Imphenzia  Месяц назад +3

      Thank you so much!! Great to hear you like Universal Sound FX too. Another big USFX update is coming adding more than 1000 new sounds in the next few days. Reducing overdraw could be good optimization especially for trees. Otherwise backfaces are already culled by the shader. I also rotate the tiles in all 6 directions to get variations. Yes, Turrican is a great inspiration and so is music by Chris Huelsbeck - it's an honor to have it mentioned here so thank you =)

    • @szyslay
      @szyslay Месяц назад

      @@Imphenzia I'm so happy we have you ! :D
      Awesome thank you do optimizations via shader. Glad and also honored to be among people like yourself! Please continue and I can't wait for the update! My game is alive and I will finish it soon + many more!

  • @SmashHighlights
    @SmashHighlights Месяц назад +1

    Really interesting video! I'm curious how many tris and draw calls you're making atm - Do you have specific thresholds you try to keep below when developing for PC and consoles?

    • @Imphenzia
      @Imphenzia  Месяц назад +2

      Thanks! 1957 batches, 1.5M tris, 2.9M verts, 82 setpass calls, 1051 shadow casters when I paused the game just now. The high vert count comes from me using flat shading instead of smoothshading so the GPU needs to duplicate all the verts to show flat normals for each surface. But That vert count is fine even if it sounds high. In Line War we have about 3-4M verts on screen and in PC games sometimes characters alone can have up to a million verts (at extreme closeup). I implemented reduced graphics quality alternatives too especially to remove realtime shadows. I think a lot of optimization would be needed for mobile to not burn up the battery :)

    • @SmashHighlights
      @SmashHighlights Месяц назад

      @@Imphenzia Thanks so much man, that's really helpful. Puts my mind to rest because I've always been paranoid if I see *a million* triangles lol. Good luck on your game! 😄

  • @AnthonyHortin
    @AnthonyHortin Месяц назад

    This was super interesting. Thanks for the walkthrough.

    • @Imphenzia
      @Imphenzia  Месяц назад +1

      Thanks - more will follow shortly!

  • @thierrytitidu79
    @thierrytitidu79 Месяц назад

    just amazing

  • @andreasfoth3319
    @andreasfoth3319 Месяц назад

    That's why I love your Videos. Great. More deeply Tutorial about the fluffy trees should be good. Thanks

    • @Imphenzia
      @Imphenzia  Месяц назад

      Great, thank you so much! There is a great tutorial on those that I followed: ruclips.net/video/iASMFba7GeI/видео.html
      More videos to come!

  • @mahkhardy8588
    @mahkhardy8588 Месяц назад

    Nice video about the Unity gameplay framework at runtime.

  • @dropthepress
    @dropthepress Месяц назад

    A playable demo would be amazing. I know releasing full project files is complicated, but that would also be useful for us trying to learn. Paid plugins and other things make that hard! Looking forward to hearing more about the course.

    • @Imphenzia
      @Imphenzia  Месяц назад +2

      Hi, a free playable demo is coming in October during Steam Next Fest so hope you get to test it out then. I am looking into sharing the entire project when I release my Indie Game Dev course. I would need to clean out API keys and some Steam integration code, but I try to not use any paid assets or plugins so from that perspective it should be ok!

    • @dropthepress
      @dropthepress Месяц назад

      @@Imphenzia that's awesome! So you planned ahead and read my mind!

  • @juleswombat5309
    @juleswombat5309 Месяц назад

    Do you ever use the Unity Performance profiler ? You covered quite a bit here on optimisation hints and pooling. A Tutorial on the use of the Unity Performance Profiler would be nice.
    Welcome Back to Unity.

    • @Imphenzia
      @Imphenzia  Месяц назад

      Hi, I've used it quite a bit in Line War, but not so much for this game. It's a powerful tool, and it's a good point I should cover that in a video.

  • @abdullah4653
    @abdullah4653 Месяц назад

    awesome and wonderful insights to learn from an expert👍

    • @Imphenzia
      @Imphenzia  Месяц назад +1

      Thanks! Expert is a powerful word, maybe "Experienced" is better =)

  • @regularmenthol
    @regularmenthol Месяц назад

    This is so cool thank you!

  • @StigDesign
    @StigDesign Месяц назад +1

    Awesome Video :D

  • @michaelslattery2273
    @michaelslattery2273 Месяц назад +1

    cool behind the scenes, lots of great unity performance tips. your organization [folders/heirarchy] in unity is very tidy. btw what specs is your pc for developing games? [cpu/gpu/ram]

    • @Imphenzia
      @Imphenzia  Месяц назад +1

      Hey, glad you like it! For this project I keep a simple asset-type based organization (scripts, textures, audio, prefabs, etc.) but in other projects like Line War we moved to a domain-based organization so all files specific to an entity, like a Tank, Factory, Infantry, Cruiser are stored in the same folder mixing scripts, sounds, meshes, that are specific to those entities. For simpler projects I prefer the approach I use in this game though. My PC is a bit too over-powered, I should be using a lower spec PC to get better performance out of the box. I have an Intel i13900K with an RTX 4080TI and 32GB ram. I should probably get a minimum-spec PC as a test rig.

    • @danielmisra2912
      @danielmisra2912 Месяц назад

      @@Imphenzia for testing its really nice to use virtual machines using for example Oracle VirtualBox and limiting its cpu power

  • @TheArghnono
    @TheArghnono Месяц назад +1

    An excellent overview. Having a large number of separate components on your gameObjects makes it easy to keep track of your code, but how do you communicate between these components ie costly invocations? Do you use unity events all over or also c# events, a bus, direct dependencies, or a mix?

    • @Imphenzia
      @Imphenzia  Месяц назад +3

      Thanks! I am actually using UnityEvents for that purpose for the first time. It's not super performant probably, but I found them easier to code and keep track of compared to C# events and the added bonus that they can be hooked up in the inspector too (even if I don't use that in this game). I try to only call on events, and I never use it during the update loop. So, OnDeath, OnDamage, OnJump, OnJumpLand, OnDash, OnShoot, OnFall are examples of Unity events that local gameobject components (like Animator, Sounds) and global comments (like Statistics, Particle Effects, Game Manager) are listening to. I will look into a bus method too. I think this is the trickiest part in gamedev to solve in a nice way.

    • @TheArghnono
      @TheArghnono Месяц назад

      @@Imphenzia Thank you for a detailed reply. UnityEvents sounds like a good choice. I am currently implementing Unity-Event-Bus in my ongoing project, and it is very efficient but needs a lot of scaffolding.

  • @othmane8587
    @othmane8587 Месяц назад

    Amazing tuto

  • @aneeshsharma460
    @aneeshsharma460 Месяц назад

    Its awesome, would love to see the state manager a little more in depth.

    • @Imphenzia
      @Imphenzia  Месяц назад +1

      Great idea, I will cover that more.

  • @ejazahmad9189
    @ejazahmad9189 Месяц назад

    Will you be posting this game as a course? This is awesome

    • @Imphenzia
      @Imphenzia  Месяц назад

      It will be a course, more to come on this channel about it later.

  • @random_precision_software
    @random_precision_software Месяц назад

    Did you use an asset for the blocks destruction or your own? If you used an asset which one was it, or do you know which one is best performent...?

    • @Imphenzia
      @Imphenzia  Месяц назад

      Hi, since it's not needed to break them on the fly I use a pre-cellfractured object from blender where each rock has it's on collider and rigidbody. For more sophisticated fracturing I found a git repo once that also helps keeping structural integrity, but I can't remember the name of it, but it's free. Hmm, I think it was this one: github.com/U3DC/unity-libre-fracture

  • @chriswinslow
    @chriswinslow Месяц назад +23

    Unity has now scrapped the runtime fee as of a few days ago and for Unity Personal, they have increased the revenue and funding ceiling from £100K to £200K. With all this in mind and kicking out the god awful CEO John and the Applovin directors, I’d now pick Unity over Godot as Unity simply outperforms Godot in every way.

    • @Imphenzia
      @Imphenzia  Месяц назад +9

      Yeah, I couldn't agree more. You can earn $200K in a year before you have to pay anything at all and if you earn between $200K and $25M you have to spend $2200 for a pro license which is a bargain for such a powerful and feature-packed engine. That is the equivalent of a revenue share between 1.1% and and 0.0088% with no admin of tracking sales.

    • @nullx2368
      @nullx2368 Месяц назад +4

      @@Imphenzia "In a year" is also something people miss the importance off, they only charge you if you recently made money in a short amount of time :D not 200k total

    • @andrzejkulakowski
      @andrzejkulakowski Месяц назад

      Hey, it's not Applovin, but Ironsource.

    • @cweasegaming2692
      @cweasegaming2692 Месяц назад +2

      As an indie, I highly doubt you’d ever take full advantage of Unitys features for it to be “better than Godot”. That Road to Vostok game is a perfect example (in an interview he said he didn’t need to modify the engine either to make it)

    • @chriswinslow
      @chriswinslow Месяц назад +1

      @@cweasegaming2692 🤣

  • @ignatiusreilly8280
    @ignatiusreilly8280 Месяц назад

    Your game looks gorgeous, I remember seeing it when I first started messing around with Unity, 4 years ago or so, why don't you publish it?

    • @Imphenzia
      @Imphenzia  Месяц назад

      Thanks, yes, many prototypes are before this one =)

  • @hansfritz6026
    @hansfritz6026 Месяц назад

    Will you teach everything in this course so we could create a game like ultranova ?

    • @Imphenzia
      @Imphenzia  Месяц назад

      The course is not specifically a Unity course and you can follow it regardless of whether you use Unity, Unreal Engine and Godot as the majority of the content revolves around building a game and not specifically the tool. But saying that, all my footage to show how things were made will be from the recorded footage of making this game, and the resource files that come with the first version of the course will be from this game. Basically, Ultranova is similar to how this game was made but with bigger worlds, more resources, and more features.

  • @digitaltoys.
    @digitaltoys. 18 дней назад

    The game is very good, I just wanted to remind you one detail in case it would be useful. while playing, I want to move forward and shoot ... in the meantime, if there is a stone in front of me, I want to jump, but the three actions cannot be done at the same time, I have to stop shooting. this disrupts the flow.

  • @deserialized
    @deserialized Месяц назад

    Sorry for stupid question. On the Steam page it says 2.5D platformer. But this seems 3D. In what ways do you use the 3d features?

    • @Imphenzia
      @Imphenzia  Месяц назад

      2.5D is when you use 3D engine to make a 2D-looking game. So it's all in 3D but with a fixed side view and everything plays out in the XY plane. I use 3D features for everything, depth in the background, physics, and all the assets render in 3D but they are on a locked Z-axis.

  • @chriswinslow
    @chriswinslow Месяц назад

    I really want to play this game it looks so good. I’ll also buy the making off the game tutorial. It would be great if this were to be ported over to UE5, I’d buy that tutorial too!

    • @Imphenzia
      @Imphenzia  Месяц назад +1

      That's awesome to hear. It'll be released end of next month! And doing a UE5 port would be an excellent training exercise to learn UE better and see how things translate.

    • @Katti79x
      @Katti79x Месяц назад

      Maybe that could be a series on its own? How things compare and what difficulties to expect. What works and what needs to be rebuilt and so on.

    • @chriswinslow
      @chriswinslow Месяц назад

      @@Imphenzia about halfway down the game's Steam page, it's showing an error message, just above the “About this game” section. This error message seems to only be on the iPhone Steam app but not the Windows desktop Steam program.

  • @hansfritz6026
    @hansfritz6026 Месяц назад

    Where can we sign up for the developer course to learn to create a similar game like this

    • @Imphenzia
      @Imphenzia  Месяц назад +1

      I will announce more about the course on this channel, it's a few months away still.

    • @hansfritz6026
      @hansfritz6026 Месяц назад

      @@Imphenzia cant wait :-)

  • @Yagir
    @Yagir Месяц назад

    Creating levels as prefabs is a very bad approach, because when loading the game, Unity looks at the references left for these prefabs and loads them into RAM.
    This leads to the fact that if there are 100 levels there, your RAM will be filled to 100% and the loading time will be about a minute on a weak device.
    Scenes are created to provide management in RAM.
    You can place a prefab with static settings on each of the scenes to facilitate the processes of balancing and setting up basic scripts and lighting.

    • @Imphenzia
      @Imphenzia  Месяц назад +1

      Good point to keep in mind for some games, but not a problem for this one or most other games I make. If there are larger worlds with unique and very memory intensive meshes, it would probably be wise to use scenes instead. I find that scenemanagement is pretty problematic and slows down the workflow otherwise, unless you have specific memory budgets for levels to adhere to. We went from multiple scenes in Line War back to one as the worlds are generated procedurally and it reduced the headache of scene-transition-persistent objects. But thanks for sharing this, I will make sure to keep that in mind!

  • @devilvortex1
    @devilvortex1 Месяц назад

    It would be cool if it was like Crash Bandicoot.

  • @XAHAK
    @XAHAK Месяц назад

    this idea is new. thank you for this

    • @Imphenzia
      @Imphenzia  Месяц назад +1

      You're welcome - more to come!

  • @bohmales
    @bohmales Месяц назад

    Broforce 3D

  • @MyDrTech
    @MyDrTech Месяц назад +2

    first

  • @espacemaxim
    @espacemaxim Месяц назад +1

    Unity? lol

    • @CoderzF1
      @CoderzF1 Месяц назад +4

      yes, unity. he is still learning UE

    • @Imphenzia
      @Imphenzia  Месяц назад +15

      Yes, great game engine. More capable than Godot and simpler than UE =)

    • @phee3D
      @phee3D Месяц назад +5

      yes, unity. A battle tested simple to use game engine with a great api. You know, the ones used for games like rust, escape from tarakov, fall guys and probably a million others you've played yourself. It's an actual game engine despite your knowledge of it being limited to, I'm assuming from your condescending "lol", the run time fee controversy.

    • @StigDesign
      @StigDesign Месяц назад +2

      @@Imphenzia true :D

    • @rootbindev
      @rootbindev Месяц назад +6

      i love unity, and now the runtime fee is gone

  • @alhu5514
    @alhu5514 Месяц назад +1

    3:53 how do you make the camera switch interpolate/smooth? Transitions="none"?

    • @Imphenzia
      @Imphenzia  Месяц назад +1

      The Cinemachine Brain has a default interpolation transition time of a hald a second I think.