Posts

Showing posts from October, 2019

Thesis Current Resources and Citations

October 31, 2019 Academic Resources Current Citations I just wanted to have a list of all my current sources I have compiled that may be useful for my thesis here. This list will be modified over time as I dtermine which topics I will not get to in my thesis, and which topics need more support, but this is a pretty good foundation for now. [1]J. L. Anderson and M. Barnett, “Learning Physics with Digital Game Simulations in Middle School Science,” Journal of Science Education and Technology, vol. 22, no. 6, pp. 914–926, Dec. 2013. [2]M.-V. Aponte, G. Levieux, and S. Natkin, “Measuring the level of difficulty in single player video games,” Entertainment Computing, vol. 2, no. 4, pp. 205–213, Jan. 2011. [3]S. Arnab et al., “Mapping learning and game mechanics for serious games analysis: Mapping learning and game mechanics,” British Journal of Educational Technology, vol. 46, no. 2, pp. 391–411, Mar. 2015. [4]E. Butler, E. Andersen, A. M. Smith, S. Gulwani, and Z. Popović, “A

Drawing and Animating 2D Pixel Art in Photoshop

October 30, 2019 Pixel Art for Games Photoshop Tutorials How To Draw Pixel Art | Tutorial Tutorial #1 - Link By: TipTut How To Animate Pixel Art | Tutorial Tutorial #2 - Link By: TipTut I will most likely be doing some more work on some of my older 2D pixel art games, so I wanted to brush up and get some more basic tutorials on pixel art in photoshop to get me back up to speed and hopefully learn some new things along the way. This creator had the benefit of following up with an animation video as well, which is a nice bonus to tag on. I may need to reset my Photoshop settings so it is proper for pixel art again.

UnityLearn - Beginner Programming - Tips & Considerations - Pt. 05

October 29, 2019 Beginner Programming: Unity Game Dev Courses Beginner Programming: Unity Game Dev Courses Unity Learn Course - Beginner Programming Tips & Considerations Unity's Order of Events Unity's Order of Events: Awake : OnEnable : Start : Update : OnDisable : OnDestroy Awake: first function called when object is instantiated; true whether added to scene in editor or instantiated in code OnEnable: event; fired when enabled gameObject is instantiated or when a disabled object is enabled Start: after Awake, and OnEnable, but before the 1st frame update Update: happens every frame after initialization methods FixedUpdate: frame-independent and occurs before physics calculations are performed LateUpdate: called once per frame after update method has completed execution OnDisable: event; fires when object is disabled, or before it is destroyed OnDestroy: execute when object is destroyed in code, or when scene containing it is unloaded Refe

How to Draw with Colored Pencils

October 28, 2019 Colored Pencils Better Fundamentals DO'S & DON'TS: How to Draw with Colored Pencils Tutorial #1 - Link By: Kirsty Partridge Art I am trying to get back into some activities I liked doing in the past but have not found time to do them recently. Using colored pencils was always something I enjoyed, so I would like to get back to using them to just do some simple coloring and sketching. This seemed like a good time to improve on how I did this as well, so this video seemed like a good start to learn some basics to work on if you want to actually get better at using colored pencils.

UnityLearn - Beginner Programming - Delegates, Events, and Actions - Pt. 04

October 25, 2019 Beginner Programming: Unity Game Dev Courses Beginner Programming: Unity Game Dev Courses Unity Learn Course - Beginner Programming Delegates, Events, and Actions Delegates Delegate: in C#, a type designed to hold a reference to a method in a delegate object Delgates are created using the "delegate" keyword. They are defined by their signature, meaning their return type. Finally they have parameters which they take in, similar to methods. Using a delegate allowed us to parameterize a method. Using the delegate as a parameter for a method also allows us to use any method which matches that delegate's signature to satisfy the parameter. These are some snippets from two scripts, GameSceneController and EnemyController, that show some basics of utilizing delegates: - In GameSceneController script public delegate void TextOutputHandler(string text); public void OutputText (string output) { Debug.LogFormat("{
Thesis Project - Concepts for System to Control Script Timings October 24, 2019 Working with the HFFWS System for Properly Timing Running of Scripts Discovering the Timing Issues with the HFFWS Tools While working with the Rope script in the Human API, I was again encountering timing issues when trying to accomplish tasks through script. I was having trouble instantiating and connecting rigid bodies to the ends of the rope in script. I ran several tests to confirm the timing issues I was having again. Test #1 2 Rigid Body objects exist in scene Script has 2 gameObject references for those objects Script sets startBody and endBody references to those objects at Start This did not work. The references could be seen as being properly assigned in the Rope script in the editor, but that connection was being made too late and having no affect on the objects. Test #2 2 Rigid Body objects exist in scene Script has 2 gameObject references for those objects Script sets star

HFFWS Working with the Rope Script

October 23, 2019 Human Fall Flat Workshop Rope Script Identifying Key Components The main components of controllilng the rope script when it comes to placing it and connecting it with objects, are the handles and the start/end bodies. The handles are transform positions that dictate key points on the rope. Two is the standard, as they determine a beginning and the end for the rope, but more can be used to direct the rope in multiple directions. The start and end bodies are rigid body references which determine objects that will be physically connected to the ends of the rope. The discovery with how the handles work opens the possibility for more rope configurations other than flat ropes which fall over other objects. Being able to guide a rope around in interesting patterns could potentially allow for setups that are more similar to actual pulley setups, where a rope needs to go around a wheel object at least once. The first prefab I worked with that used the Rope scrip

UnityLearn - Beginner Programming - Working with Classes - Pt. 03

October 22, 2019 Beginner Programming: Unity Game Dev Courses Beginner Programming: Unity Game Dev Courses Unity Learn Course - Beginner Programming Working with Classes The Four Pillars of OOP 1. Encapsulation: grouping of data and methods into a cohesive object 2. Abstraction: process of exposing only those features of an object necessary for interactions 3. Inheritance: creating a new class based on and extending another 4. Polymorphism: ability of an object of function to take on a different form The PlayerController class created for this section of the tutorials dervied from the Shape class, which allowed it to inherit the SetColor method and change the player to yellow. It also extended the class by creating its own method, MovePlayer. I am trying to keep track of this to ensure I keep all the terminology straight. There was an interesting approach to using WaitForSeconds in the enemy spawning method. Instead of directly using new WaitForSeconds directly

Unity Procedural Landmass Generation by Sebastian Lague

October 21, 2019 Procedural Terrain Generation Tutorial Procedural Landmass Generation (E01: Introduction) Tutorial #1 - Link By: Sebastian Lague This is the beginning of a procedural landmass tutorial by Sebastian Lague. This appears to get move involved in setting up noise with more controlled variability along with shading and other interesting tricks. This will compliment a procedural terrain tutorial I followed by Brackeys since this gets much more involved and gives many more designer options.
Thesis Puzzle Generation - Pulley Information and Variations October 17, 2019 Thesis Puzzle Generation Pulley Variants Pulley Wikipedia Page Info #1 - Link By: Wikipedia Pulley General The wikipedia definition of a pulley is: "a wheel on an axle or shaft that is designed to support movement and change of direction of a taut cable or belt, or transfer of power between the shaft and cable or belt" The pulleys we will be generating are generally simpler setups. They mostly consist of a rope with a physics object (rigid body) on each end. This is because of how the system is used to create the pulleys. Ropes cannot be intertwined between objects accurately, so they are just generated above their setup locations and allowed to fall into position. As a final note, the pulley can also be tied into demonstrating the wheel and axle simple machine as well. Varieties Hook on an end to latch onto other objects This focuses on the pulley's inherent nature

Thesis Puzzle Generation - Seesaw Information and Variations

October 16, 2019 Thesis Puzzle Generation Seesaw Variants Lever Wikipedia Page Info #1 - Link By: Wikipedia Seesaw General It's basically a lever, which has the following definition from wikipedia: Lever: "a simple machine consisting of a beam or rigid rod pivoted at a fixed hinge, or fulcrum A lever is a rigid body capable of rotating on a point on itself" There are 3 classes of levers: Class 1: Fulcrum in the middle Effort is applied on one side of the fulcrum and the resistance (or load) on the other side Examples: seesaw, crowbar or a pair of scissors Mechanical Advantage may be greater than, less than, or equal to 1 Class 2: Resistance (or load) in the middle Effort is applied on one side of the resistance and the fulcrum is located on the other side Examples: a wheelbarrow, a nutcracker, a bottle opener or the brake pedal of a car Load arm is smaller than the effort arm Mechanical Advantage > 1 Called: force multiplier

Unity Card Game Tutorials - Drag and Drop

October 15, 2019 Unity Card Game Tutorials Drag and Drop Youtube - Unity Tutorial - Drag & Drop Tutorial #1 [RPGs, Card Games, uGUI] Tutorial #1 - Link By: quill18creates I was interested at looking into how card games are created in Unity as I was interested in possibly making that type of game and also thought it would be something good to look into for my current research on learning how to effectively create my own class systems that utilize interfaces and inheritance well. Cards are a very obvious type of object that will use a similar setup every single time, so they are a nice simple base to focus on creating a nice class that contains everything you should need for all of your cards. Interfaces could then be a good way to give these elements their interactive components (such as dragging them around or sending them to their proper locations during gameplay). This video is actually the first in a series of three. They mostly cover interactivity in a card

HFFWS Fixing and Debugging the Pulley Generator

October 14, 2019 Pulley System Generator Fixing Notes: - Deselecting "Fix Start" and "Fix End" on the Rope component allows for the creation of a simple rope that appears to operate normally, but it is not connected to anything - "Fix Start" and "Fix End" appear necessary to connect the rope to physics objects TESTING Issue 1: Instantiated Rope is a completely broken mess of physics masses jumping around. Test 1: Changing objects at ends to TestBox and TestSphere just to simplify the physics objects involved to see if that makes diagnosing the problems easier Results: This did result in a more stable rope. It was still not in the correct location, but the rope was no longer just a jumbled bumbling mess of masses. Issue 2: Rope is instantiated in a strange position away from most other objects. - This appears to be because of the ropeStart and ropeEnd positions. The rope is still following their positions, and the

Classes of AI Agents

October 10, 2019 General AI Classes of AI Agents Agents in Artificial Intelligence Info #1 - Link By: Sahil_Bansall Classes of Agents This link goes over some of the basic setups for a few different classes of AI, which are as follows: Simple Reflex Agents Model-Based Reflex Agents Goal-Based Agents Utility-Based Agents Learning Agent Simple Reflex Agents These agents simply react to the current percept, with no regard to percept history. It uses condition-action rules, which simply map a state/condition to an action. So these take in some input with sensors of some type, and then depending on solely that input, it decides an action to take at that time. Model-based Reflex Agents These find a rule whose condition matches the current situation. This agent adds an internal state, which is updated with each percept depending on the percept history. This internal state allows the agent to create its own model of the world that cannot be perceived. This agent u

HFFWS Rope Pulley System Issues and Strange Audio Instantiation

October 9, 2019 HFFWS Thesis Project Creating Pulley System Creating Pulley in HFFWS Working with the Rope Script The Rope script is the central focus for the pulley system, but the Fixed Joint that goes with the rigid body of the ropeStart and ropeEnd also play a crucial role which makes getting everything to work together nicely a bit of a challenge. I want the setup to be able to take in a prefab for each end of the pulley and instantiate those objects in the proper position, and then become connectedBody for each of these Fixed Joints. Similar to other issues I have had before with instantiating objects, there seems to be a critical timing factor needed on top of the fact that the objects just physically behave very weirdly when created. I think currently there is some collision issue that is occurring because the rope ends up spawning very far away from where it is intended to spawn and also waves around violently. Meanwhile, the objects that are supposed to be at t

UnityLearn - Beginner Programming - Pt. 02

October 8, 2019 Beginner Programming: Unity Game Dev Courses Beginner Programming: Unity Game Dev Courses Unity Learn Course - Beginner Programming Understanding Types What is a Type Overview: Types of types, "var" keyword, enumerations, generics Data Type: data type or simply type is an attribute of data which tells the compiler or interpreter how programmer intends to use the data. Types of types: Value types and Reference types Value Types: Memory is allocated directly and inline on the stack Examples: int, byte Reference Types: Memory is allocated randomly on the managed heap Examples: Classes, delegates, interfaces Memory Allocation by Type There are two main memory storage locations we are concerned with, the stack and the heap. Value types and pointers to reference types are located in stack (pointers not directly used in C#) Reference types are located in heap Stack vs. Heap Stack Allocated when compiled Data are stored sequential

How to Spawn Objects anywhere in Unity3D from Unity3D College

October 7, 2019 Spawn Objects in Unity Basics and Addressables How to Spawn Objects anywhere in Unity3D (and a bit of addressables) Youtube - Link By: Unity3d College I wanted to note this as a possible useful source since my thesis work will involve spawning a lot of objects, and in varied and rather precise positions. With how important of a focus it will be, I figure more sources on the generals of spawning objects would be good to know to give me as many tools to use as possible.

Pulley Wheel Positioning System - Weighted Ranges for Positioning

October 6, 2019 Pulley Wheel Positioning System Video Demo of Wheel Positioning System Demo - Link By: me General System Needs My pulley system needed to create a rope with objects attached to it, as well as objects which act as the pulley wheels which will support the rope. The positioning of these wheel objects must be in line with the rope, but below it. Using the HFF system, the rope gets generated and then falls, draping itself over any objects below it. Keeping those requirements in mind, I also wanted the system to be able to generate a varied amount of these pulley wheels and place them in varied positions below the generated rope. Having the option for multiple wheels became more important when I noticed that sometimes ropes with heavy objects attached can break through rigid body wheel support objects, but having more (therefore more support) can sometimes alleviate this issue. So to summarize, I wanted a system that could choose a varied amount of position

HFFWS Framework for Pulley Puzzle Generator

Pulley Puzzle Thesis - Basic setup - Objects attached to both ends of a rope - Rope hangs over something - Setting Up First Basic Instance - Ropes - these are very touchy in HFF - they usually use a setup where there is a start and end transform position, and several rope segments get instantiated between these two points to produce a "soft body" object - need to make sure neither of these points is deeply within another rigid body object, or physical interacting object as this can lead to a constant state of colliding - constant colliding causes the rope system to act erratically on its own - Attaching a Physics object to both ends of a rope - the original rope objects use a physics object at one end, and a fully fixed positional object at the other end - we need both ends to use a physics object - This is done by: - Making sure both objects are rigid body objects - In the Rope script: - Make sure to assign "

Using Properties in C#

October 3, 2019 Coding: Properties In C# C# Properties (GET, SET) Link #1 - Tutlane By: tutlane Properties (C# Programming Guide) Link #2 - Microsoft By: Microsoft How to: Declare and Use Read Write Properties (C# Programming Guide) Link #3 - Microsoft By: Microsoft NOTES I have been using private fields more often in my coding, even if it is not particularly necessary in Unity, as it is considered a better practice to keep control of the scope of your variables. I have also been working with code that needs to communicate outside of its own scene in Unity, which requires unique work as well. Both of these have led me to use various getting and setting techniques, and I am trying to clean up my code and do it more properly by learning more about creating properties and using getters and setters better. It is my hope that these three sources cover everything that I am looking for, as well as giving me a better understanding overall of the capabilities of u

UnityLearn - Beginner Programming - Pt. 01

October 2, 2019 Beginner Programming: Unity Game Dev Courses Beginner Programming: Unity Game Dev Courses Unity Learn Course - Beginner Programming Module Introduction This has basic coding principles, like formatting code files, naming conventions, namespaces, and effectively using comments. These are all concepts I know about, but only have some experience with so seeing another view should be beneficial. One of their main principles is "Consistency trumps style". Formatting your Code Files The main points for this section are: value of conventions, anatomy of a code file, and formatting guidelines and tips. Conventions provide a consistent look, make your code more accessible, makes it easier to maintain and extend, and shows your understanding. Starting basic script structure: At the top there are using directives for namespaces. This is followed by the definition of the class. This defaults to deriving from Monobehaviour, and creating methods for S
ARTIFICIAL INTELLIGENCE FOR GAMES - by Ian Millington, John Funge October 1, 2019 Book ARTIFICIAL INTELLIGENCE FOR GAMES By: Ian Millington, John Funge This was just an interesting reading I came across for a gaming AI class, so I wanted to note it for the future. It looks like it covers a lot of interesting topics so it could serve as a nice foundation for starting to understand a lot of the basics on gaming AI.