Organization

## Concepts

We will post a orginazed structure of the project and the team that is working on it with roles and some documents that we used during the development of the game. We start at the beginning with the concepts. Each of us had 2 days to do some background study on the matter and write a short concept on how the game should work and what should be included in it. The results are these concepts.

### Concept 1:

In Container Terminal Tycoon, player designs a container terminal by determining the area, layout, equipment and personnel, and proceeds to supervise the operation by making management decisions. The game consists of multiple levels, and each will be more difficult than the previous one (e.g, higher profit goal, increased maintenance fee, heavier inbound traffic etc). During each level, players first designed the terminal in building stage, then put it to use in operating stage. Levels are considered passed once enough revenue has been generated in the operation stage. The player could fail the level if the target profit is not reached within given time, or went bankrupt. After passing each level, a rating will be given, based on the performance of the player. The players can freely explore different designs of the terminal and different management strategy, but to get a high rating the players must have a good understanding of how the terminal works.

No fancy words version : Like one of those mobile tower defense game. Build your base, let things run, replay to get a high score. And we can actually make it a mobile game as well.

The biggest problem I think: There has to be enough motivation for players to replay levels to get a high score, because the learning of how a terminal works is achieved during that process of challenging for a high score.

### Concept 2

*Container Terminal Tycoon*

The game will be based on a 2D real time map of the terminal.

At first there will be a building phase where the player can build his terminal with blocks. An easy drag-and-drop menu provides the blocks that can be placed in on the map. These blocks all have their own properties like building cost, maintenance cost, empty upgrade slots, etc. These properties can change during the management phase giving the player feedback on the choices he made before. This way the game makes sure that the player will learn from his mistakes and apply the correct know-how in the next level. Each level has a goal that needs to be met, this can be a financial goal or a occupied area goal or any other goal. Each next level will restrict the player more in freedom of design and management so the player has to adapt to each level and has to reconsider his choices made in the building phase. The first building phase will freeze time and the player starts with an empty area that is being leased from the port. He will then start building his terminal with the blocks from the building menu. After finishing the building phase he will start the management phase. During this phase the player can build and demolish blocks but this comes with costs and is time consuming and the terminal can’t operate when certain parts are under construction. The financial accounting of the terminal should be closely monitored by the player as this shows how successful the player is.

Every upgrade made to the blocks have requirements that need to be filled like a different rail for the cranes or special roads with beacons for the AGV upgrade. So the player needs to consider multiple factors when thinking about upgrading his block. Each block also has a percentage of usage so the player can see if a block is used optimally or maybe it needs more assets like a extra RMG for the stack because AGVs are forming a line because they have to wait for the crane. So the player needs to consider all these things during the building phase. At first the player can choose to go through a tutorial that explains all the ins and outs of a terminal and how to make it run optimally. After this the first real level starts. With each level completed the player will gain knowledge in designing and operating a terminal while considering finance maintenance labor time etc.

### Concept 3

The player starts out with an empty terminal terrain and a budget. The game is played in realtime, with the ability to pause or speed up time. A goal is defined beforehand, for example: Earn a annual profit of 100 million per year for 2 years straight, or, transport 100 containers per year. On the first playthrough a tutorial is offered, guiding the player through the basic mechanics of the game. The player has access to a build menu, which contains buildings, cranes, AGVs, roads, rail tracks, train loading stations, etc. These objects all have their corresponding usage and statistics, like purchase price, maintenance and power costs, movement speed etc. that can be viewed by selecting them. Upgrading buildings will improve these properties. The player is able to place these objects in the map, and design his own container terminal. He is also able to allocate section of the terrain for buffering containers.

Containers have certain types and destinations. The destination of a container is indicated with one of 3 colours.

* Red containers need to be picked up by trucks.
* Green containers need to be picked up train.
* Blue containers need to be picked up by ship.

Furthermore, containers can have special types which are indicated by icons on the container:

* Normal - No icon
* Empty     - Are generally stored longer
* Refrigerated - These need electricity so then storing them increases power costs
* Bulk - Are Heavier, so movement is slower
* Tank - Contain liquids, also heavier and slower. Earns more cash

Containers have to be picked up, stored and transported to the right places. This is done using roads, AGVs cranes etc.. After each delivered container the player earns money.

The map has 3 types of connections to the outside world, each indicated with a colour on the ground of the corresponding connection. Initially, the map isn't connected to any of them. These connections are:

* Gate for trucks (Red)
* Rails for trains (Green)
* Water for ships (Blue)

A basic map can for example have

* 1 gate which connects to the highway, which the player has to build roads to.
* 1 railway that the player can also connect to a train loading station.
* Water, which the player can build crane rails adjacent to.

The player is free to build on these to activate the connection. After the player has activated at least one connection, he can start accepting contracts from companies from a list. Companies require certain type of connections activated to appear in the list. Each contract increases the amount of transportation the terminal has to be able to withstand. The amount of companies and their conditions, like how much they're willing to pay per cargo, will be based on the stats of the player (except in the initial year).

An important aspect of the game is managing the cash flow. Income is earned primarily through successful transportation of containers between routes. An overview of incoming and outgoing cash is summarized in a graph in the menu.

The game objective is to make profit and reach the goal. The player loses if he has no contracts left to accept, or goes bankrupt otherwise.

The choice of dimensionality would we 2D. An isometric cartoonish style could also be a possibility (think farmville). The choice of engine is unity with scripts in C#.

### Concept 4

*Container Terminal Tycoon*

General gameplay:

On a 2D grip-like map of an area of the seashore, the player of this game, given a certain amount of money as the starting budget, will firstly work out a plan to design a container terminal of his own. The plan includes installing cranes of different specifications, deciding locations to stack the containers, purchasing vehicles, and drawing rails and roads for trains and trucks in the area. Each building decision has its cost. That is the first phase of the game, a.k.a. designing phase.

Then in the second phase, operation phase, the player tries to maintain and operate his terminal. He has to make real-time decisions like the placement of different batches of containers, service priorities of different customers/ships. Each container going through his terminal brings him a certain amount of income. Each operation decision would affect how many containers he can transport.

After a year's (figuratively) operation, the player gets a report of his net worth, which shows his income versus operating costs like electricity bills. Then his net income would be the budget for next year.

In the coming year, the game starts with the designing phase, during which the player can upgrade his design/facilities or buy new ones. Then it goes into operation phase again and as a loop.

Goal:

The purpose of the game is to make as much money as the player can every year, so as to learn what kind of design of a container terminal would maximize the profit. There will be different levels and challenges like the player have to reach higher and higher yearly revenue to continue.

If the net worth after one year's operation is negative, it is considered that the player is broken and has failed the game.

Some details:

* There are basically two kinds of cranes, one fixed on rails, the other one movable with wheels. Each kind has its own advantage and disadvantage.
* Different size of ships requires cranes of different specifications to serve them. And if ships of a certain size do not get served for a while, they will not come to this terminal anymore.
* Containers go and come in three different directions, i.e. sea ships, railways, and land roads.
* Vehicles like AGV could move container from stacks to stacks.
* More details to be worked out and to be added to the game.

### Concept 5

Tycoon has two phases one building phase at the start of a year and a real time management phase taking an entire year. These phases will repeat each year until the user decides to stop or the game is lost.

During the building phase you can design and upgrade the terminal these upgrades will than help you during the management phase. Problems in the design of the user from the this phase should have a significant influence on the real time phase. This can be in the form of a slow crane holding up agv's to show the user where the problem in his design lies.

After the building phase the real time phase start during which the user will resolve small problems that arise during a normal day at the terminal. This could mean assigning locations for ships to dock and unload or choosing when to do 'house keeping' (preparing the stack).

Then after each year the user gets a performance overview with total containers processed, costs and profits. He will also get an overview of the performance from nearby competing terminals.

The user will also receive new orders for the coming year giving him an idea for the amount and types of ships he will receive.If the user caused large delays to a certain customer he will be doing less business with the user and more with the competitors.This should push the user to come up with a better design or reward a user when his design was good.

The game ends when the user can no longer pay for the ground lease or when the user is satisfied with his design. A nice addition would be to have a leaderboard showing which design could transported the most containers in his last year.

### Concept 6

The game aims to train a player to design the perfect container terminal. Through increasingly difficult levels, the player learns to overcome different obstacles in designing his perfect terminal. The game will give the user a 2D representation of a real terminal. The player can buy different types of docks for the ships, cranes, storage areas, train tracks, and roads. At the start of each year, represented as a level, the player can buy and upgrade the various aspects of its terminal. Then, an entire year plays out, and the player can manage his terminal. At the end of the year, a certain goal will have to be met. This can either be an amount of containers processed, money earned, or money left. Money can be spent on new facilities, like cranes or terminals, and can be earned by processing more containers. Different types of ships are used by different kinds of companies, and docks have to have a certain size to attract and serve those specific kind of ships.

## Pitch

After discussing all these concepts with the team we finally came up with a good basic understanding of the game and we summarized it in a pitch which we all know by heart.

*Our main goal is to capture the complexity of terminal design under uncertain conditions, targeted towards people from the industry. Container Terminal Tycoon is a game in which the player designs the terminal, prioritizes inbound/outbound vehicles and will get scores based on the performance of that terminal. The player can change the terminal by changing the equipment, assigning more stack areas, adding more cranes etc. The performance of the terminal is determined based on the throughput of the terminal in a given time period, subtracting the running costs. If the player makes bad design decisions and can’t reach the stage goal he will stay in that stage.This negative feedback will is used to educate the player about that. By modifying the design further based on the negative feedback, the player gets to understand the operation of the terminal better.*

## Game synopsis

Genre: Tycoon, Simulation, Strategy

Game requirements:

* Duration: Level ~60min
* Demographic: People from the industry
* Goal: Capture the complexity of terminal design under uncertain conditions

Container Terminal Tycoon is a game in which the player designs the terminal, makes some major management decisions, and will get scores based on the performance of that terminal. The player can change the terminal by changing the equipments, assigning more stack areas, adding more cranes etc. The player makes major management decisions like prioritizing the inbound ships and trucks. The performance of the terminal is determined based on the throughput of the terminal in a given time period, subtracting the running costs. If the player makes bad design decisions, such as employing too many cranes but only one stack area, a negative feedback will be given to educate the player about that. By modifying the design further based on the negative feedback, the player gets to understand the operation of the terminal better.

A level consists of multiple short stages, each being more difficult than the previous one. The increase in difficulty is achieved by adding more elements for the players to consider. For example, in the first few stages, only trucks will come to pick up the cargo, so the players do not need to worry about incoming trains and barges immediately. This gives relatively clueless players, like passer-bys in conventions, a opportunity to start playing immediately from the first level and get the basic idea of how a container terminal works. Relatively more experienced players, like the majority of the intended target audience, can start at more advanced levels that are more similar to real-life operations. Advanced levels can have different conditions like less room for stacks or smaller berths, this gives experienced players a better understanding of how a complex terminal design takes multiple elements into account.

The game in each level is divided into two phases: the upgrade phase and the operation phase. The player will take up the role of a terminal designer and terminal manager in each of the two phase.

In the design phase, the player is presented with a map of the terminal. Maps from more difficult levels are more likely some elements that will make the design more complicated. For example, some of the best stack areas could have already be rented by rival companies. Player will also be presented with a throughput expectation from the higher-up, funding to construct the terminal, information about the harbor the terminal is in, information about cargo ships that visit this harbor on a regular basis, and the cargo they carry. Combining these elements, the player then need to decide the layout of the terminal, such as the location and direction of the stacks, and the make and models of the heavy machinery, such as the cranes, gantries and ground transporters. These choices are trade-off between initial cost, maintenance, area, safety, efficiency etc. The player should consider the information presented in the current level, and design the optimal terminal with the limited funding.

Some examples of bad designs are: buying one giant advanced crane when the harbour mostly expects small but numerous cargo ships, investing too much on ground transport when the cargos are mostly expected to be picked up by barges, or not investing enough in guntry so that the stack area bottleneck the whole terminal. Players who do these will receive negative feedback during the operation phase.

Once the player is finished with the design, the game continues into the operation phase. No evaluation will be given to the design after the design phase. Rather, only after the level is completed, a score will be given, based on performance of the terminal. A good terminal under bad management and a good management on a badly-designed terminal would not score very well, just like in real-life.

In the operation phase, the player can no longer change the design of the terminal. The player will mostly make management decisions in this phase. For example, the player needs to compete with other terminals within the harbour for inbound cargo ships. Committing to a inbound ship too late and it will go to another terminal, and committing too many ships could result in the terminal being overwhelmed and fail to offload the cargo in-time. There are also some policies that the players can change that provide some bonus but also come with drawbacks. Investing more time to conduct safety education to raise the safety awareness of the workers, but that means less effective work time for workers.

The problems of both design and management will cause negative effects during the operation phase. For example, an inefficient terminal will prevent the player to meet the throughput goal, therefore results in a failure of the level, lack of safety equipment and awareness could lead to workplace incident and casualties, too much emission will leads to huge fine from local government etc. These elements will help us achieve the goal to learn the player the complexity of terminal design under uncertain conditions.

Afterwards more levels can be added and more elements like emission management. The overall graphics, things like shaders, textures and models, will also need improvement. For actually releasing the full game no extra hardware or licences should be required. Licences for real life container companies could be used to increase realism. The cost is the same as for any normal game would be.

## Team and roles:

* Jasper van Esveld: Lead Programmer
* Arjan van Schendel: All-around Programmer
* Felix Yang: User Interface Programmer
* Ridvan Karagöz: Senior 8-bit Audio Engineer, Programmer
* Serkan Metin: Technical Artist, Executive Commissioner Coordinator Communications, Animator, Commander-in-chief, Story designer
* Shang Xiang: Artificial Intelligence Programmer, Databases

## MoSCoW document

"*To get a good understanding of what we want in the game and the trade-offs we made during the design of it , we used the socalled MoSCoW document as shown below."*

### Must have

*Essential features required for a successful product.*

* Upgrade Phase: The user must be able to upgrade his terminal at the start of a stage
	+ The user must be able to upgrade the stacks
	+ The user must be able to upgrade the cranes used at a terminal
	+ The user must be able to upgrade Ground vehicles (Reachstacker, AGV’s)

* Management Phase: The user must manage the terminal during operation
	+ The user must be able to choose which transport vehicles come in
	+ The user must be able to manage where ships are going to berth
	+ The user must be able to manage where trucks are going to unload and load
	+ Ground vehicles must be able to move containers between stacks
	+ Inbound ships must have a timer that causes the ships to leave the when depleted
	+ Containers must have different colours indicating their destination
	+ The user must be able to load empty transport vehicles with containers from the stacks

* A performance report must give the user an idea of how well he performed that stage.
	+ Throughput of containers (in TEU)
	+ Capital Expenditures
		- Purchasing/Upgrading facilities
		- Lease cost
	+ Operation Expenditures
		- Power Cost
		- Labour Cost
		- (Probably) Emission cost

### Should have

*Features that greatly improve the quality of the product but aren't essential.*

* The inbound ships should be chosen from a small list of available ships.
* Available ships are randomly generated based on stage and level.
* Containers have different types that have their own attributes like weight, profit and dwell time.
* Incoming vehicles (trucks and trains) must either be fully loaded with containers or be fully empty.

### Could have

*Non-essential features that are only implemented if there is enough time*

* The user could be able to upgrade customs office (speed of customs).
* The user could be able to upgrade truck gate for faster entrance of trucks.
* The user could be able to manage the personnels of the terminal to some extend.

### Won’t have

*Interesting features for future development that are not going to be implemented.*

* The user won’t be able to consider pollution in the design.
* The user won’t be able to consider social influence of automation.

## Road Map

### Sprint 1 (Deadline: 24-11)

* Prototype of container movement, truck pathfinding, ship movement and etc functions. (They need to work on their own, not necessarily with one and other)

### Sprint 2 (1-12)

* Combining these elements and make them work together,  first working prototype. It show be able to support one errorless playthrough.

### Sprint 3 (8-12)

* Add more depth for existing elements. (More variations for containers etc).  Add checkpoints to support more levels/stages.

### Sprint 4 (15-12)

* 13-12: Midterm presentation.
* The majority of the gameplay elements should be present.

### Sprint 6 (22-12)

Adding artworks for the project, textures and visuals to the game. Make it fancy