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]>
simutrans.tar.gz
Description: Binary data
