Human: Fall Flat Level Concept/Skill Breakdown – Medieval

February 27, 2020

HFF Level Concept/Skill Breakdown

Level: Medieval

Playthrough Sources Referenced

Human Fall Flat (No Commentary) (16/09/2017)

Video #1

By: SpeedyAvatar


Human Fall Flat – Full Playthrough w/ summit1g

Video #2

By: summit1g


Title: Automatic Game Progression Design through Analysis of Solution Features
Source:

E. Butler, E. Andersen, A. M. Smith, S. Gulwani, and Z. Popović, “Automatic Game Progression Design through Analysis of Solution Features,” 2015, pp. 2407–2416, doi: 10.1145/2702123.2702330.

Overview

I am looking into existing HFF levels to analyze the various small puzzle scenarios present in an attempt to breakdown what skills and/or concepts the player needs to understand or be able to act upon in order to complete them. The approach on how these are broken down was inspired by the the way procedural traces and n-grams are used in the above source by Butler et al. It is hoped that this approach to breaking down various puzzle scenarios in HFF will help with the automatic generation of such scenarios. I have also included an object list for each scenario to keep track of how many objects are needed for simple puzzle scenarios.

This breakdown goes throw the Medieval level of the base Human: Fall Flat game. I split up the individual puzzle scenarios the player encounters throughout the level in the steps required for a single solution avenue for completing the puzzle. Each of these steps is them given some simple skill or concepts necessary to understand to perform each step.

Medieval Level Breakdown

Scenario 1

    Intro: Lock Smashing

  1. Picks up rock (Grab)
  2. Breaks lock with rock (Breakable Object)(Apply Force)
  3. Opens door (Grab)(Pull)(Open door)
Object list:

Rock, Door, Lock


Scenario 2

    Cross Gap to Door

  1. Grabs long bar (Grab)
  2. Places bar over gap to act as bridge (Create platform)
  3. Walks across bar to door
Object list:

Long Bar, Stairs, Platform, Door


Scenario 3

    Catapult to Break Walls

  1. Move catapult into position (Push)(Pull)
  2. Wind catapult to loading position (Push)(Pull)(Grab)(Interact)
  3. Lift rock onto catapult (Pickup object)
  4. Press catapult lever to shoot rock (Push)(Interact)
  5. Rock hits wall to break it open: Gravity for aiming (Apply force)(Force = mass * acceleration)(Gravity)(Breakable Object)
Object list:

Catapult, Rock(s), Wall


Scenario 4

    Inside Castle: Rickshaw Platform

  1. Grab rickshaw handles (Grab)
  2. Lift rickshaw up by handles : Helps wheels to roll (Lift object)(Friction)
  3. Move rickshaw with rock on it into place as platform (Create platform)
  4. Lift self onto rock (Lift self)
  5. Jump onto higher area (Jump)
Object list:

Rickshaw, Large Rock (on rickshaw), Platform


Scenario 5

    Swinging Between Lanterns

  1. Lift bar on door to open it (Lift object)
  2. Bring in rickshaw from previous section (Resource management)(Memory)
  3. Move rickshaw with rock on it into place as platform (Create platform)
  4. Lift self onto rock (Lift self)
  5. Jump onto higher area (Jump)
  6. Jump onto lantern to swing (Jump)(Grab)(Hold)
  7. Swing on lantern (Momentum)
  8. Jump from lantern to platform : Falling to lower platform (Momentum)(Gravity)
Object list:

Rickshaw, Large Rock (on rickshaw), Platform (Many), Lantern(s) (Many)


Scenario 6

    Move Very Heavy Rickshaw

  1. Move (heavier) rickshaw with rock on it into place as platform (Create platform)
  2. Jump and lift self onto nearby platform several times (Jump)(Lift self)
  3. Go across platform created by rickshaw moved in place
Object list:

Large Rickshaw, Rock (Very heavy), Small Platforms (Many), Bridge (with gap)


Scenario 7

    Swing Across Gap with Hook

  1. Grab large hook (Pickup object)(Grab)
  2. Hook hook onto protruding bar to swing self across gap (Momentum)(Gravity)(Hold)
Object list:

Large Hook, Protruding Bar, Platform


Scenario 8

    Rotate Pulley-Like Wheel to Lift Board as Ramp

  1. Pickup Large Hook (Pickup object)
  2. Use hook to pull down above large wooden board (Gravity)(Reach)(Pull)
  3. Pull large wooden board so half is on roped stone (Pull)
  4. Rotate nearby wheel connected to rope to lift stone, raising the large wooden board to create a ramp platform (Pulley)(Create platform)
Object list:

Large Hook, Large Wooden Board, Platform, Wheel Pulley Setup (Large Wheel connected to Rope which is connected to Large Stone), Terrain Bump


Scenario 9

    Push Barrel Down Ramp and Climb Many Platforms

  1. Open Door (Pull)
  2. Go up stairs
  3. Open Door (Pull)
  4. Roll barrel down ramp to get to other side (Pull)(Push)(Gravity)(Ramp)(Roll)
  5. Move barrel in position to reach next platform (Create Platform)(Pull)(Push)
  6. Jump onto barrel and next higher platforms (Jump)(Lift self)
  7. Jump up onto several higher platforms (Jump)(Lift self)
  8. Turn wheel to open gate (Interact)(Grab)(Open door)
Object list:

Barrel, Ramp, High Platform, Platforms (Many), Gate (with attached wheel opening device)


Scenario 10

    Free Lantern to Swing From

  1. Grab Large Hook (Pickup object)
  2. Use hook to free stuck lantern with chain (Reach)(Interact)
  3. Swing on lantern to next platform (Jump)(Hold)(Momentum)(Gravity)
  4. Grab platform and lift self up (Lift self)(Hold)(Grab)
Object list:

Large Hook, Lantern (w/chain), Platforms (Two)


Scenario 11

    Launch Self with Windmill

  1. Grab onto windmill (Grab)(Hold)
  2. Let go of windmill to launch self to next area (Momentum)(Gravity)
Object list:

Windmill, Platform


Scenario 12

    Build Ramp with Board, Anvil, and Cylinder

  1. Remove heavy anvil from board to free board (Push)(Pull)(Reduce Mass)
  2. Move anvil, board, and cylinder in front of open area of higher platform
  3. (Push)(Pull)
  4. Place board over cylinder so cylinder acts as fulcrum of ramp
  5. (Ramp)(Push)(Pull)(Create platform)
  6. Place anvil at far end of board to keep it pinned to the ground (Increase mass)(Ramp)(Cantilever)
  7. Walk up created ramp and jump and lift self to next area (Jump)(Lift self)
Object list:

Board, Anvil, Cylinder, High Platform


Scenario 13

    Build Ramp to Get Tethered Bucket into Hole

  1. Remove board from covering hole in ground (Pull)
  2. Move board to tree to use as ramp (Ramp)(Pull)
  3. Go up ramp to reach higher platforms (Jump)(Lift self)
  4. Free tethered bucket from high platform (Push)
Object list:

Bucket (connected to rope connected to tree), Tree, Boards (x2 on hole), Platforms (x2)


Scenario 14

    Loose Rock Pillar Cave Platforming

  1. Jump onto loose rock pillar to fall onto next platform (Momentum)(Jump)(Breakable Object)
  2. Walk across next rock platform
  3. Jump to rock platform which breaks and falls to next platform (Jump)(Hold)(Breakable Object)(Momentum)
  4. Lift self onto next rock platform (Lift self)
  5. Jump to next loose rock pillar to fall into next area (Momentum)(Jump)(Breakable Object)
Object list:

Loose Rock Pillars (Many), Platforms (Many)


Scenario 15

    Launch Self to Castle Gate with Catapult

  1. Move catapult into position (Push)(Pull)
  2. Wind catapult to loading position (Push)(Pull)(Grab)(Interact)
  3. Load self into catapult
  4. Press catapult lever to shoot self (Push)(Interact)
  5. Hold onto draw bridge, which pulls it down (Hold)(Lever)(Torque)
  6. Lift long loose piece of bridge out (Pull)(Pickup object)
  7. Place long piece into opening in gate to create ramp (Ramp)
Object list:

Catapult, Draw Bridge


Using LM-GM Analysis on Human: Fall Flat for Thesis (Condensed Lists)

February 5, 2020

HFF LM-GM Analysis

Thesis Project

Title: Mapping learning and game mechanics for serious games analysis
Source:

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, doi: 10.1111/bjet.12113.

List of Game Mechanics

The following is the list of game mechanics I observed in Human: Fall Flat according to the source above (with noting for those that are major factors, and those that are only really present in multiplayer):

  • Behavioral Momentum
  • Cooperation (*multiplayer only)
  • Collaboration (*multiplayer only)
  • Cascading Information (*multiplayer only)
  • Resource Management (Major factor)
  • Strategy/Planning (Major factor)
  • Infinite Gameplay (offered by game somewhat, but major focus of developed system)
  • Levels (Major factor)
  • Pavlovian Interactions
  • Feedback (major factor)
  • Movement
  • Design/Editing
  • Simulate/Response (Major factor)
  • Realism
  • Tutorial
  • Urgent Optimism

List of Learning Mechanics

The following is the list of learning mechanics I observed in Human: Fall Flat according to the source above (with noting for those that are major factors, and those that are only really present in multiplayer):

  • Instructional
  • Guidance
  • Action/Task (Major factor)
  • Observation (Major factor)
  • Feedback (Major factor)
  • Identify (Major factor)
  • Explore
  • Discover
  • Plan (Major factor)
  • Objectify (Major factor)
  • Experimentation (Major factor)
  • Hypothesis (Major factor)
  • Repetition (Major factor; system focus)
  • Analyze
  • Simulation (Major factor)
  • Ownership
  • Motivation (Major factor)
  • Incentive

Summary

These are just the condensed lists of mechanics I observed within HFF by applying those found in the source above. I will put up a post with my more in-depth analysis of how I believe each of these apply in HFF to support why I chose them.

I created this list to better understand what HFF provides as a possible learning tool. This also helped link the game mechanics with the learning mechanics to get a better idea of which parts of the game to focus on generating with our system to enhance the learning opportunities.

Notes on Research Paper: Automatic Game Progression Design through Analysis of Solution Features by Butler et al.

November 19, 2019

Thesis Research

Notes on Resources

TITLE:

Automatic Game Progression Design through Analysis of Solution Features

AUTHORS:

E. Butler, E. Andersen, A. M. Smith, S. Gulwani, and Z. Popović

IEEE Citation – Zotero

[1]E. Butler, E. Andersen, A. M. Smith, S. Gulwani, and Z. Popović, “Automatic Game Progression Design through Analysis of Solution Features,” 2015, pp. 2407–2416.
ABSTRACT
– use intelligent tutoring systems and progression strategies to help with mastery of base concepts 
as well as combinations of these concepts
– System input: model of what the player needs to do to complete each level
– Expressed as either:
– Imperative procedure for producing solutions
– Representation of features common to all solutions
– System output: progression of levels that can be adjusted by changing high level parameters
INTRODUCTION
– Level Progression: “how game introduces new concepts and grows in complexity as the player progresses”
– link between level progressions and player engagement
– “Game designer Daniel Cook claims that many players derive fun from “the act of mastering 
knowledge, skills and tools,” and designs games by considering the sequence of skills that the 
player masters throughout the game [11].”
– *** Why we want to have system produce similar but varied versions of the same type 
of experience
– “Intelligent tutoring systems (ITS) [29, 22] have advanced the
teaching potential of computers through techniques that track
the knowledge of students and select the most appropriate
practice problems [8, 12].”
– “We aim to enable a different method
of game design that shifts away from manual design of levels
and level progressions, towards modeling the solution space
and tweaking high-level parameters that control pacing and
ordering of concepts”
– *** Possible major goal of my research
– “Andersen et al. [1] proposed a theory to automatically
estimate the difficulty of procedural problems by analyzing
features of how these problems are solved”
– Procedural Problems: those that can be solved by following a well-known solution procedure
– i.e. Integer division using long division
– Procedural Paths: code paths a solver would follow when executing procedure for a particular 
problem
– Use this as a measure of difficulty
– “This is mainly because Andersen’s
framework does not account for pacing. In contrast,
our system allows a designer to control the rate of increase
in complexity, the length of time spent reinforcing concepts
before introducing new ones, and the frequency and order
in which unrelated concepts are combined together to construct
composite problems”
– *** Another goal/direction for my research
RELATED WORK
– Intelligent Tutoring Systems have “several models for capturing student knowledge and selecting 
problems”
– *** Possible future work research
– “Generated levels are not useful in isolation; they must be sequenced
into some design-relevant order, called a progression”
APPLICATION
– Game called Refraction
– split lasers into number fractions that need to satisfy certain values at end
SYSTEM OVERVIEW
– Level: “any completeable chunk of content”
– Level Progression: “sequence of levels that create an entire game”
– Solution Features: “properties of the solution to a level”
– “need to be able to extract features from the levels that can
be used to create an intelligent ordering” for progression
EXTRACTING SOLUTION FEATURES
– Example of following procedural traces and n-grams within the exercise of doing hand subtraction
– Certain steps have a letter output that is recorded to see if a certain type of step 
was used and how often (i.e. Was borrowing necessary for subtraction?)
– n-grams: n-length substrings of the trace
– Example: Trace = ABABCABAB
– 1-grams: {A, B, C}
– 2-grams: {AB, BA, BC, CA}
– 3-grams: {ABA, BAB, ABC, BCA, CAB}
– 1-grams are fundamental concepts
– Compare complexity by comparing n-grams
– They used these general concepts to build their own similar, but not identical, system
– their game didn’t fit this model perfectly well, so they broke their game down into 
graph objects that they thought were more representative
– they had fundamental graph objects (similar to 1-grams), that could then build into 
more complex graph objects by combining these defined fundamental graph objects
AUTOMATICALLY GENERATING LEVELS
– “We applied the level generation process described by Smith et
al. [30] to generate a large and diverse database of puzzles”
– *** Look into this for our system?
CREATING A PROGRESSION
– n-grams = graphlets (their specific type of n-gram)
– “To summarize, given two levels L1 and L2, L1 is considered conceptually simpler if, for
some positive integer n, the set of n-grams of L1 is a strict subset of the set of n-grams of L2″
– if a level contains the steps required for another level, it is more complex (has the same and 
more basically)
– Because of several issues, their approach was create a rather large library of generated levels 
to choose from, and choose a select few that represent an effective progression
– model tracks whether player has completed a problem containing each component
– also track n-grams of those components (up to very small n as values get exponentially huge)
– hard to know what to do on failure
– General Framework:
– set of problems
– domain of concepts
– player model
– These three things are what are used to generate sequence of problems for the player
– Choosing the Next Problem
– given current model state and set of problems, what is appropriate next problem?
– dynamic cost model
– cost of problem, p, is weighted sum of the n-grams in the trace of p
– weight has 2 components:
– one based on what model knows about player
– one designer-specified weight
– Player Model Cost:
“First, at each point in the progression, for a given n-gram
x, the player model assigns a cost k(x). This cost should
be high for unencountered n-grams and low for ones already
mastered, which will ensure more complex problems have a
higher cost than simpler ones with respect to the player’s history”
– Designer Added Cost:
“as expert designers, we know
(possibly from data gathered during user tests) that particular
concepts are more challenging than others or should otherwise
appear later in the progression”
– “Thus, given a library of problems P, choosing the next problem
pnext consists of finding the problem with the closest cost
to some target value T”
– “In order for this sequencing policy to be effective, it requires
a large library of levels from which to choose. The levels
should be diverse, covering the space of all interesting solution
features. Furthermore, in order to enable effective control
of pacing, this space should be dense enough that the progression
can advance without large conceptual jumps”
– *** Supports need for my thesis work

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. [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. [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. [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. [4]E. Butler, E. Andersen, A. M. Smith, S. Gulwani, and Z. Popović, “Automatic Game Progression Design through Analysis of Solution Features,” 2015, pp. 2407–2416.
  5. [5]M. J. Callaghan, K. McCusker, J. L. Losada, J. Harkin, and S. Wilson, “Using Game-Based Learning in Virtual Worlds to Teach Electronic and Electrical Engineering,” IEEE Transactions on Industrial Informatics, vol. 9, no. 1, pp. 575–584, Feb. 2013.
  6. [6]M. Callaghan, M. Savin-Baden, N. McShane, and A. G. Eguiluz, “Mapping Learning and Game Mechanics for Serious Games Analysis in Engineering Education,” IEEE Transactions on Emerging Topics in Computing, vol. 5, no. 1, pp. 77–83, Jan. 2017.
  7. [7]D. B. Clark, B. C. Nelson, H.-Y. Chang, M. Martinez-Garza, K. Slack, and C. M. D’Angelo, “Exploring Newtonian mechanics in a conceptually-integrated digital game: Comparison of learning and affective outcomes for students in Taiwan and the United States,” Computers & Education, vol. 57, no. 3, pp. 2178–2195, Nov. 2011.
  8. [8]M. M. Cruz-Cunha, Ed., Handbook of Research on Serious Games as Educational, Business and Research Tools. IGI Global, 2012.
  9. [9]A. A. Deshpande and S. H. Huang, “Simulation games in engineering education: A state-of-the-art review,” Computer Applications in Engineering Education, vol. 19, no. 3, pp. 399–410, Sep. 2011.
  10. [10]M. D. Dickey, “Game design narrative for learning: Appropriating adventure game design narrative devices and techniques for the design of interactive learning environments,” Educational Technology Research and Development, vol. 54, no. 3, pp. 245–263, 2006.
  11. [11]J. Dormans and S. Bakkes, “Generating Missions and Spaces for Adaptable Play Experiences,” IEEE Transactions on Computational Intelligence and AI in Games, vol. 3, no. 3, pp. 216–228, Sep. 2011.
  12. [12]M. Ebner and A. Holzinger, “Successful implementation of user-centered game based learning in higher education: An example from civil engineering,” Computers & Education, vol. 49, no. 3, pp. 873–890, Nov. 2007.
  13. [13]M. Eraut, “Non-formal learning and tacit knowledge in professional work,” British Journal of Educational Psychology, vol. 70, no. 1, pp. 113–136, Mar. 2000.
  14. [14]D. Farrell and D. Moffat, “Cognitive Walkthrough for Learning Through Game Mechanics,” in European Conference on Games Based Learning, 2013, p. 163.
  15. [15]H. Fernandez, K. Mikami, and K. Kondo, “Adaptable game experience through procedural content generation and brain computer interface,” 2016, pp. 1–2.
  16. [16]A. Foster, “Games and motivation to learn science: Personal identity, applicability, relevance and meaningfulness,” Journal of Interactive Learning Research, vol. 19, no. 4, p. 597, 2008.
  17. [17]C. Franzwa, Y. Tang, A. Johnson, and T. Bielefeldt, “Balancing Fun and Learning in a Serious Game Design:,” International Journal of Game-Based Learning, vol. 4, no. 4, pp. 37–57, Oct. 2014.
  18. [18]J. Fraser, M. Katchabaw, and R. E. Mercer, “A methodological approach to identifying and quantifying video game difficulty factors,” Entertainment Computing, vol. 5, no. 4, pp. 441–449, Dec. 2014.
  19. [19]J. P. Gee, “What video games have to teach us about learning and literacy,” Computers in Entertainment, vol. 1, no. 1, p. 20, Oct. 2003.
  20. [20]J. P. Gee, “Good video games and good learning,” in Phi Kappa Phi Forum, 2005, vol. 85, p. 33.
  21. [21]B. Gregorcic and M. Bodin, “Algodoo: A Tool for Encouraging Creativity in Physics Teaching and Learning,” The Physics Teacher, vol. 55, no. 1, pp. 25–28, Jan. 2017.
  22. [22]R. H. Mulder, “Exploring feedback incidents, their characteristics and the informal learning activities that emanate from them,” European Journal of Training and Development, vol. 37, no. 1, pp. 49–71, Jan. 2013.
  23. [23]T. Hainey, T. M. Connolly, E. A. Boyle, A. Wilson, and A. Razak, “A systematic literature review of games-based learning empirical evidence in primary education,” Computers & Education, vol. 102, pp. 202–223, Nov. 2016.
  24. [24]P. Hämäläinen, X. Ma, J. Takatalo, and J. Togelius, “Predictive Physics Simulation in Game Mechanics,” 2017, pp. 497–505.
  25. [25]M. Hendrikx, S. Meijer, J. Van Der Velden, and A. Iosup, “Procedural content generation for games: A survey,” ACM Transactions on Multimedia Computing, Communications, and Applications, vol. 9, no. 1, pp. 1–22, Feb. 2013.
  26. [26]R. Hunicke, M. LeBlanc, and R. Zubek, “MDA: A Formal Approach to Game Design and Game Research,” p. 5.
  27. [27]I. Iacovides, P. McAndrew, E. Scanlon, and J. Aczel, “The gaming involvement and informal learning framework,” Simulation & Gaming, vol. 45, no. 4–5, pp. 611–626, 2014.
  28. [28]P. Lameras, S. Arnab, I. Dunwell, C. Stewart, S. Clarke, and P. Petridis, “Essential features of serious games design in higher education: Linking learning attributes to game mechanics: Essential features of serious games design,” British Journal of Educational Technology, vol. 48, no. 4, pp. 972–994, Jun. 2017.
  29. [29]H. B. Lisboa, “3D VIRTUAL ENVIRONMENTS FOR MANUFACTURING AUTOMATION,” vol. 6, p. 9, 2014.
  30. [30]R. Lopes, T. Tutenel, and R. Bidarra, “Using gameplay semantics to procedurally generate player-matching game worlds,” 2012, pp. 1–8.
  31. [31]S. D. Mohanty and S. Cantu, “Teaching introductory undergraduate physics using commercial video games,” Physics Education, vol. 46, no. 5, p. 570, 2011.
  32. [32]S. Moser, J. Zumbach, and I. Deibl, “The effect of metacognitive training and prompting on learning success in simulation-based physics learning,” Science Education, vol. 101, no. 6, pp. 944–967, Nov. 2017.
  33. [33]C. Peach, D. Rohrick, D. Kilb, J. Orcutt, E. Simms, and J. Driscoll, “DEEP learning: Promoting informal STEM learning through ocean research videogames,” in Oceans-San Diego, 2013, 2013, pp. 1–4.
  34. [34]J.-N. Proulx, M. Romero, and S. Arnab, “Learning Mechanics and Game Mechanics Under the Perspective of Self-Determination Theory to Foster Motivation in Digital Game Based Learning,” Simulation & Gaming, vol. 48, no. 1, pp. 81–97, Feb. 2017.
  35. [35]M. Qian and K. R. Clark, “Game-based Learning and 21st century skills: A review of recent research,” Computers in Human Behavior, vol. 63, pp. 50–58, Oct. 2016.
  36. [36]S. Sampayo-Vargas, C. J. Cope, Z. He, and G. J. Byrne, “The effectiveness of adaptive difficulty adjustments on students’ motivation and learning in an educational computer game,” Computers & Education, vol. 69, pp. 452–462, Nov. 2013.
  37. [37]M. Shaker, M. H. Sarhan, O. A. Naameh, N. Shaker, and J. Togelius, “Automatic generation and analysis of physics-based puzzle games,” 2013, pp. 1–8.
  38. [38]N. Shaker, M. Nicolau, G. N. Yannakakis, J. Togelius, and M. O’Neill, “Evolving levels for Super Mario Bros using grammatical evolution,” 2012, pp. 304–311.
  39. [39]G. Smith, “Understanding procedural content generation: a design-centric analysis of the role of PCG in games,” 2014, pp. 917–926.
  40. [40]V. Wendel, M. Gutjahr, S. Göbel, and R. Steinmetz, “Designing collaborative multiplayer serious games: Escape from Wilson Island—A multiplayer 3D serious game for collaborative learning in teams,” Education and Information Technologies, vol. 18, no. 2, pp. 287–308, Jun. 2013.
  41. [41]K. A. Wilson et al., “Relationships Between Game Attributes and Learning Outcomes: Review and Research Proposals,” Simulation & Gaming, vol. 40, no. 2, pp. 217–266, Apr. 2009.
  42. [42]J.-C. Woo, “Digital Game-Based Learning Supports Student Motivation, Cognitive Success, and Performance Outcomes.,” Journal of Educational Technology & Society, vol. 17, no. 3, 2014.
  43. [43]G. N. Yannakakis and J. Togelius, “Experience-Driven Procedural Content Generation,” IEEE Transactions on Affective Computing, vol. 2, no. 3, pp. 147–161, Jul. 2011.

Thesis Terms: Game Mechanics and MDA

January 13, 2019

Defining Terms for Thesis Research

Focus on MDA Terms

Game – “Type of play activity, conducted in the context of a pretended reality, in which the participants try to achieve at least one arbitrary, nontrivial goal by acting in accordance with the rules” [4] p.1 Mechanics – describes the particular components of the game, at the level of data representation and algorithms [1] – various actions, behaviors, and control mechanisms afforded to the player within a game context [1] – the rules and procedures of the game [2] p. 40 – elements of the game; “rules of the game” [2] p. 138 – methods invoked by agents for interacting with the game world [3] p.1 – “the rules, processes, and data at the heart of a game” [4] p. 1 Dynamics – describes the run-time behavior of the mechanics acting on the player inputs and each others’ outputs over time [1] – “runtime behavior(s) of the game; when players interact with the rules, what happens?” [2] p. 138 Aesthetics – describes the desirable emotional responses evoked in the player, when she interacts with the game system [1] – emotional results generated from the game [2] p.138

References – [1] R. Hunicke, M. LeBlanc, and R. Zubek, “MDA: A Formal Approach to Game Design and Game Research,” p. 5. – [2] Z. Hiwiller, Players making decisions: game design essentials and the art of understanding your players. New York? New Riders/NRG, 2016. – [3] M. Sicart, “Defining Game Mechanics”, The International Journal of Computer Game Research, vol. 8, no. 2, pp. 15, December 2008. – [4] E. Adams and J. Dormans, Game mechanics: advanced game design. Berkeley, CA: New Riders, 2012.

May 22nd, 2018

Research Papers on Procedural Content Generation for Games

Darwin’s Avatars: A Novel Combination of Gameplay and Procedural Content Generation

by: Dan Lessin, Sebastian Risi

Citation: [Lessin & Risi, 2015] D. Lessin and S. Risi, “Darwin’s Avatars: A Novel Combination of Gameplay and Procedural Content Generation,” 2015, pp. 329–336.

Key Terms:

  • Evolved Virtual Creatures
  • Artificial Life
  • Muscles Drives
  • Physics-based Character Animation
  • Procedural Content Generation
Summary

Use evolved virtual creature (EVC) system from Lessin et al. reference to procedurally generate creatures that provided interesting control and locomotion problems. Originally these were piloted by an AI trying to learn how to move, but this “brain” was removed for this paper so that players could run them. Movement was determined by the activation of muscles/actuators between the procedurally generated segments of the creatures. These muscles could range in value from [0, 1], where 0 is fully relaxed and 1 is fully activated. Players would press keys to activate muscles in an attempt to move the creature.

The morphology of the creature was made up of PhysX primitive (cubes, spheres, and capsules). Body in original paper was coevolved with the locomotion system to help ensure that the creature had successful ways to move. The gameplay was compared to QWOP and Incredipede

The conclusions were: novel combination of gameplay and procedural content generation made possible by evolutionary computation, a new way of unique creature control with 3D creatures not created by the user, and game can generate novel control challenges on its own.

Further Sources to Look Into from This:
  • [8] M. Mitchell. An Introduction to Genetic Algorithms. MIT Press, Cambridge, MA, USA, 1998.
  • [15] N. Shaker, G. N. Yannakakis, J. Togelius, M. Nicolau, and M. O’Neill. Evolving personalized content for Super Mario Bros using grammatical evolution. In Proceedings of the Artificial Intelligence and Interactive Digital Entertainment Conference (AIIDE 2012), Menlo Park, CA, 2012. AAAI Press.

Petalz: Search-Based Procedural Content Generation for the Casual Gamer

by: Sebastian Risi, Joel Lehman, David B. D’Ambrosio, Ryan Hall, and Kenneth O. Stanley

Citation: [Risi et al., 2016] S. Risi, J. Lehman, D. B. D’Ambrosio, R. Hall, and K. O. Stanley, “Petalz: Search-Based Procedural Content Generation for the Casual Gamer,” IEEE Transactions on Computational Intelligence and AI in Games, vol. 8, no. 3, pp. 244–255, Sep. 2016.

Key Terms:

  • Collection Mechanics
  • Compositional Pattern Producing Networks (CPPNs)
  • Procedural Content Generation
  • 3-D Printing
Summary

This research explored the use of PCG for a casual, social, collection mechanic focused game. In this research it also explored the effects of PCG on markets for in game economies and translation to real world objects with 3D printing.

The game uses procedural generation along with AI to create an Interactive Evolutionary Computation (IEC) system to create the flowers in the game. The generator is a modified compositional pattern producing network (CPPN) and the evolutionary algorithm chosen was Neruoevolution of Augmenting Topologies (NEAT).

The game focuses on users breeding flowers which can be seen by other players. These other players can “like” their flowers or purchase ones that are put up for sale. Breeding is done by three methods: pollination (allow for natural mutation through a single flower), cross pollination (combine traits of two different flowers), and cloning (simply replicate a flower). The player’s selection of what and how to breed is the interactive part of this IEC system, which allows the user to employ a search-based method of exploring the PCG design space.

To help provide a goal for players, this research also looked into creating a guided categorization system using the inherent properties of the parametric PCG technique used to create these flowers. They took advantage of the fact that this technique can lead to spatial design spaces where objects near each other in the design space will also tend to have similar aesthetic attributes. They explore this further with a Self-Organizing Map (SOM).

May 20th, 2018

Sources to Learn Procedural Generation Techniques for Games

Procedural Generation in Unity

Unity Tutorial: A Procedurally-Generated Galaxy – Part 1 by: quill18creates

Youtube Link to Part 1 of Tutorial

A tutorial to look into for basic procedural generation of a galaxy in Unity. Also has some information on different variable types in C#.

Unity – Cellular Automata Tutorial

Unity Link to Cellular Automata Tutorial

Tutorial directly from unity on the basics of using the procedural generation technique of cellular automata.

May 20th, 2018

Procedural Content Generation in Games

Galactic Arms Race (GAR)

Youtube Link – Evolving Particle Weapons in Galactic Arms Race | AI and Games

by: AI and Games

AI and Games briefly describes how GAR uses evolutionary algorithms to design weapons that the player likes using. The player takes the place of the fitness function to determine what is “good”. Techniques such as CPPN and cgNEAT are lightly touched upon and offer topics to be further explored.

May 19th, 2018

Math for Game Programmers – Talks from GDC – Notes

GDC 2015 – Math for Game Programmers: Fast and Funky 1D Nonlinear Transformations

Presenter: Squirrel Eiserloh

Youtube link to presentation

Notes:

  • Other names used for these concepts in other fields:
    • Easing functions
    • Filter functions
    • Lerping functions
    • Tweening functions
  • Implicit vs. Parametric Equations
    • Implicit: Ex. x^2 + y^2 = R^2
    • Parametric: Ex. Px = R * cos(2*pi*t); Py = R * sin(2*pi*t)
  • Parametric Equations use a single variable (usually a float) as input
  • Opportunities to Use Parametric Transformations
    • Anywhere you have a single float to change
    • Anywhere that could be expressed as a single float
    • Anytime you use time
  • The two most important number ranges in mathematics and computer science are:
    • 0 to 1: Good for fractions and percentages
    • -1 to 1: Good for deviations from some original value
  • These functions are normalized
    • Input of 0 has output of 0, and input of 1 has output of 1
    • The in-between values are those that vary function to function
  • Types of functions
    • Smooth Start: exponential functions with various orders
    • Ex: t^2
    • Smooth Stop: gives opposite feel of smooth start
    • Ex: 1 – (1-t)^2
    • Mix functions
    • Crossfade: mix but “blend weight” is the t parameter itself
    • Scale: multiply something by t; can also multiply functions together
    • Bezier Curves
Other suggested talks:

Juice it or Lose it – by: Martin Jonasson and Petri Purho
The art of screen shake – by: jan willem Nijman vlambeer

Math for Game Programmers – Talks from GDC – Notes

GDC 2013 – Math for Game Programmers: Interaction With 3D Geometry

Presenter: Stan Melax

Youtube link to presentation

Notes:

  • Basic Vector Math
    • Dot product
    • Cross product
    • Outer product
    • Jacobian
    • Determinants
  • Geometry Building Blocks
    • Traingles and planes
    • In games, triangles and planes need to know above and below
    • Triangles use normals
    • Planes use Ax + By + Cz + D == 0
  • Ray-Triangle Intersections
  • Ray-Mesh Intersection
    • Could check against all triangles, but there are ways to remove some for efficiency
    • Need to check if you’ve hit the nearest triangle
    • Mesh must be intact, can have issues if there are holes
  • Convex Mesh
    • Neighboring face normals tilt away
    • Volume bounded by number of planes
    • Every vertex lies at/below every other face
    • Convex used because it makes a lot of tests/calculations simpler
    • If point lies under every plane, it is inside
    • Can move rays as they intersect triangles
  • Convex Hulls
    • Techniques for converting meshes into convex meshes
    • There are two main techniques:
    • Expand Outward – start with small mesh and expand out until all vertices are accounted for
    • Reduce Inward – start with a large mesh and shrink it down to fit all vertices
  • Convex Decomposition: breaking down complex shapes into separate convex meshes
  • Objects in Motion – Spatial Properties
    • Find the center of triangles, then the center of tetrahedrons
    • Find the area of triangles and the volumes of tetrahedrons
    • These properties can be used for basic accurate physics simulations of objects
  • Time Integration without Numerical Drift
    • Forward Euler update versus Runge Kutta update
    • Forward Euler applies derivative at every step, which can give inaccurate results in too large of time steps
    • Runge Kutta looks at multiple time steps and their derivatives and takes a weighted average to make steps more consistent
  • Soft Body Meshes
    • Connect points/vertices of mesh with spring-like connections
    • Two main techniques:
    • Kinematic: can have issues with stressed state oscillating as it will not come to rest, forces continue to act
    • Dynamic: has better resting stressed states that will settle down
  • How to learn more
    • Practice tinkering with your own physics engine code
    • Write gjk algorithm
    • Help understand physics engines and their limitations
May 13th, 2018

Procedural Generation

Unite 2016 – The Power of Procedural Meshes

Unity Talk by Alexander Birke

Youtube Link to Talk

Suggested Reading:

“Essential Mathematics for Games – A Programmers Guide” by James M. Van Verth & Lars M. Bishop

Links to examples to learn about procedural generation of meshes
Notes from talk:
    Why use procedural meshes?

  • Player Made Content (Ex. Spore)
  • Unique Mechanics (Ex. Gish)
  • Procedural Generation (Ex. Sir You’re Being Hunted)
Unity Procedural Meshes
  • Mesh starts by creating vertices, and then making triangles from those vertices
  • Components Needed:
    • MeshFilter – stores the mesh
    • MeshRenderer – shows the mesh
    • Script – to generate the mesh
  • Normal vectors used to determine surface orientation
  • Colors
    • Used to be determined by assigning values to vertices
    • Can be used to provide more information to vertices still
    • Can be done as bytes or floats
    • Bytes generally better
  • UVs
    • 2d coordinates for each vertex
    • Used to map textures
    • Create vector2d array to assign to mesh object
  • Setting Trangle Indices
    • Most difficult part
    • Find common features of topology that repeats
    • Draw it out to help find these patterns!
  • Delaunay Triangulation
    • Maximizes angle of all angles of triangles in triangulation
    • Good for GPU rendering since skinny triangles can lead to visual artifacts
    • Port of triangle.net can be found in an above link
  • Debugging Procedural Meshes
    • Very important to do
    • Use Gizmos and Debug classes
    • Rotate camera to check if tris are facing correct direction
    • Turn on wireframe rendering
  • Optimizing Meshes
    • StaticBatchingUtility: batches multiple game objects together into fewer drawcalls but where each can still be culled
    • Mesh.CombineMeshes: Puts many meshes into one, good if individual meshes not likely to cull, but can break things if not done carefully
  • Optimizing Dynamic Meshes
    • Mesh.MarkDynamic: allocates a memory buffer of sorts to designated mesh to let graphics API know mesh data will change often
    • Base data structure to store data in is flat arrays when possible
    • Lists can be used too, especially if you are unsure how many vertices you will need before creating mesh
    • Frustrum Culling
    • Skinned Meshes
  • Multithreaded Mesh Generation: Unity API not thread safe
  • Compute Shaders
    • GPU great for running parallel tasks
    • Only available on modern platforms: PS4, Xbone, DirectX 11, OpenGL 4.3, OpenGL ES 3.1
    • Unity can cross compile with these options
Summary

Procedurally generating a mesh starts with creating vertices, and then triangles from these vertices. Normals and UVs can be added to this data for more informed meshes. In Unity, your mesh will need a MeshFilter and MeshRenderer component. Debugging your mesh is important, and some tools in Unity to help with that are the gizmo and debug classes, moving the camera around, and turning on wireframe rendering. There are also several options to look into to either optimize your existing meshes how they are, or compute them more efficiently.

More to Research
  • Bezier Curves: parametric mathematical curves used commonly in generating computer graphics
  • Use of GPU to do parallel calculations, and how to connect that with Unity scripting
  • Thread and Multithread Mesh Generation: Not sure what this actually meant
  • Computing shaders
  • Talk through Unity by “Sir You’re Being Hunted” on 3D Mesh Generation