Teaching Entry-Level Programming concepts to Aspiring CS Majors through RPG Maker VX Games

David Salas- CS Undergraduate Prof. Karen Villaverde - Advisor CS Department New Mexico State University Email: [email protected] Main Campus

Abstract 1 2 The Concept The Computer Science discipline can be intimidating for young students with no prior programming experience. Entry-level concepts such as arrays and for-loops can easily discourage someone from Computer Science if RPG's (Role Playing Games) have very distinct characteristics when compared presented in an unclear/confusing way. This project focuses on using RPG's to other video game genres. They are notorious for having longer game-play to teach aspiring CS students. More specifically, the goal is to convey entry- which focus on aspects like character development and storyline. An important level CS concepts to students through a game called “Code Masters”. benefit of this is that it is easy to become invested in the storyline if it is (created using RPG Maker VX) executed correctly, this is the basis for which this project stems from. The goal is to make an RPG game that is both immersive and educational. This brings to surface some interesting obstacles. Since RPG's are typically longer than most games, it is easy for them to become long-winded and boring if there is to much repetition. I believe the key to overcoming this obstacle is to make sure the game has plenty of variety and an in-depth story-line.

Another obstacle is that educational games can be daunting if the material is presented to quickly. This also has the effect of quickly turning a game into 3 RPG Maker VX something that the user does not find fun. The solution to this problem lies in the manner in which the material is presented. Material should be slowly incorporated into the game in small doses, giving the player time to absorb the RPG Maker VX is an intuitive game development engine created by new material. inc. RPG Maker VX allows the user to control virtually every aspect of the game such as character attributes, abilities, and classes. It also boasts an easy to use interface that is ideal for rapid prototyping and level creation. The ability to quickly create levels and dungeons allows the user more time to focus on storyline and character development, which is ideal for this project. This type of environment allows for creating the “Code Masters” world.

Figure 2: Array lesson given by Code Master

4 The Game

“Code Masters” attempts to incorporate Computer Science terminology and Figure 1: Code Master quizzing player on material concepts into a rich story arc that follows a young aspiring Computer Scientist (the player) on his journey to become a Code Master. Those that are familiar with the RPG style of game-play know that they typically revolve around leveling your character by defeating enemies. This is still an important aspect of “Code Masters” since one of our goals is to retain as much of the RPG experience as possible. The difference is that the reward system and sometimes even the story progression in “Code Masters” are dependent on the players ability to demonstrate an understanding of the material. Future Work 5 Players are encouraged to gain programming rank in the game by taking lessons from Code Masters which can be found in various locations around the world. Code Masters present CS material with both dialogue and visual aids. NPC's (Non- Playable-Characters) are programmed to ask questions on recent material. The player is rewarded with new weapons, armor, or items for correctly answered For the future of this project, I would like to add lessons that go questions. If a question is answered incorrectly, the player is forced into a battle. over important programming conventions. I believe this would be Once the player has demonstrated an in-depth understanding of the material, an effective method of establishing good programming habits he/she is given a new rank, which allows them to learn new spells/abilities. through repetition. I would also like to Incorporate live code editing into this game in order to give players experience with actual programming. This is a long term goal and will most likely be implemented with the Ruby language since it is already incorporated in RPG Maker VX.

Acknowledgments

● CAHSI NSF Grant CNS- 0837556

● New Mexico State University

● EnterBrain INC.

● RPG Maker Community http://www.rpgmakervx.net/

Figure 3: Player gaining rank after passing a test