Tuesday, November 4, 2014

Boss Battle Camera Move

For our Boss Battle, we had to research a camera move that we wanted to incorporate to the game and trailer. My group wanted to do a comic-style opening to our battle, so I remembered this hilarious scene from Fooly Cooly that does exactly what we want it to do.

(Apologies, it's going to make you log in to YouTube, but it's the best quality I could find)

FLCL Manga Scene

Friday, October 31, 2014

Oni Island: Ninetails



Our first mini-assignment for our Boss Battle project is to analyze a boss battle we like. For mine, I picked the Ninetails fight from Okami.





This fight is the culmination of a long arc in the game, You the player are first introduced to Ninetails via Rao, a priestess you befriend, who seeks to keep the demon's weapon away from him. After exploring a sunken ship and discovering the "Fox Rods," Rao convinces you to give them to her...only to reveal just a little while later, in the midst of killing the queen of the land, that the real Rao has been dead a long time, impersonated by the demonic Ninetails itself. To avenge your friend and the queen, Amaterasu and Issun scale Ninetails' fortress called Oni Island to take out its leader.



The new mechanic introduced during the fight is the lightning ability. Much like other powers in the game, it's based on drawing a line in your Brush menu from a power source to a target. It's not a particularly revolutionary bit, but it's still fun to shoot lightning around everywhere.

What makes this fight so interesting isn't the difficulty--Okami's bosses are not known for their difficulty--but the way it twists the main mechanics. Up until this point, you are the only character known who can stop time to draw with your "Celestial Brush", influencing the world around you. The Ninetails fight subverts this--not only can Ninetails use a corrupted version of the Brush, but it can cancel out your attacks in red ink if you don't move fast enough. It's an interesting god vs. devil fight, as Ninetails' mask at the beginning is considered a mockery of Amaterasu's divine power, and so is its power with the brush.

Brush, Interrupted



Another interesting subversion is how the fight starts. When you arrive at the stage, Ninetails is nowhere to be found. To begin the battle, the player has to fill in a constellation much like the ones that give you brush powers. However, this particular constellation turns out to be the boss in disguise.

The Constellation



There are two phases to the fight. You start off in an environment that's like a knock off of the heavenly places you've been before, visiting the other gods. In the first phase, Ninetails attacks you with a flurry of headbutts, stabs from its sword, toxic liquids, and uses its tail to attack from underground. Its attacks generally mirror Amaterasu's. Every now and then, however, it will raise its sword to gather dark energy. If the player summons lightning from the various bolts around to  strike the sword, Ninetails' 9 spirits separate and run around in a physical form. For a limited time, Amaterasu can strike and kill those spirits, until the main one reunites them again, and the process restarts (with less tails)

This person is terrible but OK here's an example of Ninetails breaking up




Once all those spirits have been defeated, Ninetails' true form as an old fox is revealed, and its attacks get more desperate. The atmosphere changes with it, breaking the heavenly feel for the cold, dark reality of Oni Island. It will get faster, mostly using its charge attack, but still gives a few openings to strike with lightning.

Old Fox



Defeating Ninetails gives you the Blade of Kusanagi, which is just a nice sword, nothing too special. But the satisfaction of revenge is another great reward.






Friday, September 19, 2014

Toy Ideas


I'm going to be updating this more but here's what I have so far:
  1. Gun that shoots jump pads
  2. Gravity switcher
  3. Jetpack 2D platforming
  4. Player-controlled mines
  5. "Just me and my Vending Machine"
    1. player throws vending machine around to solve puzzles
  6. Balancing scales
  7. Magnet gun 
    1. can reverse polarities
    2. draws objects to the player that can be used to open doors, fired as weapons, etc
    3. can point at certain floors to hover player
  8. "fish out of water"
    1. have certain amount of time out of "water" to do tasks
  9. the ability to create black holes
  10. Digging holes

Friday, September 12, 2014

Multiplayer Level

For my multiplayer map, I decided to go with a "cowboys vs. native Americans" theme. A group of American soldiers has just discovered a Native American settlement, and the inhabitants are bound and determined to protect their home.



As far as a unique mechanic is concerned, I'm thinking about having the player in the sniper's nest (the soldier camp indicated on the map above) able to trigger a small landslide down the hill below.

  • Where is it?
    • The "Old West", closer to the current Mexican border
  • What time of year is it?
    • Middle of Summer
  • What time of day is it?
    • Around Dawn
  • Who else lives here?
    • pretty much just the natives
  • What does the architecture look like?
    • typical Pueblos
  • What does the terrain and vegetation look like?
    • desert stuff; cacti, maize, mesas, etc.
  • What major event happened prior to the player getting there?
    • soldiers discovering peaceful native american village

Monday, September 8, 2014

Counter-Strike:GO: Shoots

Counter Strike is an FPS developed by Valve. Originally a Half-Life mod, the original has spun off into its own franchise. In this game, the player picks a side between Terrorists and Counter-Terrorists. The two teams are pitted against each other on various maps (set in locations all over the world), winning by either finishing the map’s objective or killing everyone from the other side. Player characters’ weapons and accessories are customizable.

For my level, I picked the Arsenal: Arms Race map “Shoots” from Counter-Strike: Global Offensive. The map is set somewhere in Vietnam (judging by its alternative title “Vietnam”). As for when, I'm not really sure, but sometime after the mid 20th century.



Environment
The Environment is a compound somewhere in the jungle, with wooden huts and walkways providing cover and higher ground.  It takes place in what looks like around mid day, with a foggy atmosphere providing a gloomy mood.

 Sections:

Major areas of the level include the expanses (spawn areas) on either side of the level, under the walkways, and the houses on top of the walkways. When I was playing, those were the go-to areas for high traffic and bouts of fighting.

Game play:
Shoots adds sniping points to the traditional point-and-shoot game mechanics. The player has the choice to take the risk and snipe players, leaving themselves vulnerable to attacks.




Tuesday, August 26, 2014

(the edge of) Skeleton Edge

Our next assignment for Game Design is to make our own 2D platformer level! (big surprise, I know). I drew up a nifty paper map:





as well as a neater Illustrator map:





What is the conflict?
  • Jim Tibia, resident of the Skeleton Territory, journeys to rescue his family and prevail against the usurper Gargamillion, who plans to use a skeleton army to conquer the galaxy. On the way, Frank collects coins to eventually bail his father and brothers out of the army.
What is the twist?
  • Jim is a skeleton
  • Gargamillion IS YOUR FATHER (gasp)
  • Also sometimes if you jump off a cliff you'll run into an enemy skeleton
Where is it?
  • The edge of Skeleton Territory, where very few skeletons call home.
What time of year is it?
  • There are no seasons in Skeleton Territory, but by human terms it would be a balmy day in March.
What time of day is it?
  • Midnight. There is no other time in the realm of the skeletons. Only the darkest of nights.
Who else lives here?
  • Skeletons and their minions, the Skele-hound and Skelecrow. All submit to the will of the almighty leader Gargamillion, otherwise known as King George.
What does their architecture look like?
  • A mixture of Gothic architecture and piles of rubble.
What happened in the environment prior to the player getting there?
  •  King George recruited all those living in Skeleton Edge, minus the truly weak ones. This included your skeleton father and siblings. In return, he left behind a few guards in a pitiful attempt to enforce martial law (not that Gargamillion actually cares about the Skeleton Edge, but pretenses are important)
How did the player arrive to the environment? What brought them there?
  • Jim Tibia has always lived in a small house in Skeleton Edge, but the pursuit of the recruiters brings him to the edge of the district. 

Friday, August 22, 2014

The Impossible Game: Analysis

For my first blog post of Junior Year, I am analysing the first level of "The Impossible Game," a 2D sidescrolling platformer for Xbox/iPhone/Android game designed by FlukeDuke. It's an unforgiving game; even one mistake sends the player back the start of the level. However, I feel the level set up does a good job of preparing the player for what's to come.


Unfortunately, it's difficult to record myself playing an iPhone game, but I did find a good video of a guy playing it:




This first level is technically the "tutorial" level, but it does not hold your hand in the slightest. Any instructions on how to play the game (tapping/holding the screen/button) are only given to the player if they choose to read the "How to Play" portion of the menu. When starting the level, the game starts with a quiet period of the player traveling along the ground platform, then gradually introduces the main obstacles and gameplay elements: spikes, blocks, and pits. The player is expected to make a large amount of mistakes getting used to the gameplay elements; their failures are marked as "attempts".

Spikes are the main obstacle in The Impossible Game. The tutorial level starts off by giving you one at a time to jump, like here:


As the game goes on, the player is expected to jump more spikes, from two:


to four:


as well as many combinations inbetween. The larger number of spikes, the more precise the timing needed to jump over that. The first level does a good job of increasing the difficulty level of these (for example, the first set of triple spikes doesn't appear until the second third of the level).



Another important gameplay element introduced early are the blocks and pit. Like the spikes, the blocks are introduced slowly, from a very simple setup in the first few seconds of the level:


The player is expected to mess up the first few times to figure out that running into the block and hitting the solid black is an instant game over. Once the first pit is mastered, the intensity of the block jumping sections are increased, from adding spikes for the player to jump over, to varying the spacing of the blocks so the player has to figure out whether to jump or let the block fall.



For example, in the above screenshot, the player has to jump from the first block to the second, let the square fall to the third, then jump again. 


Overall, the game constantly keeps the player challenged by constantly increasing the difficulty and throwing new twists at them. A player could be expecting to pass an obstacle one way, but realize all too late that their timing is off. Having to restart over and over can get boring, but it also compels the player to get farther and farther into the level. Positive feedback comes in the form of being able to keep listening to the cool music; negative feedback is dying and getting sent back to the beginning.
Here is my level layout (as a warning, it's a little big, and comes in three parts):








Monday, April 21, 2014

Scripting Ideas

10 Ideas for Python scripts:

  1. Button that creates a cube at a specified size, specifically 160x8x160, moves pivot to the bottom/corner of the mesh, and moves pivot to origin point
    1. could also make UI with different possible sizes, like 320x8x320
    2. wall that comes with 4 subdivisions already--or can set subdivisions!
    3. adding idea #2 in
    4. also add a button to duplicate the mesh a specified amount of times and space them out--good for making modular adjustments
  2. Button that creates a sphere with good topology from mesh>smoothing a cube.
  3. Button that sends pivot to the origin, deletes history, freezes transformation, and exports
  4. Button that selects all vertices on a mesh and wields them together
  5. Script that cuts an edge between two selected vertices
  6. Script that moves pivot point to a specific point on the mesh
  7. script that sends encouraging messages when maya autosaves
  8. script that duplicates a mesh a certain amount of times and spaces them out
  9. script that extracts a selected face a specified distance
  10. script that deletes all meshes in the scene


This is my current pseudocode:

import maya.cmds as cmds
import logging

Input = value of input bar

def generateToolbarUI():
    window_name = "ToolboxUI"
    
    if cmds.window(window_name, q=True, exists = True):
        cmds.deleteUI(window_name)
        
    my_window = cmds.window(window_name, title = "Collision Tools")
   
    
    cmds.columnLayout(adj=True)
    
    cmds.button(label="Basic Wall", c=generateBasicWall)
    cmds.button(label="Divided Wall", c=generateDivided)
    cmds.button(label="Box", c=generateDoubledWall)
    cmds.button(label="Generate Sphere", c=generateDoubledWall)


    cmds.showWindow(my_window)
    
    
def generateBasicWall(unused=None):
    generateWall("basic")
def generateDoubledWall(unused=None):
    generateWall("doubled")
def generateSphere(unused=None):
    generateSphere("sphere")
def generateDivided(unused=None):
    generateWall("divided")

#creates a cube with the exact dimensions of 8x160x160

def generateWall(mode="b"):
    
    #creates a cube with the exact dimensions of 8x160x160
    if mode == "basic":
        cmds.polyCube(w=8, d=160, h=160)
        this line will send pivot to bottom
        this line will send pivot & mesh to origin
        
    #doubles measurements of wall    
    if mode == "doubled":
        cmds.polyCube(w=8, d=160*input, h=160*input)
        this line will send pivot to bottom
        this line will send pivot & mesh to origin
        
    #created a cube with 4 divisions in depth and height    
    if mode == "divided":
        cmds.polyCube(w=8, d=160, h=160, sd=4, sh=4)
        this line will send pivot to bottom
        this line will send pivot & mesh to origin
def generateSphere(mode="c"):
    
    if mode == "sphere":
        #creates a 30x30x30 square
        cmds.polyCube(w=30, d=30, h=30)
        #smooths cube by 2 subdivisions to create a sphere with good topology
        cmds.polySmooth(dv = 2)

def export():
    selection = ls(sl=True)
    if nothing selected
        displayerror saying "Please Select Something!"
    this line will center the pivot
    this line deletes history
    this line freezes transformation
    this line opens the exportwindow
    this line exports the mesh as an .fbx

Sunday, April 13, 2014

Attract Trailer Research

For the Attract Trailer assignment, the first thing we had to do was go out and find an example of a real life attract trailer (featuring in-game footage only). I found the one for Need for Speed Rivals:



What makes it cool? Well, for one thing, the music is pretty awesome, and it's cut well. The trailer also demonstrates a lot of the mechanics of the game: jumping, crashing into other cars, etc. Also explosions and dust particles, can't forget those.

Thursday, April 3, 2014

UI

Our racing levels are almost done. All that's left (besides final adjustments) is the UI. For inspiration, I looked at some published games:







...as well as the speedometer of the car I modeled. For this, I looked at both the 1965 Mini Cooper and a more modern one:





This is the first pass of my HUD. The orange circle will be the boost indicator, and the tree shape will have the lap times overlaid. It's subject to change, but I like where it's going.


Tuesday, March 25, 2014

Particles!

We're moving onto particle systems in Programming!

One of the particles I'm making is a mushroom spore particle that falls from the giant mushrooms in my level. I found some pretty cool real life reference for this:


For the general particle system, I originally followed this tutorial:


But since spores aren't snow, I changed it up quite a bit. I'll probably also add some things I learned from the Eat 3D Explosion tutorial.


For a second particle, I'm going to make an impact particle of dust exploding from a wall. I'll probably be basing it off the same Eat3D tutorial and some of their impact particle tutorial. Here's some ref:


Thursday, February 27, 2014

Destructibles

Our next project for Programming is to create a destructible. Here are a couple examples of real world things I'm going to do. It'll go into the temple area of my level.

Police Car Crash

Brick Wall Crash

Tuesday, February 25, 2014

Exploding Flower

For class, as I posted earlier, we had to program an exploding "barrel". My model ended up being closer to an earth star mushroom, but technically it's a flower.

I've still got some kinks to work out (beautify the model/textures more, etc.) and especially figure out why the mesh vanishes when I shoot it. There doesn't seem to be anything wrong with my code, and it's worked properly before, so I think it was a matter of luck.

Here it is!


Sunday, February 23, 2014

Race Intro Sequence

Our racing levels are finally out of the graybox stage! As we move into Alpha, our first assignment is to research different intro sequences to see what we want to do for our levels.

I'm not very well acquainted with racing games, so to do my research, I went back to the game I knew the best, Mario Kart. Keeping with previous assignments, I looked into the level I analyzed earlier in the semester, Bowser's Castle from Mario Kart 7.

(Please excuse the talking, but the intro itself lasts less than 20 seconds into the video, then you can stop it)



What I like about Mario Kart intros is that they're simple, meat and potatoes. They say "Okay, here's a core mechanic of the level, here's some cool shots, starting line, ready set go." Not terribly exciting, but it gets the job done and does set the player up for what's to come.

For a more exciting introduction, I found these Ambush Event cutscenes from Need for Speed: Most Wanted. It's a cool way of drawing the player into the level (as well as provide entertainment and a few laughs). If my intro can interest the player like this, I'll be happy.



Friday, February 21, 2014

Barrel Explosion

In programming, our latest assignment is to create a variation of an exploding barrel using Kismet. It had to be an asset that related to our Game Design levels. I chose to do an exploding flower, much like something like this:



The flower has a glowing center, and is already giving off a soft particle with floating leaves or spores. When the player hits it, the flower releases pollen, then the core detonates and explodes, damaging the player.

Sunday, January 26, 2014

Beat Sheet

We had to do a beat sheet for a specific section of our level.  I picked around the big tree area, since I figured it would be the prettiest area.  The quotations are things I would hope the player would be thinking but I don't actually know so please bear with me.




Thursday, January 23, 2014

Racing Level Research

First semester has come and gone, and now it's time for the spring semester and the racing level!

To start, here are some real cool real life stunts that crazy people pulled off, just to get in the mood for some flips and tricks:









I also found some pretty neat obstacle and track-changing mechanics in video games.  One game, Grid 2, has an algorithm that changes the track in real-time, as the player is driving.  The developer in this video explains it best:



For a good example of obstacles and traps (in a completely different type of racing game than the one above), refer to this video:





Our general theme for this level is "Fantasy Jungle."  I compiled some images that would help guide me in that direction, and here are a few of them.

My concept statement for this would be "Discovery leads to wonder."




Now we're really getting into the details of my level itself.  Below is my rough layout for how I want it to go.  The blue track is what the player can access on the first lap.  Ideally, the green and red areas are shortcuts that open up in the second and third laps.  General landmarks are indicated, but the entire level will be set dressed with plants and other ruins.  In the future I may add one or two more to narrow down the "story" of the level, but right now I wanted to focus on the track shape.  

This area has been abandoned for centuries, and the player has just stumbled across it for the first time.  Starting in a more civilized area, the player moves out into the wilds beyond the jungle, culminating by winding around a bioluminescent tree.



More specifics for this level: I'm going for a golden hour/late afternoon feel for the lighting and atmosphere, with some places dark enough that the bioluminescence shows. Terrain is jungle and dirt.  Here is my general colour scheme:


Green will probably be the dominant colour, with the red, orange, and purples embedded in the architecture and foliage.

The player will be directed around with wooden signposts, both posted in the ground and hanging from trees.

Inside the temple structure is where I plan to make my biggest trap.  When the player activates the trigger, they are launched to the other side of a pit that forms from the ground collapsing, with boulders falling on top of the rubble.  The idea is to make the path unaccessible.



Another shortcut idea: