The Tenzer Technology center is excited to announce a Unity challenge for current DePauw students. This challenge involves students learning the basics of the Unity software; creating a simple, but playable, video game; and then creating and submitting a short video of their game.
If you've ever wondered what it takes to create a video game but just haven't found the time or opportunity to explore this area, please consider participating. While this isn't necessarily an "easy" challenge, it is possible for each and every DePauw student to complete given a bit of dedication and perseverance. No programming skills are required, but they would be helpful. Several DePauw ITAP students helped prepare examples and test this challenge. Just take it one (small) step at a time, and have fun with it!
Ball in the City - Taha Babar '23 created our first example during Summer 2020 (while working remotely for the Tenzer Technology Center). The goal of his game is to collect all 23 coins (an easter egg reference to his graduation year). Taha employed a number of visual effects and added dozens of obstacles, including a ramp and teleportation (the purple vortex circles).
Fall ball - Hieu (Bu) Tran '23 created this second example during Fall 2020 (while working remotely for the Tenzer Technology Center). The goal of his game is to move your ball through the course to the end. Collecting coins is optional. Bu employed more tactical challenges (akin to a traditional platform video game) and allows the player ball to jump (using the space bar).
Step 1. Decide to participate by yourself or with a team of up to 3 students
Step 2. Download Unity (free student or personal edition is fine)
Step 3. Build a base game based on Unity's Roll-a-ball Tutorial (a beginner-level tutorial that walks you through the basics of the Unity engine in only a couple of hours). You are, of course, welcome to find and leverage any number of other online resources, but we mention the Roll-a-Ball Tutorial specifically because your game needs to have the following elements:
A ball that is controlled by the player using WASD keys
A surface or 3D environment that the ball rolls on
A 3rd-person camera that follows the ball
A goal that is either to: (a) collect some number of coins or (b) move the ball from a start point to an end point
A friendly message or some other indicator declaring the game is over (presumably after your player either wins or loses)
Step 4. Add enhancements to your basic game to make it your own (i.e., personalize it and separate it from your peers) and to afford you the chance to explore other aspects of the Unity engine. (see below for ideas and links to online resources)
Step 5. Create a video of you playing your game (no more than 5 minutes long); consider also recording a voiceover as you play to highlight key and unique aspects. (Screencast-O-Matic is an easy to use tool for screen capture or you can even just use Google Meet by yourself)
Step 6. Submit your entry by 11:59 PM EDT on March 24, 2021
Step 7. Win DePauw gear or technology prizes. This is a challenge not a contest. Every student who submits a reasonable entry (which includes the base game and some personal enhancements) will receive DePauw swag or technology prizes (TBD based on the quantity and quality of entries). Participants will be notified of their eligibility via email by mid-April.
You can import coin objects from the internet and add coins throughout the arena. (Making this object a prefab will make dragging and dropping the same prefab throughout the scene faster.) If you cannot find free coin assets from the internet, create a cylinder 3D object and change its scale dimensions from the transform section in the Inspector window to look like a coin. Then, you can add an imported coin texture from the internet. Download, drag, and drop it into the project column, then drag and drop it again on the cylinder coin object in the scene window. To apply the same texture to all coins, go to the dropdown which says "Overrides" in the Inspector window. Then, click "Apply All".
To import the assets, follow the instructions found here, or just drag and drop the downloaded folder into the project column of your Unity game. If you found assets on the official Unity store, click on "Open In Unity" to automatically import assets to your project, after signing into your account.
Instead of showing an increase in the number of coins collected in the Count Text, you can show a decrease in coins left from the total number of coins. For example, if you have 23 coins in the arena, the Count Text should display 23 in the start of the game, and this number should ultimately decrease to 0 as the player collects coins. To do this, you'll need to make some changes in your PlayerController C# script. Start the count from the total number of coins in your Start() method and decrement count instead of incrementing it in another method.
Consider softer shadows to potentially enhance the visuals of the game. To soften shadows (and to make other changes in lighting), click on the "Directional Light" object and adjust the strength of the shadows by moving the bar in the Inspector window.
Why not add some DePauw Easter eggs in the game? Look for a tiger object on the internet and import one into your game! For help with importing and placing objects and textures, refer to the "Import Coins" task at the top of this list.
Free tiger asset is available here.
You can add other types of Easter eggs too - for example, you can hide your name somewhere in the game, or you can add the number of coins that match your graduation year or age. Get creative!
Adding instructions can be helpful so that players know how to control the ball. To add instruction text, you can use the same techniques you followed while adding a Count and a Win Text. The only new requirement here is to position the text somewhere else in the scene. Perhaps your instructions explain the rules of the game as well as how to navigate the avatar.
You can also add a timer (as simple text, see how to add instructions above) that displays the time since the game has started. When all the coins are collected or the goal is reached, the timer could stop. Adding a timer adds another layer to your game as the player who collects the coins fastest is the real winner. Watch this video for help.
Add areas in your game that will teleport the ball from one place to another. To do this, you will need to write a new C# Script. While writing the code, consider that if the object on which the script is attached lies on specific coordinates on the plane, the object should move/teleport to a new set of coordinates on the plane (an if statement is needed). Learn about transform.position and Vector3 on the official Unity manual as they might be helpful in this case. The manual can be found here.
A skybox is a method of creating backgrounds to make a video game level look bigger than it really is. In simple terms, by adding a skybox, you will be able to change the grey color in the background you have now to portray weather or something even fancier. Follow the instructions here and search for the 6 textures you want on the internet.
Add a button that reloads the game when the player clicks it. For help, see this forum thread.
Find different types of free 3D assets e.g. trees, buildings, vehicles, dumpsters, billboards etc. online. Import and add them in your scene. For help in importing and placing objects and textures, refer to the "Import coins" suggestion at the top of this list.
Raised platforms and a variety in height can make your game more interesting! To add platforms, you can find free bridges, stairs and/or ramps assets online, then import and add them into your scene. You can also try to make your own bridges and arches using the pre-existing Unity 3D shapes. To move the coins or Unity shapes to a specific height, play with the y-value of the Transform section in the Inspector window. For help in importing and placing objects and textures, refer to the "Import coins" suggestion at the top of this list.
Want to add more lighting, shaders, and/or explosions at areas in your game environment? You'll first want to look for free assets online. Here is a handy free source! To import, see the "Import coins" suggestion above. To place them in the scene, just drag and drop specific prefabs to your desired points in the scene window.
Adding visual or particle effects can help modernize your game! Here is a free source to help you get started. To import, see the "Import coins" suggestion above. To place them in the scene, just drag and drop specific prefabs to your desired points in the scene window.
Want to add cool textures to specific obstacles in your arena? You'll first need to look for free textures online. If you are having trouble finding online textures, some extra sources are here and here. To import, adopt the same method we have been using for the other additional features. To place them in the scene, just drag and drop specific prefabs to your desired points in the scene window.
You can also make your ground surface transparent by using textures available in the Cartoon FX Free Asset mentioned above.
You can control the timing of inserted effects as they appear in the scene - you can also make their appearances random. To experiment with these features, click on one of the added effects. Then, in the Inspector window, play with the Duration, Looping, Start Delay, and/or Start Lifetime features.
You can customize your HUD to include instructions, coin count, timer and the reset button in the top left corner of the scene. For a better idea of how it could look, check out the game on our example page.
For icons, buttons and other GUI objects, visit the official Unity asset store for free resources. For help in importing and placing objects and textures, refer to the "Import coins" suggestion at the top of this list.
To change the font, color, position and style of the text, click on a specific text and make the changes in the Inspector window. To place text over a GUI object, make sure that the text is listed below the GUI object inside the Hierarchy window.
To place icons and buttons in the corner of the scene like 2D objects, go to GameObject->UI->Image. Then, click on the Image and look at the corresponding Inspector window. Drag and drop your desired GUI object to the area which says "Source Image". Then position your image wherever you want using the "Rect Transform" area, or by enabling 2D mode in the scene window and dragging 2D features to the desired location.
Send them to Tenzer Technology Center director Michael Boyles (michaelboyles@depauw.edu)