We just finished up another round of summer camps at CCT for 2016. In this summer camp students were able to work in a team and make a game of their choosing. We had around 20 middle school and high school students who have not programmed a game before and we introduced them to Game Maker Language (GML) - a c like scripting language. We stayed away from the drag and drop features and instead got them comfortable with writing scripts. This is the third time I have taught it; and the format has been roughly the same.
In the first two days we built a classic 2-D game (1942 arcade game, Space Invaders, Top Down Adventure Game) and learn a bit about the software development environment, game design, art creation, audio, basic algorithms and tuning. With only two days of instruction they are off creating their own games.
We start off with just moving sprites within the main game loop. We look at three ways of movement:
- Changing the sprite x & y position
- Changing the physics on the sprite (hspeed and vspeed)
- Moving it using angles and speed
We proceeded to make a top down adventure game where players could move around a level, trigger dialog and launch a projectile. We implemented rudimentary collision detection so players couldn't pass through walls. We looked at:
- Importing sprite sheets for animating player
- Importing tile sheets for background level artwork
- Moving the player and switching animation states
- Basic finite state machine for player and object states
- Level design strategies
- More advanced scripting
Then the students had two and a half days to make a game of their choice. The teams formed organically as friendships formed during the first two days of the camp. I am amazed at how awkward team formation is for people. I am always surprised that people naturally find others within their ability levels with similar interests. Organically teams form quite well even though the process of getting there is fairly awkward.
We had teams working on puzzle, fighting, adventure, and platforming games. Every team got at least one level up and running and all prototypes were complete. Normally we have one or two teams that don't work well together or find the challenge to daunting, but this camp had successful projects from all teams.
At the end each team presented in the large theater. Some interesting personalities emerged with more reserved students in class being very outgoing in front of a crowd. After the students showed off their games, parents came into the classroom to try the games out for themselves. I hope that they continue their work outside of the camp and continue to make video games on their own time.