Wednesday 10 April 2013

Project StarShip

For this most recent project we were asked to focus on a specialism and produce something that required the use of said specialism. So, I chose design. Design has always been my preferred field in games development. Being involved in another project with the soon-to-be Split Path Studio I also decided to ensure that I focused on areas that would benefit that project too. I chose to produce a complete, understandable and detailed design document for a large scale game whilst producing a prototype for at least one of the core concepts of this game in Unity. In my learning agreement, I made a point to note that this prototype would be rough and would only serve as both an illustration and a way to check how well my ideas work and be able to make informed changes to them.

The idea is to create a Space Adventure game where you play as the captain of your own ship. Many Space Sims and Space RPGs have been created, but non that truly focus on the bond between a captain and their ship. This bond is best illustrated by fictional characters like Dr.Who and his TARDIS, Han Solo and the Millennium Falcon and Captain Mal and Serenity.
The Doctor has a unique relationship with the TARDIS. 


 The character's, even when they aren't necessarily piloting the ship, always command the feeling of ownership over it. As if it is an extension of them. This is a fantasy I want people to be able to experience.

Another game with a very similar concept being it is FTL: Faster Than Light. This was an Indie success on the crowdsourcing site KickStarter, receiving largely good reviews from critics. The game runs on the idea of acting as a commander on a ship, giving orders to the crew and managing the ships systems as they adventure through space. Although this is similar to my idea, FTL took on a much more strategic role I intended to, giving the player a top down view of the ship. My idea focuses heavily of staying in the first person perspective the majority of the time. This makes multitasking much harder but keeps the game personal which is something I'm really trying to emphasize.


A screenshot for FTL: Faster than Light

 There are, however, plenty of things to learn from FTL. For a start the entire game is quick and easy to pick up. After about 20 minutes you have learned everything you need to know about the game. This is extraordinarily fulfilling for the player considering the initial feeling of complexity you receive from the HUD.This complexity is important in making the player feel in control, knowledgeable and in space, it basically helps to immerse the player into the fantasy of being a space commander. This HUD is also made simple to understand by having extremely clear graphics which link everything together visually. On top of this, there are only 3 crucial variables that player is managing at the beginning of the game: Fuel, Hull Integrity and Power. Once mastering these the player can begin to slowly pick up the other variables such as missiles, droid parts, scrap and so on.This can all be easily applied to my game, even if it is first person.
Another thing to consider is it's straight forward story which is simple and guides the player to the end of the game. Get from point A to point B without the fleet catching you. Although you have time to look around, you have very little time to linger and certainly no time to go back. This drives you forward while keeping things simple. It also means forcing the player to make important decisions that they will not be able to go back to and ultimately decide the entire fate of your crew. I like this idea but I do want my game to have a lot of freedom so won't be pushing the player so much in one direction. I do however, want a story that is just as simple and drives the player forward constantly. Although the danger will not be as immediate, it will always be imminent.
One of the games greatest achievements is it's ability to make an interesting narrative out of random events. Since the games story is mostly text based, they can add random events and side quests that have rich and descriptive content while still affecting overall gameplay. For instance, after losing my pilot to a group of Mantis space aliens, who I had to kill by opening the airlock doors, I randomly found a shipwrecked mad man called Charlie on a barren planet who had been living in a cave. Charlie became my new pilot and, being stronger than many of my other crew members, became the last crew member alive later in the game in a Ridley Scott's Alien type scenario. Not only is this narrative terrific fun to describe, it also directly affects gameplay. Events like these are splashed throughout the randomized galaxy just waiting for you to discover them. This is very similar to the feeling I want to put across in my game. These sorts of adventures are perfect for a lone space captain. The biggest problem is, it is unlikely that I will be able to express these events in full 3D. Especially if I want so many. I will have to find a way to make them satisfying, varied, multitudinous and directly affecting play.

Having fully analyzed my competitor, I decided to piece together the idea I had in my head onto paper before refining it into something useable. I want to give the player a fair choice as to how they want to play the game. The current choices stand as Engineer, Pilot, Fighter and Adventurer. Each one, as opposed to being determined by a skill tree or stats, will be determined by skill and how much time a player has poured into practicing that discipline, much like a fighting game such as Street Fighter. The player can also mix and match these "skills" focusing only on one or on all of them as they choose. As such, if there is a leveling system it will be through "examination" type exercises which show that the player possesses a certain amount of skill.
The basic form of play would involve the player wandering around their ship in first person. They will have built the ship themselves, to help emphasize that it is theirs, and they are able to make small level modifications on the fly as they like even customizing the dashboard. Each ship should feel different to fly than any other.

I decided the first thing I should refine is the engineering side of things. This way I know how the ship "works" as it were and can translate that to piloting. So far I have managed to work on a single kind of generator, the Collider generator. I want at least three, each working differently. I am not entirely sure how different as of yet. I am considering creating similar systems for each but requiring different goals. The engineering in the ship works like a puzzle based mini-game. The puzzle has many different "correct" solutions, but some solutions produce more power more efficiently. Players are more than welcome to completely ignore this side of the game, keeping the power at it's default.

The collider system was inspired by a game called SpaceChem in which you must produce molecules by manipulating atoms as they move along a line. Despite these similarities my game is different in 
 all other ways.
A screenshot from SpaceChem


The collider system I created works with "packets"of fuel released by two pumps on either side of a grid. Close to the center of the grid is the collider where two packets of fuel, one from each pump, are collided. The total "mass" and "speed" of these packets equals the power output which can be spread across the ship to power any number of units. The problem is the packets lose mass when the travel 4+ squares and lose speed every time they turn a corner. The player can control the mass and speed by shaping the line leading to the collider, adding special units on the line and using different types of fuel. There will also be obstacles placed around the grid so the designer can control how many variations and what variations are allowed.
An example setup for the Collider Generator.
  This is also the area I have chosen to prototype in Unity. I feel this area is complex and big enough to produce a decent sized prototype, while simple enough to program for a beginner. In order to teach myself Unity, I have been following along with the book Unity 3.X Game Development Essentials. The book teaches the player to create an island where the player must perform specific tasks. I am over halfway through the book, but have already been able to lay down the basics for my Collider Generator. I have used only cubes but can easily replace these with meshes or parent them with textured planes in order to make them look nicer. So far, I have produced a pump, which produces a packet every few seconds and a track which the packet can follow.
Current progress on the Collider Generator prototype.


No comments:

Post a Comment