Archive for August, 2022

Simutrans 25th Anniversary #5: For everything else, there is Simutrans

Enjoy this remake of a Simutrans advert video made 14 years ago by (the now inactive Devotee) vilvoh.

The Simutrans Community does not only welcome coders and artists. People who spread its love for Simutrans are also important, specially when they put as much effort and love in that as vilvoh did. Let this video serve as a reminder of all of you who enjoy making and sharing Simutrans content (be it now or in the past): Thank you! Without you too, Simutrans would not be what it is today.

Would you like to see (or make) more Simutrans-related media content? Well, you are in luck, because we have more surprises coming!

Next time, however, we will come back with another interview. Join us in two weeks as we will explore the boundaries of Simutrans with an exclusive interview with James Petts, lead developer of Simutrans Extended.

Schedule of the Simutrans 25th Anniversary Posts

Tags:

Simutrans 25th Anniversary #4: An interview with Markus Pristovsek, the Adoptive Father.

After Hajo left Simutrans, a man took care of continuing development – and has continued to do so for over 17 years (more than double the time Hajo was involved with Simutrans!). Without him, we would not be here today celebrating 25th years of development. It is now the turn of developer Markus Pristovsek (known as prissi) to answer some questions!

You will find that many questions are similar to those from Hajo’s interview, so you have the oportunity to compare the points of view of the two most influential Simutrans developers.

Let’s begin the interview!
_______________________________________________________________

First of all, introduce yourself. Who are you? Where do you live? What did you study? Where are you working or have worked on the past?

I am Markus Pristovsek, which is a pretty unique name. So if you found this on the internet, chances are high it is connected to me.

I am a Dedicated Professor [at”> Nagoya University in Japan. (Dedicated Professor means that I do not have to teach. But I teach anyway a little, because I like it.) Since I have recently got my tenure that will likely stay so. Yeah, my first stable job at 52 years …

Science is a little like the old medieval crafts: You have to travel a lot until you find place you can settle. In my case it involved studying physics at the TU Berlin in Germany, and from 1995 or so I worked on crystal growth of semiconductors like GaAs and GaN (see the Nobel prize of 2014 to my director). After my PhD I stood in Japan (2000-2003), Berlin again to 2009, University of Cambridge 2012-2016, and from 2017 Nagoya.

I wrote job applications for almost 50 positions but was invited only four times, which is pretty normal in my field. From 2010 or so I put something like Simutrans coding coordinator into my CV under other activities, mostly to have more to show. However, at my second to last interview in 2016, one of the committee members was from the IT department. He was very eager to to know more about it (actually he had looked up on Simutrans a lot!) and 1/4 or the interview derailed to Simutrans and “herding” open source projects. He seemed quite impressed on it and I could have probably got a position for teaching IT and Open Source if the interview would not have been about Teaching Photonics at an Applied University.

Did you learn programming as part of your physics background or did you learn it by yourself?

I wrote my first program in 1983 when stuck in an Austrian pension during a very rainy hiking holiday. My parents set out anyway, and I wrote a Pascal “database” for keeping track of my sailing competition results on six A4 sheets of scribble paper, based on the book “Pascal Programming for the CDC6000” from the mid 1970ies from my home library.

Shortly after I also implemented a line drawing algorithm on a friend C64 in USDC Pascal were one could see the line emerging pixel by pixel… That routine I reused in Simutrans.

My first Computer came in 1986. By chance it was an Atari ST, which we got with 30% rebate because my father somewhat knew Jack Tramiel (the founder) since he worked as Chief Concierge in the best hotel (then Hilton).

I first programmed it in Basic, then Pascal (as soon as the school yard network provided a compiler). But soon I ended up programming in C, since there was an IDE. My main contribution from that time is an Editor (PrED, sold about 100 times), and a viewer for TeX’s DVI-files, which was mentioned in the 1990 LaTeX companion. This combined highly optimised C and assembler (I even wrote a 30% faster replacement 32 bit division routine compared to the already optimised C-lib.) MC 68k assembler was great. (68k was also the base for the PamOS, where I learned about UTF-8 http://palmdict.sourceforge.net/ )

Formal training was 1 Semester in University, IT for Physics, at the ripe age of 22. It was a HP workstation with 8 X-terminals. Almost unworkable slow, so the true nerd met at 22h in the evening, spawned 20 emacs until the network card overheated and the system rebooted with cleared memory. Had to repeated every three hours or so. The only thing I learned was hacking Unix on that one … In the next room were PCs with absolutely filled with Viruses, which were for “IT for Philosophers”! But they had Internet connection, so I could download ST software from the US at mind blowing 8 Bytes per second during the night (well whole the University had a 9600 baud connection).

The next big thing I am proud, is a software I am still using today: https://github.com/prissi/snomputz It was written in 1997 to 1999 to run on a 386 without compressor and 2 MB main memory under windows.

Thus, in 2004, when I started contributing to Simutrans, I was quite computer literate, but had zero ideas on OOP. Also the Stroustrup book is great if you cannot sleep. Honestly, one of the most boring text I failed to read.

So a lot of my early code is rather C in disguise than proper C++. But I never really learned it. Tron (who hosted the third SVN) taught me a lot of proper C++, which I often stubbornly ignored first for some time.

Apart from physics and programming, do you have any other interests?

That changed with time. However, I like to be outdoors. So at some point in live, I made myself the rule to not switch on the computer when there is sun outside, and I pretty much lived by this rule. (Not too hard with miserable German winters or now sunset before 19h even in summer in Japan … )

Walking or Hiking is great. I cycle a lot, even more since Covid. (I have a tandem and send my 10 year old off to the 6 km away school and then cycle almost back 9 km to my University, whenever the weather permits.) I like sailing, but in Japan the summer is too hot and the Nagoya bay is mostly harbour with refineries and steelworks and the airport on an artifical island …

I like to read, but lacking time, it is mostly webcomics (I recommend the belfry archive, https://new.belfrycomics.net/ around since 1996 without advertising – the last old school internet site I know).

I used to write Science Fiction (in German), but that is even more time consuming. Also my work involves a lot of writing, so usually in the evening I am quite empty anyway.

I enjoy playing with my three children, but due to getting older (them) and the whole Covid online transition, they rather like to play with “friends” online. (Before we had 30 min/day cap all together, now this feels more like the daily minimum for one of them).

I like dancing, Folk dances (Irish, Isreal, south-east European, …) but like for hiking, I lack willing companions (and especially in Japan also occasions). I also like all kind of music. In the evening during dinner, one choses one tune on youtube, plays it screen down, and then passes the phone to the next. So there is a very broad range of music we all listen. Mostly around Christmas I dust off my guitar and various recorders as well.

Do your children play Simutrans? If so, do you play with them?

No, I showed them once. But I have had not played for over a year now, so I can be hardly setting an example …

Did you ever publish any of your Science Fiction writings?

Yes, less than 10 stories appeared in monthly a fanzine in the 90ies (on paper), called Solar-X, where I also wrote several book critics. Some more (in their rather raw state) can be still found on my old homepage: http://www.physik.tu-berlin.de/~prissi/m-werke.html

But nothing in English.

How did you know Simutrans? What was your first contribution?

I came to Simutrans in 2001 via a game collection CD of the German magazine c’t (which I am still subscribing today). I was in Japan at that time, but the magazine send also there with surprisingly little delay (5 days later or so). At that time most magazines had software CDs, c’t was about four times a year.

Contribution started in autumn 2004. First was the compilation of a pak64.japan from the objects in the Japanese wiki and some other sources.

Codewise, just a little later in November I asked Hajo for the vehicle acceleration code. Simutrans was Freeware, but not open source; quite common then. So Hajo as creator hold the codebase, and had sent out parts to possible contributors.

I wanted to try a more physical model. (Before vehicle always accelerated to max speed, even if totally underpowered.) I have a PdD in Physics, but in the end I made it intentionally non-physical, since a physical code (like the one extended is using) was too performance heavy and even worse, did not look good in game scale, and failed with many vehicles of the existing paks. Hajo was pleased, and so I got a zip of the whole code. Next was UTF8 support, where I had a very solid knowledge from the Japanese Dictionary for PalmOS. Then I got SVN access and in January 2005 Hajo left Simutrans with me and Dariok and Hsiegeln, who hosted the second SVN, which just vanished one day.

How did you become the lead developer of Simutrans after that?

Very simple, from March 2005 to end of 2006 I was the only regularly active developer left. In that year I did a lot of work (powerlines, winter transition, roadsigns, quick zooming, pak64.german, … ) Only mip was longer active than me, and has contributed to the gui infrequently all that time. All other developer joined later, so they implied that I am the lead developer. I never really claimed the title in any proper way.

Have you ever felt uneasy with your unclaimed leadership of the project?

No, not really uneasy. Maybe tired, and I would happily hand it over to someone with more time and more drive, and maybe a vision what to do next. I think I am too old for this now.

I am not sure if people need a leader. Whenever possible I would like to do things with a Simutrans team, but in the end few things are done and it is down to oneself. I think you know this quite well …

I often wonder if I am too strict, or too German rude for a good leadership role anyway.

Simutrans has been in your hands for most of his lifetime (17 years, double the time than in the hands of his creator, Hajo). Do you think it will survive without you? How do you envision this transition?

Simutrans turns 25. There are very few programs under active development that ever reach that age. Most of those are editors, compilers and other tools. Most programs did a complete makeover during such time (look at Word for Dos, Word for Windows, and the current ribbon Word: These are separate programs.)

In that regard, Simutrans simply will not go away. As to my contribution: I host the SVN, and the server listing, and the German forum. But now there is a github standard repo under the simutrans team control, and the server list node.js code is on github. So anyone could continue.

Apart from the Android porting (which was less a coding effort than learning and applying new stuff), I did not do much in the last two years. Maybe Standard is now mature enough to not require any leader. The server uptimes are as long as the OS itself, and automated test find many serious errors immediately.

And then there are the forks, like OTRP and extended (although its stability is rather experimental to me). These are sucking on Simutrans; maybe Simutrans (standard) will fizzle out due to everybody contributing on forks. And the recent code reorganisation (especially the slitting of large files), while in theory making contribution and maintenance easier, had in practice the effect I feared: it became almost impossible to port anything back for me or anybody else without investing much more time. I am very grateful for Ranran going both ways occasionally.

Its getting long, but let’s go into the Simutrans forks a little more:

There are two typical user bases: The extended one who play British on one server and the Japanese ones, who like model railroading, play sole or net simutrans.

They dictate the development in these branches/communities: Extended is mostly dictated by some ideas of mostly british realism mostly concerning railroads. The Japanese community (which is by far the largest, just look at the Discord) is mostly focussing on building clockwork like little realities. There was a Japanese freeware Freetrain (http://www.kohsuke.org/freetrain/) which just run trains along lines, no economics, which pretty much give a good idea of the style of many players in Japan.

In standard we have some US players (mostly in pak128) which are mostly focussed on road vehicles, and the Brasilian community, the German community, so it is a colorful fragmented community with a clear summer-winter contribution cycle. Standard tries to cater to all, but of course that is bound to fail when competing with specialized forks. So maybe Standard just dies in active development, and will rather be the base for various shorter and longer surviving forks.

Indeed, the Japanese community is pretty big and active, even making annual conferences. Since you have been living in Japan for many years, have you ever attended any of those events?

Just before corona I was at a Simutrans con in Tokyo, and last autumn I met with five nice guys in Nagoya, where we went to the local Shinkansen museum. It was my first “con” (in the fandom kind), and it was quite impressive, with the amount of work put into counting cars throughput for different crossing designs for instance. I think there are videos on the net or in the forum.

What is the biggest challenge you faced when working on Simutrans?

Lack of time.

The tools have been greatly improved (in 2004, simutrans only compiled with cygwin GCC, and had no working debugger). Contribution is also there, motivation is still there. But in End of 2006 my first child was born, and since then contribution went down. Now it is only two hours in the evening at most.

When you first took care of Simutrans, it was still closed source. Did you push to make it open source? How went the process of making previous contributors to agree? Why the Artistic License was chosen over more popular open source licenses?

After the birth of my first child my time got less and less, and I became worried. Thus, in May 2007 I finally got Hajo’s permit, and then contacted all the other contributors of whom I knew their addresses, Markus Weber, Hendrik Siegeln, Volker Meyer, Owen Rudge, Kieron Green, Stefan Wuttich, and Tomas Kubes. Other vanished. Also without SVN or the other old CVS, we could not really assign code ownership, and code gets reworked many times. So who is the copyright holder after a code review with corrections? For graphics, we did not publish work from anybody who we could not reach.

Several people wanted a non-commercial license, but there was nothing there. The artistic license had a clause that could be interpreted as non-commercial (even though a non-commercial license is actually incompatible with GPL). It states “Freely Available means that no fee is charged for the item itself, though there may be fees involved in handling the item.”

Modern CC licenses of course fill that hole.

Still, I got a blanko permit from the original developers. In principle we could change to GPL, if we get permission from Knightly, Dwachs, and the other main contributors since 2007.

What is the thing you like the most about working in Simutrans? And the thing you like the least?

I certaily do not like “working”, even thoguh occassionly this is neccessary. What I like least:

– tools with awful documentation, or the need to watch youtube tutorials (I thought programmers could read and write)

– maintenance of all kind

What I like:

– most of the rest, I would say, otherwise I would have quit a long time ago

Is there anything you think current Simutrans is in great need of improving?

There are a lot of other stuff, like a directional wayobj for single direction roads and not the OTPR “hack” of special roads, which also give no real indication without an overlay. Porting the overtaking code back from OTRP, now that it does not desync any more and seems stable. (Unfortunately this has became very difficult after all the splitting and reorganisation, so it needs to be done manually routine for routine. Might be good time for in depth for code review anyway.) This would cater to the general simutrans play, to be not biased towards rails (like extended). Here standard is lacking, and a directional wayobj would be also nice for airplanes.

More server hosting would certainly help to increase user base.

But nothing “great need” category.

Do you have any roadmap for Simutrans next version(s)?

I answered that one many times. No roadmap. There is an outdated todo.txt. I would not mind retiring as coordinator and just occasionally submit patches (as I do now anyway).

I think Simutrans can still improve on some areas, especially usability and network gaming (like more passenger and goods routing along competing connections, a nice side-effect of the static code of Knightly, but with less impact on performance and faster route recalculations than currently in extended).

However, the active international user base is shrinking, so maybe the foremost task of any Simutrans chef must be recruiting new players (as you do very nicely with Steam!) which will increase new contributors.

Indeed, the playerbase has been shrinking slowly but surely for quite a while, since April 2012, when the game was downloaded more than 100.000 times on SourceForge. What do you think this is due to?

Multiple factors, I guess, like going to yearly releases with plenty nightlies, start of experimental dividing attention, and changes of the industry, games from centralized platform, more gaming from mobile platforms. Also falling out of time, graphic-wise.

I find also the download per country quite interesting:
https://sourceforge.net/projects/simutrans/files/stats/map?dates=2007-05-16%20to%202022-07-01

So after Germany and Japan, there is Brazil and United States, and also Indonesia on 8th. Some unusual countries for a transport simulator.

Simutrans has changed a lot through the years. When you look at it today, what makes you think?

A tough one. Actually, I think the principal game play is still very similar to the earliest releases.

So I would rather say, I am surprised that Simutrans survived that long.

If you were to start Simutrans today, what would you make different?

This is extremely hypothetical given my lack of time since the last ten years. However, one thing would be probably to do this 3D or pseudo 3D. There have been other approaches like checz game which is very close to simutrans in terms of track laying and still allowing for full 3D. But as far as I know it lacked in other transport modes and industry connections beyond rail.

And not sure how to have large maps and 3D together. The networkmode model would be the same, since I see no realistic way of syncing 10000 convoy departures and millions of routing events per minute. And at least standard is extremely stable, servers run for months, and clients disconnect mostly on request of their users and not because of loosing sync.

What’s your opinion about Simutrans Extended? Have you ever played it? How is your relationship with Simutrans Extended developers?

I think extended took a lot of pressure to review and incorporate patches, especially ones that were done not so well and also ones which disturbed the balance between easy entry and heavy playing. Some ideas are great and I would like to have them in standard.

But extended has become one sink, happily taking advice and patches from standard but almost never giving back (apart from ranran). With a shrinking number of contributors, of course I see extended critical for the long term future.

However, I think the code quality of extended is in need of improvement.

I tried twice to start it. But it did not in a meaningful way, at least I could not connect to BB then respective the pak128.Britain extended did not start because the demo game did not work for that version of simutrans.

Compiling was also not working well. I then looked at some of the warnings in MSVC (beyond the trivial ones) and there were a lot of places that indeed needs fixing. The multithreaded code must work by luck because there are some accesses on variables just declared volatile instead mutex protected and so on.

Also the gameplay with signals is so geared towards Britain and so user unfriendly, that it has really entered a very special niche.

The discussion about Simutrans VS OpenTTD is a recurrent one between our players, since both are open source transportation simulation games. However, the reality is that Simutrans is far from close to the success of OpenTTD. What do you think this is due to?

While OpenTTD came late, there was the TTpatch before. So there is rather an uninterrupted chain of user from TT(D) to OpenTTD, and people remember oh TTD is still around. Also OpenTTD rewards quick success. Vanilla pak has four engines/trucks/busses and a very quick success. Getting bankrupt is close to impossible. The downside is that after 2 h or so one is drowned in micromanagement of broken down vehicles and close to the year 2020.

Simutrans after 2h is still in stage one of connecting everything in a way without getting bankrupt and/or causing insane queues of waiting goods/passengers.

So while vanilla OpenTTD is the fast food, Simutrans is rather the 12 course menu. In the real world, McDonald serves more customer than a Michelin starred restaurant per day. This goes along that OpenTTD is often played by rather young gamers (at least this is the impression I got from the forums) while Simutrans caters to the more well aged community who had outgrown the kick of quick satisfaction.

And in the time of mobile games with 5 minute success, and streaming stuff in 20 minute slices, Simutrans is clearly no mainstream, since 20 minutes in Simutrans is almost nothing.

So it boils down to different audiences, and different fame deriving from *THE* transport simulator.

Did you have any relationship with OpenTTD developers? Was there any interchange of ideas or code?

I had little direct contact with the OpenTTD developer. Actually Owen Ridge, who hosts to he TRD forum, has contributed midi code to Simutrans. I did two patches, a winter seasons one (which is doomed since there are less winter than summer trees), a night time patch, and a rudimentary destination systems, all in 2005/6. I did not contribute since then.

Occasionally I look at the OpenTTD forum, but development has also stalled a bit it seems.

Although you are now mainly a developer, you actually started contributing with graphics to pak64.japan. Do you still like to paint graphics?

Never painted much, just a tiny bit of copy and paste and editing. I would like to paint, but I am bad at it.

What tools do you use when creating objects?

When making button or other GUI stuff, I use an ancient Paint Shop Pro 4.12 from the late 90ies. Still the best tool to push pixels for me on these few occasions. And then shades and tile cutter and so on.

Do you have anything you worked on you are specially proud of?

After so many years, no. Maybe not giving up on Simutrans.

Which is you favourite pakset? (paksets maintained by you are not valid!)

Even though it is no longer maintained, pak96.comic was graphically very nice. Pak128.japan is second, but the graphics are too bright for my liking. pak129.comic is very complete, but somehow the industries never engaged me much. pak48.excentique does not have enough choices, but i like the abstract setting (same with pak contrast). pak.HD (handdrawn) looks ugly with the new climate system, but is also a nice addition. pak.HO I have ever really tried out at all. pak.nippon fails due to the use of pak64 vehicles, so technically I am involved with it …

Thank you for this interview. Is there anything more you would like to tell to Simutrans players?

I thank you all for playing Simutrans. And please consider to contribute, whether spreading the word, reporting bugs, running a public server at home, paint a simple object, or help with coding. Simutrans can only live another 25 years if there is contribution from players.

____________________________________________

Schedule of the Simutrans 25th Anniversary Posts

Next time we’ll bring you something different: A remake! A remake of what do you ask? Ah, you will need to wait to find out!

Tags:

Simutrans 25th Anniversary #3: The Simutrans Museum

In the last post of this series we talked with Hajo about the first years of Simutrans. However, many of the players reading this today have never played a Simutrans version from Hajo’s era. If you ever wanted to take a taste of one of the earlier Simutrans releases, today is your lucky day!

The first demo version


A screenshot of Simutrans demo version 0.50, with text in German.

The first of the versions we have made available is not the actual first release, but it is pretty close. This beta version was released on 02/05/1999, while the history.txt starts just two months before (06/03/1999). As the “demo” name suggest, this version has practically no content, and crashes frequently, since it was just a version to show up the Simutrans engine working and a little more. Because of this and the need to use a DOSBOX, we recommend you to skip this version and try the next one if you want to truly play an early Simutrans.

The first playable version


A screenshot of Simutrans beta version 0.78.7 with the minimap and some toolbars and windows opened.

Thanks to the donation of user Khaki we got our hands on one of the firsts playable versions of Simutrans, beta version 0.78.7 (released on 14/06/01, two years after the previous demo). As you can see in the image, this version has already some basic working tools (rail, road, ship and terrain tools). The minimap is also present, with a familiar view.

You can play this version natively on Windows or with WINE under Linux, although you might find some game-breaking bugs (particularly one with pop-up windows).

The Museum and other versions

In the SourceForge Museum you can find the versions mentioned in this post and other versions from Hajo’s era (beta versions 0.80, 0.84.01, 0.84.04.1 and 0.84.10) which were recovered thanks to Markus Pristovsek. Do you have any other previous version of Simutrans not listed there? Please share it with us!

And of course, you can still download (and compile) any version of Simutrans since it became open-source on SourceForge.

Schedule of the Simutrans 25th Anniversary Posts

Talking about Markus Pristovsek, join us two weeks from now as we will interview the lead developer for the 25th Simutrans anniversary!

Tags: