After much turmoil, it seems like I can focus more on my game development. My burn out period is pretty much over. As much as I want to speed this whole thing along, I know if I turn this into a crash course, I'll just burn out again. Plus, I've gotten back into making Youtube videos, so that's a nice distraction.
Anyway, last time I had started a rocket project that had me build a simple rocket that would get from start to finish. We added controls for a thrust and rotation mechanic and also audio for when it takes off. I made basic obstacles and platforms, as well. It was very simple, but I felt so accomplished. I was actually controlling a ship! That I made!
Not much was done with the actual playable game this time around. It was more behind the scenes stuff that was done. But I was tasked with creating two challenging levels. The one above is the first scene - they call it a 'scene' in Unity, but it's essentially a level.
Unity has pre-built tools and settings that make merging your scripts and code together with the actual objects in the scene very easy. For instance, the white landing pads are referenced in my code by a special tag called "friendly" and "finish". Certain actions happen when my rocket collides with certain tagged objects. When it hits something that isn't either of those two, then another action happens - it dies.
The picture above shows when the rocket "collides" with an object tagged "Finish" - my ending landing pad - that it then calls the StartNextLevelSequence. Nothing happens when a "friendly" collision happens. But when it collides with something that isn't either, the StartDeathSequence code is completed.
This is the type of logic that trips me up. It's easy when you see it already written down - it makes so much sense. But when I'm staring at a blank screen it's hard to even think of where to start. That's always been my problem with the logic side of programming. But man, the times it does click, I go on a roll and don't stop. I love that feeling and it's why I like programming. Those "aha!" moments are what I like.
The lessons were focused more on refactoring (improving code), adding small details, and changing some of the logic of the script. For instance, I also added a pause to the restart level death sequence and disabled movement of the ship for when the rocket "dies" so that it looks like a crash. It also plays an explosion audio file to better simulate a crash, too. It's all in the details, as they say.
My second level was a bit more challenging, but still simple enough to pass. The same rules apply to this level too. Except if you die, you restart to the first level, not this second level. Simple level made with simple shapes. Still, I'm looking forward to the day I start using assets that don't hurt my eyes.
I was surprised at how much progress I made this time around. I'm only a few videos away from completing this project - about 12 more to see. Overall, I have done over a third of this 3D Unity course.
Peeking ahead, there's still some interesting topics that will be covered. But as I said in my last post, I think I will postpone those other projects, complete this rocket project, and start thinking about my actually putting together a small game.
With programming in general, one of the biggest things they hammer into you is that the ONLY way to get better is to simply start making stuff yourself. That's the biggest thing I have been failing at to date. I can learn and learn until the cows come home, but it won't matter if I don't actually put that knowledge to use. Hopefully, by my next blog post I will have completed this Rocket project and have started working on my own game. See ya'll then!