Aaron Bloomfield BUILDING A SUSTAINABLE ENERGY SYSTEM GAME 1 INTRODUCTION 2 Overall Goal To allow people to understand the concepts involved in energy production as well as the trade-offs involved through the use of a fun game An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Inspiration (image from here) An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Inspiration (image from here) An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Architectural Requirements The architecture of the game was defined by two major precepts: 1. 2. We wanted to be able to log everything the players did for later analysis We wanted to be able to make frequent changes to the various game settings This meant that the players played a network game, where their every move required the network to make the move and determine the results An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Architecture The game consists of four main components: • • • • The graphical client (Windows, Mac), which is the only parts a player sees The web service, which contains the methods that the client calls (such as set_game_settings(), start_game(), etc.) The simulation, which was written in C++ to allow for fast execution The web client, which allowed the game developers to quickly modify the settings An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Game Overview After selecting the map and/or scenario, play begins. The game is turn-based; on each turn: • • • • The player makes any moves s/he desires The player clicks “end turn”, and the game map is updated with the results The player is notified if s/he reaches any of the game goals Repeat An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm MAKING GAMES FUN 9 What is Fun? • • • Dictionary: A source of enjoyment, amusement, or pleasure • But that doesn’t help us design games… Important to consider underlying reasons “Funativity” – thinking about fun in terms of measurable cause and effect An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Evolutionary Roots • • • • • • • We must look to our distant evolutionary past Young mammals play to learn basic survival skills • Games are organized play Human entertainment is also at its heart about learning how to survive Mating and social rules also critical to us Life is all either work, rest, or fun Fun is about practicing or learning new survival skills in a relatively safe setting People who didn’t enjoy that practice were less likely to survive to become our ancestors An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Hunting and Gathering • • For most of our species’ history we were tribal hunter/gatherers Current popular games reflect this • Shooters, wargames = hunting • Powerups, resources = gathering • Sims, MMO = social, tribal interaction An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Natural Funativity Theory • • • The basic concept of funativity is that all fun derives from practicing survival and social skills Key skills relate to early human context (from the previous slide), but often in a modern guise Three overlapping categories Physical, Social, and Mental An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Physical Fun • • • • • Sports generally enhance our strength, stamina, coordination skills Exploration is fun Both of local area and knowledge of exotic places Hand/eye coordination and tool use are often parts of fun activities – crafts Dancing, sort-based, and activity-based games • Wii sports, for example Physical aspect to gathering “stuff” An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Social Fun • • • • • Storytelling is a social activity A way to learn important survival and social lessons from others Gossip, sharing information with friends is popular Flirting, showing off, finding mates is a key interest in social fun Language has become paramount Sims, MMORPGs, interactions in single-player games, team-based games An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Mental Fun • • • • • Our large brains make humans unique Pure abstract reasoning practice is fun Pattern matching and generation Music, art, and puzzles are all pattern based Gathering also has mental aspect, categorizing and identifying patterns Examples: tetris, chess, go, etc. An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Multipurpose Fun • • • Many fun activities have physical, social and mental aspects in combination Games that mix these aspects tend to be very popular Incorporate ways to practice these skills to increase the popularity of games An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Definition of a Great Game • • • • A great game is a “series of interesting and meaningful choices made by the player in pursuit of a clear and compelling goal” Must have choice, or it is not interactive Must be a series of choices or it is too simple to be a game Must have a goal or it is a software toy • Some games, such as the Sim/Sims lines, the players may bring their own goals An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Interesting and Meaningful Choices | Clear and Compelling Goal • • • • • • Choices may be dull and uninteresting because it was easy to code that way • Or it may be the reflection of a lazy designer Meaningful choices are perceived by the player as having significant consequences • May not have actual consequences… Clear goals, as it is not fun to flounder aimlessly Avoid the “protagonist with amnesia” cliché Compelling goals are goals that follow the concepts in Natural Funativity Survival is always a compelling goal An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm ENERGY GAME CONCEPTS 20 Scenarios A scenario allows the user to have a goal in the game • • • Given an existing population with power generation, “upgrade” it in some way (convert to green, eliminate one type of power, etc.) Given a “colony” (one square of population), guide it’s development and population growth Given a large population and no power, find the “best” way to power that area, given various constraints An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Commodities A commodity is a “thing” in the game • • • • • • • Fossil fuels: coal, gas, or oil Nuclear products: uranium ore, refined uranium, spent fuel rods Energy: sunlight, AC power (of various voltages), DC power Waste products: ash, trash, Pollution: CO2, NOx, SO2 Water: tides, water flow Naturally occurring: O2, uranium seam, coal seam An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Processes A process converts one (or more) commodities into one (or more) other commodities • • • Coal combustion converts oxygen and coal into heat, CO2, Nox, SO2, particulates, and ash Nuclear fission converts enriched uranium into spent fuel rods, electrical energy, and heat Steam turbine power conversion converts heat into electrical energy and (yet more) heat An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Stations A station allows one or process to occur • • • • A coal mine allows for coal extraction A coal plant with water evaporation cooling allows for (1) coal combustion, (2) cooling via water evaporation, and (3) steam turbine power conversion A nuclear power plant allows for (1) nuclear fusion and (2) steam turbine power conversion A garbage dump allows for disposal (storage) of ash An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Sources and sinks Some stations and processes are sources, in that they only produce a commodity. Examples: solar power collector Other stations and processes are sinks, in that they only consume a commodity. Examples: garbage dump, uranium storage facility Most stations convert one (or more) commodities into one (or more) other commodities An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Coal Energy Production To generate energy via coal: • Find a coal seam, and build a coal mine on it • • Build a coal plant • • • This allows for conversion of the coal seam to coal The coal from the coal mine, magically transported, is burned to produce energy The energy is magically transported to the population that needs it Profit! An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Magical transportation? One of the eventual goals was to allow for commodity transportation: • • Power lines transport electrical energy Transport lines and vehicles transport physical commodities (coal, etc.) The intent is to require these to be built, and their capacity can limit how much a coal plant can produce They are not implemented yet… An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Uranium Production To generate energy via uranium: • Find a uranium seam; build a uranium mine there • • Build a uranium refinery • • • Converts uranium ore to enriched uranium Build a nuclear power plant • • Converts uranium seam to uranium ore Converts enriched uranium to spent fuel rods, energy, and heat Potentially find where to store the spent fuel rods Profit! An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Game flexibility Many of the values in the game are provided to the client each time it starts up • • • The list of commodities, and their prices The list of processes, and how much they consume and produce The list of stations, and what processes they allow This allows easy changing of these values An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm GAME MAPS 30 Map Generation: Random Maps The goal was to allow for randomly generated maps that approximate a real world (image source) An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Map Generation Random map generation is surprisingly hard! And it turns out that many people want to play with known maps. Which leads us to preset maps Preset maps allow the user to choose a known area to work in An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Map Generation: Preset Maps An actual screenshot of the client… An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Map Generation: Preset Maps This is a visualization of the map, not what the client shows The different colors are the different terrains; only terrain is shown in this map An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Map Generation: Preset Maps The map is squashed, left to right, due to the fact that this was a square map that was generated An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Map Generation: Preset Maps Where is this? An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Map Generation: Preset Maps Where is this? An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Map Generation: Preset Maps Where is this? An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Map Generation: Preset Maps Where is this? An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Map Generation: Complications Random map generation is hard! Energy production requires other map values, generating these adds additional complications. • • • Wind speed Average temperature Average cloudiness These are called layers in the map; a typical map will have 30 (or so) layers An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Map Generation: Layers This view is meant for the game developers, not the players… An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Map Generation: Layers In addition to terrain, this shows 4 more layers An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Map Generation: Preset Maps This shows 8 more of the layers An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Map Layers • • • • • • • • • • Terrain Rivers Resources Temperature Precipitation Altitude Population Improvements Cloudiness Power demand • • • Power supply Wind (direction and speed) Seasons (other layers exist, but are not all that relevant right now) An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Icons We hired a digital artist to create icons for the game These icons are the various things you see in the map An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Maps: Tiles Power lines, railroad tracks, and roads An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Maps: Tiles Forests, plains, and hills An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Maps: Tiles Mountains, rivers, lakes, other terrain types An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Maps: Tiles Improvements and buildings An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm GRAPHICAL CLIENT 50 Client The goal of the client was to allow playing on multiple platforms; currently only Mac and Windows are supported The design was done in such a way to eventually allow for mobile based games An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Client screenshot An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Client screenshot An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Client screenshot An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Client screenshot An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Client screenshot An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Client screenshot An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Client screenshot An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm OTHER SYSTEM COMPONENTS 59 Web service The client is “dumb” – it doesn’t make many decisions by itself Instead, it contacts the web service, which then records the data and makes the decisions It’s written in Java, and runs on the Apache Tomcat server An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Sample web service methods • • • • • • • registerAnonymousGame() getRuleSet() setGameSettings() getMap() startGame() • getMap(), again • getHistory() • sendChanges() endTurn() endGame() An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Simulation The simulation runs after each turn, and is written in C++ for speed For each run of the simulation, each station runs to capacity, which can be limited by supply as well as how much it can “burn” After effects, such as pollution and depleted resources, are computed as well, and the map is appropriately updated An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Web client The web client is an interface for the game maintainers to add and edit the game settings Examples: stations, processes, vehicles, commodities, etc. An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Artificial Intelligence The ability for a computer algorithm to play the game This aids in testing as well as load balancing This is a new development (this semester), and is expected to be up and running next semester Can you beat Skynet? An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm CONCLUSIONS 65 Features to be added • • • • • • Transportation routes (power lines, train tracks, etc.) and vehicles Government interactions Popularity (powered citizens are happy) More accurate layer generation Random map generation Ability to “store” power in some fashion An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Features we probably won’t add Too much government interaction! Power plant construction, especially nuclear plant construction, details with a HUGE amount of governmental red tape Nobody likes dealing with this in the real world, so why do this in the game? An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Complications We ran into a number of problems developing the game • • • The technology chosen for the webservice was very unstable, and caused many issues The complication of having the game always contact the network added a lot of additional complexity The framework used for the client was, in hindsight, not the best choice An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Current Status The game is almost playable; just a few bugs to work out. Then there is a lot of game balancing to perform There are two students working on it during the spring, so we expect to have this version working soon. An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Questions? Ask away! An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm Credits / Acknowledgements Some materials used in this class were developed under a National Science Foundation "Research Initiation Grant in Engineering Education" (RIGEE). Other materials, including the "UVA Virtual Lab" science education website, were developed under even earlier NSF "Course, Curriculum and Laboratory Improvement" (CCLI) and "Nanoscience Undergraduate Education" (NUE) awards. This set of notes was authored by John C. Bean who also created all figures not explicitly credited above. Copyright Aaron Bloomfield (2015) (However, permission is granted for use by individual instructors in non-profit academic institutions) An Introduction to Sustainable Energy Systems: www.virlab.virginia.edu/Energy_class/Energy_class.htm