/Star_Traders

Project for CSCI 3308. Space Trading Game

Primary LanguageC++

Star Traders

Who


Member Git User Name(s)
Isabella Figueroa francesca-figueroa
Robert Ballard robertBallard
Nicholas Pfeufer NicholasPfeufer / NickPfeufer
Brandon Jacquez baroquemyheart

Repo Organization


The contents of the Star Traders game is contained within the "Star Traders" folder, organized by Unreal. Outside of the Star Traders is all of the Documentation required by CSCI 3308, this includes:

  • Testing cases
  • Final Presentation
  • Final Submission
  • Game Credits

Play The Game


To play, first ensure that you have installed the Unreal Engine. This can be done by following the instructions at the following link: https://docs.unrealengine.com/latest/INT/GettingStarted/Installation/index.html

Next, copy the repo of the group GitHub using the command:

git clone https://github.com/francesca-figueroa/Star_Traders.git

Once the repo has been cloned you can import the project files into Unreal. Load the project, press play, and begin.

Description


Start Traders is a desktop trading game, in space. The game opens on a grid of hex-tiles, on which several solar systems spawn. The player's role is to buy and sell within a solar system during the course of a turn. The goal of the game is to make money!

Vision Statement


We strive to make games we would enjoy playing.

Motivation


In initial planning we determined we all liked games, feeling other options to be less interesting we decided to make a game. We considered a number of different topics, formats, and genres for our games, and through brainstorming, eventually concluded that we would enjoy making and playing a game like this project.

Risks


  1. Time management will be a difficulty as is with any team-based project. We will have to work to coordinate our schedules and individually and as a group manage our limited time resources effectively to generate a good end product, considering the scope of this project. Failure to manage our time effectively would result in ending up with an incomplete product, because we hadn't managed our time and wasted time.
  2. Communication is also a difficulty in team-based work, especially in this case where a significant piece of the project is learning how to effectively use project management tools like Github and Trello. Failure to do this would slow and harm our product and our productivity.
  3. Finding an engine that best suits our needs may prove to be difficult. It is possible that, if we choose unwisely, that we may encounter unforseen issues or will be unable to achieve our goals as originally planned.
  4. Designing or finding suitable art is another consideration we will have to take into account. Visuals can make or break a game, so if we are unable obtain artwork, the quality of our game could suffer.

Mitigation Strategy


  1. The use of Trello for scheduling and a set weekly meeting time will help to greatly reduce the risk in time management.
  2. Group text is already in effect and the use of email is a strong backup. Beyond that, Trello and GitHub will serve as another possible backup.
  3. We have listed both pros and cons to a number of suitable engines after a vote and extensive discussion we have decided on the Unreal Engine 4, as it is free, uses C++, and has Git integration, three things that make it the most attractive option.
  4. Our game design has been designed to minimize risk because in space there is a lot of empty space and simple shapes, thus less need for complex graphics and competent art skill.

Requirements


User Requirements:

  • User-1 - As a player I want to be able to buy and sell goods because in the game I can accumulate goods and currency and progress in the game. 45min
  • User-2 - As a player I want to be able to use goods as components in making other goods because it adds variety and depth to the means of progressing in the game. 35min
  • User-3 - As a player I want to be able to buy factories to make greater goods because it adds variety and depth to the means of progressing in the game. 40min
  • User-4 - As a player I want to have varying maps between play sessions because it adds replayability. 5hours
  • User-5 - As a player I want planets that provide resources so that I have goods to trade in the game. 1hour
  • User-6 - As a player I want planets that act as intermediate trade points in a line of goods because it adds variety and depth to the means of progressing in the game. 10min (due to other requirements that cover most of what this entails)
  • User-7 - As a player I want a variety of planets because it adds depth and replayability. 2hours
  • User-8 - As a economist I want to look at graphs of the current state of the simulated economy because it allows me to strategize in the game. 6hours
  • User-9 - As a player I want to be able to hire ships to automatically pickup and transfer goods because it adds more depth to the later stages of the game where I should be generating more income. 50min
  • User-10 - As a player I want to be able to set up stores that automatically sell goods because it adds further depth to how I progress in the game. 20min
  • User-11 - As a player I want to be able to upgrade my ship(s) and shop(s) because it adds depth and a sense of progress to the game. 4hours

###Functional Requirements:

  • Func-1 - As a developer I want to be able to keep track of the current state of the planetary system and galactic economies because it allows for graphing and price estimates. 1hour
  • Func-2 - As a developer I want to be able to track goods in value, location, and status because it allows for trading, inventory, and managing a relatively versitile economy. 1hour
  • Func-3 - As a developer I want to be able to have a set way of crafting goods into other goods because it allows for using existing goods to create new goods. 30min
  • Func-4 - As a developer I want to be able to track what infrastructure the player owns because it allows for players to have factories and ships. 30min
  • Func-5 - As a developer I want to be able to process automated systems because it allows for the player's infrastructure to function properly and for planets to change over time. 1hour
  • Func-6 - As a player I want to be able to navigate the world as it allows me to trade. 1hour
  • Func-7 - As a developer I want to be able to procedurally generate a map based on parameters as it allows the game to be more replayable. 5hours
  • Func-8 - As a developer I want to visualise game data specifically in terms of goods and their attributes as it allows the player to see more information about the game. 5hours
  • Func-9 - As a player I want to be able to save the game as it gives the game more playability and adds to my ease of use. 1.5hours
  • Func-10 - As a player I want menus as it allows me to access more information 1hour
  • Func-11 - As a player I want pausing as it add more ease of use. 25min

Non-Functional Requirements:

  • NFunc-1 - As a player I want the game to run at at least 30 fps as it makes the game a smooth visual experience. 6hours (optimization)
  • NFunc-2 - As a player I want the controls and layout to be intuitive as it adds to my ease of use. 1hour (to think about it)
  • NFunc-3 - As a player I want a game that is stable and effectively manages whatever input I give it as it adds to my player experience. 8hours (testing)
  • NFunc-4 - As a player I want the game to look reasonably good and the sound to be suitable as it adds to the useability of the game. 4hours

##Methodology:

Agile, with sprint timing based on weekly meetings.

##Link to Project Tracking:

https://trello.com/b/UMEHXd3i/unicorn-factory-game-0