Posts

Showing posts from February, 2019

Tower Defense Tutorial - Brackeys - Ep. 21

February 28, 2019 Tower Defense Tutorial Episode 21 – Pause Menu Youtube - How to make a Tower Defense Game (E21 PAUSE MENU) - Unity Tutorial By: Brackeys Ep. 21 This tutorial focused on creating the Pause Menu. To start, we create another UI Panel as the base for the pause menu, and added buttons for: Continue, Retry and Menu. This also had text saying “Paused”. We created a new script on our Game Manager, PauseMenu. This would deal with the functionality of activating/deactivating our pause menu UI elements. This was done with a method called Toggle, which used a command of ui.SetActive(!ui.activeSelf) which would set whether it was enabled or not to the opposite of what it currently is. We then got to actually pausing the game. This can be done by simply setting Time.timeScale = 0f. It is commonly mistaken that you also need to set Time.fixedDeltaTime to 0 as well, but this is actually taken care of by Time.timeScale already. We also need to unpause, so we set Time.timeSc...

Particle Systems and the VFX Graph in Unity

February 27, 2019 Particle Systems in Unity 2018 and Later Particle Systems and New VFX Graphs I originally intended to look up new tutorials for particle systems in Unity to get a better grasp of the differences in the newest version of the Particle System editor. This was because a lot of older tutorials had the old setup so some of the differences made it hard to follow. While I did find one newer particle system tutorial using the editor, I stumbled upon the Visual Effects graph which appears to be a node/graph based editor for creating VFX new to the latest version of Unity, so I gathered a lot of tutorials for that. Several of them are from Brackeys as well, which is someone I follow often for basic Unity tutorials. Youtube - Everything to know about the PARTICLE SYSTEM By: Brackeys This is the video just going over a lot of the basics of the Particle System editor. Since this was only about a year old I hoped it would cover some of the weird differences I run into, like ...

Game VFX - Basic Fireball Projectile

STANDARD February 26, 2019 Fireball FX in Unity Unity 5 - Game Effects VFX - Fireball Spell / Projectile Gabriel Aguiar Prod. They start by creating a basic fireball shape in Photoshop. They used the brush presets to get a nice, fuzzy and flowy effect for drawing this. I went with Round Watercolor since that seemed pretty close to what they used. They also turn the opacity down to allow for increased color on the overlapped sections. In Photoshop I had something selected on a layer still so when I tried to draw it would only draw in that selection, so that took some time to figure out that issue. They like to use white and just color in Unity. I also used some black to hedge out some of the white values, but not sure if that will create issues in Unity later. We started creating the Particle System in Unity. We begin by creating a new material that they suggest changing the shader to Particles/Additive, which is a legacy shader now. I tried Particles/Standard Surface, and set...

Tower Defense Tutorial - Brackeys - Ep. 20

February 24, 2019 Tower Defense Tutorial Episode 20 – Sell Youtube - How to make a Tower Defense Game (E20 SELL) - Unity Tutorial By: Brackeys Ep. 20 This tutorial focuses on implementing the “sell” functionality to go along with the sell UI button we have. We are also going to setup an upgraded version of the missile launcher and the laser beamer turret. The upgraded versions of the missile launcher and laser beamer turret were just upscaled versions with some buffed stats and different material colors. These were set in the Shop TurretBluePrint editor sections as well. For the selling function, we wanted to add that to our Node script. However, since we just wanted to code something standard to create the sell value of a turret, we ended up going to the TurretBluePrint to create this calculated sell value. This was done because we can now just reference the TurretBluePrint class anytime we want the sell amount, and if we ever want to change how that is calculated, we can ju...

Tower Defense Tutorial - Brackeys - Ep. 19

February 23, 2019 Tower Defense Tutorial Episode 19 – Upgrade Youtube - How to make a Tower Defense Game (E19 UPGRADE) - Unity Tutorial By: Brackeys Ep. 19 This tutorial goes over upgrading our turrets after selecting them. We started by moving the BuildTurretOn method from the BuildManager script to the Node script, and renamed it BuildTurret (since it will be obvious it is “on” that node now anyway). This was done because BuildTurretOn was making a lot of references to the Node script anyway, so it made more sense to just handle everything locally to reduce the number of references needed. Next we created the UpgradeTurret method. This was mostly a copy/paste of our BuildTurret method, with a few tweaks (having a separate cost, possibly a separate effect). The biggest difference was that we couldn’t just instantiate the upgraded turret since we already have one there; we need to remove the initial turret first. We created a new prefab for the upgraded version of our standa...

Unity FX - Gabriel Aguiar Prod Channel

February 20th, 2019 Unity Game Effects Game Effects from Youtube Channel – Gabriel Aguiar Prod. Youtube - Unity 5 - Game Effects VFX - Fireball Spell / Projectile Basic Unity FX tutorial for creating a fireball effect. Youtube – Channel – Gabriel Aguiar Prod. Youtube Channel This seems like a promising Youtube channel to learn about creating FX for games, especially in Unity.

Unity Mistakes to Avoid

STANDARD February 19th, 2019 Unity 3D Mistakes to Avoid Unity3D Mistakes I wish I'd known to avoid Unity3d College This just seemed like a potentially useful video to go back to.

Halo Multiplayer Map Analysis

Image
February 19, 2019 Halo Maps Multiplayer Map Study and Design We are designing a Halo map for our Architecture Inspired Level Design class, so I did some analysis of certain parts of several of my favorite maps from the franchise as possible portions to take inspiration from to develop the map. Map Sketch Thoughts Construct Top level Good foundation for the top level of our map Plenty of large hallways which can either have barriers or not to provide/remove sight lines through center Lots of opportunities to add stairs around Can have them protected/not protected Aesthetically Poking out portions could provide sight of large architectural landmarks Can easily be put around/near large landmarks Guardian Look at this map for interesting transitions from upper to lower floor Each outer section of this map has a different way of moving between floors North Natural and manmade ramps Gap between natural part and center West Up and down lift or holes on sides ...

Tower Defense Tutorial - Brackeys - Ep. 18

February 18, 2019 Tower Defense Tutorial Episode 18 – Selection Youtube - How to make a Tower Defense Game (E18 SELECTION) - Unity Tutorial By: Brackeys Ep. 18 This tutorial focuses on creating “Selection” functionality, allowing the player to select a turret. We started by adding World Space UI to an example turret prefab. This will provide us with “sell” and “upgrade” functions later. For now, we just need to set these things up so they will appear when a turret is selected. This involved more use of the Horizontal Layout Group component on UI objects, which consistently do not give me the same result as the tutorial, so I’ll need to look into those. After setting up the UI, we got into the script for implementing the UI. We started by cleaning up the build manager so that the game doesn’t get cluttered in the situation where it tries to build turrets but also selects a turret on a node. We simply added a “SelectNode” method to the Buildmanager that sets a node variable to ...

Tower Defense Tutorial - Brackeys - Ep. 17

February 17, 2019 Tower Defense Tutorial Episode 17 – Game Over Youtube - How to make a Tower Defense Game (E17 GAME OVER) - Unity Tutorial By: Brackeys Ep. 17 This tutorial deals with creating the Game Over screen as a series of UI elements. We started by adding a gameObject to our OveralyCanvas titled GameOver. This gameobject will hold all of the UI elements dealing with the game over state: new panel, text objects, and buttons for retry and menu. We changed the OverlayCanvas scaling to “Scale with Screen Size” and used the slider to dictate that it would go by the height of the screen to scale our overlay UI canvas. For scripting the game over scenario, we decided to expose the gameEnded bool variable to make it easier for everything to know when the game was over. This is useful for basic things such as disabling game inputs on the game over screen. We exposed it by making it a public static bool (and also renaming it to GameIsOver). Making GameIsOver a public static v...

Tower Defense Tutorial - Brackeys - Ep. 16

February 16, 2019 Tower Defense Tutorial Episode 16 – Slowing Youtube - How to make a Tower Defense Game (E16 SLOWING) - Unity Tutorial By: Brackeys Ep. 16 This tutorial will clean up some of the Turret coding, as well as add a slowing effect to the Laser Beamer turret, as well as damage over time (DoT). We added this line of code to apply the damage over time to enemies: targetEnemy.TakeDamage(damageOverTime * Time.deltaTime); This initially held the GetComponent () call to get the Enemy script component of the target, but this would be very expensive to do every frame. To remedy this, we created the targetEnemy variable which is assigned the GetComponent () value when we select a new target, so it only needs done once each time the laser starts hitting a target. To clean up our Enemy script coding, we separated it out into two scripts: Enemy and Enemy Movement. Brackeys suggests it is a good practice to keep all of your enemy’s stats or values that you want to change abo...

Tower Defense Tutorial - Brackeys - Ep. 15

February 15, 2019 Tower Defense Tutorial Episode 15 – Laser Beamer Youtube - How to make a Tower Defense Game (E15 LASER EFFECTS) - Unity Tutorial By: Brackeys Ep. 15 This tutorial will focus on creating extra effects for our laser. We’re adding a LaserImpact particle system, starting as a duplicate of the BulletImpact particles. We started by making it a new material, LaserImpact material, and making this green with some emission. As many other particle effect parameters, this is setup differently in newer versions of unity. The intensity is in the color selector palette after turning on “Emission” for the material. Since we have so many particle systems now, we’re narrowing down what they collide with. We put all the nodes and ground planes on an “Environment” layer and made sure the particle system only collided with that. Instead of making this particle effect its own prefab like the others, we attached it as a child to the Laser Beamer object. This would then just be an ...

More Thesis Physics Game Concepts

February 14, 2019 Thesis Physics Game Concepts Prototypes Angular Speed and Momentum So far this prototype has a simple concept where the angular speed is kept constant, but the player can move the center point to change the center of rotation as well as the radius of rotation. This altering of the radius lets the player influence the local velocity of the object significantly. They can also change the direction of rotation. Left Mouse Click: moves center of rotation Space: changes direction of rotation Magnetic Force with Rail Gun This is a very basic replication of how a rail gun works with currents creating magnetic forces through the Lorentz Force. The player can alter the amount of current in the rails, as well as the rail length to change the distance the projectile is fired. Q, W: Raise, Lower current in rails E, R: Increase, Reduce length of rails Space: Fires projectile P: Resets game Coulomb’s Law This concept emulates the basic Coulomb’s Law, produci...

Tower Defense Tutorial - Brackeys - Ep. 14

February 13, 2019 Tower Defense Tutorial Episode 14 – Laser Beamer Youtube - How to make a Tower Defense Game (E14 LASER BEAMER) - Unity Tutorial By: Brackeys Ep. 14 This tutorial creates the Laser Beamer, yes beamer, object prefab. Something I’ve done when importing these to make it more similar to the tutorial, under the Materials tab for this imported model, I use “Extract Materials” to make sure all of the materials become easily available to alter and move around in the Unity editor. Before making it into a prefab, we did the same steps we did with the other turrets: add partToRotate empty object, add firePoint empty object, child turret head and firepoint to partToRotate empty so they rotate properly/easily with a forward facing z-axis object. Everything else was also updated similarly to the other turrets. We added another TurretBluePrint public class to the Shop script so we can inform it of the new prefab to use for the LaserBeamer and its cost. We then added the Lase...

Particle Effects Differences in Unity Versions

February 13 2019 Particle Effects: from Tower Defense Tutorial Particle Effects: from Episode 13 – Lives Youtube - How to make a Tower Defense Game (E13 LIVES) - Unity Tutorial By: Brackeys I just wanted to separate out the particle effects section of my blog on this tutorial to make it easier to reference since it might be a helpful reference to help me use older tutorials in the new Unity editor versions. You can see some of these mentioned at the end of the attached tutorial video. Context, same paragraph as other blog post: Finally, we created another particle effect for the death of the enemy objects. This was another simple one copied from our bullet impact effect, we just varied the values a bit and changed the material to that of the enemy to look like the enemy is breaking apart. I also noted some differences in the particle editor over the large difference in Unity versions. Standard(Top Option) – no longer has “Randomize Rotation Direction”, so I just changed Start...

Tower Defense Tutorial - Brackeys - Ep. 13

February 13, 2019 Tower Defense Tutorial Episode 13 – Lives Youtube - How to make a Tower Defense Game (E13 LIVES) - Unity Tutorial By: Brackeys Ep. 13 We started by adding another public int, Lives, to the playerstats script. We then copied the bottom in-game canvas and pasted it to the top to hold our lives UI text element. This tutorial involves a lot of references between different scripts. They suggest that if you’re making a larger game with a lot of moving components that you want to optimize, make calls to methods within the other scripts that do the changes locally, as opposed to directly altering the variables from the other script. In this tutorial, they end up just having everything go through the GameManager and having it handle everything locally. We created a GameManager script for the gameManager object. The first thing we have this doing is handling the game over situation. It checks if lives We then looked at the enemy script to start fleshing out its funct...

Tower Defense Tutorial - Brackeys - Ep. 12

February 12 2019 Tower Defense Tutorial Episode 12 – User Interface Youtube - How to make a Tower Defense Game (E12 USER INTERFACE) - Unity Tutorial By: Brackeys Ep. 12 We created another bool property in BuildManager called HasMoney, which checks if the playerstats has enough money to build what the player is trying to build. This was then used as a check to determine what color a node should be when the player hovers over it. Next we moved on to creating UI. We moved the timer and money into a canvas in world space, below the main play area. There are weird interactions between UI element scaling and font size. They multiply together so you can get the same size by raising one and lowering the other, but even though the give the same multiplicative size, the resolution can be different. We updated the wave spawner timer. We added a clamp to it so it never goes below 0. We also edited the formatting of the countdown timer text so that it showed 2 digits before the decimal p...

Audio Mixing Effects - Subtractive Synthesis and Phase Shifts

February 11, 2019 Reaper – Making Music Audio Terms Roland Blog - Guide To Subtractive Synthesis This blog post has a very quick, basic description of a lot of subtractive audio creation methods. This covers waveforms: sine, sawtooth, square, and triangle; amplifiers with volume envelopes; and filters. Making Music – Difference Between Phase, Flanger, and Chorus Effects As the title describes, this covers the 3 effects: phase shifters, flangers, and chorus effects. They all deal with making duplicates of sounds but slightly offsetting them to create different effects. Izotope - Understanding Chorus, Flangers, and Phasers in Audio Production This is just more descriptive takes on the duplicating/phase shifting type effects. They also include examples where these effects are used in actual songs, as well as a lot of images to visualize how they work.

Reaper: Envelopes and Automation

February 8, 2019 Learning Reaper Automation and Envelopes Reaper – Envelopes and Automation Continuing my learning with Reaper, I went through this tutorial to learn a bit about the envelopes and automation. These two things together basically allow you to vary the parameters of parts of the track at any time in anyway you want. Each track has a “share” looking button that allows you to access the envelopes for that track. Here you can see all of the parameters available have options to create envelopes to automate, as well as any of the FX tied to this track. Making them visible shows them (either on a separate track or on the same track, which can be swapped). Arming them dictates which ones will be written over if you decide to write new automation. There are also several automation modes: Trim/Read: Plays automation with some editing capabilities Read: just plays automation Touch: records actions while doing something, then stops applying whatever you’re doing immediately...

Game Architecture with Scriptable Objects Talks

February 7, 2019 Talks on Scriptable Objects Unite Talks - 2017 Youtube - Unite Austin 2017 - Game Architecture with Scriptable Objects By: Ryan Hipple Youtube - Unite '17 Seoul - ScriptableObjects What they are and why to use them By: Ian Dundore Unite talks on using scriptable objects for your game architecture. This just seems like a good things to learn about to keep your game creation/coding organized and easy to work with. Scriptable objects are something I need to learn more about in general.

Thesis Game Concept - Buoyancy

February 6, 2019 Buoyancy Game Concept Thesis Physics Game Concept This concept focuses on creating a physics-based game with a lot of variable parameters using buoyancy to guide the main mechanics. The first focus is just setting up a script that handles adding buoyancy force to an object. This script was named BuoyancyApplicator. It has a section of variables dedicated to determining the buoyancy force (all the variables in the basic buoyancy force equation), a section dedicated to different geometry dimensions (to determine volume for the previous equation), and then other Unity specific variables (such as RigidBody component). The standard buoyancy force equation used is: (buoyancy force) = ((liquid density) * (acceleration due to gravity) * (volume of displaced liquid)) All of these are variables we can alter to provide a different experience, but for the simplest version in a given scenario, we can keep gravity constant, the volume displaced will be a constant (from the sh...

Grayboxing Levels in Unreal

February 5, 2019 Grayboxing in Unreal Engine Basics of BSP Wiki Unreal Engine - Basic Level Design BSP I've started to learn the basics of the Unreal Engine (UE4), primarily with respect to it's BSP (Binary Space Partitioning) and grayboxing levels. It's the engine of choice for our Architectural Approaches to Level Design class specifically for this purpose. Brushes Unreal provides a base of shapes to work with that are perfect for setting up the overall shape and scale of a level or world in 3D. There are boxes, cones, stairs (linear, curved, and spiral), cylinders, and spheres. These shapes however also have various parameters associated with them that really help you mold out your world. The objects can have their sizes changed without strange scaling effects that need to be accounted for. The stairs have parameters for stair size and shape. One particularly useful feature is that these shape brushes can be either additive or subtractive. Additive does what you ...

Tower Defense Tutorial - Brackeys - Ep. 11

February 4, 2019 Tower Defense Tutorial Episode 11 – Currency Youtube - How to make a Tower Defense Game (E11 CURRENCY) - Unity Tutorial By: Brackeys Ep. 11 This episode gets into setting up the currency system for the game. We started by creating the TurretBluePrint script. This was set as System.Serializable, which lets us see the fields of the script in the editor. We also removed the MonoBehaviour reference (very important, I initially missed this and it was not showing up in the editor properly). We then went back through previous scripts (such as BuildManager and Node) and applied this new TurretBluePrint class where it made sense. We finally moved the method that actually builds the turrets from the Node script into the BuildManager script. This started by creating a bool property CanBuild in the BuildManager. As a property, we only allow it to “get” something (it only has the get part of get/set). So it was: Public bool CanBuild {get {return turretToBuild != null}} Si...

Tower Defense Tutorial - Brackeys - Ep. 10

February 3, 2019 Tower Defense Tutorial Episode 10 – Missile Youtube - How to make a Tower Defense Game (E10 MISSILES) - Unity Tutorial By: Brackeys Ep. 10 This tutorial focused on the missile prefabs for the missile launcher object. There was a heavy focus on effects and visuals, but there were still some additional gameplay elements added to the Bullet scripts of the missiles specifically. For the interesting gameplay of the missiles, a Physics.OverlapSphere was added so they could find other nearby gameObjects within a determined explosionRadius and damage those objects as well. This OverlapSphere puts all the colliders it finds into an array, which is then dealt with by a foreach loop. We created a new particle effect for the missile. I still don’t quite understand the new nested prefab QoL changes in Unity, but I did create a nested prefab for this effect. The main effect was the debris falling apart, similar to the bullet. The child effect were flames, which were orange...

Learning Reaper - First MIDI Song

February 2, 2019 Learning Reaper First MIDI Song Reaper – First MIDI Song Tutorial This was my first experience using Reaper software, learning to create MIDI audio files. There were some bumps getting started but it worked pretty well after I got going. The first issue was since I use a Windows laptop it was recommended I get the ASIO audio drivers for working in a digital audio workstation (DAW). I did get those installed ahead of time and it was easy to set them as my audio drivers for Reaper, but it caused some issues since I didn’t fully understand it (and still don’t completely). Using the ASIO drivers in Reaper made it impossible for me to watch the tutorial videos, as those videos had issues when they went to use the audio driver then. From my understanding, the ASIO drivers specifically make it so one specific program has full control of the audio drivers to help it accomplish its goals, a major one of which is reducing latency. The big latency occurs between playing a ...