Saturday, December 6, 2014

Technical Design - Document

This my preliminary break down of the technical features of the game. I'm new to using Unity, and my game programming experience is limited to a little bit of AS3, so I will need to research all of these features and workflows to see if they're going to work for me. There might already be simple ways of doing what I want to do, or I might find major roadblocks; totally beyond my ability. I'll adjust this document as necessary, right now it seems do-able given time.

I'll also document all of the sources I use for my research. Comment if you know any good ones!

Slow Blade – Preliminary Technical Design

Basic Game Systems

2D Game 

Art created in Photoshop and animated with the Spriter animation tool (a bone animation tool similar to Spine).

Physics-based Platforming

Use Unity's built in physics system for movement. I've done a little bit of research into examples of how to do this, and it's pretty straight forward.

Needs:
  • Basic walking, running and jumping.
  • Figure out how to do wall jumping.
  • Figure out how to control fall speed. 
  • Figure out how to throw and catch the Blade,
  • Figure out how to make the Blade bounce indefinitely of of walls with correct rebounding.
  • I may not be able to use  the built in physics for the blade itself, since it needs to by unaffected by gravity and bounce at consistent angles. 
  • Right now I'm planing to restrict the throw angles to Horizontal, Vertical, and 45ยบ, because I'm assuming it will make things easier, but that may not prove to be the case.

Dynamic Camera 

 Camera will automatically pull out/zoom in to keep the player and the Blade on screen at the same time. Hopefully there's good examples out there of how to do this. I only have a vague notion of how I would try to do it.
Plan B: Just have the camera automatically zoom out to a particular level whenever the Slow Blade is thrown.

Plan C: Just be fully zoomed out all the time.

Level Designs


Each level designs will be a specially designed puzzle. I'll start with simple proof of concept levels to demonstrate core mechanics. 
I'll use a tile based system to build the levels. This will have the added benefit of making measuring easier, to get the timing of the Slow Blade.

Needs:

  • Create a set of appropriate prefab tiles. 
  • Investigate ways of easily working with tile-based systems in Unity. Might benefit from external tools like TuDee: http://www.diorgo.com/v1/?p=366
  • Animated prefabs of all the hazards.

I need to find out how to make prefabs with the correct properties already assigned to the appropriate surfaces and triggers. Once I figure out what those properties and triggers should be of course.

Character Animation

I want to make a fairly elaborate animation system so that I can challenge my self using Unity's Mecanim.

Needs:

-I've identified the the following animations that I want so far:
  • Idle
  • Walk
  • Run
  • Jump
  • Throw - Horizontal, Up, Down, 45° up and down, (Could be complicated if player is able to throw while jumping)
  • Catch -probably just one will work
  • Fall
  • Fast Fall
  • Wall slide
  • Wall Jump
  • Land
  • Die
-I need to study the workflow for importing animation from Spriter to Unity.

-I need to investigate how to incorporate the Slow Blade itself into these animations dynamically. I'm hoping there's an easy way to hide or swap the asset in the animation, if I import it with the Spriter2Unity package.

-I also want to try using ray casting to give the player an animation that anticipates landing on the ground. This is totally unnecessary but I think it would be cool, and hopefully it won't be hard to figure out.

Time Slowing Mechanic

No idea how I'm going to do this. I'm hoping there some fairly simple built in. I'm sure this mechanic had been done a lot.

Plan B: Make slowed down versions of all the moving elements and fake it.

Replay Mode

Ideally after each level, there would be a feature that replays what you did, but at full speed so you can see how cool you looked to an outsider. Whether this can be done is dependent on how I do the time-slowing in the first place.

Slow Blade - Concept Document

Slow Blade Logo

Slow Blade – Concept Doc

Premise

You are a ninja who at long last has discovered the resting place of the legendary Slow Blade, a large shuriken-style weapon that allows it's wielder to manipulate time. You've successfully made your way to the deep dark depths of the dungeon where it has lain for eons, but only by harnessing it's power can you make your way out again.

Gameplay
The player must move through a series rooms with traps, impassable to even one with a ninja's speed and agility.
Fortunately by throwing the Slow Blade, the player is able to slow time and evade the traps. However, the player must also out-maneuver the Slow Blade itself, making sure to recover it before moving to the next room. The player does this by banking the blade off of walls, and timing their movements to be in position to catch it after safely traversing the level.

Primary Game Features
  • Ninja Style Platforming - The player can run, jump, wall-jump, and control their speed while falling. 
  • Throwing and Bouncing the Slow Blade -  The player can throw the Slowblade horizontally, vertically or at 45 degrees. It will bounce off all hard surfaces, continuing to bounce indefinitely until it is caught by the player, or exits the level through one of the doors. (Level design might also incorporate wooden surfaces that the Slow Blade can get stuck in.) 
  • Time Slowing - The speed of objects other than the player (including the Slow Blade itself) is slowed as long as the slow blade is in motion.

Release Platforms

  • Web

A newb has appeared!

Hello random internet people and NSA spider bots who may have stumbled across this project.

I am a game artist and game designer looking to expand my skills as a Technical Artist and programmer, as well as learn about platforms besides Flash.

This blog is where I will be documenting a personal project designed to accomplish those goals.
It will be a 2D game produced in Unity that incorporates an animated main character with a respectably complex state-machine.

My inspiration for this blog is Adam Ormsby of MecWarriors, who is documenting his own project at his blog The Lost Developer. I will be shamelessly ripping off his format.