Experiment 02 Interaction Objects

Size: px
Start display at page:

Download "Experiment 02 Interaction Objects"

Transcription

1 Experiment 02 Interaction Objects Table of Contents Introduction...1 Prerequisites...1 Setup...1 Player Stats...2 Enemy Entities...4 Enemy Generators...9 Object Tags...14 Projectile Collision...16 Enemy Collision...18 Pickup Prefabs...20 Pickup Spawning...25 Player Collision...27 HUD Hookups...29 Conclusion...31 Introduction It is time to expand upon the game framework created in the first experiment. The first experiment setup the player object with limited movement, the spawning of a projectile triggered by user input, a HUD with dynamic text and icons, and a scrolling background. A game would not be much of a game without something for the player to interact with. Two basic aspects of game interactions are positive and negative results. These two core facets of game design can be expressed through pickups (positive) and enemies (negative). Prerequisites It is essential to have a strong understanding of Unity s editor interface and the C# scripting language. These prerequisites should be reviewed and followed before completing the remainder of this document. The time to complete this document will be greatly exaggerated if these resources are not properly reviewed. 0.) Experiment - Game Framework 1.) Arrays 2.) Scope and Access Modifiers 3.) GetComponent 4.) Instantiate 5.) SerializeField & Serialization Setup This document requires the continuation of the Unity project from either the first experiment or lab. The remainder of the document is illustrated through and refers to that experiment. If you are using the first lab, please note some of the illustrations may not exactly match your project. This is fine and should be expected. If you have not done so already, please backup your Unity project before continuing. This can be accomplished by simply copying and pasting the entire Unity project folder to another location. Once the previous project has been appropriately backed up, the below sections can be completed. PG2: Experiment 02 Interaction Objects Pg. 1

2 Player Stats Before diving into the creation of enemies and responding to collision events, some player data should be setup. This data will be modified as a result of those interaction events. Locate and open the ship player controller script in MonoDevelop. Declare a Serialized Field variable of type integer. A serialized field exposes a variable to the Unity Inspector window without making it public to all other scripts. Name it MaxLives and assign it a value of three. This variable will contain the maximum number of lives the player will possess. Declare a private variable of type integer. Name it CurLives and assign it the same value as max lives. This variable will contain the current number of lives the player has remaining. Declare two private variables of integer type and name them numshotsfired and numenemyhits. Assign each the value of zero. These variables will be used to track the number of shots the player ship has fired and how many enemy ships have been hit. Remember, keep an eye out for compile warnings. Declare a private variable of type integer and name it Score. Assign it the value of zero. This variable holds the player s current score and will be modified based on game-play activities. PG2: Experiment 02 Interaction Objects Pg. 2

3 Create a new function with void for return and accepts no parameters. Name it ResetStats and call it from the Start function. This function is used as a singular location to apply default values to the player stat variables. It is called in start to ensure any time a player controller is instantiated, those variables will be assigned the appropriate default values. This function is also a handy utility to be called elsewhere in game (e.g. A pause menu option or game over screen). Inside the reset stats function, assign the value zero to any variable used as an accumulator (counter). Any private variable that needs to be modified outside of this script should have a function created to do just that. The number of enemies hit will be modified outside this script (by the projectile script). Create a new public function named ModEnemyHits which returns void and accepts an integer parameter. The parameter is added to the numenemyhits variable. We don t know the rules of scoring. It seems likely that various locations throughout code could modify it. Create a new public function named ModScore which returns void and accepts an integer parameter. The parameter is added to the Score variable. Although the player s lives remain private, a single point of contact should be implemented. Doing so helps isolate all life handling code to one location. If bugs occur or functionality needs to change, only this single function needs to be located and fixed / changed. Create a new public function named ModLives which returns void and accepts an integer parameter. The parameter is added to the current lives variable. Now that we have some player status setup and managed, other parts of the game can be implemented. PG2: Experiment 02 Interaction Objects Pg. 3

4 Enemy Entities Waves of enemies will be sent at the player. Instead of creating and placing all the enemy objects in the scene, they will be spawned at runtime. Much like the projectiles shot by the ship, an enemy will be instanced from a prefab. Back in Unity, let's start by creating a Quad. GameObject menu option, select Create Other option, and then select Quad. Select the new game object and rename it to EnemyBasic. Set the material of the Mesh Renderer component in the Inspector window. Expand the Materials tab and select the radio button next to Element 0 PG2: Experiment 02 Interaction Objects Pg. 4

5 In the dialog box select one of the enemy materials. Remove the Mesh Collider from the Inspector window and replace it with a box collider. Review the collider s attributes and mark the Is Trigger check-box. From the object s Inspector window, create a new Rigid Body. Add Component -> Physics -> Rigid Body PG2: Experiment 02 Interaction Objects Pg. 5

6 In the new rigid body component, unmark the Use Gravity check-box and mark the Is Kinematic check-box. NOTE: Gravity is obviously used for the effect of physical gravity. Kinematic refers to the ability to manually control is position and orientation. From the object s Inspector window, create a new CSharp script named EnemyControllerBasic. Add Component -> New Script -> Name the script EnemyControllerBasic. Locate the new script in the inspector window and double click it. The MonoDevelop programing IDE should automatically launch. Note: It may throw warnings or errors the first time it is opened. If this happens, close MonoDevelop and repeat the process. PG2: Experiment 02 Interaction Objects Pg. 6

7 Alternatively, you can open MonoDevelop then browse to and open the project file. Unless the script has been previously modified, you should see something similar to the below image. Add a Serialized Field variable MoveSpeed of type float. This is used to control how fast the enemy moves. The game object s position will be modified in this script s Update function. Since the game s frame rate may fluctuate, the amount of time elapsed since the last frame should be considered. We also want to control the movement speed in the editor. Hence, the MoveSpeed variable is a serialized variable. Its value is multiplied against the Time s delta time. Directly add the result to the game object s transform s position. NOTE: We can use the Transform object directly without having to access it through the GameObject. The enemy will live forever and keep moving far beyond the screen bounds. This wastes performance and memory. Since testing the screen bounds is rather expensive, another means is employed to remove our game object. In the Start function, call the function Destroy. Pass it two parameters, the game object it should destroy and how much time should transpire before the destruction occurs. PG2: Experiment 02 Interaction Objects Pg. 7

8 We need to verify the functionality before we make it a prefab. Simply press the play button and the enemy game object should move up. This may seem odd, but we'll get to the enemy orientation and correct that shortly. Select the enemy game object in the Hierarchy window and drag it to the PreFabs folder in the Project window. PG2: Experiment 02 Interaction Objects Pg. 8

9 Delete the enemy object from the Hierarchy window by right-clicking EnemyBasic and selecting Delete. This is because the enemy will be added to the game (the hierarchy window) at runtime during game-play similar to the bullets. Enemy Generators Now that we have an enemy to spawn, we need something in game to spawn them. A new game object will be created which will act as the enemy generator. This generator does not interact with other objects nor is it going to be rendered. It is simple used as a location for spawning enemies. As such, create a new empty game object and name EnemyGenerator. By default, the new game object will be placed in the center of the screen. The player should not see the enemies spawn. They should spawn off screen and move on screen. Select the game object and, in the scene view, translate (move) it to a location just above the top of the screen. The enemies also use this transform for orientation as well as position. Rotate it by 180 on the Z axis so the enemies spawn facing the player. PG2: Experiment 02 Interaction Objects Pg. 9

10 HINT: You can see a preview of the camera s perspective area Now that we have the generator created and placed in the scene, it s time to have the generator actually generate some enemies. This will be accomplished by creating a new CSharp script named EnemyGenerator. NOTE: The name of the script and name of the game object do not need to be the same. Open this new script in MonoDevelop and add an array of Serialized Field game objects. This array will contain the list of enemy TYPES which can be spawned. We currently have one type but this allows our setup to be flexible and accept any number of new ones created later. PG2: Experiment 02 Interaction Objects Pg. 10

11 In the editor, set the size of this game object array to three then hit enter. Drag & drop the prefab of the enemy onto each of the three elements. Before we can start spawning enemies, we need to control their spawn frequency (how often they spawn in units of time). For game-play reasons, let s not spawn the enemies at a consistent, predictable, interval. Switch back to the script file and create a new set of variables. The first two will be serialized field floats named TimeMin and TimeMax. These two variables will contain the minimum and maximum times, known as bounds, for selecting the time delay. The other sets of time variables will be used for internal tracking of when the delay duration has been satisfied. Declare two private float variables and name them TimeLimit and Timer. The time limit will be repopulated (assigned a value) each time an enemy is spawned. The timer will reset to zero each time an enemy is spawned and count up to the time limit before allowing another enemy to spawn. PG2: Experiment 02 Interaction Objects Pg. 11

12 Create a new function named updatetimer which returns void and accepts no parameters. This function will be used to manage the timers and should be called each game update. In the update timer function, accumulate the time elapsed by adding the Time object s delta time variable to the timer variable. Now compare the timer s current value against the time limit. If it s greater than or equal to the limit, it is time to spawn an enemy. Before spawning the enemy, the timer variables should be reset. The time accumulating variable can simply be reset to zero. The time limit is a little more involved as it needs to be populated by a value between the minimum and maximum times. Use the Random utility object for picking a number between the time bounds. The function requires two parameters be passed to it. As you probably have already guessed, the two parameters denote the minimum and maximum numbers to select between. Assign the result of this function to the time limit variable. Since we don t have anything to spawn yet, add a debug log to verify its working when playing through the Editor. PG2: Experiment 02 Interaction Objects Pg. 12

13 TIP: Don t forget to switch to the Console window to view debug prints. Now that we have functionality for time controlled spawning, let s create a function which handles the actual spawning. Declare a function named dospawn which returns void and accepts no parameters. Replace the previous debug log in the update timer function with a call to this new function. Use the Range function found in the Random utility object. All arrays start at index value zero and have some length. Use zero as the random range s minimum parameter and the array s length as its maximum. Capture the resulting value in a local integer variable named randindex. The randindex variable is used to index into the enemy types array. That array element is supplied as the object type to be instanced. The generator s transform is used as the position and rotation. Multiple enemies should now spawn based on the random time range. PG2: Experiment 02 Interaction Objects Pg. 13

14 NOTE: This screenshot has a lot more enemies on screen than the script should allow at this point. The variables you need to change to spawn enemies faster are serialized fields. Try to find them in Unity and make your enemies spawn this fast! Object Tags Collision detections are fairly easy to accomplish in Unity. Each object can implement the OnTriggerEnter function which supplies the other game object colliding with us. This other object is just a generic Collider, not the game specific type. Although there are many methods for identifying which specific type the other objects is, the distinction between game objects can be accomplished most efficiently by using the Tag attribute. Each game object created so far, with collision capabilities, should be revisited and assigned a Tag value associated with its type category. Meaning, all enemy types should be tagged with the same enemy Tag value. NOTE: Individual sub- types can be further distinguished by assigning them unique Collider names. See the pickup section for an example. Located and select any game object then review the top component in the inspector window. Expand the list box next to the Tag option then select Add tag option. PG2: Experiment 02 Interaction Objects Pg. 14

15 In the new inspector window, select the last (or first empty) Element under the Tags section and add a value for each game object type. Add PlayerProjectile, PlayerShip, EnemyShip, and Pickup as new element text values. Locate and select the bullet prefab then review the Inspector window. In the Tag list box, select the new player projectile tag name. Locate and select the enemy prefab then review the Inspector window. In the Tag list box, select the new enemy ship tag name. PG2: Experiment 02 Interaction Objects Pg. 15

16 Locate and select the player game object then review the Inspector window. In the Tag list box, select the new player ship tag name. Every interact-able game object now has a text value identifying its type. The pickup type is missing from this list. The pickup tag will be set when the prefab is created. From here on out, any game object created with collision will have its Tag value assigned. Projectile Collision A projectile may look visually stunning, depending on the assets used; however, it is not very useful without the ability to collide with other game objects. Start by locating and opening the Projectile script in MonoDevelop. Create a new function named OnTriggerEnter which returns void and accepts a Collider object as its sole parameter. This function has been declared in our parent class. Since the projectile class overrides and implements this function, the function declaration must match exactly with the parent s version. The engine is setup such that this specific function is invoked when a collision between two objects occur. NOTE: This relates to the Mesh Collider s Is Trigger check box in the Inspector window. More than one game object has collision and will cause this function to be executed regardless of its type. Namely, the projectile will collide with the ship that has spawned it. Obviously it should not react to its parent ship, so we limit it to a specific type via the Tag we've assigned it. The other collider has a member variable tag which contains that value. PG2: Experiment 02 Interaction Objects Pg. 16

17 Add an if-statement verifying its value then place a simple debug log inside it. Run the game and you should see the debug message when it collides with an enemy ship. After a successful test of the debug message, replace it with a call to Destroy and pass it the projectile s game object. The projectile should now disappear when hitting an enemy. We could stop there, but, this is a game and we want to reward the player for hitting an enemy. The player ship controller class contains the player stats. To modify those stats, the projectile class needs a reference to that class. Add a new private variable of type ShipPlayerController named ParentShip which is used to hold that reference. Next, the instance of the player s ship controller script needs to be located and used to populate the parent ship variable. When the projectile is spawned, its Start function is called. We can use this location in conjunction with the game object s find function to perform our assignment. The find function accepts a string name and should be sent the exact name of the player ship game object. The result of this function can be captured in the basic game object type. Once that's done, we can use the result to access a component from that object via its GetComponent function. This function is a little strange in that the component name is NOT sent as a parameter; rather, as a type specifier. Take note that the < and > characters are used before the parameter ( ) characters. PG2: Experiment 02 Interaction Objects Pg. 17

18 Now that we have a reference to the parent ship, let s use it to reward those points! In the OnTriggerEnter function, where the projectile is destroyed, access the ModScore function from the player ship. Pass it a positive value of your choosing. The other player stat we can handle here is the number of enemies hit. NOTE: Alternatively, this same process, to access and modify the stats, could be applied to the enemy script. Since we've already done it in the ShipPlayerController, it's far more efficient to use those functions. That way if a change needs to be made to the way points or hits are counted, the change only need happen in one place. Enemy Collision An enemy is not much of an enemy if it does not collide with other game objects. In this case, we want the enemy to react to the player s projectile and ship. Start by locating and opening the basic enemy controller script in MonoDevelop. Create a new function named OnTriggerEnter which returns void and accepts a Collider object as its sole parameter. The engine is setup such that this specific function is invoked when a collision between two objects occur. As such, the function declaration must match exactly with what is shown in the document. NOTE: This relates to the Mesh Collider s Is Trigger check box in the Inspector window. More than one game object has collision and will cause this function to be executed regardless of its type. Namely, the enemy will collide with other enemies or pickups. Depending on the design of the game, this may or may not be desirable. This experiment does not want this to occur so we limit it to a specific type via its Tag, similar to how we accomplished this with the projectile. The other collider has a member variable tag which contains the tag we've assigned it. Add an if-statement verifying its value then place a simple debug log inside it. Run the game and you should see the debug message when it collides with a projectile or player ship. PG2: Experiment 02 Interaction Objects Pg. 18

19 We could stop there, but, this is a game and we want to punish the player for wrecking into an enemy. The player ship controller class contains the player stats. To modify those stats, the enemy script needs a reference to that class. Add a new private variable of type ShipPlayerController named PlayerShipCtrl which is used to hold that reference. Next, the instance of the player s ship controller script needs to be located and used to populate the player ship variable. When the enemy is spawned, its Start function is invoked. Just like in our previous example, we use this location in conjunction with the game object s find function to perform our assignment. The find function accepts a string name and should be sent the exact name of the player ship game object. The result of this function can be captured in the basic game object type. Once that's done, we can use the result to access a component from that object via its GetComponent function. This function is a little strange in that the component name is NOT sent as a parameter; rather, as a type specifier. Take note that the < and > characters are used before the parameter ( ) characters. Now that we have a reference to the parent ship, let s use it to punish the player. In the OnTriggerEnter function, where the enemy is destroyed when colliding with the player, access the ModScore function from the player ship. Pass it a negative value of your choosing. PG2: Experiment 02 Interaction Objects Pg. 19

20 Pickup Prefabs An easy way to spice up a game is to add some positive rewards for the player. These rewards can be expressed through many different means; however, the concept of a Pickup is universally known and expected. Start by creating a new Quad. GameObject -> Create Other -> Quad. Select the new game object and rename it to Pickup. Review the top component in the inspector window. Expand the list box next to the Tag option then select the Pickup option. PG2: Experiment 02 Interaction Objects Pg. 20

21 Set the material of the Mesh Renderer component in the Inspector window: Expand the Materials tab and select the radio button next to Element 0 In the dialog box select the pupscore materials. Remove the Mesh Collider from the Inspector window and replace it with a box collider. Review the collider s attributes and mark the Is Trigger check-box. PG2: Experiment 02 Interaction Objects Pg. 21

22 Next, from the object s Inspector window, add a Rigidbody. Add Component -> Physics -> Rigid Body In the new rigid body component, unmark the Use Gravity check-box and mark the Is Kinematic check-box. NOTE: Gravity is obviously used for the effect of physical gravity. Kinematic refers to the ability to manually control is position and orientation. From the object s Inspector window, create a new CSharp script named Pickup. Add Component -> New Script -> Name the script Pickup. PG2: Experiment 02 Interaction Objects Pg. 22

23 Locate and open this new script in MonoDevelop. Add a serialized field variable MoveSpeed of type float. This will be used to control how fast the pickup moves. In this script s Update function, we'll be modifying the Pickup's location. As we've done previously, we'll use the Time object's deltatime to keep track of the time elapsed between frames. The deltatime variable handles this by being multiplied against the game object s transform s up component. The MoveSpeed variable is multiplied against the Time s delta time, and since we want to control the movement speed in the editor, it's made as a serialized field. Directly subtract the result to the game object s transform s position. NOTE: We can use the Transform object directly without having to access it through the GameObject. As before, we don't want the pickup to live forever, wasting performance and memory, and we don't want to worsen performance by constantly testing screen boundaries either. The easier way to do this is to simply remove the game object. In the Start function, call the function Destroy. Pass it two parameters, the game object it should destroy and how much time should transpire before the destruction occurs. This pickup script can be reused for every other type of pickup. Each pickup type uses the same tag identifier. We need a means to distinguish between the unique types. Declare a serialized field string variable named subtypename and assign it the value UnknownPickup. This variable will be used to contain our custom name used to denote its pickup type. The Collider object type is passed into the collision trigger function. The name variable of the pickup s collider is assigned this value so it can be checked in that trigger function. The best place to perform this assignment is when the pickup is first started. PG2: Experiment 02 Interaction Objects Pg. 23

24 In the editor, select the pickup and, from the inspector window, assign the sub type name a particular value. Let s use the Score value to denote it as a pickup which will affect the player s score. We need to verify the functionality before we make it a prefab. Simply press the play button and the pickup game object should move up. Don't worry about it going up, we'll correct that shortly. Select the pickup game object in the Hierarchy window and drag it to the PreFabs folder in the Project window. PG2: Experiment 02 Interaction Objects Pg. 24

25 Delete the pickup object from the Hierarchy window. From here on out that object will be added to the game dynamically during gameplay, so it doesn't need to remain in the hierarchy. Pickup Spawning Now that a pickup prefab has been created, we need to spawn them into the game scene. Depending on the design, there are many locations or means by which they could be spawned. For this experiment, they will be spawned when an enemy has been destroyed. Open the enemy controller script in MonoDevelop and add an array of game objects. This array will contain the list of pickup TYPES which can be spawned. We currently have one type but this allows our setup to be flexible and accept any number of new ones created later. In the editor, select the enemy prefab and set the size of this game object array to three then hit enter. Drag & drop the prefab of the pickup onto each of the three elements. PG2: Experiment 02 Interaction Objects Pg. 25

26 Create a new function called SpawnPickup which returns void and accepts no parameters. Locate the OnTriggerEnter function. Call this new function inside the if-statement handling the player projectile tag. Use the Range function found in the Random utility object. All arrays start at index value zero and have some length. Use zero as the random range s minimum parameter and the array s length as its maximum. Capture the resulting value in a local integer variable named randindex. The randindex variable is used to index into the pickup types array. That array element is supplied as the object type to be instanced. The enemy s transform is used as the position and rotation. A pickup should now appear when the enemy is destroyed due to a player projectile collision. PG2: Experiment 02 Interaction Objects Pg. 26

27 Player Collision Now that we have pickups, functionality can be added to the player ship for interacting with them. More importantly, the player can be rewarded for capturing those pickups. Start by locating and opening the player ship controller script in MonoDevelop. Create a new function named OnTriggerEnter which returns void and accepts a Collider object as its sole parameter. The engine is setup such that this specific function is invoked when a collision between two objects occur. As such, the function declaration must match exactly with what is shown in the document. NOTE: This relates to the Mesh Collider s Is Trigger check box in the Inspector window. More than one game object has collision and will cause this function to be executed regardless of its type. Namely, the ship will collide with the projectile that it shoots. Obviously it should not react to its own projectile. We limit it to a specific type via its Tag. The other collider has a member variable tag which contains the tag we've assigned it. Add an if-statement verifying its value then place a simple debug log inside it. Run the game and you should see the debug message when it collides with a pickup. There could be more than one sub-type of pickup. The pickup s collider was named Score. Add a second ifstatement to check the collider s name for that value. Run the game and you should see the debug message when it collides with a score sub-type pickup. PG2: Experiment 02 Interaction Objects Pg. 27

28 A debug print is fine for testing functionality; however, we want the score pickup to actually affect the player s score value. The score variable could be accessed directly but that is not the best approach. The ModScore function should be used instead. This maintains a singular location (point of contact) for adjusting that variable. If any bugs occurred regarding the score, a single break-point would be added to that function. If it was not used, every location in code which touched that variable would need a log or break-point. Furthermore, code could be added to the ModScore function to prevent its value from falling below or exceeding certain values. The pickup the player has collided with needs to be handled as well. By simply removing the other game object from the game scene, the collection process is simulated. Add a call to the destroy function. Since the other is of Collider type and that function only accepts game objects, the other s game object should be passed. NOTE: Alternatively, the pickup script could have an OnTriggerEnter function added to it. When it detects a collision, it would destroy itself. Although the enemy has collision handling for wrecking into the player, the player should also provide a response to that wreck. Add an else-if statement, below the pickup if-statement, in the OnTriggerEnter function. Compare the other s tag value to the name of the enemy ship tag. Inside the body of that else-if, modify the number of player s lives by negative one. PG2: Experiment 02 Interaction Objects Pg. 28

29 HUD Hookups The HUD is currently drawing text and images; however, all the information is static (unchanging). A practical HUD would dynamically update the information based on game-play activities. We have added some functionality to modify the score based on collisions. The player has no way to know that the score is being adjusted. Let s connect the HUD s drawn score to the player s score stat. Start by locating and opening the player ship controller script in MonoDevelop. Add a serialized field variable of HUD type and name it PlayerHUD. This variable holds the reference to the HUD game object. Specifically, the HUD script component. TIP: Don t forget to drag and drop the HUD game object, from the Hierarchy window, to this new variable, in the player ship s Inspector window. Locate the ModScore function in the player s ship controller script. Use the HUD s updatescore function to update it to the newly modified value. Calling the HUD from this location allows for a singular point of contact. Any other areas of code, which modify the score, do not know or care about the HUD. The HUD will automatically reflect the new score value. HINT: Don t forget to remove the testing code in the HUD s start function. PG2: Experiment 02 Interaction Objects Pg. 29

30 The HUD should now show the score change in real-time. The number of HUD life icons are currently hardcoded. Similar to how we handled the score, functionality can be added to make those icons dynamically updated. Start by locating the ResetStats function in the player s ship controller script. Just below the assignment of the max lives to the current lives value, call the CreateLifeIcons from the PlayerHUD variable. Pass it the MaxLives lives variable as the parameter. This will ensure the HUD creates enough icons to represent the maximum number of lives. NOTE: This create function only instances the icons once. It ignores the call if already created. Before testing this new functionality, the HUD s internal test of the create function needs to be removed. Open the HUD script and locate the Start function. Remove the call to CreateLifeIcons. PG2: Experiment 02 Interaction Objects Pg. 30

31 Since this reset stats function could be called at any time during or after game-play, depending on the design, the HUD needs to reflect the current number of lives. NOTE: The current lives variable is assigned the maximum number of lives. The max number of lives could be passed to the HUD instead. However, the point of the HUD s update function is to reflect the current life count. The life count is also changed in the ModLives function. Add the same call to updatelives in that function. Now any time the life count is modified, the HUD will automatically reflect the new value. The life icons on the HUD should now disappear when an enemy collides with the player. Conclusion That s it for this experiment! It would be highly beneficial to continue testing out and experimenting with different materials, values, and additional types of game objects. The results might ignite your imagination! PG2: Experiment 02 Interaction Objects Pg. 31

Space Invadersesque 2D shooter

Space Invadersesque 2D shooter Space Invadersesque 2D shooter So, we re going to create another classic game here, one of space invaders, this assumes some basic 2D knowledge and is one in a beginning 2D game series of shorts. All in

More information

VACUUM MARAUDERS V1.0

VACUUM MARAUDERS V1.0 VACUUM MARAUDERS V1.0 2008 PAUL KNICKERBOCKER FOR LANE COMMUNITY COLLEGE In this game we will learn the basics of the Game Maker Interface and implement a very basic action game similar to Space Invaders.

More information

Instructions for using Object Collection and Trigger mechanics in Unity

Instructions for using Object Collection and Trigger mechanics in Unity Instructions for using Object Collection and Trigger mechanics in Unity Note for Unity 5 Jason Fritts jfritts@slu.edu In Unity 5, the developers dramatically changed the Character Controller scripts. Among

More information

Learn Unity by Creating a 3D Multi-Level Platformer Game

Learn Unity by Creating a 3D Multi-Level Platformer Game Learn Unity by Creating a 3D Multi-Level Platformer Game By Pablo Farias Navarro Certified Unity Developer and Founder of Zenva Table of Contents Introduction Tutorial requirements and project files Scene

More information

Workshop 4: Digital Media By Daniel Crippa

Workshop 4: Digital Media By Daniel Crippa Topics Covered Workshop 4: Digital Media Workshop 4: Digital Media By Daniel Crippa 13/08/2018 Introduction to the Unity Engine Components (Rigidbodies, Colliders, etc.) Prefabs UI Tilemaps Game Design

More information

Unity 3.x. Game Development Essentials. Game development with C# and Javascript PUBLISHING

Unity 3.x. Game Development Essentials. Game development with C# and Javascript PUBLISHING Unity 3.x Game Development Essentials Game development with C# and Javascript Build fully functional, professional 3D games with realistic environments, sound, dynamic effects, and more! Will Goldstone

More information

Kings! Card Swiping Decision Game Asset

Kings! Card Swiping Decision Game Asset Kings! Card Swiping Decision Game Asset V 1.31 Thank you for purchasing this asset! If you encounter any errors / bugs, want to suggest new features/improvements or if anything is unclear (after you have

More information

Adding in 3D Models and Animations

Adding in 3D Models and Animations Adding in 3D Models and Animations We ve got a fairly complete small game so far but it needs some models to make it look nice, this next set of tutorials will help improve this. They are all about importing

More information

Unity Game Development Essentials

Unity Game Development Essentials Unity Game Development Essentials Build fully functional, professional 3D games with realistic environments, sound, dynamic effects, and more! Will Goldstone 1- PUBLISHING -J BIRMINGHAM - MUMBAI Preface

More information

Star Defender. Section 1

Star Defender. Section 1 Star Defender Section 1 For the first full Construct 2 game, you're going to create a space shooter game called Star Defender. In this game, you'll create a space ship that will be able to destroy the

More information

PoolKit - For Unity.

PoolKit - For Unity. PoolKit - For Unity. www.unitygamesdevelopment.co.uk Created By Melli Georgiou 2018 Hell Tap Entertainment LTD The ultimate system for professional and modern object pooling, spawning and despawning. Table

More information

Shoot It Game Template - 1. Tornado Bandits Studio Shoot It Game Template - Documentation.

Shoot It Game Template - 1. Tornado Bandits Studio Shoot It Game Template - Documentation. Shoot It Game Template - 1 Tornado Bandits Studio Shoot It Game Template - Documentation Shoot It Game Template - 2 Summary Introduction 4 Game s stages 4 Project s structure 6 Setting the up the project

More information

Save System for Realistic FPS Prefab. Copyright Pixel Crushers. All rights reserved. Realistic FPS Prefab Azuline Studios.

Save System for Realistic FPS Prefab. Copyright Pixel Crushers. All rights reserved. Realistic FPS Prefab Azuline Studios. User Guide v1.1 Save System for Realistic FPS Prefab Copyright Pixel Crushers. All rights reserved. Realistic FPS Prefab Azuline Studios. Contents Chapter 1: Welcome to Save System for RFPSP...4 How to

More information

CONCEPTS EXPLAINED CONCEPTS (IN ORDER)

CONCEPTS EXPLAINED CONCEPTS (IN ORDER) CONCEPTS EXPLAINED This reference is a companion to the Tutorials for the purpose of providing deeper explanations of concepts related to game designing and building. This reference will be updated with

More information

GameSalad Basics. by J. Matthew Griffis

GameSalad Basics. by J. Matthew Griffis GameSalad Basics by J. Matthew Griffis [Click here to jump to Tips and Tricks!] General usage and terminology When we first open GameSalad we see something like this: Templates: GameSalad includes templates

More information

Overview. The Game Idea

Overview. The Game Idea Page 1 of 19 Overview Even though GameMaker:Studio is easy to use, getting the hang of it can be a bit difficult at first, especially if you have had no prior experience of programming. This tutorial is

More information

COMPASS NAVIGATOR PRO QUICK START GUIDE

COMPASS NAVIGATOR PRO QUICK START GUIDE COMPASS NAVIGATOR PRO QUICK START GUIDE Contents Introduction... 3 Quick Start... 3 Inspector Settings... 4 Compass Bar Settings... 5 POIs Settings... 6 Title and Text Settings... 6 Mini-Map Settings...

More information

"!" - Game Modding and Development Kit (A Work Nearly Done) '08-'10. Asset Browser

! - Game Modding and Development Kit (A Work Nearly Done) '08-'10. Asset Browser "!" - Game Modding and Development Kit (A Work Nearly Done) '08-'10 Asset Browser Zoom Image WoW inspired side-scrolling action RPG game modding and development environment Built in Flash using Adobe Air

More information

Official Documentation

Official Documentation Official Documentation Doc Version: 1.0.0 Toolkit Version: 1.0.0 Contents Technical Breakdown... 3 Assets... 4 Setup... 5 Tutorial... 6 Creating a Card Sets... 7 Adding Cards to your Set... 10 Adding your

More information

GAME:IT Junior Bouncing Ball

GAME:IT Junior Bouncing Ball GAME:IT Junior Bouncing Ball Objectives: Create Sprites Create Sounds Create Objects Create Room Program simple game All games need sprites (which are just pictures) that, in of themselves, do nothing.

More information

Introduction. Modding Kit Feature List

Introduction. Modding Kit Feature List Introduction Welcome to the Modding Guide of Might and Magic X - Legacy. This document provides you with an overview of several content creation tools and data formats. With this information and the resources

More information

SteamVR Unity Plugin Quickstart Guide

SteamVR Unity Plugin Quickstart Guide The SteamVR Unity plugin comes in three different versions depending on which version of Unity is used to download it. 1) v4 - For use with Unity version 4.x (tested going back to 4.6.8f1) 2) v5 - For

More information

The purpose of this document is to outline the structure and tools that come with FPS Control.

The purpose of this document is to outline the structure and tools that come with FPS Control. FPS Control beta 4.1 Reference Manual Purpose The purpose of this document is to outline the structure and tools that come with FPS Control. Required Software FPS Control Beta4 uses Unity 4. You can download

More information

Creating Bullets in Unity3D (vers. 4.2)

Creating Bullets in Unity3D (vers. 4.2) AD41700 Computer Games Prof. Fabian Winkler Fall 2013 Creating Bullets in Unity3D (vers. 4.2) I would like to preface this workshop with Celia Pearce s essay Beyond Shoot Your Friends (download from: http://www.gardensandmachines.com/ad41700/readings_f13/pearce2_pass.pdf)

More information

Installation Instructions

Installation Instructions Installation Instructions Important Notes: The latest version of Stencyl can be downloaded from: http://www.stencyl.com/download/ Available versions for Windows, Linux and Mac This guide is for Windows

More information

EVAC-CITY. Index. A starters guide to making a game like EVAC-CITY

EVAC-CITY. Index. A starters guide to making a game like EVAC-CITY EVAC-CITY A starters guide to making a game like EVAC-CITY Index Introduction...3 Programming - Character Movement...4 Programming - Character Animation...13 Programming - Enemy AI...18 Programming - Projectiles...22

More information

Scratch for Beginners Workbook

Scratch for Beginners Workbook for Beginners Workbook In this workshop you will be using a software called, a drag-anddrop style software you can use to build your own games. You can learn fundamental programming principles without

More information

For more information on how you can download and purchase Clickteam Fusion 2.5, check out the website

For more information on how you can download and purchase Clickteam Fusion 2.5, check out the website INTRODUCTION Clickteam Fusion 2.5 enables you to create multiple objects at any given time and allow Fusion to auto-link them as parent and child objects. This means once created, you can give a parent

More information

TATAKAI TACTICAL BATTLE FX FOR UNITY & UNITY PRO OFFICIAL DOCUMENTATION. latest update: 4/12/2013

TATAKAI TACTICAL BATTLE FX FOR UNITY & UNITY PRO OFFICIAL DOCUMENTATION. latest update: 4/12/2013 FOR UNITY & UNITY PRO OFFICIAL latest update: 4/12/2013 SPECIAL NOTICE : This documentation is still in the process of being written. If this document doesn t contain the information you need, please be

More information

Unity Certified Programmer

Unity Certified Programmer Unity Certified Programmer 1 unity3d.com The role Unity programming professionals focus on developing interactive applications using Unity. The Unity Programmer brings to life the vision for the application

More information

First Steps in Unity3D

First Steps in Unity3D First Steps in Unity3D The Carousel 1. Getting Started With Unity 1.1. Once Unity is open select File->Open Project. 1.2. In the Browser navigate to the location where you have the Project folder and load

More information

3D Top Down Shooter By Jonay Rosales González AKA Don Barks Gheist

3D Top Down Shooter By Jonay Rosales González AKA Don Barks Gheist 3D Top Down Shooter By Jonay Rosales González AKA Don Barks Gheist This new version of the top down shooter gamekit let you help to make very adictive top down shooters in 3D that have made popular with

More information

Your First Game: Devilishly Easy

Your First Game: Devilishly Easy C H A P T E R 2 Your First Game: Devilishly Easy Learning something new is always a little daunting at first, but things will start to become familiar in no time. In fact, by the end of this chapter, you

More information

G54GAM Lab Session 1

G54GAM Lab Session 1 G54GAM Lab Session 1 The aim of this session is to introduce the basic functionality of Game Maker and to create a very simple platform game (think Mario / Donkey Kong etc). This document will walk you

More information

1 Shooting Gallery Guide 2 SETUP. Unzip the ShootingGalleryFiles.zip file to a convenient location.

1 Shooting Gallery Guide 2 SETUP. Unzip the ShootingGalleryFiles.zip file to a convenient location. 1 Shooting Gallery Guide 2 SETUP Unzip the ShootingGalleryFiles.zip file to a convenient location. In the file explorer, go to the View tab and check File name extensions. This will show you the three

More information

CMSC 425: Lecture 3 Introduction to Unity

CMSC 425: Lecture 3 Introduction to Unity CMSC 425: Lecture 3 Introduction to Unity Reading: For further information about Unity, see the online documentation, which can be found at http://docs.unity3d.com/manual/. The material on Unity scripts

More information

Foreword Thank you for purchasing the Motion Controller!

Foreword Thank you for purchasing the Motion Controller! Foreword Thank you for purchasing the Motion Controller! I m an independent developer and your feedback and support really means a lot to me. Please don t ever hesitate to contact me if you have a question,

More information

Procedural Level Generation for a 2D Platformer

Procedural Level Generation for a 2D Platformer Procedural Level Generation for a 2D Platformer Brian Egana California Polytechnic State University, San Luis Obispo Computer Science Department June 2018 2018 Brian Egana 2 Introduction Procedural Content

More information

Shooting in Unity3D (continued)

Shooting in Unity3D (continued) AD41700 Computer Games Prof. Fabian Winkler Fall 2011 Shooting in Unity3D (continued) In this tutorial I would like to continue where we left off in the Shooting tutorial. Specifically I would like to

More information

15 TUBE CLEANER: A SIMPLE SHOOTING GAME

15 TUBE CLEANER: A SIMPLE SHOOTING GAME 15 TUBE CLEANER: A SIMPLE SHOOTING GAME Tube Cleaner was designed by Freid Lachnowicz. It is a simple shooter game that takes place in a tube. There are three kinds of enemies, and your goal is to collect

More information

COMPUTING CURRICULUM TOOLKIT

COMPUTING CURRICULUM TOOLKIT COMPUTING CURRICULUM TOOLKIT Pong Tutorial Beginners Guide to Fusion 2.5 Learn the basics of Logic and Loops Use Graphics Library to add existing Objects to a game Add Scores and Lives to a game Use Collisions

More information

Beginning 3D Game Development with Unity:

Beginning 3D Game Development with Unity: Beginning 3D Game Development with Unity: The World's Most Widely Used Multi-platform Game Engine Sue Blackman Apress* Contents About the Author About the Technical Reviewer Acknowledgments Introduction

More information

Tutorial: A scrolling shooter

Tutorial: A scrolling shooter Tutorial: A scrolling shooter Copyright 2003-2004, Mark Overmars Last changed: September 2, 2004 Uses: version 6.0, advanced mode Level: Beginner Scrolling shooters are a very popular type of arcade action

More information

2D Platform. Table of Contents

2D Platform. Table of Contents 2D Platform Table of Contents 1. Making the Main Character 2. Making the Main Character Move 3. Making a Platform 4. Making a Room 5. Making the Main Character Jump 6. Making a Chaser 7. Setting Lives

More information

Easy Input Helper Documentation

Easy Input Helper Documentation Easy Input Helper Documentation Introduction Easy Input Helper makes supporting input for the new Apple TV a breeze. Whether you want support for the siri remote or mfi controllers, everything that is

More information

By Chris Burton. User Manual v1.60.5

By Chris Burton. User Manual v1.60.5 By Chris Burton User Manual v1.60.5 Table of Contents Introduction 7 Chapter I: The Basics 1. 9 Setting up 10 1.1. Installation 1.2. Running the demo games 1.3. The Game Editor window 1.3.1. The New Game

More information

In this project, you will create a memory game where you have to memorise and repeat a sequence of random colours!

In this project, you will create a memory game where you have to memorise and repeat a sequence of random colours! Memory Introduction In this project, you will create a memory game where you have to memorise and repeat a sequence of random colours! Step 1: Random colours First, let s create a character that can change

More information

Speechbubble Manager Introduction Instructions Adding Speechbubble Manager to your game Settings...

Speechbubble Manager Introduction Instructions Adding Speechbubble Manager to your game Settings... Table of Contents Speechbubble Manager Introduction... 2 Instructions... 2 Adding Speechbubble Manager to your game... 2 Settings... 3 Creating new types of speech bubbles... 4 Creating 9-sliced speech

More information

No Evidence. What am I Testing? Expected Outcomes Testing Method Actual Outcome Action Required

No Evidence. What am I Testing? Expected Outcomes Testing Method Actual Outcome Action Required No Evidence What am I Testing? Expected Outcomes Testing Method Actual Outcome Action Required If a game win is triggered if the player wins. If the ship noise triggered when the player loses. If the sound

More information

AIM OF THE GAME GLACIER RACE. Glacier Race. Ben Gems: 20. Laura Gems: 13

AIM OF THE GAME GLACIER RACE. Glacier Race. Ben Gems: 20. Laura Gems: 13 Glacier Race 166 GLACIER RACE How to build Glacier Race Glacier Race is a two-player game in which you race up the screen, swerving around obstacles and collecting gems as you go. There s no finish line

More information

INTRODUCTION TO GAME AI

INTRODUCTION TO GAME AI CS 387: GAME AI INTRODUCTION TO GAME AI 3/31/2016 Instructor: Santiago Ontañón santi@cs.drexel.edu Class website: https://www.cs.drexel.edu/~santi/teaching/2016/cs387/intro.html Outline Game Engines Perception

More information

Meteor Game for Multimedia Fusion 1.5

Meteor Game for Multimedia Fusion 1.5 Meteor Game for Multimedia Fusion 1.5 Badly written by Jeff Vance jvance@clickteam.com For Multimedia Fusion 1.5 demo version Based off the class How to make video games. I taught at University Park Community

More information

BE SURE TO COMPLETE HYPOTHESIS STATEMENTS FOR EACH STAGE. ( ) DO NOT USE THE TEST BUTTON IN THIS ACTIVITY UNTIL THE END!

BE SURE TO COMPLETE HYPOTHESIS STATEMENTS FOR EACH STAGE. ( ) DO NOT USE THE TEST BUTTON IN THIS ACTIVITY UNTIL THE END! Lazarus: Stages 3 & 4 In the world that we live in, we are a subject to the laws of physics. The law of gravity brings objects down to earth. Actions have equal and opposite reactions. Some objects have

More information

Making Your World with the Aurora Toolset

Making Your World with the Aurora Toolset Making Your World with the Aurora Toolset The goal of this tutorial is to build a very simple module to ensure that you've picked up the necessary skills for the other tutorials. After completing this

More information

Sword & Shield Motion Pack 11/28/2017

Sword & Shield Motion Pack 11/28/2017 The Sword and Shield Motion pack requires the following: Motion Controller v2.6 or higher Mixamo s free Pro Sword and Shield Pack (using Y Bot) Importing and running without these assets will generate

More information

Gaia is a system that enables rapid and precise creation of gorgeous looking Unity terrains. Version March 2016 GAIA. By Procedural Worlds

Gaia is a system that enables rapid and precise creation of gorgeous looking Unity terrains. Version March 2016 GAIA. By Procedural Worlds Gaia is a system that enables rapid and precise creation of gorgeous looking Unity terrains. Version 1.5.3 March 2016 GAIA By Procedural Worlds Quick Start 1. Create a new project and import Gaia. 2. Unity

More information

Once this function is called, it repeatedly does several things over and over, several times per second:

Once this function is called, it repeatedly does several things over and over, several times per second: Alien Invasion Oh no! Alien pixel spaceships are descending on the Minecraft world! You'll have to pilot a pixel spaceship of your own and fire pixel bullets to stop them! In this project, you will recreate

More information

The Beauty and Joy of Computing Lab Exercise 10: Shall we play a game? Objectives. Background (Pre-Lab Reading)

The Beauty and Joy of Computing Lab Exercise 10: Shall we play a game? Objectives. Background (Pre-Lab Reading) The Beauty and Joy of Computing Lab Exercise 10: Shall we play a game? [Note: This lab isn t as complete as the others we have done in this class. There are no self-assessment questions and no post-lab

More information

Memory. Introduction. Scratch. In this project, you will create a memory game where you have to memorise and repeat a sequence of random colours!

Memory. Introduction. Scratch. In this project, you will create a memory game where you have to memorise and repeat a sequence of random colours! Scratch 2 Memory All Code Clubs must be registered. Registered clubs appear on the map at codeclubworld.org - if your club is not on the map then visit jumpto.cc/ccwreg to register your club. Introduction

More information

The Games Factory 2 Step-by-step Tutorial

The Games Factory 2 Step-by-step Tutorial Page 1 of 39 The Games Factory 2 Step-by-step Tutorial Welcome to the step-by-step tutorial! Follow this tutorial, and in less than one hour, you will have created a complete game from scratch. This game

More information

Section 39: BobmerMan How-To

Section 39: BobmerMan How-To Section 39: BobmerMan How-To 1. Getting Started 1. Download, unzip, and open the Starter files 2. Test it out 2. Dropping Bombs 1. Edit the script file Player.cs 1. Edit the method DropBomb(), inside the

More information

Kismet Interface Overview

Kismet Interface Overview The following tutorial will cover an in depth overview of the benefits, features, and functionality within Unreal s node based scripting editor, Kismet. This document will cover an interface overview;

More information

Programming Project 2

Programming Project 2 Programming Project 2 Design Due: 30 April, in class Program Due: 9 May, 4pm (late days cannot be used on either part) Handout 13 CSCI 134: Spring, 2008 23 April Space Invaders Space Invaders has a long

More information

If you have any questions or feedback regarding the game, please do not hesitate to contact us through

If you have any questions or feedback regarding the game, please do not hesitate to contact us through 1 CONTACT If you have any questions or feedback regarding the game, please do not hesitate to contact us through info@fermis-path.com MAIN MENU The main menu is your first peek into the world of Fermi's

More information

More Actions: A Galaxy of Possibilities

More Actions: A Galaxy of Possibilities CHAPTER 3 More Actions: A Galaxy of Possibilities We hope you enjoyed making Evil Clutches and that it gave you a sense of how easy Game Maker is to use. However, you can achieve so much with a bit more

More information

Spell Casting Motion Pack 8/23/2017

Spell Casting Motion Pack 8/23/2017 The Spell Casting Motion pack requires the following: Motion Controller v2.50 or higher Mixamo s free Pro Magic Pack (using Y Bot) Importing and running without these assets will generate errors! Why can

More information

Chapter 1:Object Interaction with Blueprints. Creating a project and the first level

Chapter 1:Object Interaction with Blueprints. Creating a project and the first level Chapter 1:Object Interaction with Blueprints Creating a project and the first level Setting a template for a new project Making sense of the project settings Creating the project 2 Adding objects to our

More information

True bullet 1.03 manual

True bullet 1.03 manual Introduction True bullet 1.03 manual The True bullet asset is a complete game, comprising a gun with very realistic bullet ballistics. The gun is meant to be used as a separate asset in any game that benefits

More information

Tutorial: Creating maze games

Tutorial: Creating maze games Tutorial: Creating maze games Copyright 2003, Mark Overmars Last changed: March 22, 2003 (finished) Uses: version 5.0, advanced mode Level: Beginner Even though Game Maker is really simple to use and creating

More information

Easy Input For Gear VR Documentation. Table of Contents

Easy Input For Gear VR Documentation. Table of Contents Easy Input For Gear VR Documentation Table of Contents Setup Prerequisites Fresh Scene from Scratch In Editor Keyboard/Mouse Mappings Using Model from Oculus SDK Components Easy Input Helper Pointers Standard

More information

Game Design Curriculum Multimedia Fusion 2. Created by Rahul Khurana. Copyright, VisionTech Camps & Classes

Game Design Curriculum Multimedia Fusion 2. Created by Rahul Khurana. Copyright, VisionTech Camps & Classes Game Design Curriculum Multimedia Fusion 2 Before starting the class, introduce the class rules (general behavioral etiquette). Remind students to be careful about walking around the classroom as there

More information

Crowd-steering behaviors Using the Fame Crowd Simulation API to manage crowds Exploring ANT-Op to create more goal-directed crowds

Crowd-steering behaviors Using the Fame Crowd Simulation API to manage crowds Exploring ANT-Op to create more goal-directed crowds In this chapter, you will learn how to build large crowds into your game. Instead of having the crowd members wander freely, like we did in the previous chapter, we will control the crowds better by giving

More information

In this project you ll learn how to create a times table quiz, in which you have to get as many answers correct as you can in 30 seconds.

In this project you ll learn how to create a times table quiz, in which you have to get as many answers correct as you can in 30 seconds. Brain Game Introduction In this project you ll learn how to create a times table quiz, in which you have to get as many answers correct as you can in 30 seconds. Step 1: Creating questions Let s start

More information

Annex IV - Stencyl Tutorial

Annex IV - Stencyl Tutorial Annex IV - Stencyl Tutorial This short, hands-on tutorial will walk you through the steps needed to create a simple platformer using premade content, so that you can become familiar with the main parts

More information

Battlefield Academy Template 1 Guide

Battlefield Academy Template 1 Guide Battlefield Academy Template 1 Guide This guide explains how to use the Slith_Template campaign to easily create your own campaigns with some preset AI logic. Template Features Preset AI team behavior

More information

How to Blog to the Vanguard Website

How to Blog to the Vanguard Website How to Blog to the Vanguard Website Guidance and Rules for Blogging on the Vanguard Website Version 1.01 March 2018 Step 1. Get an account The bristol vanguard website, like much of the internet these

More information

Lesson 2 Game Basics

Lesson 2 Game Basics Lesson What you will learn: how to edit the stage using the Paint Editor facility within Scratch how to make the sprite react to different colours how to import a new sprite from the ones available within

More information

Nighork Adventures: Beyond the Moons of Shadalee

Nighork Adventures: Beyond the Moons of Shadalee Manual Nighork Adventures: Beyond the Moons of Shadalee by Warptear Entertainment Copyright in 2011-2016 by Warptear Entertainment. Contents 1 Launcher 3 1.0.1 Resolution.................................

More information

Game Maker Tutorial Creating Maze Games Written by Mark Overmars

Game Maker Tutorial Creating Maze Games Written by Mark Overmars Game Maker Tutorial Creating Maze Games Written by Mark Overmars Copyright 2007 YoYo Games Ltd Last changed: February 21, 2007 Uses: Game Maker7.0, Lite or Pro Edition, Advanced Mode Level: Beginner Maze

More information

Macquarie University Introductory Unity3D Workshop

Macquarie University Introductory Unity3D Workshop Overview Macquarie University Introductory Unity3D Workshop Unity3D - is a commercial game development environment used by many studios who publish on iphone, Android, PC/Mac and the consoles (i.e. Wii,

More information

Table of Contents. Creating Your First Project 4. Enhancing Your Slides 8. Adding Interactivity 12. Recording a Software Simulation 19

Table of Contents. Creating Your First Project 4. Enhancing Your Slides 8. Adding Interactivity 12. Recording a Software Simulation 19 Table of Contents Creating Your First Project 4 Enhancing Your Slides 8 Adding Interactivity 12 Recording a Software Simulation 19 Inserting a Quiz 24 Publishing Your Course 32 More Great Features to Learn

More information

A. creating clones. Skills Training 5

A. creating clones. Skills Training 5 A. creating clones 1. clone Bubbles In many projects you see multiple copies of a single sprite: bubbles in a fish tank, clouds of smoke, rockets, bullets, flocks of birds or of sheep, players on a soccer

More information

In this project we ll make our own version of the highly popular mobile game Flappy Bird. This project requires Scratch 2.0.

In this project we ll make our own version of the highly popular mobile game Flappy Bird. This project requires Scratch 2.0. Flappy Parrot Introduction In this project we ll make our own version of the highly popular mobile game Flappy Bird. This project requires Scratch 2.0. Press the space bar to flap and try to navigate through

More information

Step 1 - Setting Up the Scene

Step 1 - Setting Up the Scene Step 1 - Setting Up the Scene Step 2 - Adding Action to the Ball Step 3 - Set up the Pool Table Walls Step 4 - Making all the NumBalls Step 5 - Create Cue Bal l Step 1 - Setting Up the Scene 1. Create

More information

Words Mobile Ready Game Documentation

Words Mobile Ready Game Documentation Words Mobile Ready Game Documentation Joongly games 2016 Words Mobile Ready Game Contents Overview... 3 Quick Start... 3 Game rules... 4 Basics... 4 Board... 4 Tiles... 4 Extra Point Values... 4 Game start...

More information

Beginning ios 3D Unreal

Beginning ios 3D Unreal Beginning ios 3D Unreal Games Development ' Robert Chin/ Apress* Contents Contents at a Glance About the Author About the Technical Reviewers Acknowledgments Introduction iii ix x xi xii Chapter 1: UDK

More information

This guide provides information on installing, signing, and sending documents for signature with

This guide provides information on installing, signing, and sending documents for signature with Quick Start Guide DocuSign for Dynamics 365 CRM 5.2 Published: June 15, 2017 Overview This guide provides information on installing, signing, and sending documents for signature with DocuSign for Dynamics

More information

How to Make Smog Cloud Madness in GameSalad

How to Make Smog Cloud Madness in GameSalad How to Make Smog Cloud Madness in GameSalad by J. Matthew Griffis Note: this is an Intermediate level tutorial. It is recommended, though not required, to read the separate PDF GameSalad Basics and go

More information

TABLE OF CONTENTS. Logging into the Website Homepage and Tab Navigation Setting up Users on the Website Help and Support...

TABLE OF CONTENTS. Logging into the Website Homepage and Tab Navigation Setting up Users on the Website Help and Support... TABLE OF CONTENTS Logging into the Website...02 Homepage and Tab Navigation...03 Setting up Users on the Website...08 Help and Support...10 Uploding and Managing Photos...12 Using the Yearbook Ladder...16

More information

Inspiring Creative Fun Ysbrydoledig Creadigol Hwyl. Kinect2Scratch Workbook

Inspiring Creative Fun Ysbrydoledig Creadigol Hwyl. Kinect2Scratch Workbook Inspiring Creative Fun Ysbrydoledig Creadigol Hwyl Workbook Scratch is a drag and drop programming environment created by MIT. It contains colour coordinated code blocks that allow a user to build up instructions

More information

Ghostbusters. Level. Introduction:

Ghostbusters. Level. Introduction: Introduction: This project is like the game Whack-a-Mole. You get points for hitting the ghosts that appear on the screen. The aim is to get as many points as possible in 30 seconds! Save Your Project

More information

How to Make Games in MakeCode Arcade Created by Isaac Wellish. Last updated on :10:15 PM UTC

How to Make Games in MakeCode Arcade Created by Isaac Wellish. Last updated on :10:15 PM UTC How to Make Games in MakeCode Arcade Created by Isaac Wellish Last updated on 2019-04-04 07:10:15 PM UTC Overview Get your joysticks ready, we're throwing an arcade party with games designed by you & me!

More information

Part II: Number Guessing Game Part 2. Lab Guessing Game version 2.0

Part II: Number Guessing Game Part 2. Lab Guessing Game version 2.0 Part II: Number Guessing Game Part 2 Lab Guessing Game version 2.0 The Number Guessing Game that just created had you utilize IF statements and random number generators. This week, you will expand upon

More information

Creating a light studio

Creating a light studio Creating a light studio Chapter 5, Let there be Lights, has tried to show how the different light objects you create in Cinema 4D should be based on lighting setups and techniques that are used in real-world

More information

Game Design Comp 150GD. Michael Shah 3/6/15

Game Design Comp 150GD. Michael Shah 3/6/15 Game Design Comp 150GD Michael Shah 3/6/15 Topics 1. Digital Game Testing 2. C# Scripting Tips 3. GUI 4. Music Room Part 1 - Digital Game Testing PLAYTEST ROUND #3 (20 minutes): 1. Observers stay to manage

More information

Pro Photo Photography Studio By Abranimations INSTRUCTION MANUAL

Pro Photo Photography Studio By Abranimations INSTRUCTION MANUAL Pro Photo Photography Studio By Abranimations INSTRUCTION MANUAL INTRODUCTION The ProPhoto Studio by Abranimations is a full set of professional SL photography equipment. This studio is unlike any other

More information

GameSalad Creator (Windows Version ) Written by Jack Reed Layout by Anne Austin

GameSalad Creator (Windows Version ) Written by Jack Reed Layout by Anne Austin GameSalad Creator (Windows Version 0.9.92) Written by Jack Reed Layout by Anne Austin Table of Contents Windows Creator Walkthrough 3 Getting Started 3 System Requirements 3 Intro 3 First Look 3 The Library

More information

How to Build a LimeSurvey: The Basics for Beginners

How to Build a LimeSurvey: The Basics for Beginners 1 How to Build a LimeSurvey: The Basics for Beginners Login and view a list of your surveys. We will give you 3 templates to start with. These are the ethics compliant templates you need to protect participant

More information

Z-Town Design Document

Z-Town Design Document Z-Town Design Document Development Team: Cameron Jett: Content Designer Ryan Southard: Systems Designer Drew Switzer:Content Designer Ben Trivett: World Designer 1 Table of Contents Introduction / Overview...3

More information