Community-based video game design and development.

Archive for the ‘Geometry’ Category

Day 12-16: Achievements

Day 12

Mathematics

  1. Vectors:
    1. Calculated formula for circular rotation of a 2D vector around an origin

Unity

  1. Falltime:
    1. Calculated
    2. Affects Sit() time
  2. Animations:
    1. Grass default
  3. Collision:
    1. Formula to cast 360° rays around centre
    2. Detects custom layers
    3. Outputs object’s identity
    4. Outputs precise angle in degrees of collision

C#

  1. goto
  2. continue (partially)
  3. Trivia: C# has Garbage Collection, unlike e.g. C++

Graphics

  1. Drew Grass tile sprite

Day 15

Unity

  1. Conversion between SI units to Unity units
  2. Physics Handler:
    1. Created basic constants and formulae

Computer Science

  1. Libraries:
    1. OS differences: .dll, .dylib, .so
  2. Executables:
    1. OS differences: .exe, .osx, .elf
  3. Cocoa API: basic overview
  4. WinForm applications:
    1. Basic architecture in VisualStudio 2013
    2. Basic properties
    3. Created clickable Button, displays a MessageBox
    4. Checkbox used

C#

  1. Draw.Rectangle()
  2. Can’t call non-static method from inside static method
  3. Events:
    1. Subscribing and Sender

Day 16

Unity

  1. Constructors:
    1. Doesn’t like new keyword, prefers AddComponent()
  2. Script to calculate volume of sphere object
  3. Structure:
    1. External Physics Handler
    2. Individual Physical Properties
      1. Main interface with properties declaration
      2. Individual scripts implement properties
    3. Acceleration as public method
    4. Categorisation by physical properties and sub-categories
  4. Altitude of objects calculated
  5. Physical constants added:
    1. Standard Gravitational acceleration force
    2. Nullforce

Physics

  1. SI units:
    1. General
    2. Definition
    3. Relationship to other units
    4. Converted SI system into Unity
  2. Thermodynamics: (brief glimpse)
  3. Collision:
    1. Elastic Collision
    2. Inelastic Collision
    3. Coefficient of Restitution (COR)
    4. Partially translated for implementation in Unity

C#

  1. Interfaces
  2. Dictionary()
  3. Properties:
    1. Short syntax
  4. Conditional ?: operator
  5. Fields:
    1. Definition
  6. Terminology:
    1. “Declaration”
    2. “Implementation”

Day 9-11: Achievements

Day 9

Geometry

  1. Quaternions
  2. Euler Angles
  3. Gimbal
  4. Gimbal Lock

Unity

  1. Quaternions:
    1. Identity
    2. Euler
    3. Slerp
  2. Parenting: head inside character
  3. Separation of rotation around x and y axis if using function.Rotate()
  4. Mathf.
    1. Clamp
    2. SmoothDamp
  5. Functioning POV Camera: Quaternion used
  6. Walking: forward, not axis (works)
  7. RotateAround()
  8. Sprites:
    1. Layered character of sprites

Graphics (3D and 2D)

  1. Drew a sprite

Day 10

Physics

  1. Optics: Parallax

Unity

  1. Horizontal Movement works (no acceleration; over multiple scripts)
  2. Camera: Follows player (2D, orthographic)
  3. Gravitation works (no acceleration, mass etc.)
  4. PolygonBoxCollider2D()
  5. CheckSphere()
  6. Gizmos in Unity: Definition
  7. Collision:
    1. 2D Linecast to layer successful
    2. Left/Right Wall-check without cancelling each other out
  8. Jump mechanics created (no acceleration)
  9. Background follows player

Graphics

  1. Background painting in Photoshop

Day 11

Geometry

  1. Minimum Bounding Box: Definition

Unity

  1. Animation:
    1. Idle state
    2. Walk left/right states (incomplete)
    3. Jump state
    4. Falling state
    5. Landing state
    6. Water default
  2. Animator:
    1. Default set to idle
    2. Animations loop when needed
    3. Transitions and triggers for Walk L/R, Jump, Falling, Landing work
  3. Animation handler that can sit() out the input when player can’t move due to animation running
  4. InstaDeath tile works temporarily
  5. Facing direction
  6. Gizmo functions:
    1. DrawRay()
    2. DrawLine()
  7. Flip sprites: Flips all animations as well
  8. Water:
    1. Collision works
    2. Reduces velocity
    3. Allows for multiple Jumps
  9. Input Monitor: knows whether player is idle or not
  10. Jump: now chargeable

Graphics

  1. Different body parts and poses for the 4 animations
  2. InstaDeath tile drawn
  3. Water tile drawn

Day 5-8: Achievements

Day 5

Physics

  1. Velocity
  2. Acceleration
  3. Kinetic Force

C#

  1. Acceleration programmed

Day 6

Mathematics

  1. Dimensionless Numbers

Geometry

  1. Vector addition
  2. Point addition resulting in vector

Physics

  1. Drag/Fluid-/Air Friction:
    1. Meaning
    2. Drag coefficient
  2. Air Density:
    1. Temperature & Pressure dependency
  3. Reynold’s Number
  4. Viscosity of fluids
  5. Dry Friction:
    1. Stiction
    2. Kinetic Friction:
      1. Coefficient
      2. Coulomb’s formula
      3. Geometric dependency
  6. Angular velocity
  7. Centrifugal force
  8. Graviation:
    1. Earth’s Standard Gravity (gravitational acceleration)
    2. Newton’s law of Universal Gravitation
    3. Gravitational constant G
  9. Normal force:
    1. Formula
    2. Angular aspects
  10. Collision:
    1. Deflection (1D, 2D)
    2. Elasticity (elastic, inelastic)
    3. Impact (deformation)
  11. Tension:
    1. Definition
    2. Relation towards Compression
    3. Relation towards Stress
  12. Stress
  13. Ductility & Malleability
    1. Definition
    2. Relation to Tension and Compression
  14. Pressure

C#

  1. Acceleration formula:
    1. Maximum speed
    2. Adjusting units to Unity’s engine,
    3. Drag considered
  2. Velocity formula:
    1. Considers input-based acceleration (keyboard)
    2. Considers stored acceleration without input (“sliding”)
  3. Getter/Setter

Unity

  1. Accessing Object > Component > Value
  2. Velocity calculation:
    1. Cube in air for T=15°C, p=1atm, g=9.80665m/s2
  3. Prefab created: ‘Gravitational Cube

Day 7

C#

  1. Regex:
    1. Repetition
    2. Word Mining algorithm
  2. Booleans: inversion
  3. Setter: successful application
  4. Named arguments
  5. Optional arguments
  6. Inheritance
  7. Polymorphism
  8. Encapsulation:
    1. Properties (get, set)
  9. Naming conventions
  10. Null vs Nil
  11. Pointers: overview
  12. ‘this’ keyword: repetition

Unity

  1. Vector.Angle:
    1. Definition
    2. Player’s direction calculated
  2. GUI:
    1. OnGUI basics
    2. Rect
    3. GUI.Button with working method
  3. Asset vs Object
  4. Instantiating:
    1. Cloning of an object successful
    2. Object vs GameObject
  5. Mouse:
    1. Position
    2. GetMouseButtonDown

Day 8

Mathematics

  1. Absolute value: repetition
  2. Mapping/Translation:
    1. Algebraic Functions
    2. Linear Map
    3. Matrix method

Geometry

  1. Cross product
  2. Norm
  3. Unit vector
  4. Dot product
  5. Mapping/Translation:
    1. Vector mapping
  6. Exterior algebra
    1. Brief insight
    2. Bivectors: brief insight
  7. Tensors
  8. Osculating circle: definition

Physics

  1. Stress:
    1. Simple uniaxial stress
    2. Shear stress
    3. Isotropic stress (tension) & Hydrostatic pressure (compression)
  2. Net force
  3. Moment of Inertia
  4. Angular/Rotational Motion:
    1. Angular Velocity
    2. Angular Acceleration
    3. Angular Momentum
  5. Torque
  6. Force, Energy, Work, Power: differences and definition
  7. Kinetic energy:
    1. Formulae
    2. Rotational energy
  8. Kinematics:
    1. Uniform Acceleration: partially (motion)
  9. Centripetal force: introduction

C#

  1. Externalisation: passing only attributes to a public method instead of repeating it inside the script (linked to Unity, 3.)
  2. Structure:
    1. Optimising by combining instructions into as few methods as possible.
    2. Optimising by properly separating and prioritising methods within parent handlers.

Unity

  1. Materials:
    1. Created simple texture.
    2. Created simple bumpmap from texture.
  2. Heightmap: basic knowledge
  3. Script Management: empty GameObjects serving as libraries (linked to C#, 1.)
  4. POV Camera: attached to player avatar’s ‘head’
  5. Mouse: axis translates Camera’s angle to rotate (“POV mouse camera”)

Day 3: Study Achievements

It has been a truly productive day in which I could cover a broad range of topics that bring me closer to design and develop video games in my future. I greatly loved learning about those things and sometimes wanted to wander off into details or related topics, but had to stay superficial to stay in my schedule. It is beyond me how people cannot adore mathematics, physics and computer sciences; especially when your vision and dream of what you create with those is a video game, something that’s fun and can deliver entire worlds into our hands. – This is also why I’ve decided to simply list the noteworthy concepts I’ve learnt about every once in a while in such a post to show what kind of ‘course’ may be required to get into game design.

 

  1. What is a library? (repetition)
  2. What is a framework?
  3. What is an SDK? (repetition)
  4. What is a Desktop Environment (DE)?
  5. What is an API?
  6. What is a Window Manager?
  7. What is a sprite?
  8. What is a bitmap? (repetition)
  9. What are vector graphics? (repetition)
  10. What is a polygon mesh?
  11. What is a GUI? (repetition)
  12. What is a subroutine? (repetition)
  13. What is a communications protocol? (repetition)
  14. What is a Turing machine? (repetition)
  15. What is a rigid body?
  16. What is DMM?
  17. What is the Finite Element Method (FEM)?
  18. What is OpenGL?
  19. What is Direct3D?
  20. What is texture mapping?
  21. What is an engine?
  22. What is tessellation?
  23. What is parallax mapping?
  24. What is bump mapping?
  25. What is a decal?
  26. What is a halo?
  27. What is a flare?
  28. What is a particle system?
  29. What components does Unity 4 offer?
  30. What is collision detection?
  31. What is pathfinding?

 

Note:

Most items on this list don’t just contain the question “what is…” but also “How does it work?” (e.g. OpenGL APIs) and other studies. Also note that the majority are elements I’ve worked with before but didn’t know the precise, official details and could only apply them without really understanding their full potential. They were all studied in low-level depth that allows me to connect these things into my understanding of computer engineering and – technically – any programming language, once I master those. – In pathfinding I analysed the A* algorithm in particular and partially tested it for weaknesses, while collision detection led me to the tree structures of Axis-Aligned Bounding Boxes (AABBs).