Filament Games Project: TVO mPower

Posted: January 15th, 2018 under Filament Games, HTML5, Project, Students, Typescript.

mPower is designed to teach fundamental K-6 math skills while learning about Ontario’s communities and environment. This experience combines both learning and practice with adaptive difficulty and just in time scaffolding that adapts to individual students’ needs. Activities present real world challenges giving students a new perspective and motivation for math skills.

TVO
TVO
TVO
TVO

Minimum spec devices were iPad generation 4. Multiple game releases and updates over a non-consecutive 15 months of development, we were contracted for two expansions after the initial round of development. I wrote the over-world that integrates with 14 minigames to complete quests. In order to complete all of the minigames, their development occurred in parallel, including some TVO development resources. This project won a serious play award in 2017. TVO is part of the Ontario government that serves their school system. You can read about success stories from our users here.

Built with HTML5 Canvas, Adobe Animate, Phaser, Typescript, PIXI

Technical Accomplishments

  • This was a new platform for Filament Games, we had to spend a healthy amount of time in pre production determining art budgets to build a high quality HTML5 game that runs on iPads.
  • A critical problem to solve was reusing art to keep RAM memory low, but also not having too many objects in a scene to balance CPU usage – and the memory spike associated with creating art objects in HTML5. The world is made of small reused tiles, scene instantiation is distributed over time, and then there is post processing of the scene where the small tiles are then baked into larger chunks. Culling also had to be written for objects out of camera view.
  • Scene support in general is missing from this tech stack, scene loading / unloading and asset management had to be hand written.
  • There is an extensive avatar creator, avatar items are a big reward in the experience. There is a large constant cost to rendering any object in HTML5 regardless of size, making characters the most expensive assets to manage in the game.
  • Under the hood, there is an extensive gating system that was heavily leveraged. You can write a “lock” object against virtually any metric in the game – quest status, player currency, buildings built, conversations the player has completed, points earned in a minigame, even other locks. Quest objectives, buying items from the build menu, and the tutorial all use lock objects. The entire progression of the game is defined by locks.
  • We never had to write patch code despite game updates and expansions. The data we chose to persist was what the player experienced – what they built, who they spoke with, the “raw data” of the game. Lock state was always resolved at run time against what the player experienced, so they could be edited and rebalanced after launch.

Educational Game Disclaimer:
I love making educational experiences; however, as many of the products I build are not commercially available it has made it much tougher to share my work.

I’ve jumped through some contractual hoops, gotten approval, patiently waited out some clocks, and put together some materials on my own. If something feels obviously left out, odds are I cannot talk about it.

TVO
TVO
TVO
TVO
TVO
TVO
TVO
TVO
TVO
TVO

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment