Scripting for Games

Source Code Questable Incarcerated Start

These games were each made over a couple of weeks as part of a college course called Scripting for Games. They were each intended to test our proficiency at a couple parts of Unity programming. Unfortunately the projects often, just through poor timing, coincided with projects and exams from other courses, but I did my best to innovate each time. I was a bit too ambitious with the final project, Start, where I had intended to use procedural generation to create music to the correct tempo for the player to take their actions to. Instead I had to remove that feature and replace it with some music I’m not super happy with. Additionally, needing to do everything - not just the programming but also making the enemies, particle effects, levels, etc. means these projects aren’t the best examples of what I can do in Unity, but should illustrate a decent level of competency. For a better example where I got to just focus on the programming and had time to add things like scriptable objects with custom editor scripts, check out Dice Armor.

Questable

Note: If the web version is too slow, you can download it for windows here.

The purpose of this project was to demonstrate how to create a game where you use raycasts and projectiles to make guns, and nav meshes for basic AI.

Controls:

Move - WASD Aim - Mouse Fire Bullets - Left Mouse Button Quit - Escape Restart - Backspace

After obtaining the paint gun…

Fire Paint - Right Mouse Button Crouch - Control Climb paint - Control near paint on a vertical surface

How to Play:

Move from room to room until you reach the end. Each room will introduce a new enemy or mechanic.

Also, it’s like really easy. I didn’t spend much time on level design because I didn’t have much time to work on this project this time around, so I really needed to focus on scripting this time.

I think my ideas of the paint gun were a bit too grand considering all the other stuff I had going on these 3 weeks. Sorry about that, there won’t be things like it detecting the edges of surfaces. And again, I didn’t really have time to make any levels that really used the mechanic, but it’s scripted and that’s the part that matters.

Incarcerated

Note: If the web version is too slow, you can download it for windows here.

The purpose of this project was to demonstrate how to create a game where you use Unity’s physics system to control a ball, with enemies and pickups and jump pads, etc.

Controls:

In the level selection,

  • Arrow keys to switch level
  • Enter to select level
  • Escape to quit game

In the game,

  • Mouse to look, WASD to move
  • Try to reach the green “finish” platform as quickly as possible, without dying
  • Red objects are hazards
  • Blue powerups increase your speed
  • Red powerups make you smaller and lighter
  • Yellow pickups reduce your time taken
  • Green arrows make you jump
  • Blue platforms slow you down
  • Backspace to restart the level
  • Escape to return to level select

Start

Note: If the web version is too slow, you can download it for windows here.

The purpose of this project was to demonstrate how to create a game with multiple mechanics and features.

Controls:

Navigate the interface using the mouse

Keyboard:

  • Join the game by pressing z in the player join screen
  • Leave the game or Deready yourself by pressing x in the player join screen
  • Ready yourself by pressing Enter in the player join screen
  • Move your character using arrow keys (recommended) or WASD
  • Perform actions using z, x, c, v (corresponding actions are listed in player join screen, but its setup like a, b, x, y for controllers)

Controller:

  • Join the game by pressing a in the player join screen
  • Leave the game or Deready yourself by pressing b in the player join screen
  • Ready yourself by pressing Start in the player join screen
  • Move your character using the joystick
  • Perform actions using a, b, x, y (corresponding actions are listed in player join screen, but its setup like how it appears on an xbox controller)
c# unity