Hi! It’s me, again! Did you go on any interesting vacations this spring break? It was recently spring break here in the past. It’s also COVID time here, in the past, so there’s not much chance to do anything right now. However, I believe better times are coming. I, for one, am very excited to go to concerts again! I love concerts.

I hope they're wearing facemasks! 

Anyway, how’s your game coming along? Have you made any progress on it? Are you becoming more and more familiar with your engine of choice? Good!

Game development is a vast field and there are many different ways to do things. By now, you should have some idea of what your game might need. Here’s a couple of questions to ask:

  • Will things in your game behave similar to the real world?
  • Will your game feature NPC’s (Non-Player Characters)?
  • What do you want your game to look like?
  • Which platforms do you want to play your game in?

Each one of these questions corresponds to different fields in the game making world that have to be tackled by someone on your team, or just you if you’re going solo.

Controlling NPC’s in your game with AI

Remember our haunted mansion game(from part 1)? Well, it isn’t a haunted mansion without some ghosts, and we’ll probably want those ghosts to interact with our player in some way. This means those ghosts are NPC’s. Other notable examples of NPC’s in games are the ghosts from Pacman, the CPU when you’re playing a fighting game by yourself, and every shopkeeper from every game with a shop.

If it was just a yellow circle eating dots, it would be a boring game

NPC’s are usually controlled by an AI. AI can be an intimidating word, but what it is at the end of the day is a set of instructions that guide some behavior. The secret sauce is making the behavior unpredictable enough that the player has fun, but not so much that they can’t get better at the game. (More about this in the often questioned but originally widely quoted Theory of Flow)

Unity and other game engines often include a scripting language for AI, which means you can boil down what your NPC does to easily readable actions. Such as:

  1. Walk towards the player
  2. When in range of the player, try to attack the player
  3. If the player fights back, retreat a certain distance and try again

You would be surprised how many games have shipped with this simple behavior for enemies. For instance, this is more or less the behavior for Lizalfos in The Legend Of Zelda games. This could also be the behavior for our ghost enemies! If we want to add more complication, we could make the enemies only try to approach the player from behind (like boos in the Mario games). Of course, this is only one kind of AI. Feel free to research other AI’s to find out more about what your game needs. Some notable ones are the Uncharted AI and chess.

Simulating the real world with Physics

Our world has rules, and since this is the only world we’ve ever known, we expect things in virtual spaces to behave similarly. Enter, physics engines!

Physics: It's fun now.

When learning about game development, it’s commonplace to start by making a platformer. Platformers are games in which you jump between platforms, like Mario, Sonic and such. Most game engine tutorials will help you make a Mario clone, or a simple ball rolling game. Once upon a time you would have had to write a whole bunch of code to make a platformer. Nowadays, you can usually just specify in your engine of choice that an object is subjected to gravity, and it’ll behave like that in the world of the game! Now you’re playing with Physics.

Physics also lets us deal with something called collisions, which are absolutely essential for game development. When one of our elements in the game collides with another element, that’s called a collision (duh) and once we know that has happened, we can program our game to respond a certain way. For example: Maybe the gun we found in our haunted mansion shoots a bullet that collides with a ghost, and the ghost dies!

Collisions are useful for all kinds of things. Here’s a few examples:

  • A car in a racing game collides with the finish line, and finishes the race.
  • In pong, the ball collides with the pallet and changes direction
  • If our main character jumps and does not collide with any platform, they fall.
  • Our character’s hand collides with an object and picks it up

Changing your game’s look with shaders

Remember, videogames are not real! This can be difficult to remember since things look so good. The shadows are all in the right places and everything looks like you could touch it. This is the work of shaders.

Shaders define how everything in your screen looks. Are things shiny? Do they cast big shadows depending on where the light is, or are they independent? Are they realistic? Cartoonish? This is all defined by the shader you’re using.

Whoa! Minecraft sure looks great.

For a quick introduction to this topic, feel free to google Minecraft Shaders and look at all the incredible options there are. Remember, the game is the same, but it can look entirely different if you change the shaders. By the way, I do not recommend getting too involved with shaders if you’re a beginner, since they can be quite the rabbit hole. There’s a whole bunch to learn about how they work, and it can distract you from finishing your game.

Playing your game wherever you want by compiling for different platforms

In the olden days, a normal person off the street could not make a game for a videogame console (like a gameboy or a super nintendo). In order to develop for such a system, you had to have permission from the company that made it, a third-party license and a development kit, which usually included a weird version of the system made for development. Then, of course, came the internet, cellphones, etc. Everyone can make everything for every platform nowadays!

Never to late to make the next Pókemon

Well, I might be exaggerating, but the bar is way lower now. Unity and Unreal let you compile your game to almost every platform out of the box. GameMaker just asks you to pay different amounts of money depending on where you want your game to run. This means you can play your game on your phone, xbox, or on your computer, without having to make any changes to the code!

These are just a few of the things you’ll face when making a full game. Making a game is a long, arduous process that requires mastering many different fields and testing your game over and over again. If you like video games and you’ve always wanted to create the next Zelda, don’t give up and keep learning. I guarantee it will be worth it. Whatever you end up with, it’ll be something you’ve made from scratch with your own hands! Nothing better than that in the world.

If you have any questions, feel free to hit me up on instagram or twitter as @nikolasmurdock. Have a great day!