Games covered in a game programming course

0 favourites
  • 6 posts
From the Asset Store
Easily generate many levels from a set of pre-built scenes (Construct 3 template)
  • Greetings all,

    First, a bit of background: I'm a college professor in New York, and since 2012 I've been teaching a college course in game programming, using Construct for the first half (and switching to Java for the second half). Starting next year, I'll be splitting this course into two separate courses (as they should be), one purely based around Construct (aimed at an audience with no programming experience) and one for students who have already taken a semester course "Introduction to Computer Programming" in a language such as Java. I've also been teaching summer camps for high school students interested in game programming, basically a condensed version of the college (Construct-only) course I've been developing and tweaking.

    We just finished our 2014 summer camp a few days ago. This summer, the students worked on a total of 19 different projects, some projects were fairly polished games, others simply introduced the mechanics of advanced objects/behaviors (such as the Multiplayer object). For anyone who might be interested in designing a similar program, I've included the progression of games we worked on below. If anyone has thoughts on something I've left out, or ideas for improvements, please do post a reply!

    1. Collection game. A turtle (8-direction, bound to layout behaviors) moves around the screen collecting starfish; score is stored (global variable) and displayed on screen (text object).

    2. Breakout. (bullet and solid behaviors, paddle movement controlled by mouse). Powerups (multiball, paddle size, ball speed) included in second iteration of project.

    3. Asteroids. (wrap behavior; basic animations for explosions). Enemy UFO fires lasers at you while moving across screen in second iteration of project.

    4. Top-down airplane shoot-em-up game. Uses invisible sprites with instance variables as "waypoints" for more finely controlled enemy movement patterns. Also uses a scrolling background for the illusion of continuously flying over an ocean.

    5. Missile Command. Students were challenged to recreate a version of this game on their own, with no guidance from me, and to customize the look and feel of the game with graphics they found online.

    6. Frogger. Cars and logs were looped using the wrap behavior. Having the frog be able to move while riding on top of drifting logs was the main challenge here.

    7. Car Racing. Introduced the car-steering behavior, designed the racetrack using snap-to-grid and a set of individual road-tile sprites; separate wall objects handled the collisions. (Considered the tilemap object, but chose to cover that in a later project).

    8. Flappy Bird. Very limited introduction to the platform behavior -- in this game we disable default controls and mainly take advantage of Platform's implementation of gravity and VectorY for "flapping" up into the air. Also introduces the idea of "procedural content generation", positioning pipes off-screen at random heights that scroll across as the game continues.

    9. Air Hockey. Introduced the physics behavior, talked about balanced enemy A.I., and introduced the Sine behavior to help the enemy paddle strike the puck more convincingly.

    Intermission. Demonstrated how to use the audio object and include sound effects. Demonstrated how to switch between multiple layouts, and created a main menu screen, instructions screen, and credits screen. At this point, students revisted an earlier project and implemented these features.

    10. The "mana" challenge. A mini game-jam, students were asked to design a game (via a provided game design document) that incorporates the theme of "mana" (e.g. "mystic energy") in some way. Many students tried to teach themselves the platform behavior at this time, with mixed levels of success.

    11. Bubble Bobble. Thorough introduction to the Platform behavior (and included Jump-Thru); also used all the different platform animation triggers. Introduced the idea of "base sprite" and pinning animated sprite on top of that (to avoid collision polygon / imagepoint problems, for example). In this game, its all about the bubbles -- dinosaurs blow bubbles depending on the direction they are facing -- we used bullet behaviors to get bullets to decelerate and then slowly drift towards a central location. Enemies patrol left-to-right and also possess multiple animations.

    12. Donkey Kong. Allows for reinforcement of Platform topics from previous project; also includes ladders, a challenge to implement nicely in platform games.

    13. Super Mario Bros (classic, level 1-1). Another classic platform game, where the new challenges include breaking bricks only when Mario's head collides with them, and stomping enemies only when Mario's feet collide with them. This requires repeated use of the pin object for multiple invisible sprites that perform the corresponding collision tests.

    14. PacMan. This included grid-based movement, and a lot of discussion about enemy A.I. -- we implemented two ghosts, each of which follows PacMan around a maze in a different way (one used horizontal priority, the other used vertical priority).

    15. A Legend-of-Zelda themed sword-fighting game. Here, Link had eight animations which had to be managed and toggled correctly, depending on his angle of motion and whether or not he was swinging his sword. We continued our discussion of A.I., introducing the idea of state machines. Enemy soldiers were in one of three states: patrolling between 2 points (same waypoint technique as mentioned above), chasing Link if they saw him (Line of Sight behavior), and retreating back to a patrol waypoint (Pathfinding behavior) when they lost sight. Also included a "knock-back" movement (using the Bullet behavior and negative acceleration) for when characters were hit.

    16. Another game-jam style project, where the students worked in groups. The theme was "speed". One group created an infinite-runner style game, another group did a sort of 2D side-scrolling "Temple-Run" style game.

    17. Rogue-like dungeon exploration. This was some advanced procedural content generation, creating a system of caves containing collectible items, hallways linking the caves, and enemies that chase you if you got too close. Basically implemented the algorithm from the article at ... edev-10099 .

    18. Introduction to the Multiplayer object. The students created a project that has two sprites with 8-direction behavior, one controlled by the host, the other controlled by the peer.

    19. As a "final challenge", I gave the students a link to an online version of Bomberman, asked them to play the game and figure out the mechanics, and then recreate this game in Construct in an afternoon. They were very successful.

    During the month of August, I hope to post some tutorials about features in some of these projects; if there are any particular requests from this list, please let me know. And as mentioned above, suggestions and ideas about this syllabus of topics are most welcome!

  • Look forward to seeing them

  • Looks really comprehensive! Perhaps you can add a tower based game module since C2 has its turret system. Haha only problem is tower games are a sort of hit or miss with players. But it would add to your great list already.

  • Wow that really are a lot of projects.

    Why don´t you make a little website for you and your students to publish them all?

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Wow that really are a lot of projects.

    Why don´t you make a little website for you and your students to publish them all?

    My long-term plan is for them to create accounts here at and request that they upload their games to the Scirra arcade.

  • stemkoski

    your summer course sounds amazing

    is it open to all? where/when? is there a virtual class one can participate?

    if you could send me some details would greatly appreciate!

    many thanks in advance for your time & consideration


Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)