I have been playing Simutrans on OpenBSD.  Now, with the attached
port, you can play too.

Simutrans is a transport simulator.  Your transport company moves
passengers, mail, raw materials, or goods by rail, road, ship, or air.
Passengers and freight have destinations and won't use your vehicles
unless you take them where they want to go.

For quick playtesting, I suggest the freeplay mode, where you can
spend unlimited money without going bankrupt.  After starting a new
game, click Options (the upper-left icon), click Players, then check
check the box for "freeplay mode".

I have been compiling Simutrans outside of ports on OpenBSD/amd64, but
I made this port on my old PowerBook G4 running OpenBSD/macppc.  This
caused some difficulty, because recent versions of Simutrans don't
work on big-endian processors (like my PowerPC G4).  I also built this
port on amd64 to try clang.  This port has 3 patches to fix big-endian 
problems, 2 patches for clang, 8 patches total.

A moment ago, I posted most of the patches at
https://forum.simutrans.com/index.php/topic,18587.0.html

This is my first port ever.  I might have missed some steps or
forgotten some dependency, so I want other people to check the port.
The most complex patch is patch-simsys_cc; my code (to find simutrans
in PATH) is sloppy and not exactly like the shell, but seems to work.

Simutrans needs a pakset for graphics.  In this port, I propose to
install only Pak64.  I like to play Pak128, but I chose Pak64 because
it is small.  Pak64 takes 12.7M; Pak128 takes 404M.  (*.pak files are
huge because they don't compress the graphics, except to collapse runs
of clear pixels.)  I include a README about adding paksets; I suggest
in the README to run `chmod g+wt ${PREFIX}/share/simutrans` so users
in group wheel can add paksets.

FreeBSD, NetBSD, and a few Linux distros (Arch, Debian, Gentoo) do
package Simutrans.  FreeBSD has pak64 and pak128 as options, defaults
to only pak64.  NetBSD has a separate package for simutrans-data, with
many paksets as options, and defaults to only pak64.  Arch and Debian
have simutrans depend on simutrans-pak64, also have packages of pak128
in Arch and pak128.Britain in Debian.  Gentoo includes pak64 in its
simutrans package.  Steam's version of Simutrans seems to include
pak128 and provide other paksets as add-ons.  Official builds from
https://www.simutrans.com/ have no pakset, so the user must add one.

My port also builds makeobj as a subpackage (like Debian).  Most
distros don't build makeobj.  I wanted no conflict with bin/makeobj in
x11/kde4/dev-scripts.  I tried bin/simutrans-makeobj, but that name
was too long: `pgrep makeobj` didn't work, and core dumps were
simutrans-makeob.core (no j).  Debian installs lib/simutrans/makeobj,
so my port now installs libexec/simutrans/makeobj.  Because I build
makeobj from simutrans-src-120-4-1.zip, the version number of
simutrans-makeobj-120.4.1 is the version of simutrans, not the version
of makeobj.  (Debian also uses the version of simutrans.)

Simutrans also suffers from buffer overflows; I made no attempt to fix
them.  Network multiplayer might have problems.  I tried amd64 client
with powerpc server, but amd64 was OpenBSD-current running in vmd(8)
in OpenBSD 6.4, and the clock in vmd(8) is slow.  The games desynced,
as amd64 went one month before powerpc in game time.  I tried to build
a road in amd64; the road appeared only in powerpc.

Most core dumps will be ~/simutrans/simutrans.core; a core dump during
startup might be /usr/local/share/simutrans/simutrans.core, but you
would need write access to that directory to make the dump.

-- 
George Koehler <[email protected]>

Attachment: simutrans.tar.gz
Description: Binary data

Reply via email to