This is the research & development blog for Emily and Andy's game, Functioning Roller Coaster. Made for the 2019 Research Opportunity Program at Department of Computer Science, University of Toronto. We hope to create a successful and engaging learning tool for high school students about graphing functions.
Don't wanna be here? Send us removal request.
Link
Link to the playtester survey that we will be using for our final playtesting session next Monday.
0 notes
Text
Final Changes
We have made the executive decision to not include the cutscene, as there is no quick fix to the compatibility error and we would rather avoid the possibility where the rest of the game will not run.
Added Credits scene.
Implemented skip tutorial button for both tutorials.
Fixed bug where quit game button in pause menu doesn’t function.
Last two levels in Chapter 3 and Chapter 4 were displayed incorrectly at the top of the screen. Please refer to the functions in the design document for the correct equation.
Turned down music volume.
0 notes
Video
youtube
Shown here is a preview of term definitions you can access in the dropdown information for each function.
0 notes
Text
Week 13 Implementation Plan
ACTION ITEM: Trash icon to erase all tracks in level needs prompt.
ACTION ITEM: Implement curve drawing tutorial for Chapter 2.
ACTION ITEM: Fix bug where cursor during editing tool is doubled. You can see the "editing cursor" and the computer-generated cursor.
ACTION ITEM: Increase coin count based on the stars you gain when passing the level. Right now, in-game money is stuck at 3 coins.
ACTION ITEM: Implement viewing of definition when you click on the term in dropdown info for function.
0 notes
Text
Term definitions provided to player in the game
Slope: The slope is defined as the ratio of the vertical change between two points, the rise, to the horizontal change between the same two points, the run. The slope of a line is usually represented by the letter m. (x1, y1) represents the first point whereas (x2, y2) represents the second point.
x-intercepts: X-intercept is the x-coordinate of a point where a line, curve, or surface intersects the x-axis.
y-intercepts: Y-intercept is the y-coordinate of a point where a line, curve, or surface intersects the y-axis.
Reflection: A reflection of an object is a 'flip' of that object across a line.
Vertical shift: A vertical shift is when the graph literally moves vertically, up or down. The movement is all based on what happens to the y-value of the graph. The y-axis of a coordinate plane is the vertical axis. When a function shifts vertically, the y-value changes.
Horizontal shift: Horizontally translating a graph is equivalent to shifting the base graph left or right in the direction of the x-axis. A graph is translated k units horizontally by moving each point on the graph k units horizontally. Definition. For the base function f (x) and a constant k, the function given by.
Stretch: A stretch in which a graph is distorted horizontally or vertically.
Amplitude: The Amplitude is the height from the center line to the peak (or to the trough). Or we can measure the height from highest to lowest points and divide that by 2.
Period: The Period goes from one peak to the next (or from any point to the next matching point).
0 notes
Text
Linux Test
During today’s testing at the CDF lab, we discovered that the video player was not compatible and the cutscene refused to run. As a result, the cutscene blocked the rest of the game from being played.
Once we disabled it, the game and all its functions worked as anticipated. To fix this issue, we will either have to fix the compatibility error or remove the cutscene entirely to prevent any future hurdles during our upcoming playtesting session.
0 notes
Text
Week 12 Guest Feedback
Adam Robinson-Yu:
First chapter was long
No correlation between function and graph
Have a preset parabola to stretch and move; coefficients change as function changes
Elias Adum:
Skip tutorial after play tutorial first time
During camera zoom, preview tracks of other levels
For the quadratic curve, just use one curve point in the middle of the track
Put X (close) for dropdown at the top right (coloured to make it brighter)
Jim Hewitt:
Connected chapters
Hunter Forsythe:
First chapter gets the player used to controls
Extra power-ups to make more gamey
More flushed out hint system (partial reveal)
Andrew Thanh Ta:
When you draw a linear line, show one down one up (show calculated slope)
When new coefficients arise, relate function to coaster you’re building
When dropdown opens, make the player click on dropdown so they are forced information
Make sure fraction and decimal points in slope are the same to make player easier to relate
Check mark for when you complete slope first and then when you do shift
Set grid so that there’s more room for the player to build the track
Grant Hutchinson:
Connect levels from the previous level and ride coaster (change function that you are on as you preview video)
Button to change slope and x-int
F(x) -> y
Steeper functions make you go faster
Get to high enough y-value to go this fast and then determine the slope
Pick up and drag track
Lindsey Poad:
Colour rise/run when building function to show slope
Circle around x-int
Click again to delete the track
Expand room for track building
Missing piece/fix track (cos/sin) repair track so it’s shorter
Prompt before resetting with garbage can; change garbage can icon -> reset icon
Click on what you want to delete and then erase
Sandbox mode
The overarching feedback from all our guest playtesters was that while the game mechanics and visuals were very appealing, there was a lack of connection between the mathematical function and the roller coaster you ended up building. We plan to address this problem by implementing features that will incorporate our learning strategy.
There were also several unique suggestions regarding the game in general that I would like to outline below. This is not to say we will implement all of them, but rather for convenience of discussion.
Create a preset parabola or curve for the player to stretch and manipulate
Connect the roller coaster tracks you build in each subsequent level to create one giant rollercoaster made from all the levels, which you can ride through.
When the dropdown menu opens automatically at the beginning of the level, leave it open until the player consciously clicks on it so that they can close it and play the level.
Introduce transformations to the function step by step. Once the player completes one step, they must check off a box or reach a checkpoint.
When the player is drawing a linear line, show the slope that they would create as they hover over the grid and decide where to put down the end point.
Introduce a sandbox mode.
Here are concrete action items we will work on implementing this week, as a result of the feedback we received:
ACTION ITEM: Add Skip Tutorial button on Level 1 after playing through it once. ACTION ITEM: Put the X button to close the dropdown menu in the top right. Or make it so that you would click again on the Dropdown button (green; righthand corner of UI) again to close it. ACTION ITEM: Make sure the information in the dropdown menu and function provided is standardized. For example, use entirely decimals or entirely fractions. ACTION ITEM: Move the start and end point so that there is more room for the player to draw their function. This might involve moving the grid based on where the graph would sit. ACTION ITEM: Change f(x) notation to y, since this notation is not introduced until Grade 11. ACTION ITEM: Add a prompt before they clear grid of tracks when they click on garbage can icon and reset everything they have done.
0 notes
Text
Learning Technique Implementation Update
Since Week 10, we have reviewed the feasibility of some changes and made some updates.
Week 11
Structure levels in increasing levels of difficulty and combine transformations as they learn and master them.
Develop more levels for the player to practice the effect of that specific transformation.
Dropdown information for every function detailing its transformations
When you click on a term, the player can use a slider to change the coefficient pertaining to that term and preview how it will affect the function. Depending on time constraints, may not be possible to implement.
New: When you click on a term, you can view its definition.
Create a script that will determine the function the player draws, so that as they manipulate, they can view how close they are to the function they need to draw that is displayed to the top of the screen. Not feasible, especially for non-linear functions. Would take an immense amount of time to implement and ensure there are no problems.
New: When you click on a linear track, track information can be calculated and displayed in the bottom left.
Week 12
Write a script that displays real-time slope as the player hovers over the grid to place the track.
0 notes
Text
FRC Game Level Info for Chapter 2 and higher
https://docs.google.com/document/d/1QqVTHEumKqxsmkJXsiWk2Ehws7cOiqwPVFkwqGLc-j8/edit?ts=5d37da59
0 notes
Link
Dropdown Information per level that details the corresponding transformations that have been applied to the function.
0 notes
Text
Updated Level Endscreen
We decided to update the level endscreen to more clearly reflect the accuracy of the function the player draws. The score and stars they have earned will be pushed over to the left while an accuracy graph will be shown on the right side. The x-axis will be time, as the player “rides” the function they drew and the y-axis will be the accuracy they achieved at that point. At high points of accuracy, the graph will be green, while any significant drops will be red. We believe this will provide more specific feedback to the player, so they can view approximately where they were inaccurate along the x-axis of the graph.
0 notes
Text
Jigsaw/Interleaved Learning
Among the various learning techniques, we chose to incorporate jigsaw/interleaved learning into the second version of our game. Although we had originally chosen feedback as our learning technique, upon further discussion, we felt that we had already integrated some common components of feedback, like our level end screen accuracy, and additional features would be difficult to code. Thus, we switched our focus to jigsaw/interleaved learning, since graphing functions involves combining various transformations.
Research
Interleaved Learning
Improving Students’ Learning With Effective Learning Techniques: Promising Directions From Cognitive and Educational Psychology
Interleaved practice is described in this article as taking place when multiple cnocepts are taught and practiced simultaneously.
It has disadvantages, in that it can be confusing for students that are new to all concepts; however, it has proven to be extremely effective for reviewing already-learned material. This could be instrumental in Functioning Roller Coaster, as many students would have already been introduced to some components of graphs, but not all.
Studies have shown students using interlevaed learning also perform well n tests, since it stimulates the brain to truly understand the various components of a topic and how to apply it, rather than defaulting to a standard method of solvng.
Arya, who conducted research into this learning technique, suggested boss battles and an eample of interleaved learning, as it requires the player to use skills acquired from multiple different levels to defeat a culmulative boss. Our level progression reflects this increasing difficulty and addition of content they’ve learned in previous levels, with the last level of each chapter being a combination of all the transformations that can be applied to that function.
Jigsaw Learning
Jigsaw Strategy as a Cooperative Learning Technique: Focusing on the Language Learners
While jigsaw learning usually is a cooperative strategy involving several learners, we wanted to focus on the core of this technique, which reiterates that individual elements are learned completely before combining them. Studies have shown that this reinforces mastery of concepts and improves motivation in students.
Methods of Implementation
Upon brainstorming and considering suggestions from other people, we came up with a list of all possible ways to implement our learning techniques:
Dropdown information for every function detailing its transformations
Definitions for these terms
When you click on a term, the player can use a slider to change the coefficient pertaining to that term and preview how it will affect the function.
Sandbox mode for players to explore and be creative
Create a script that will determine the function the player draws, so that as they manipulate, they can view how close they are to the function they need to draw that is displayed to the top of the screen.
Structure levels in increasing levels of difficulty and combine transformations as they learn and master them.
Each individual level has a learning purpose and teaches a component for the player to master
Develop more levels for the player to practice the effect of that specific transformation.
“Boss level” at the end of each chapter incorporating everything they’ve learned
Script that displays real-time slope as the player hovers over the grid to place the track.
Here is a priority grid we will attempt to stick to in order to implement as many features as possible:
Week 10
Structure levels in increasing levels of difficulty and combine transformations as they learn and master them.
Each individual level has a learning purpose and teaches a component for the player to master
Develop more levels for the player to practice the effect of that specific transformation.
“Boss level” at the end of each chapter incorporating everything they’ve learned
Dropdown information for every function detailing its transformations
Definitions for these terms
When you click on a term, the player can use a slider to change the coefficient pertaining to that term and preview how it will affect the function.
Continue fixing bugs and incorporate feedback from playtesting
Week 11
Dropdown information for every function detailing its transformations
When you click on a term, the player can use a slider to change the coefficient pertaining to that term and preview how it will affect the function.
Sandbox mode for players to explore and be creative
Create a script that will determine the function the player draws, so that as they manipulate, they can view how close they are to the function they need to draw that is displayed to the top of the screen.
Week 12
Write a script that displays real-time slope as the player hovers over the grid to place the track.
0 notes
Text
Learning Strategy Development Notes
The progress of game development to implement our learning strategy will be recorded here. [Updated July 25, 2019]
Version 0.99G
July 25, 2019:
Implemented the “Accuracy display system” at the end of the level. The player can see a graph showing the changes in their accuracy as they “ride” their roller coaster.
Reinforced sound effects
July 24, 2019:
Minor bugfix: In Level 4, chapter 1, the player was given the wrong function.
Version 0.99E - Demo version for guests from OISE, Uken, & Ubisoft:
July 23, 2019:
Significantly increased shader quality for the game.
Improved track visibility by adding effect.
youtube
Re-implemented tutorial level (i.e. Level A-1)
Fixed a bug where tracks cannot be placed in chapter 3.
Fixed a bug where the camera is extremely bright in chapter 4.
Version 0.99D
July 22, 2019:
Implemented arrow pointing at start/endpoints of the function to make start and endpoints more clear to the player.
Finished implementing the dropdown box under the function, where the player can access additional useful info about the give function.
Partially implemented sound FX
Version 0.99C - ALPHA version
July 17-18, 2019:
Implemented an information display system for tracks. The player from now on can click on a single piece of track to see its properties at the bottom of the screen.
Implemented background music
July 14, 2019:
Implemented portal for Chapter 4. The player can use portals to build discontinuous functions.
Reinforced GUI component for level selection page. The stars on the level selection page are now displayed according to the player’s individual data.
0 notes
Text
Week 9 Feedback
After polishing the main functionality of our game, we received further feedback on our game this week. Here is an outline of the major points we will either investigate further, solve, or taking into account and implement:
At one point, a coordinate could not be clicked? (Look into this.)
Red highlight looks greyed out, make contrast higher
Take out bouncy arrow indicating to press GO! if that button is greyed out when the endpoints are not yet connected
The cursor changes between OS and game cursor when you select something
Suggestion for a textual explanation in earlier levels to teach functions better
Layman's terms of what the function looks like
f(x) is not Ontario notation, change to y
Draw more attention to start and endpoint
Distinguish track and background
0 notes