Buccaneer 2070
A science fiction epic with robot pirates!


author: Matt Vitelli
date:2014 - present
version: 0.5

The year is 2070. After a great war, earth is left in ruins. Hordes of robotic pirates crawl the surface of the earth searching for precious metals and humans to enslave. You play as one of the last surviving humans. With your airship and trusty violin, you will set out on an adventure to reclaim the earth.




Features:

  • Robot AI!
  • Musical Instruments!
  • Awesome Fighting System!
  • Over 16 Songs!
  • Elemental Buff System!
  • Flying Airships!



Download Buccaneer 2070 Source-Code Now!




Motivation

I played a lot of video games as a kid and one of my favorites was The Legend of Zelda: Ocarina of Time. I loved the idea of your character having this magical musical instrument that could be used to solve puzzles, teleport, and fight enemies. This served as one inspiration for my game and mostly shaped how I went about implementing the Elemental system as well as some of the in-game puzzles. I was also heavily influenced by Heroes of Might and Magic: Dark Messiah. Though few people have ever heard of this game, it had a nice combat system that allowed you to kick enemies, disable them, throw objects at them, and more. My combat system reflects a subset of these features and I might try to improve it later to be a little bit closer to theirs.




Features (Exhaustive)

Robot AI - There are two types of robots: Hunters and Captains. Captains are stronger and smarter than Hunters. They have a serious problem with dancing and get offended whenever music is played. Hunters, on the other hand, love dancing and are easily distracted from their goals of killing the player. The player can exploit this feature using the Song of Dance to place speaker systems across the map.


Elemental System - There are 5 elements in the game world: Heart, Void, Fire, Ice, and Lightning. All 5 elements can be applied as offensive or defensive buffs to both players and robots. Attack buffs multiply the player/robots sword damage, while defense buffs reduce the effectiveness of attacker's weapons. It essentially works as a rock, paper, scissors game. Fire beats Lightning, Ice beats Fire, Lightning beats Ice, Void beats everything (except Heart), Heart loses against everything (except Void).


Locations - There are 9 locations in the game, each of which corresponds to a particular song or element. The locations are listed as follows:

Astronomer's Site


Factory


Ruins of the Flame Temple


Mouth of the Void


Electric Observatory


Ice Town


Thunder Tower


Church of the Void


Elemental Dungeon


Technical Mumbo-Jumbo

Audio Server - A local server runs in the background and processes requests forwarded from Unity. Most of these requests are simple and are of the nature of "Turn this synth note on/off", "Set this channel to this synth program", etc. I used the Y-api, Fluidsynth, and dlib to accomplish this task.


AI - Robots are implemented as Finite-State-Machines. They have a number of states, including Idle, Chasing Player, Dead, Dancing, Fainted, Hurt, Blocking, and Attacking.


Everything Else - There are around 2,000 to 3,000 lines of code wiring Buccaneer 2070 together. Most of it is simple, game-mechanic specific logic that's not particularly relevant or interesting. Feel free to browse through the code, but be warned - parts of it are a rat's nest of easy fixes and quick hacks.


Experimental Evaluation

Making games is very difficult and it's often hard to decide when a project is completed. Like any artistic endeavour, there comes a time when we realize that perfection is unattainable and we'll settle for good enough. I believe Buccaneer 2070 has reached this point. There are likely bugs in the code, there are still a variety of performance tweaks and gameplay balancing modifications I can make, but I think as a whole Buccaneer 2070 does its job at creating an interesting universe for the player to explore and is packed full of rich aesthetics that make it a rewarding experience. It should also be noted that Buccaneer 2070 is not intended to be a game for casual players - it's geared more towards gamers who are experienced with first-person-shooters.




How to build:

  1. Download Unity
  2. Create a New Project
  3. Add the assets folder to your project
  4. Load DefaultLevel.unity
  5. Compile AudioServ using XCode
  6. Run AudioServ
  7. Press Play


Have any questions, comments, or bug reports?

Drop me a line at email (mvitelli /at/ stanford.edu)




How To Play:
  Primary Controls:
    Left-Click to attack
    Right-Click to block
    Press Q to toggle weapon / violin
    Press Tab to show the Songbook
    Press F to kick
    Press H,J,K,L,I to play notes
    Press W to move forward
    Press S to move backward
    Press A to move left
    Press D to move right