Shipping company management game
  • C++ 57.2%
  • C 42.3%
  • CMake 0.3%
  • Shell 0.1%
Find a file
Image Benedikt Straub bbad021c14
Image
All checks were successful
ci/woodpecker/push/build/1 Pipeline was successful
ci/woodpecker/push/build/3 Pipeline was successful
ci/woodpecker/push/build/2 Pipeline was successful
ci/woodpecker/push/build/4 Pipeline was successful
Fix savegame window delete table index selection
2024-08-08 10:07:03 +02:00
.woodpecker Add CI testing and fix more warnings and errors (#1) 2024-08-07 19:29:06 +00:00
data Update translations 2024-08-07 10:49:48 +02:00
src Fix savegame window delete table index selection 2024-08-08 10:07:03 +02:00
test Unit tests for date functions 2024-08-05 17:56:41 +02:00
.clang-format Format code with clang-format-18 2024-05-08 17:04:00 +02:00
.gitignore Support make install 2024-08-07 19:48:20 +02:00
CMakeLists.txt Add CI testing and fix more warnings and errors (#1) 2024-08-07 19:29:06 +00:00
COPYING add copyright notice (GPLv2+) 2024-08-05 16:18:59 +02:00
install-hook.sh Unit tests 2024-05-25 18:59:56 +02:00
README.md Fix savegame window delete table index selection 2024-08-08 10:07:03 +02:00
update_translations.sh Real translation and formatting implementation 2024-05-23 23:05:08 +02:00

Shipping

Woodpecker CI

In Shipping, you are the owner of a shipping company. You buy and manage ships, and make money by chartering and delivering cargoes.

The game's focus is on the management of your ships – you don't buy or sell any goods, you only transport them; and you don't actually steer any ships.

The game is inspired by Ports of Call Classic Edition (© 2006 MultiMediaStudio R.-D. Klein Muenchen).

How to Compile and Run

Prerequisites

The program uses the CMake build system and requires a C++ compiler that can handle C++17, and the following libraries:

  • GLFW3 (window framework)
  • GLEW (OpenGL binding)
  • Freetype (text handler)
  • Catch2 (unit testing)

To install them all under Debian/Ubuntu:

sudo apt-get install g++ cmake libglfw3-dev libglew-dev libfreetype-dev catch2

Currently the program is only tested under Linux; patches for other operating systems welcome.

Building

cmake -B build . -DCMAKE_BUILD_TYPE=Release
make -C build -j$(nproc)

Running

./build/shipping

Installing (Optional)

For a system-wide installation, pass -DDEBIAN_PACKAGING=ON to cmake.
For a user-local installation, pass -DCMAKE_INSTALL_PREFIX="$HOME/.local" to cmake.

After building, call make -C build install to install.

You can then run Shipping by simply typing:

shipping

Quick-Start Tutorial

Start a new game with all the default settings.

Enter the shipbroker by clicking "Shipbroker" in the top panel.
Click "Buy" to view the list of available ships.
Select a Small or Medium ship in the list, enter a name for the ship in the text field, and click "Buy" to buy the ship.
Exit the shipbroker.

Click "Resume" in the top panel to start the game simulation.
You may use the keyboard shortcuts "," and "." (comma and period) to change the game speed.

Your new ship is delivered after a few short days and its window opens.
Click "Charter" to select a cargo and destination.

Pick a nice cargo from the list of available cargoes and click "Freight" to take it in.
The cargo's destination is automatically selected as your ship's next destination.
You can set the ship's speed in the right panel.
Click "Load" to send your ship with the chosen cargo to the chosen destination.

Watch as your ship travels to its destination.

When it arrives, the ship window opens again. You can see how much money you earned from your cargo.
You will need to refuel your ship. Click "Refuel", and then refuel either by a certain amount or simply click "Full".
Then click "Charter" to charter a new cargo, select a new destination, and load. Rinse and repeat.

Q & A

Q: What do "Deadline" and "Penalty per day" mean in the charter window?
A: This is the time frame in which your ship needs to deliver the cargo to the destination.
If you take longer than the deadline, you are penalized by this amount – the longer you need, the higher the penalty grows.
If you arrive just a little too late, you still generate a profit in sum, but if you're really late you could end up with a net loss.
If you arrive before the deadline, you are not penalized; there's no kind of early delivery bonus though.
Deadlines are colour-coded: Green deadlines are easy to uphold, red deadlines are impossible to keep,
and black deadlines are possible but the ship will need to hurry.

Q: What is a "home port"?
A: Your home port is the port where all your new ships start.
You get to select your home port when starting a new game.
You can change it anytime later in the office (accessible from the top panel), for a fee.

Q: How do mortgages work?
A: A mortgage is a loan that's tied to a specific ship.
You can take a mortgage on any ship you own.
Some of the more expensive ships are only partly paid for at purchase time and
come with the remainder of the cost as an initial mortgage.
You can take and repay mortgages from the office.
You have to pay recurrent interest on all your mortgages (deducted automatically), and if
you don't have enough cash, the bank will seize your mortgaged ship instead.

Q: I found a bug.
Q: Can you add this feature?
Q: My question is not listed.
A: The documentation is very incomplete at this point, and the game is not yet feature-complete.
Please open an issue on the bug tracker.

Created by Benedikt Straub in my spare time. I hope you like my work.

Licensed under the GNU General Public License version 2 or later (GPL v2+); see the file "COPYING" for details.