Puzzle Research - Hawthorn-Games/ProjectScrapped GitHub Wiki

Overview

This page serves as a guideline for the creation of puzzles as described in the Puzzle Design and using the puzzle elements.

Rabbids Coding

  • Puzzles in Rabbids Coding are incredibly basic in layout and require the player to build very simple logic. The puzzle in the image below is the fourth one before the end of the game and simply teaches the player to check for conditions instead of doing actions every time using if statement. image|900
Point of Advice Takeaways Uses within our Game Requirements
The Goal should be clear The player should never try to figure out what do to, but how to do it We need to avoid making obscure and specific solutions to puzzles Pre-Coding Golems can help: the player knows what golems need to do and needs to figure out how to make them efficient. Testing is vital
The Catch and Revelation Good puzzles have "logical contradictions" that trick the player into a wrong assumption and require them to shift perspective and have a revelation Our puzzles should require more than just mechanical execution: how can we trick the player? The use of red-herrings is helpful in this situation, but a lot boils down to smart positioning of objects
Lure the player Using a catch to lure the player gives them a starting point, even if wrong We can pre-code golems with wrong code blocks, or play with the placement of objects to make the player think of the wrong solution The lure should steer the player towards the right solution, not entirely off-track
The presentation Put extra care into how you first present the puzzle to the player as that goes a long way into how the puzzle feels to solve Objects should be placed in such a way that the solution of the puzzle is not given away Getting this aspect right also requires extensive testing
Wrong assumptions should be made clear You don't want to make a wrong assumption feel right because the player might convince themselves that the solution is closer than it actually is. Feedback should be clear on how close to the solution the player is Again, extensive testing
Point of Advice Takeaways Uses within our Game Requirements
Mechanic, Rule, Consequence, Puzzle Every puzzle game starts with a set of mechanics that define rules, which in turn give life to consequences (emergent behaviour) that create puzzle. Jonathan Blow explores these consequences early on in development and lets puzzles "design themselves" We should take our time to put together wacky combinations of objects in whitebox tests to see what puzzles they give life to Wait for implementation of standard mechanics to be final
"I understand" The goal of each puzzle is to make the player understand a concept or notion Every puzzle should have a purpose, a new lesson to teach about programming: nesting, repeatable behaviour, conditions and so on
Notion Takeaways
Computational Thinking Computational Thinking is the ability to do computational problem solving, the recognition of patterns in problems and the elaboration of sequences of instructions as solutions.
The three core steps of Computational Problem Solving Formulating the problem (Abstracting and representing problems in computationally meaningful ways), generating or building algorithmic solutions and testing and debugging (iterating to approach a more effective solution)
The key concepts of Computational Thinking "Abstraction, automation, simulation, evaluation, algorithm building, conditional logic, debugging, decomposition, problem analysis, distributed computing and effective teamwork"
Games for Computational Thinking Games are problems to solve in nature and therefore are omptimized to adopt problem-solving srategies. Some games, like CodeCombat and Scratch, try to teach Computational Thinking directly.
Why do some games fail at explicitly teaching Computational Thinking? First of all if the game is not intentionally designed to help Computational Thinking patterns to emerge these won't be clearly identifiable and second most players utilize their tacit knowledge unintentionally when playing and fail to abstract it into reusable problem solving patterns.

Map of Computational Problems Solving core steps to Computational Thinking concepts

Computational Problem Solving component Computational Thinking Concept
1.Identify and formulate problems Pattern recognition, data representation, abstraction, generalization, decomposition
2.Build algorithmic solution functions, variables, parameters, loop, making & remixing etc.
3.Test & Debug debugging, tinkering, iteration, etc.

The Design Framework: How to teach computational thinking

To cultivate the player's Computational Thinking designers should provide players with a problem to inspire them to become a problem-solver, and make sure the problem can be represented abstractly and formulated by players. The Design Framework does so by establishing concepts to consider when working on a Computational Thinking Game, detailed in the table below.

Notion Takeaways Uses in our game
Meta-Gaming In Computational Thinking teaching games, game designers ought to keep the players separate from the game characters, and make them feel as they are there only to solve problems rather than a character who is part of the problem. Therefore a small game, acting as the problem to be solved, is nested inside a larger one We take a slightly different approach in this as Inley is still the player's avatar, but she functions as a vessel for the player to execute programming through Engine Mode
Abstraction The problem in the "small game" should force the player to abstract it: the player needs to be able to think about the puzzle in terms of a set of parts that need to be manipulated Puzzles should be abstracted from the game world, not concrete problems for the player to solve
Teaching directly Players should directly engage with the educational content so that they consciously process and reflect on their experience We might need to make the learning outcome of each puzzle more explicit than most games do
Encapsulation Since coding can be too advanced (or just too inapproachable) for young people, the goal for designers is to link algorithmic solutions to in-game challenges with encapsulation so that players are able to comprehend concepts such as functions, variables, parameters and remixing without the frustration of learning syntax, advanced concepts etc. and can focus on the logic problem We clearly do this in our game with Code Blocks: the player only needs to worry about the logic of Ifs and For, actions are already incapsulated into Code-Blocks. We might bring the game to the next level by allowing the player to go to a deeper level and program more complex mechanics
New Game Plus The game should encourage the player to rething and redesign more efficient solutions We are try to get this done with the Puzzle Design#Efficiency Score

The Final Computational Design Framework

image

⚠️ **GitHub.com Fallback** ⚠️