Welcome to Practical Game Development in Unity 4: Level 2.1!
his video series is all about the practical approach to using the tools made available to us in Unity 4 to create our very own video game! Over the course of this VTM, we will create a 3D Asteroids-style game - complete with Freelancer-style spaceship movement and weapon controls. We will show everything from a modular player controller all the way to implementing custom sounds - both 2D and 3D - and polishing the game up with a simple menu system complete with high scores! In addition, we will build a targeting HUD, a waypoint navigation system, and even some spiffy particle effects!
Level 2.1 is the first in a series of training products centered around the creation of an open world 3D space game. The game we put together in this series will serve as the foundation of our future projects in this series!
Unity is the fastest growing game engine on the market - favored by the smallest indie studios and the largest game development companies alike. Unity’s flexible, extensible, editor and component-oriented architecture lends itself well to the creation of virtually any game or simulation imaginable!
Finally, although there is a pro version of it; almost all of the features that make it one of the leading game-development platforms are available for both commercial and non-commercial use absolutely free!
We will be putting together a waypoint based Asteroids-like game with the following features:
- Freelancer-style player controller and weapons system
- A targeting HUD used to identify the next waypoint in the game
- Additional HUD elements for player health, current speed, and time left
- Both 2D and 3D sounds - including an engine sound with a variable pitch depending on speed
- An endless asteroid field manager
- Basic, scalable, menu system
- High score management and persistence
- The ability to construct multiple levels
Though the course of the creation of our game, we will solve many common challenges that come up during game development: including collision detection, resource management, modularity of our code, and the interaction between different game objects.
A basic understanding of Unity: We won’t be covering elementary topics such what a game object is or how components work. If you have never touched Unity, we recommend you check out Practical Game Development in Unity 4: Level 1 first to get a grasp of the fundamentals. However, this series is great for people who know their way around Unity, but may still be uncomfortable about how to use its various tools and techniques to great effect.
Beginner-level Understanding of C#: The bulk of code we will write will be relatively simple C#. In the few cases where more advanced features are utilized, the purpose of the code will be very apparent and provide for a great learning experience for beginner developers who wish the explore the language further.
Unity Standard: We will be with the standard, free, version of Unity. If you haven’t already, be sure to grab the latest version of the editor from the Unity website: http://unity3d.com
Visual Studio or MonoDevelop: We will be using Visual Studio 2013 with ReSharper 8 installed. However, you will be able to follow along with either any version of Visual Studio (even the free express editions) from 2010 onwards - or with the free and open-source MonoDevelop installation that comes bundled with Unity.
Optional - SourceTree: We recommend that developers working on any project, big or small, use source control. GIT is an excellent choice as it is free, widely supported, and doesn’t require any special services to use locally. We will be using the SourceTree product by Atlassian to manage our GIT repository. Although this is an optional step that may be skipped; we do very much believe that getting into the habit of using source control in your projects is very important.
We will be using this project as the foundation for a larger game that will be developed over the course of multiple video series. In the future, we will be adding open-world gameplay, ship-customization, AI, radar, trade lanes, multiple sectors and more! So be sure to check this series out, and stay tuned for upcoming releases!
We begin with setting up our Unity project and showing how we can import the project into source control, using GIT.
We will create our basic Unity scene for our game - including showing how to use a the free tool Spacescape to generate a skybox for our game.
For the first part of our player controller, we will assemble our player gameobject in Unity.
Next up, we will create the behavior that controls the player position, rotation, and the orientation of the camera.
Finally, we wrap up our player controller with a basic HUD that displays our health and current speed.
In this video, we stub out our weapons scripts as well as assemble the different gameobjects inside of Unity.
Next up, we write out the logic that will control our new weapon system - allowing the player to shoot projectiles in the direction of where the mouse cursor is placed.
In this video, we create our asteroid field - which allows for a seemingly endless amount of asteroids that will remain within the view of the player at all times.
We finish up our asteroid implementation, by allowing the player to destroy them with his weapons and making it so that the player will receive damage when he collides with one.
In this video, we show the implementation of a reusable script that makes a targeting square appear on the player's HUD over certain objects. In addition, an offscreen indicator will be displayed if the target is not currently visible - indicating to the player where he needs to orient himself to see it.
Next up, we create our waypoint system. This includes the waypoints themselves, which can be chained together in the Unity editor, as well as a waypoint manager that controls their behavior.
This video goes over the creation of our level and game managers. These classes are responsible for keeping track of a player throughout the duration of the game - awarding points, and determining if the player has lost or not.
In this video, we create our start, end, and high score, screens.
This video goes over our implementation of a high score system - allowing the user to record their score, have it be displayed on the high score screen, as well as persisting the scores to the local computer.
In this video, we create a few particle effects - such as the projectiles, the player's engines, and explosions.
Next up, we add sounds into our game. We provide sounds for the player projectiles, engines and asteroid explosions.
In this video, we show a technique that can be used to create GUI's out of images that designed within Photoshop. The GUI will also properly stretch itself based off of the resolution of the game window.
3D Buzz is a company dedicated to providing the world with quality technical education over 3D animation, programming, game design, and much more. We have been producing training videos since 2001, always pushing the envelope in the development of informative lessons with an engaging and personable format. We try to make the viewer feel more like they're involved in a classroom discussion with an energetic teacher as opposed to being stuck in a dry, uninspired, run-of-the-mill training video.
But 3D Buzz is so much more than just training videos. We maintain one of the most helpful online communities on the internet. We do our very best to keep in close contact with our community, and to make sure that when you're here, you feel at home.