Today, we look at a number of tools for building and populating vast game environments with Unity’s Terrain System. This system generates (and regenerates) a terrain mesh at runtime that is optimized for our game, providing high level of detail at a close proximity and maintaining a low poly mesh for distant features, all tocontinue reading
Class Recaps Archives
Lesson 10: FPS Game
This week we are looking at some advanced Unity features that we can use to create our own “first person shooter” (FPS) style game. We will take a look at tools for quick level generation, dive into Unity’s Character Controller, take a deeper examination of the offerings of the Physics library, and finally dip our toes into some Enemy AI. Starting today, our remaining lessons are no longer required to complete the assignments. From this point on, all lessons are strictly educational, but I strongly recommend trying to follow along as these systems are very useful for developing your own games.
continue readingLesson 9: Advanced 2D
For this class, we looked at a few more advanced techniques to enhance our platform games. The first is Animation Effects, which allow us to call a scripted event from inside an animation clip, which we used to make a “coin box”. Then we look at defining physics collisions, setting up areas that affect our physics with 2D Effectors, and finally look at Sprite Shapes.
continue readingLesson 8: Attack Methods
No class for Week 8, but I have added some videos for a recent lesson developed for another class that feature a simplified character controller, as well as methods for attacking with stomp, melee, and projectile attacks.
Perhaps the most useful component of this is the OnDrawGizmos( ) and OnDrawGizmosSelected( ) method which can be used to draw info in your Editor’s Scene view. These are very useful for visualizing things like areas of effect, especially for those things that use triggers or physics calls. This method is called automatically by the engine just like “Update()” but are even running while the game is not playing, as this is an editor specific tool.
Check out the Unity Script Reference – Gizmos for more…
continue readingLesson 7: 2D Animation
It’s time to bring our world and our characters to life. This week, we dive into the wonderful world of animation, specifically how animation is implemented in our engine.
continue readingLesson 5 (Part 5): Controlling Color with MeshRenderer
White boxes falling from the sky is a beautiful site, but it would look even better if the debris appeared to change color. In this section we are going to look at how to access the “color” property of an object programmatically using the Mesh Renderer component.
continue readingLesson 5 (Part 4): UI Elements Reference
In this section we look deeper into Unity’s UI system, including the various configurations for the Canvas, creating and navigating our own Buttons.
continue readingLesson 5 (Parts 1-3): Astral Attackers Week 3
This week we are going to look at improving the quality of our UI, moving between scenes, preserving objects within those moves, and publishing our games. We have a ton of content to get to, so let’s go!
continue readingLesson 4: Astral Attackers (Part II)
In this week’s class, we discussed strategies for audio, and covered the Singleton pattern – a very powerful tool (but also a potentially tricky/dangerous one) for organizing our game and exposing our “manager” scripts to the objects in our scene. The videos this week will cover updates to our Astral Attackers game to build a Sound Manager, create the Game Manager which will handle our game state and flow, and finally we will make some visual improvements to our environment and to our enemies to spice things up.
continue readingLesson 3: Astral Attackers (Part I)
Today we started out on our new game – “Astral Attackers” – a Space Invaders inspired alien shooter that we will use to illustrate the ways in which the objects in our object-oriented program interact with one another. Instead of a coordinated central script controlling the action, the gameplay instead emerges from the behaviors we give the objects themselves.
continue reading