Video Game Scripting Engines

As part of our outreach activities through the Iowa State IT Adventures program, we have developed several video game scripting engines. Our goal is to introduce programming and computational thinking concepts to students in 6th through 12th grade who are unfamiliar with programming. Instead of bogging students down with syntax, compilers, and debugging, our engines are an attempt to provide a more entertaining first programming language experience. We've created 4 games to date and are always looking for new project ideas.

During outreach sessions, we introduce the concept of game scripting to student teams. The students are given some time to familiarize themselves with the (very simple) syntax in order to come up with a strategy for the game they are assigned. When syntax errors are found, the error messages in the system are designed to clearly point out where the error has occurred, so that students can focus more on their game strategy. Through this process, the students are strengthening their computational thinking skills. We have observed that students quickly learn that writing code for all team players individually does not result in a competitive match, but requires a mixture of collaboration and parallel programming to be competitive in a short amount of time. The need for more advanced control flow semantics are also motivated, since students must rewrite similar code for performing similar routines throughout the game simulation.

Dodgeball

Dodgeball

In 2010 we developed Dodgeball, in which the teams are given 25 balls to share among each other that are to be virtually "thrown" at the other teams. The scripting language accepts initial placement commands, as well as configurable throw and catch commands. If a team member is hit with a ball thrown by a member of an opposing team, or a member of the opposing team catches a ball that they have thrown, then they are out and the opposing team gains a point. If a student hits a player on their same team, then their team loses a point. Students must strategically utilize every player on their team in order to score the most points.

Download: Instructions, Source

Boomtown

BoomTown

In 2011 we released Boomtown, a Bomberman-style 4-team scripting engine. Each team has four players that have a certain number of bombs that can be dropped. If a player is hit with a bomb, then they are out. Four teams consisting of four people each are in four corners of a symmetrical map, and the scripting commands direct player configuration and movement. If a player is hit by a bomb, then that player is out and the opposing team scores one point; however, if a player hits someone on their team, they lose a point. Students must come up with a strategy in order to get the most number of points and win.

Download: Instructions, Source

FuriousFowl

FuriousFowl

In 2012 we created Furious Fowl, a game based off of the popular Angry Birds app. Each team has a target on their side of the field that the opposing team can hit with birds. Depending on the region of the target that is hit, the opposing team can gain up to 5,000 points. Each team can choose different types of birds to launch at their opponent, some of which have special actions, at various weights and various costs. Each team can also build up defenses around their target with various types of materials at various costs. Once each team runs out of birds, the team with the most points wins.

Download: Instructions, Source

FloraVsUndead

FloraVsUndead

For the 2013 competition we created Flora vs the Undead, a game directly inspired by the Plants vs Zombies game. Each team has to protect their side of the stadium from a zombie attack. Using a variety of user-selected and scriptable offensive and defensive plants, each team can defeat the zombies to gain points, or route zombies to another team's side to overwhelm their defenses. Once the zombies are all defeated (or have successfully made their way to the stadium), the team with the most points wins. This is our first scripting engine to support basic looping structures for more advanced strategies.

Download: Instructions, Source

FableOfZelma

FableOfZelma

Our most recent engine is called The Fable of Zelma, which draws its inspiration (and art resources) from the famous Legend of Zelda series. Each team has a series of rooms to traverse using a variety of adventurer characters with different abilities, strengths, and weaknesses. While doing so, their goal is to avoid traps, defeat enemies, and collect coins. The team with most points at the end of the round wins. This scripting engine contains a similar depth of complexity to the previous iteration, with the main difference being that competitive strategies will need to use the more advanced scripting features.

Download: Source


References