NEW LECTURES ADDED DEC 2022
I'm happy to announce four new lectures that demonstrate how to use Scriptable Objects to store data.
THE SOURCE CODE THAT COMES WITH THIS COURSE IS A GREAT VALUE AT TEN TIMES THE PRICE.
BUILD A FULL FEATURED IDLE GAME WITH COMPLETE SOURCE CODE
NEW LECTURES ADDED DEC 2022
I'm happy to announce four new lectures that demonstrate how to use Scriptable Objects to store data.
THE SOURCE CODE THAT COMES WITH THIS COURSE IS A GREAT VALUE AT TEN TIMES THE PRICE.
BUILD A FULL FEATURED IDLE GAME WITH COMPLETE SOURCE CODE
In this course you will learn how to create an Idle Business Tycoon Game from the ground up that is similar to games such as ADventure Captialist, Web Tycoon, and Cookie Clicker. But more importantly, this course is designed to teach critical game development concepts and design patterns popularized by the Gang of Four.
Do you enjoy playing Tycoon and other Simulation or Idle games?
Do you know a little bit about C# and Unity3D but would like to take your Development Skills to the next level?
You can play AdVenture Capitalist (free on Steam) to get a very good idea of the core game play you will learn to create in this course.
More than 13 Hours of
Learn Important Unity Interface Concepts
Great for Beginning to Intermediate Level Game Programmers (Now includes advanced bonus content)
Produced by Greg Moss of Odoo Class Videos - an Expert in both Enterprise & Game Development Tutorials
Starts off with simple C# that even a beginner can understand... end up with a full feature idle game.
Create full unique games in seconds with dozens of stores and upgrades with the Exclusive Idle Game Data Generator.
FULL SOURCE CODE and updated projects for Unity 2019, Unity 2020, and Unity 2021.
Version 2.0 released December 2021. Now with Scriptable Objects and Full Custom Inspector.
TO BE HONEST... THE SOURCE CODE ALONE IS A GREAT VALUE AT TEN TIMES THE PRICE.
Course Overview: This course focuses on core Game Design and Programming Principals. I use the tools in Unity to create the Interface and Artwork is all from Creative Commons. The game design borrows from many of the idle Business Tycoon type games such as AdVenture Capitalist, Cookie Clicker, and others.
By the end of the course you will be able to customize the game as you please and create your very own idle game.
This course starts at the beginning but ramps up quickly to teach you important Game Design Patterns that you must know to write professional games:
Beginning Skills:
Learn how to create a Unity3D Project
The entire project is created step-by-step. Start at the very beginning.
Perfect for those that are new to Unity and Programming in General
Start right away using Unity 3D's newest UI tools to create a working tycoon store
Write your first C# script and learn the basics of variables, IF statements, creating a Timer, and other simple programming concepts
Create an Animated Progress Bar to Show your Store in Operation
Video exercises along the way help reinforce what you are learning
Improving Your Business Tycoon Game Features and Your Development Skills:
Upgrade the Game Design to Handle Multiple Stores
Create a Game Manager to Better Track Money in the Game
Learn to Implement Math Functions to Calculate Your Next Store Cost
Add an Icon for your Store and Learn to Create Dynamic Buttons
Learn Important Beginner C# Structures and Basic Unity 3D Game Development
Taking Your Game Development Skills To the Next Level:
Designed to take you through important design patterns to improve your development skills
Improve Your Game Manager with the Singleton Pattern
Use Delegates and Events to implement the Observer Design Pattern
Refactor your Tycoon Game into a UI Manager
Use Unity Prefabs to dynamically create your stores at run time
Learn to Load Game Data from XML. Critical to allowing gamers to create mods
Learn to build a State Machine within the UI Manager to handle the various interface states within your growing Tycoon Game
Create a Managers Panel to extend the basic game design and provide a template for you to continue adding features to your business tycoon game
Perfect for those who wish to see how to implement real game designs so you can apply them to more advanced systems and future Tycoon games
Take your game development skills to the next level. Download the full source code for the entire project.
This upgrade will include many new features that are found in commercial idle clicker games including:
New video Lectures covering both functional and technical aspects of the game
Learn how to save and load game progress
Calculate idle profits (make money when the game isn't even running. )
Create a screen to display profits while you were gone
Learn how to create Scrollviews
Improved Screen Design and Layout Tips
Create games with unlimited stores. (memory & cpu limitations apply)
Use the new multiplier button for buying multiple stores at a time
Calculate earnings per-second for your operations
Big number descriptions for up to 300 exponents.
Handle "Angel" investors or "Transcendence" also known as NewGame+
New lectures on how to setup and implement your Idle Tycoon Business Simulation
SUPER BONUS - Generate Idle Game Data with custom Unity3d Inspector.
Generate Idle Game Data to create procedural generated stores, managers, and upgrades
Load and Save Game Template settings to easily generate new game designs
No need to hand key store data and upgrades... Adjust parameters to generate the idle game data
Data stored in human readable XML to be easily modified and tweeked as desired
New Learning Opportunities.
Upgraded course video content that reviews the technical upgrades of the project
Static methods and properties
Using constants
Loading game data from XML
Use PlayerPrefs to save game state
Loading configuration and store names, managers, and upgrades from CSV
Build a custom inspector
Better division and integration between game models and UI
Improved performance and smoother gameplay with threading and coroutines
Using Setters & Getters to protect your class properties
Using LINQ with ArrayLists
Tons of comments throughout all the code
New Lectures that cover all the new content
TEN BONUS .
Learn Unity and C# fast with code reviews and detailed explanation of advanced architecture concepts.
Copyright 2015-2021 First Class Ventures, LLC. This item is not authorized for posting on Steam, or any other game or game asset site without permission.
NEW UPDATE NOV 23, 2021 BLACK FRIDAY RELEASE of Unity Idle Business Tycoon 2.0!
I just completed an entire re-write of the entire idle data generator using Scriptable Objects! The entire system as been re-factored to use scriptable objects. I've uploaded a BETA build of the code already and will be preparing a detailed lecture on the re-design.
You can go ahead and download the code for yourself from this lecture under resources.
Game Design Document
Now attached to this lecture is a GDD (Game Design Document). It is very simple but as was pointed out in the comments it is a good idea to have a GDD when building out any game.
Introduction
This short introduction lets you see the finished game with some simple creative common graphics. Attached to this lecture is a zip file of the final Unity Tycoon project for the game.
In this exercise course you are asked to attempt to tie the current balance of your company to the Unity UI interface. You will need to incorporate many of the skills you have learned so far. This is a great exercise for those who have some experience programming and are confident that the material up to this point has been easy.
A core part of Business Tycoon Simulations such as this one is the timer that determines when a store's income should be added to the current balance. Timers are also very valuable in many game designs so learning how to use them early on in useful.
In this lesson we see how to animate our store timer using the Unity 5.0 UI Slider. This visual feedback adds to the game play and should be giving you a great feeling of accomplishment at how the game is starting to shape up this early on.
In this lecture we move away a bit from adding additional features to the game and instead look at some important game design concepts and prepare our game design to allow multiple stores.
In this lecture we use our real game example to see how our objects (the store and the game manager) can communicate and share information with each other. You learn that public methods and public properties are accessible outside your class and inside the Unity editor while private methods and private properties can only be accessed internally.
In this lecture you complete the process of making the tycoon game capable of handling multiple stores. An important take away from the course up to this point is that we are using many of the standard Unity features that are easy to get started with. Your game is up and running and the core engine is in place. Now we can begin adding features and expanding the game design.
At this point in the course you have the foundation for a simple game. In this exercise you are to take what you have learned and built out six stores (or how many you wish) with various costs, timers, and profits on the sale.
One key feature in these idle Tycoon type games like ADVenture Capitalist is that you unlock managers so you don't have to click on the store over and over. The store timer will automatically restart on its own once you have a manager for a store. While we will wait to implement the user interface for automating the store we will go ahead and add the feature into our store class so we can more easily test our game play.
Up to this point our stores are a fixed cost. In Tycoon games like this it is often desirable to have each new store cost more than the previous store. In this lecture you learn how to integrate a powerful c# math library that lets you create a function for your Tycoon game that allows you to scale up your store costs. More importantly you will learn how to use this library so that you can apply it to your own game designs.
Now that we have improved our store cost calculations, let's show the player the cost of the next store in the buy button. Learn how to dynamically change the button text.
Add visual feedback in which you can change the buy button to be disabled and show different colors when the player doesn't have the money to purchase another store.
While this entire course focuses primarily on using Unity 3D's User Interface and introducing game design patterns we do at least want our stores to have a picture associated with each one of them.
Unity Prefabs allow you to create reusable objects within your Unity scenes. This video begins introducing you to prefabs and how they can be used in the editor. In a later lecture you will learn how to use these prefabs to programatically generate your stores from XML.
For our design we want to hide the stores until they are available. While this design is a bit different than ADVenture Capitalist it is common in many other Tycoon games in this genre.
In this lecture we introduce some overall improvements to gameplay and learn some additional C# scripting along the way.
We begin to decouple our stores dependencies with the game manager by introducing the Singleton pattern. A classic design pattern used to implement game managers to they are easily accessible to all of the other systems in your game.
As a beginning programmer it is easy to put together a game like this Tycoon clicker. However when you get into more challenging games with complex designs your beginning skills will make it difficult. This lecture will teach you how to separate out the user interface elements from the game the game manager. While this very simple example only addresses the current balance, the design principal will prepare you for a far more complex Store UI manager in future lectures.
One of the most important game development concepts is the ability to create events the various systems in your game can respond to. Instead of tightly coupled objects that are brittle and require much dependency using the Observer Design Pattern and Delegates and Events our User Interface can update itself when the game manager announces that the current balance has changed. This is a dramatic improvement over the previous design in which our game manager would have to know details about the user interface.
Each store has several UI components and like our game manager it is important to separate out our UI from our game logic. Because the store class has more complexity this lecture certainly will be more challenging to those who started this course as a beginner. For those who are already programmers this re-factoring exercise should prove enlightening and provide you with examples of how you can go about better designing your own games.
Breaking out the store UI from the store game logic required quite a few steps but it should have been very valuable for those who wish to create more complex games. It demonstrates how composition of your objects is important and that you want to avoid from the beginning if possible having your UI tied in tightly with game logic. Most importantly it demonstrates that it is never too late nor never too early to re-factor your design for future growth. Build, test, re-factor, test, build, re-factor, test, build. Always take time to go back and clean up your code and re-factor when you are working on complex game projects.
The design to this point uses up a lot of CPU cycles because the UI is refreshed in the update method of the game objects. In this lecture we make our code more efficient by moving code out of the Update method and using other techniques to update the user interface in the game.
In this exercise you are asked to do some of your own re-factoring by changing variables from public to private.
In this lecture you learn how to create a simple XML document and load game data out of it so it can be utilized within the game setup.
NEW!!! - This is a new video added to the course that demonstrates how to create a layout grid for your store prefabs.
In this lecture you make a big leap in the game design going from stores that must be created manually in the Unity Editor and instead dynamically create the store prefabs from the data in the XML file. While this is a pretty simple example you can apply this to everything from loading rpg stats, maps, choose your own adventures... and pretty much any game elements. This is also an essential technique to making games in which users can easily make their own mods.
While most of our store data can be set right inside the store class, the store name needs to be updated in the text box at the top of the store interface.
Now that we are creating our store prefabs dynamically we must now load in our store image dynamically as well. Fortunately this short lecture will have you dynamically loading your pictures into the Unity UI in no time.
We still have additional data we need to load into our store from XML. This lecture gets the remaining elements of data we need into our store.
As many other objects in our game depend on the data that we are now loading dynamically, we use an event to notify the game manager that our data is loaded. This extends on what we have learned in previous lectures on using events and demonstrates how events can be used to effectively control the sequence of actions within your game design.
While we've completed loading our store data we now need to add the ability to load our starting balance from the XML file as well.
This exercise asks you to take what you have learned from loading data out of XML and create the ability to load the company name out of XML using similar techniques.
Our Load XML Data method grew quite large as we built out all the features it required. In this exercise you are asked to re-factor the method so it is more modular. Then the remaining part of the lecture is my attempt to re-factor the method. Please feel free to post your solutions to re-factoring this method in the discussion.
This lecture introduces you to the new bonus section that will show you how to improve the gameplay of our business sim by providing store upgrades that can be purchased. We begin by looking at the current design and understanding that many of the same mechanics for our manager upgrades will also apply to the store upgrades. This means we can use the same design patterns and techniques we used for unlocking managers for unlocking the upgrades.
We start in the lecture by focusing on the interface mechanisms that will open up the upgrades panel. Because the manager upgrades button, panel and list are so close in functionality we can quickly duplicate them to create a starting point for our upgrades.
Just like our managers, we must have prefabs that will be utilized for our upgrades. Using the manager prefab as a starting point we create a new upgrade prefab and slightly modify the appearance.
Now that we have our prefabs ready to load we need to modify the load game data script so it can create the new upgrade prefabs. Once again we copy the code we used for the manager upgrade and modify it so we can get our prefabs populating in the upgrade list.
To this point in this section we have primarily focused on the interface and the population of the upgrade items in the upgrade panel. Now that we have that functional we can tie it into our store and actually implement the upgrade.
This lecture we are forced to get a bit more creative with how we approach our design due to how the XML is imported. We make good progress at loading in an XML element and using it to create our upgrade prefab but the design breaks down when we have both a cost for the upgrade and a multiplier when the managers design only had the cost. While this lecture could have been edited to avoid a few minutes that were less than productive I have chosen to leave it unedited as I feel it is important for aspiring game developers to see real world game design decisions and learn how they are handled.
In this lecture we begin by looking at the XML we will use to define the store upgrades. This allows us to restructure XML loading methods so they can handle the new upgraded store design. While we still have a major design step ahead of us, this lecture takes us much closer to having our multiple store upgrade design implemented.
We have come a long way without creating the primary class that will represent our storeupgrade. It would have been a completely legitimate development decision to start by making this class first and working backwards towards the interface design. In fact if we were not building off the already functional manager mechanisms we probably would have taken that approach.
When the Upgrade button is clicked it is still wired into calling methods inside of our store class instead of our storeupgrade class. In this lecture we get the core mechanics of our multiple store upgrade in place.
JULY 2017 - Unity Business Tycoon Upgrade 2.0! Many new features
Design and coding improvements
In this lecture we begin walking through some of the upgrades that have been made to the game manager. Specifically we begin with namespaces and we have included them throughout the project to better encapsulate our scripts and prevent them from conflicting with other modules or code you would bring into the project. Then we look at some basic uses of constants and how they are use much like variables... but cannot be changed at runtime.
Finally we look at how we can improve our overall design to protect the properties in our classes using setters & getters.
In this lecture we begin walking through some of the upgrades that have been made to the game manager. Specifically we begin with namespaces and we have included them throughout the project to better encapsulate our scripts and prevent them from conflicting with other modules or code you would bring into the project. Then we look at some basic uses of constants and how they are use much like variables... but cannot be changed at runtime.
Finally we look at how we can improve our overall design to protect the properties in our classes using setters & getters.
In this lecture we will review how we used a CSV file to store hundreds of big number descriptions and load it into an arraylist. We then use LINQ to find the correct description for a given value.
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.