- 170
- 188 442
Midnite Oil Software LLC
United States
Приєднався 24 лип 2020
ua-cam.com/channels/bbOlBjl21q9kYlhprE_EDQ.html
Independent software developer and UA-cam content creator producing video games for PC, mobile and online and Unity game development tutorials.
Check out my course-length tutorial series teaching how to re-create classic arcade games from scratch in Unity.
Independent software developer and UA-cam content creator producing video games for PC, mobile and online and Unity game development tutorials.
Check out my course-length tutorial series teaching how to re-create classic arcade games from scratch in Unity.
Unity Tutorial - Diagnosing Performance Issues
In this insightful tutorial, I dive deep into diagnosing and fixing performance issues in Unity games. We'll look at a real-life example and I'll show you two ways to diagnose it including using Unity's powerful profiler.
You will discover how to optimize audio loading to eliminate glitches and enhance your game's performance.
If you've experienced lag or other performance issues in your games, this video is for you!
00:00 - Start
00:10 - Intro
01:13 - Demonstrating the performance issue
02:09 - Fixing null reference exception
03:28 - Diagnosing the performance issue by commenting out code
07:37 - Using the profiler to diagnose performance issues
10:37 - Configuring music clips to improve performance
12:31 - Outro
Be sure to check out my Highland Panic game on Steam
store.steampowered.com/app/2391990/Highland_Panic
It's also available for the iPhone on the Apple App Store
apps.apple.com/us/app/highland-panic/id6448181825
And Android on Google Play
play.google.com/store/apps/details?id=com.midniteoilsoftware.highlandpanic
Join my discord to ask questions or chat about Unity game dev:
discord.gg/wrdqXPtw9y
In case you'd like to show your support by buying me a coffee:
ko-fi.com/gregorybradburn
Check out assets that are on-sale
assetstore.unity.com/?on_sale=true&orderBy=1&rows=96&aid=1100lzsEu
My Links:
My website: midniteoilsoftware.com/
My itch.io site: midniteoilsoftware.itch.io/
Twitter: SoftwareOil
discord.gg/wrdqXPtw9y
groups/347087173378560
#madewithunity #unitytutorial #unity3d #unity2d #optimization #performance #profile #performanceprofiling #tutorials #indiegamedev #indiegames #indiedev
You will discover how to optimize audio loading to eliminate glitches and enhance your game's performance.
If you've experienced lag or other performance issues in your games, this video is for you!
00:00 - Start
00:10 - Intro
01:13 - Demonstrating the performance issue
02:09 - Fixing null reference exception
03:28 - Diagnosing the performance issue by commenting out code
07:37 - Using the profiler to diagnose performance issues
10:37 - Configuring music clips to improve performance
12:31 - Outro
Be sure to check out my Highland Panic game on Steam
store.steampowered.com/app/2391990/Highland_Panic
It's also available for the iPhone on the Apple App Store
apps.apple.com/us/app/highland-panic/id6448181825
And Android on Google Play
play.google.com/store/apps/details?id=com.midniteoilsoftware.highlandpanic
Join my discord to ask questions or chat about Unity game dev:
discord.gg/wrdqXPtw9y
In case you'd like to show your support by buying me a coffee:
ko-fi.com/gregorybradburn
Check out assets that are on-sale
assetstore.unity.com/?on_sale=true&orderBy=1&rows=96&aid=1100lzsEu
My Links:
My website: midniteoilsoftware.com/
My itch.io site: midniteoilsoftware.itch.io/
Twitter: SoftwareOil
discord.gg/wrdqXPtw9y
groups/347087173378560
#madewithunity #unitytutorial #unity3d #unity2d #optimization #performance #profile #performanceprofiling #tutorials #indiegamedev #indiegames #indiedev
Переглядів: 194
Відео
A Deep Dive into Asteroids - A Comprehensive Unity Game Dev Tutorial
Переглядів 136Місяць тому
An AI generated "podcast" talking about my new Unity game dev tutorial. The tutorial: ua-cam.com/video/2kej-O7JtsE/v-deo.html "Podcast" generated with notebooklm.google.com/
Asteroids - A Comprehensive Unity Game Dev Tutorial
Переглядів 937Місяць тому
Unlock the secrets of game development with my comprehensive Unity game dev tutorial! You will be guided step-by-step through creating a fully functional version of the classic arcade game Asteroids using Unity. What You'll Master: -Game Architecture & Design Patterns: Build scalable architecture and organize your code effectively and utilize powerful techniques like an Event Bus to decouple co...
How to Make a 3D Space Shooter Game in Unity - Tutorial Part 20
Переглядів 5263 місяці тому
Step-by-step Unity tutorial for beginners where you will learn how to make a 3D Space Shooter in Unity. In this installment I show how to display a leading target indicator using quadratic equations to calculate the predicted intercept position for your projectiles. 00:00 - Intro 00:41 - Add target indicator UI element 04:19 - Edit the TargetIndicator script 09:49 - Calculating the intercept po...
Unity Tutorial - Addressables and Cloud Content Delivery
Переглядів 9983 місяці тому
In this Unity tutorial I teach how to use addressables and cloud content delivery to offload your game data to the cloud so it's not included in your initial install. I then show you how to download the game data on-demand from the cloud using Unity's cloud content delivery service. 00:00 - Intro 02:23 - Project without Addressables 03:59 - Configure addressables 06:25 - Create addressable 07:2...
Legends of Learning Localization and Text to Speech
Переглядів 1083 місяці тому
In the fourth video in the series I am doing for developing games for Legends of Learning using the Unity game engine I demonstrate how to handle localization and text-to-speech using the LoSDK. Legends of Learning Playlist ua-cam.com/play/PLHcOLPSLOK7M9BTYJudxlNqd6M_DKUnnL.html Sign up as a Legends of Learning Developer gamedevelopers.legendsoflearning.com/ Other Legends of Learnings links leg...
Legends of Learning - Saving and Loading State Data
Переглядів 1504 місяці тому
In the third video in the series I am doing for developing games for Legends of Learning using the Unity game engine I demonstrate how to use the LoLSDK to save and load game state data. Legends of Learning Playlist ua-cam.com/play/PLHcOLPSLOK7M9BTYJudxlNqd6M_DKUnnL.html Sign up as a Legends of Learning Developer gamedevelopers.legendsoflearning.com/ Other Legends of Learnings links legendsofle...
Unity Game Dev Interview with Andrzej Gieralt
Переглядів 1847 місяців тому
In this video I am joined by Unity game developer and UA-cam content creator Andrzej (Andrew) Gieralt. We discuss various aspects of game development and UA-cam content creation and even briefly touch on our common faith. Andrzej's UA-cam Channel www.youtube.com/@AndrzejGieraltCreative Check out his Heir Obscure game on Steam store.steampowered.com/app/1594200/Heir_Obscure_A_Hunt_in_the_Dark/ B...
Legends of Learning - Creating a New Unity Project
Переглядів 4547 місяців тому
This is the second video in a series I am doing for developing games for Legends of Learning using the Unity game engine. This video demonstrates how to create a Unity project, import the Legends of Learning Unity packages and configure the project for Legends of Learning. I also demonstrate how to test your build in the Legends of Learning test harness. Legends of Learning Playlist ua-cam.com/...
Game Dev Interview with Rick Davidson of GameDev.tv
Переглядів 2727 місяців тому
ua-cam.com/channels/bbOlBjl21q9kYlhprE_EDQ.html This is an edited version of the livestream interview with Rick Davidson from GameDev.tv! There were some technical issues for the first several minutes of the livestream so I've edited the video to clean up those issues and provide a more enjoyable viewing experience. Check out all the excellent courses at GameDev.tv www.gamedev.tv/ Timeline of v...
Unity Game Dev - Making a Math Game for Legends of Learning
Переглядів 4079 місяців тому
This is the first video in a series I am doing for a Math game I am developing for Legends of Learning. This video gives a brief overview of the process for selecting a learning object for which to develop a game, submitting a Game Design Document (GDD) and getting approved. Legends of Learning Playlist ua-cam.com/play/PLHcOLPSLOK7M9BTYJudxlNqd6M_DKUnnL.html Sign up as a Legends of Learning Dev...
Unity Tutorial: How to Debug using Rider or VS Code
Переглядів 8439 місяців тому
In this Unity tutorial I teach how to use Jetbrains Rider or Visual Studio Code to debug your Unity game. 00:00 - Intro 01:43 - Debugging with Jetbrains Rider 07:33 - Debugging with Visual Studio Code Be sure to check out my Highland Panic game on Steam store.steampowered.com/app/2391990/Highland_Panic It's also available for the iPhone on the Apple App Store apps.apple.com/us/app/highland-pani...
How to Make a 3D Space Shooter Game in Unity - Tutorial Part 19
Переглядів 1,1 тис.9 місяців тому
Step-by-step Unity tutorial for beginners where you will learn how to make a 3D Space Shooter in Unity. In this installment I show how to use the new Unity Input System to add controller (gamepad/XBox) for pitch, roll, yaw, thrust and fire. Link to entire playlist for this tutorial series ua-cam.com/play/PLHcOLPSLOK7PNvLAdnqicE_BeqoNH7Zwz.html Link to source code for this episode on GitHub: git...
How to Make a 3D Space Shooter Game in Unity - Tutorial Part 18
Переглядів 6869 місяців тому
Step-by-step Unity tutorial for beginners where you will learn how to make a 3D Space Shooter in Unity. In this installment I show how to use the new Unity Input System for pitch, roll, yaw, thrust and fire. Link to entire playlist for this tutorial series ua-cam.com/play/PLHcOLPSLOK7PNvLAdnqicE_BeqoNH7Zwz.html Link to source code for this episode on GitHub: github.com/gbradburn/3D-Space-Shoote...
Unity Tutorial: How to Freeze Time In Unity
Переглядів 6959 місяців тому
Unity Tutorial: How to Freeze Time In Unity
Unity Tutorial - Animated Score with Toon Numbers
Переглядів 3659 місяців тому
Unity Tutorial - Animated Score with Toon Numbers
Cinemachine Virtual Camera Transitions
Переглядів 25310 місяців тому
Cinemachine Virtual Camera Transitions
How to make a typing/racing game in Unity
Переглядів 57710 місяців тому
How to make a typing/racing game in Unity
Dino Racer - A Simple Typing/Racing Game I whipped up using Unity
Переглядів 13710 місяців тому
Dino Racer - A Simple Typing/Racing Game I whipped up using Unity
Addressables and Cloud Content Delivery in Unity - Audio Tutorial Part 6 of 6
Переглядів 99710 місяців тому
Addressables and Cloud Content Delivery in Unity - Audio Tutorial Part 6 of 6
Unity 2D Dice Roller That Looks 3D
Переглядів 2,5 тис.11 місяців тому
Unity 2D Dice Roller That Looks 3D
Unity Collision Handling: Mastering Beginner Basics for Flawless Game Development
Переглядів 318Рік тому
Unity Collision Handling: Mastering Beginner Basics for Flawless Game Development
Play Footstep Sounds for Various Types of Terrain - Audio Tutorial Part 5 of 6
Переглядів 950Рік тому
Play Footstep Sounds for Various Types of Terrain - Audio Tutorial Part 5 of 6
Programatically Transition Between Music Groups - Audio Tutorial Part 4 of 6
Переглядів 275Рік тому
Programatically Transition Between Music Groups - Audio Tutorial Part 4 of 6
Unity Tutorial - Render Textures with Animated Sprites
Переглядів 888Рік тому
Unity Tutorial - Render Textures with Animated Sprites
Create Audio Settings User Interface in Unity - Audio Tutorial Part 3 of 6
Переглядів 299Рік тому
Create Audio Settings User Interface in Unity - Audio Tutorial Part 3 of 6
Refactoring our Unity Music Manager for Scalability - Audio Tutorial Part 2 of 6
Переглядів 313Рік тому
Refactoring our Unity Music Manager for Scalability - Audio Tutorial Part 2 of 6
Make a Basic Music Manager in Unity - Audio Tutorial Part 1 of 6
Переглядів 760Рік тому
Make a Basic Music Manager in Unity - Audio Tutorial Part 1 of 6
Hi, thanks for this great tutorial. can you please share the project to github?
I did not share the project because it is tied to my Unity account and contains paid assets.
@midniteoilsoftware OK, thanks
Hi. Thank you for your video.
Awesome ness. Exciting, can't wait to learn!!
i need this for android devices, so that I can know how to publish in google playstore can anyone suggest?
You don't need this for Google play because you can build your game locally on your own computer (no need for Mac hardware). Some links to get you started: docs.unity3d.com/6000.0/Documentation/Manual/android-BuildProcess.html docs.unity3d.com/6000.0/Documentation/Manual/android-distribution-google-play.html
I have followed the instructions but when I build the game for android and try it on my phone it's not working but it works when I run it on my pc. Can you help me, please.
Maybe. Post details of what's not working on my discord server, preferably with code-snippets, screenshots and/or logs of what's wrong.
@@midniteoilsoftware Thanks it works
Can you make a tutorial on a 3D Animation tutorial please?
@@gorillazaremyfavband check out my Q*Bert tutorial.
@midniteoilsoftware ok
I just wanted to say thanks again. I am at the point in my game where I am integrating all the language stuff. This has been really helpful. Keep it up!
@@sotofpv glad it was helpful
Really nice sharing the whole thing
i like that its recent and it explains some stuff chatGPT DIDNT, but how do i work with PNG files? i want to attatch a PNG from CCD to an existing rawImage that i have set in a prefab.
The firing system needs a fix, should spawn from the firepoints on the blasters and travel towrds the center of the screen. There you need a crosshair so you can do boresight aiming. Also I would do a boresight that would give me an idea for where the ship is flying and the mouscursor so I can see where I am directing the ship currently. Of course you can do something like freelancer where there was gimbal aiming, raycast the mouse coursor and direct the shot towards the cursor. That system was great for flying and shooting at the same time. Next is the deadzone and ship direction, I don't think it the deadzone needs to be more wide, But to be able to aim better I think it need to be more slow and smooth towards the center of the screen and more rigid and steep on the outer edges of the screen. That way you can do aiming at the center of the screen and manuevering at the edges and of course this needs some kind of interpolation in between.
You're still very early in the course. I add crosshairs later on and in my most recent video I added a lead-target indicator.
@@midniteoilsoftware Nice, I look forward to see how you tackle it.
Thanks!!❣
It's my pleasure. Hopefully this is useful.
This ran terribly on my Commodore 64!! I want a refund on this free tutorial! 😂 In all seriousness, you're doing great work for the community, thanks Greg.
Haha, thanks for the support.
Maybe make it into 30-60 minute parts. It would be a lot less terryfying
Thanks for the feedback. I guess it's a trade off. Most of my long-form tutorials have been deployed that way (e.g. 3D Space Shooter, Q*Bert, Defender) and it was suggested, by other UA-camrs like Code Monkey, to instead release them as one long video. I do make sure to break it up into smaller "chapters" so you can click on the timestamp for whatever specific topic you're interested in.
He has done it too.look for his playlist.
This is rly nice. There are a ton of videos about this and that pattern or what ever specific thing, and sometimes the real problem comes when trying to put them all together. Is more of a when and where than a what. Latelly I was looking for more general information about code architecture and less about "how to do an inventory", "how to do ui", "how to shoot...", "observer patter", "object pooling", etc. This comes really handy.
@@InkDvl thanks I appreciate the feedback.
Is this tutorial for beginner , who want to start making games?!
It's a bit more complex than most beginner tutorials but I tried to make it so even beginners could follow along. All the source code is available on gitlab and I broke it down into several individual chapters so you can stop the video and come back to specific parts as needed.
I'm new to unity so I don't know if I'll be able to explain this properly. For the ship scriptable object you can use: [field : SerializeField] public float _thrustForce {get, private set}; This will allow you to get the variable but it can only be charged privately and it will be exposed to the inspector so you can play the values
Thank you, Legend!
Thanks for watching!
Thank you sir!!! 8 hours that's amazing
You’re welcome! I hope it’s useful.
Hey there! nice tutorial... this is useful for the new input system as well? ... Abstractions, meants agnostic, sub classes must implement... I understand very clear... but I am exploring new possibilities with new input system and switching devieces. thanks.
Sure. I actually cover this in my new Asteroids tutorial. ua-cam.com/video/2kej-O7JtsE/v-deo.html
@@midniteoilsoftware Ok...I am going to see it!!!
It is incredibly refreshing to see content that shows what the end product will be right up front :)
Awesome!! Thanks in advance!!
does this work for other stuff that isnt unity?
I've never heard of anyone using Unity Cloud Build for anything other than Unity apps. The post-build.bash script should work for any signed iOS app to actually publish to TestFlight.
You do not need to write an ObjectPool class for each thing you pool, you would need to create an ObjectPool instance for each prefab. I wrote a ComponentPoolManager that returns an IObjectPool
True, you don’t need a class for every pool. But each instance must have its own CreateI instance() callback and optionally callbacks for Get, Release, Delete, etc. I’m actually using the built-in pool in my upcoming Asteroids tutorial. I have a genetic TimerManager with pools for every type of timer (countdown, stopwatch, etc) you might want to create. Thanks for the comment.
Sir, I searched the entire internet to find this information. Thanks yours effort.
It's my pleasure
Does this still work today, 2/10/2024 ???
@@JoyCatDev it should. The UI might look a little different though.
Hi, can you make a tutorial for physic based jetpack like star wars games?
You talking about Jetpack Trooper?
@@midniteoilsoftware yeees
@@Burhanizm That could be fun. I'm in the middle of making a course-length tutorial on how to make Asteroids from scratch so it might be a while but I will add it to my backlog. Thanks for the suggestion.
@@Burhanizm Just to clarify, are you talking about Clone Wars Adventures: Jetpack Trooper or the jetpack troopers in Battlefront?
Nice series, despite using Godot, I think I will take ideas from here for the AI and the leading indicator. Really nice work.
Thanks!
how would i Update a build/Release if i wanted to, say for example i made a change to the Addressable prefab, how would i update it.
Build to CCD again and select Update Existing Build.
Is the background you’re using AI-generated?
@@immortalsun which background are you referring to?
@@midniteoilsoftware The game background. The background details (the objects) look mushed/distorted.
@@immortalsun No, it's not AI generated. That's just the perspective of the Cinemachine camera I'm using. It's tilted over to give it an angled top-down view. I talked a little bit about that in this video ua-cam.com/video/Za9ajx3myEE/v-deo.htmlsi=EpZllrke87Y1dkEM
Great video! Thanks!
I can't find any Remote and Local dropdown options in Profiles window? Any idea?
Go to my discord server and post a screenshot of what you’re seeing and we’ll try to help. Link is in the video description.
Good one Greg. Would love to get a grip on that math. Definitely giving you a like!
Thanks!
Liked and subscribed!
yay!
Dad joke @40:24
As of Aug 2024, the post-build.bash script needs to change the path variable as path="${UNITY_PLAYER_PATH}"
i've poked at it. for a while now, but cant seem to figure it out. How do i wait until the animation is completed before i continue a script. basically, i have a TurnHistory, and i'm trying to get the sprite of each die that the result lands on to save it in a list. Ive tried to just get the DieRoller2D[].GetComponent<SpriteRenderer>().sprite, but it give a different sprite than what the result is. AWESOME AWESOME piece of work. Im recreating the Minigame from Grandia 3 (Arrange Dice)
Do me a favor and post this question over on my discord server where I can post a more detailed response.
are GitLab and UnityCloud services free?
Hi there, can you make a complete guide to publish a game on yandex games
I have never published any games on yandex games so have no idea what is involved in that.
Is it okay for me to use your code in my game? :)
Absolutely!
does this method also work when you integrated admob into your unity project
@@kevinkoolen I have not used admob but if admob works on iOS devices then how you deploy it shouldn’t matter.
Hello, I have the following error: 2024-08-21 15:50:40.423 *** Error: Unable to upload archive. The file '/BUILD_PATH/coalstone-games.pirates-n-trouble-2024-07-dksal7/.build/last/default-ios/build.ipa' cannot be found. (-43). Did anyone solve this?
I don't know if you fixed it but you have to do the following: Go to Build Automation -> Configuration -> iOS Configuration -> Edit -> Advanced Settings, and enter "build" in the "Executable name" field under "Build Output". That will make the .ipa file name be "build.ipa" and thus it'll be found by the post-build script. Also, you can enter whatever name you want for the Executable Name, but you have to make sure to change it in the post-build script. That's what I did.
@@francisconazartorres7363 Thank you very much for commenting, after 1 month, I have not been able to compile, unfortunately I do not have a Mac, and that is why I am wanting to use iOS services. Still getting the same error [error] [2024-09-26T17:41:19.942Z] - 7.4.13.2.7.4 - ERROR: xcode build failed [error] RuntimeError (Build Failure): [error] /BUILD_PATH/.rvm /gems/ruby-2.7.4/gems/bvr-7.4.13.2.7.4/lib/bvr/build/handlers/platform/xcode_compiler.rb:319:at `block in exec_fastlane': Compilation error (RuntimeError) [warning] [2024-09-26T17:41:21.274Z] - 7.4.13.2.7.4 - WARNING: An attempt was made to override a protected variable. The environment variable "CI" cannot be overridden. [warning] [2024-09-26T17:41:21.274Z] - 7.4.13.2.7.4 - INFO: Setting environment variable "SKIP_SLOW_FASTLANE_WARNING". [error] 2024-09-26 17:41:25.658 *** Error: Failed to load '/BUILD_PATH/coalstone-games.pirates-n-trouble-2024-07-dksal7/.build/last/default-ios/build.ipa'. [error] 2024-09-26 17:41:25.659 *** Error: Unable to load file. Cannot find file '/BUILD_PATH/coalstone-games.pirates-n-trouble-2024-07-dksal7/.build/last/default-ios/build.ipa'. (-43)
Thank you very much for the video! I'm Brazilian and I loved the teaching and the way you explain. It worked perfectly for me. I have difficulty learning because there isn't this type of content in my language, I would like to request a more detailed video on the subject: How to make updates with temporary events, how to update several files and not just a specific scene, how to change just one thing in a specific scene, etc.
If I have time I'll see if I can do a follow-up video In the meantime, all you need to do is create addressables from your prefabs and give them a different label. You'll notice in my video that I'm loading the dependencies by label so you would do the same thing for any other addressables you add. Make sure the Bundle Mode is set to Pack Separately.
@@midniteoilsoftware Oh, thanks, I think I understand. In case of creating for different platforms, would I have to create buckets for each platform or is there a way to create one for all of them?
If you have more questions, join my discord and post there.
You are doing a great job. It's very simple and well explained tutorial.
@@md.shahadathossain7641 thanks!
I like your style - I played Q-bert - and coded in 8-bit assembly. Georgia Tech EE 1971 - sorry
Thanks!
free-free-free-free -- Oden=$50(your crutch) -bye
If you don't want to pay for Odin, you can download their free dll from the GitHub link above so the code in this tutorial will compile but without the benefits Odin provides.
If anyone else has trouble moving children of a Layout Group (vertical or horizontal), I had to add a Layout Element to the child I want to move, and then click "Ignore Layout". It will still allow the child to move relative to the parent. I was ready to pull my hair out figuring out why I wasn't able to move the ReloadsRemaining TMP object around.
Just curious why you'd want to move children of the layout group? The point of a layout group is to automatically arrange the children for you.
Hey, just a tip at 3:20. If you disable the other cameras in the Hierarchy, you can stay on the cockpit cam while you move the HUD around!
Just to piggy back off of 24:58 because I ran into this after I messed up my project during one of the earlier refactoring videos and then having to play catch up to prevent from having to redo hours of work since I didn't have a good Git commit. If you follow along enough to download and import the assets that will be used, you should be able to then just clone future branches, given you at least have the assets imported. Just check the links in the video to see if any new assets are linked. At worst, you'll have to create the Detonator Assembly Definition, and your IDE may yell at you about a missing Detonator reference which you can resolve by telling it to import the reference. Thanks for making such an amazing series! I would definitely love to see you make a new series once time permits!
Haha 33:35. Yes, I notice them all the time! Red squigglies drive me crazy and they always stick out like a sore thumb to me. Also, I use GitHub Copilot and usually I notice the discrepancies in what my auto complete shows versus what you type! :)