Encapsulating Software Development — A New Project Approaches!

Ryan Yamura
4 min readNov 24, 2020

It’s day 32 of my foray into the world of Game Development and Software Engineering! If you’ve missed the last episode (story), I’ve just finished my second game EVER, which focused mainly on cinematography thorough the creation of a stealth game!

It was a stark contrast from the first 2D shooter game I made, and actually quite interesting to learn about how cut scenes and cinematography is done in Unity. I was surprised to learn about how many big titles in the film industry actually used Unity as a tool to help create their moves — in no small part.

Today, I started a new project that was a mix between the 2D shooter and the 3D cinematography and stealth game.

ENTER 2.5D!

Now, what does that mean exactly? How can something be 2.5 dimensions? Well, from what I gather, its a game that’s going to be side scrolling, like a 2D game, but have elements of 3D mixed in there, for depth, control and other features. I haven’t quite gotten to the point in the course where we download all the assets that will be included in the challenges for the final portion of the course, but so far, I’m really enjoying it!

Why you may ask?

  • Many elements of this course draw from things we learned in the last 2 courses!
  • Major throwback to my days playing platformers like Super Mario!
  • JUMPING, I LIKE JUMPING.

So many of the challenges that I faced, I was actually able to draw on past concepts, build them out, then using new situations, continue to improve on these! Not only did I get a better understanding of how these aspects worked, like making a system that creates lives for our player, but also fundamental framework items between scripts. Such as using GetComponent, and using my own creativity to create a function that could detect when the player fell out of the world. There are actually a plethora of ways to get things accomplished, and while there is no “wrong” way to do something, there are more efficient ways to do them, and learning these things I think is integral to making sure future games that I may work on will stay optimized.

Also:

This en-CAPSULE-ates the start of any project.

What challenges did I face today?

  • Learning about how physics systems work using Character Controllers. It was really confusing how the monobehavior: Void Update behaves differently depending on the machine running it, causing irregularities when you’re trying to parent an object to a moving object. Due to this I had to implement a Monobehavior called FixedUpdate (instead of update) in order to fix the game refresh rate on the frame rate and smooth out transitions on moving platforms when jumped on.
This was me after trying to figure physics out initially.
  • Moving on to a different portion of the course, overwrote some of my game.

Yep, I can’t actually use part of my game now. I may have misheard an instruction and downloaded the assets that the video instructions told me to, but I definitely did not hear him say to open a new unity project. So the assets that I imported actually overwrote some of my own. While I can still see my assets and scripts, it broke the project for me. Luckily, looking forward in the course, I can see that these modules and assets I’ve been working on have been mostly for instruction purposes rather than the actual final portion of this game project, so I’ll be fineeeeeeee.

F.I.N.E.

To summarize my progress and path today:

  • Started a new 2.5D project
  • Worked on getting a working character controller using physics
  • Implemented features such as jumping, falling due to gravity, double jumping, and collectables in the game.
  • Coded a system for moving platforms, which I was able to do all on my own! +++++
  • Overwrote my progress — but its F.I.N.E.

Unfortunately due to the last part of my path, I am unable to properly show the final steps of today’s progress, but I was able to take some video prior to this happening, which shows the most impressive parts of today’s work!

*Mario theme plays on Nose Flute*

Things that were extra fun today:

  • Learning how to implement a jump!
  • Figuring out how to double jump!
  • Implementing a way to “die” via falling! DEATH ZONE!!!! Though I initially chose to use a transform.position.y value to determine this, and it worked!
  • JUMPING

With that, I’m going to call it a day. It was a fun, productive day, I feel like I’m getting such a better understanding of all these concepts and can’t wait to learn what tomorrow will bring me…

PUZZLES INCOMING.

SOON.

— Ryan

Eater of Foods.

--

--