Making ecology learning fun through videogames
Jens Vanderhaeghe
CSC 895 - Culminating Experience Report
12/15/2016
Outline
- Ecology Learning
- What is World of Balance?
- Overview of minigames
- Project Timeline
- Technical achievements & work
- Team Lead
- Git & Github
- Code Styleguide
- Wiki
- Improved deployment
- Improved software architecture
- Android Version
- Lessons Learned
- Conclusion
Ecology learning
- Can be frustrating for kids
- Hard to stay focused
- Time Consuming
- Easy to get distracted
- Not interactive
Video Games
- Extremely popular medium
- Interactive
- Kids love games
- Rich audio and visual experience
- Collaborative
World of Balance
- Simulation of Serengeti Ecosystem
- Based on real simulation data
- Multiplayer
- Fun is the first priority
- Technical
- Based on Unity
- Servers in Java
- using ATN Simulation Engine
World of Balance
6 minigames
- Clash of Species
- Running Rhino
- Don't Eat Me
- A Sea Divided
- Convergence
- Cards of Wild
- Connected by Central Lobby
Lobby
- Central Home location
- Where users join minigames
- Users buy and maintain tiles
- Environment score based on real simulation data
Features
Central Chat System
Store: Buy animals & plants
Clash of Species
- Based on Clash of Clans
- Multiplayer 3D game
- 3 phases
- Attack Setup
- Defense Setup
- Battle
Gameplay
- prey & predator relationships
- Strategic
- Rewarded for studying relationships
- Plants for defense
Don't Eat me
- Singleplayer
- Plants vs Zombies
- Match Prey & Predator
- Short
- High Satisfaction
- Easy to learn
Gameplay
- Predators move from right to left
- Match predator with prey
- Defend your plants!
- Real foodweb relationships
The game uses real animal relationships
Defend your plants by feeding predators in time
Cards of Wild
- Based on HearthStone
- Cards Game
- Multiplayer - 1 VS 1
- More complex
- Competitive
- Rewards Strategic players
Gameplay
- Turn Based
- Rock / Paper/ Scissors
- Real strengths and weaknesses
- Knowledge and strategy is rewarded
Gameplay
- Destroy opponent Tree of life
- Each card or attack has a cost
- spend "Mana" to use cards
- Must spend Mana wisely
Running Rhino
- Infinite Racer
- Up to 4 players
- Very easy to learn
- Animals have different
- Speed
- Agility
- Strength
- Based on real animal data
A Sea Divided
- Underwater game
- Multiplayer
- Competitive
- Underwater ecosystem
- Rich 3D Graphics
Gameplay
- 180 seconds rounds
- Eat as much fish as possible
- Beware of the predator
- And your opponent!
- Strategy rewarded
- Lure predator to opponent
- Study fish relationships
Convergence
- Fully Science Based Game
- Backed by ATN Simulation Engine
- Single- and Multi- Player
- Results contribute to research
Gameplay
- Goal: "Converge" graphs
- Start Graph
- End Graph
- Sliders: modify biomass
- Closest player wins
- Lots of information to study
- Realtime results
- Foodweb with relationships
Improving Fun Factor
- Convergence was "boring"
- Lots of graphs
- Lots of data
- Not rewarding
- Solution
- Introduced betting system
- Competitive
- Rewards Strategy
- Graphical
- Introduced betting system
Project Timeline
Spring 2016
- Class with 35 students
- Team Lead and Project Manager
- Introduction of Git
- Clean-up of existing codebase
Fall 2016
- work in Small group of Master's Students
- Fix bugs
- Prepare for release
- Tests with focus groups
Problem Statement
- Very Large codebase built over the years
- Different programming styles and methods
- No source control
- Technical
- Lack of documentation
- Many hidden bugs and features
- 35 students
- Not everyone is familiar with Unity
- Varying levels (undergrad and Master's)
Team Lead
- CSC 831: Multiplayer Game Development
- 35 students
- Different skill-levels
- Different backgrounds
- Different interests
- Very large codebase
- Limited timeframe
Git & Github
- Allows all students to collaborate
- Issue tracking
- Fixing Merge Conflicts
- Full history of all changes
- Allows parallell development of features using branching
Code Styleguides
- Uniformity across all code
- With 30+ developers
- Rules are required
- Everyone must make concessions
- Improved readability
- Improved maintanance
- must be enforced!
Wiki-page
- Central
- Easy to maintain
- Easy to update
- Everyone can contribute
- Huge success: over 40 contributors!
Improved Deployment
Old Server Deployment System
- Manual
- Error Prone
- Server would constantly go down
- No roll-back
- Hard to maintain
- Hard to track bugs
Continuous Deployment
New Architecture
- Every Server is now standalone
- Improves reliability
- Improves redundancy
- Improves maintainability
- Reliable data-flow
Android version
- Mobile is a massive platform
- Android is the biggest mobile platform
- Basic version of World of Balance for Android
- Clash of Species
- Lobby
- UI Improvements
- Optimise for touch
Lessons Learned
Teamwork requires rules & coordination
-
Developers with different skill levels
- Developers with different levels of passion towards the project
- Code Styleguides increase overall productivity
- Source control & branching improve collaboratoin
Failure to meet a goal does not fail the project
-
Large project
- Always re-prioritize
- Beware of scope creep
Automate repetitive tasks
-
Large project
- Always re-prioritize
- Beware of scope creep
Lessons Learned
Games should be fun in the first place
-
Nobody wants to play games that are not fun
-
You have to keep the attention of the player
-
Create mechanisms so players come back
-
Make games competitive
Avoid too much complexity in games
-
Complex games are hard to learn
-
adhere to "easy to learn" - "hard to master"
Presentation and sound matter
-
Sound effects increase immersion
-
Great visuals improve learning
-
Use a clear and consistent style across the entire project
Conclusion
- Great Project with a lot of variety
- Learned a lot
- Games
- Ecology
- Software Engineering skills
- Teamwork
- Personal skills
- Special thanks to:
- Dr. Yoon
- Dr. Kulkarni
- David Hoff
- Abhilash Shrivastiva
- All developers
Questions?
World of Balance
By Jens Vanderhaeghe
World of Balance
- 908