back to top ↑

Overview

What is game design without the game actually coming to life and being playable?

It's just an idea.

All semester we have been discussion what goes into the design of game elements, mechanics, goals, and more. We have been ultra-focused on how to know what kinds of play we are targeting, what our players experience and what kinds of things are important to ensure we succeed with our game... should it be built.

Well, now we are going to take a little side-step from game design and introduce some concepts around a hugely important aspect of making video games, which is Game Development! To do that we will be exploring a couple of popular and (somewhat) accessible game development environments for you be made aware of as you progress in game design.

To be a game designer you DO NOT have to also be a game developer. The roles definitely work hand-in-hand, but absolutely do not need to be done by the same person. You CAN be both a fantastic game designer and developer (See previous module for "generalist" talk), but you do not have to. However, as a designer you absolutely need to know at least enough about the development environment your game will be built in and the more you know about that environments strengths and weaknesses the more of a team player and effective designer you will be. Like a building architect, or a film director who knows a good amount of structural engineering or visual effects techniques.

So, hold onto your hats, because we are about to embark on a journey through some code (kinda... sorta), through some logic, and through some development environments to get a feel for "SOME" of what will be out there as you build games.

back to top ↑

Logic & Programming

As you undoubtedly have already experienced, even in just the basic game design exercises we have explored this semester, games are FULL of logical flows. Player turn cycles in a simple board game like checkers has a logical structure to it that is represented by the game elements, rules, and goals.

  • Setup game pieces:
    • Divide 12 black checkers from the 12 red checkers
    • Give all 12 black checkers to first player
    • Give all 12 red checkers to second player
    • Place the 8x8 checker board between the players
    • Each player takes one of their 12 checkers and places it ONLY on the red squares closest to themself on the 8x8 checker board with the crown side facing down.
    • repeat the previous step until all 12 checkers occupy the 12 red squares closest to each player
    • Begin the Game
    • Red player starts the game
    • Each player will take turns performing a single move action
    • Each player may move only one checker at a time and must move in a forward diagonal motion into an unoccupied red square diagonally adjacent to the square it currently occupies.
      • If there are no unoccupied red squares diagonally adjacent to that checker, then the player must choose a different checker to move.
      • If a diagonally adjacent square is currently occupied by an opponents checker and the further diagonally adjacent square in the same direction is empty then the player may elect to "jump" the checker and capture it by removing it from the board and setting it aside.
      • Furthermore if further jumps are possible in either left or right forward diagonal direction the player may do so and capture multiple opponent checkers in a single turn.
      • if a player makes a move and changes their mind they must not remove their hand from a moved checker. A player that removes their hand from an unmoved checker may still elect to perform a move on that checker or a different one.
      • Once the player removes their hand from the checker after they have made a move or a jump, then their turn is complete.
    • If a checker reaches the far end of the checker board then that checker becomes "kinged". This is done by placing another checker of the same color on top of the checker with the crown facing up. A kinged checker has the ability to perform moves and jumps in all diagonal directions instead of just forward.
    • These turn-based actions repeat until one player has captured all of the opponents checkers.
    • If a player captures all of their opponents checkers the game is done and the capturing player is crowned the victor
    • If the players had fun and there is still time for more play, the players may repeat this entire process again.

    Yes, I elected to write all of this out for you :-). I am actually certain their are some logical errors in this description even if it all makes sense to me. And there in lies one of the most difficult things in game development (and all programming for that matter). Sound logical intent does mean you will achieve sound logical results. ESPECIALLY when executed by other people.

    As a designer your job is to setup the most sound rule structures that best enable the kind of play you desire while not leaving holes for confusion or cheating (unless that IS your intent, LOL).

    A common exercise in learning computer programming, technical writing, and more is to provide instructions for someone to create a peanut butter and jelly sandwich. This is actually quite hilarious as you can see with this sample video.

    Computer programming that includes game programming is the way game designers and developers control the flow of video games based on all of the game elements, rules, and goals outlined. The game will ONLY ever do exactly what you tell it to whether you meant to or not. If it doesn't, then you have some kind of error going on. If there are instructions you provide that are incomplete or wrongly entered, then you have "syntax errors". However, even if you have absolutely perfect syntax you may still not get your intended result in which case you have "logical errors." Every digital game development environment utilizes some kind of logical flow control. Advanced engines utilize some kind of programming language like C++, C#, JavaScript, and MANY others. Some game engines have more visual editors (or no code editors) and some have a blend. No matter what features the game engine provides you will be working with controlling interactions and mechanics with some kind of logical control structures to do so.

    I am definitely not going to be providing a full introduction or overview to computer programming this week. Nor will I be requiring you to learn it either. Some in this class will have significant experience with programming, and others may not have ever done it. Some will fall in the middle. One way or another you all can (and must) understand the basics of logical flow and some specific types of logical flow operations... or the things you use to provide instructions to the computer. Here are a few:

    • Conditionals... If, then (or If, else) statements
    • Loops (For loops, while loops, etc)
    • Variables and Constants

    Again, not an exhaustive list by any stretch of the imagination, but enough to get us started. You will see more on this with the tutorials later.

    For now, let's get introduced to some of the more common game development environments out there

back to top ↑

Game Engines

I am not going to provide you with specific lecture material for this class on these game engines. I will provide (in the lecture recording) my thoughts on these engines, (as well as some others out there not explicitly called out here) as well as a precursor to your assignment instructions. What I will provide here are a few links and videos that you can "and should" utilize to get acquainted with the technologies.

Unity

Unity is a very popular full-featured 3D gaming engine with an option to utilize it for free up to a certain point in revenue generation. It has been around for a long time and has a huge community of developers with support ALL OVER the internet.

Unity.com
Unity Learn
Unity Tutorials on YouTube

Unreal

Unreal engine is a very powerful game engine with some amazing features. It is very popular among professional game developers, but has a bigger learning curve than Unity for most people. There is a large and growing community around Unreal due to there now being a free option to utilize until a certain point of revenue is generated similar to Unity.

UnrealEngine.com
Unreal Learn
Unreal Tutorials on YouTube

GameMaker 2

GameMaker is a somewhat popular "no code option" game development environment that has some nice features. While you likely won't find too many professional or high quality games developed in GameMaker, you definitely could find a ton of lighter weight browser based games out there made with it. It's "no code" option for logical setup is great for learning.

GameMaker Website (yoyogames.com)
GameMaker Tutorials
Great Beginner Tutorial in GameMaker

Scratch

Scratch has been around for a very long time and is incredibly popular in schools because of its whimsical nature and its incredibly easy "no code" interface. Scratch can be used for a lot more than just games, but it is incredibly powerful and easy to use for simple web-based games and animations. Always free to use, its a fantastic environment for beginners to get introduced to game logic.

Scratch Website (yoyogames.com)
Scratch Tutorials
Some additional basic tutorials
back to top ↑

Assignment

For this weeks assignment you are going to build out a tic-tac-toe game in your game engine of choice (Unity, Unreal, GameMaker, or Scratch). You DO NOT have to do this all on your own and YOU MAY google a tutorial on how to do it. I don't expect any of you to have to learn a whole new application or process in just a single week, but I would like you to get some exposure and experience with it. Scratch is probably the most accessible and easiest to use.

1 Choose the development engine you want to use. (Unity, Unreal, GameMaker, Scratch). You may also use a different one that is not listed if you would like as well.

2 Develop out a fully working tic-tac-toe game in your chosen game engine. You can search for and follow a tutorial 100% for this assignment if you would like. I already checked and each of our engines has one out there on youtube.

3 Record a video of you outlining your source code (or visual logical code if using GameMaker/Scratch) and showing you playing the game to prove that it works. Ensure you record/export/convert your recorded video using mpeg4 compression of some kind.

4 Name your video file with Lastname-Firstname_Assignment10.mp4. Could be .mov if you format as quicktime with h264. So .mov and .mp4 are good extensions as long as you compress. Your file sizes shouldn't be massive.

7 Click on Assignment 10 in the UNM Learn Assignments listing.

8 Scroll down to Assignment Files and Browse Local file to select the file you created and attach it to your submission for this assignment.

As always, please make sure you also complete the other requirements in your todo list like quiz. Don't forget those. Pay special attention to the fact that this week is our second Section Exam 2 which will cover material from this module as well as from "Iterative Process", "Design Document", "Level Guidance", and "Business of Games."

Todo List
  • Instruction

    Review Module Written & Video Material
  • Exam

    Section Exam 2
    on UNM Canvas
  • Assignment

    Assignment 10 - Scratch Sample Game
    on UNM Canvas