Welcome to the last of interviews of the Simutrans Anniversary before the final event! Our special guest today has the honor of being the only other successful developer who has made a Simutrans fork: Simutrans OTRP. Let’s explore the boundaries of Simutrans with the help of his creator, Himeshi!

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 Himeshi. Himeshi is a handle which I use in the Japanese community. THLeaderH is my handle on the International Simutrans Forum and other international simutrans communities. I have lived in Tokyo for my whole life except for its very beginning.

I am a software engineer at a Japanese IT company, which provides a chat app for smartphones. My job is developing the company’s chat app for iOS with Swift programming language, and the chat app is widely used in Japan and some east Asian countries. I am in the second year of my career since I graduated from the school in March of last year.

I studied computer science and electrical engineering in the University of Tokyo, and its graduate school. I have a master’s degree, but do not have a doctor’s degree. I enjoyed studying in the university, but was not so good at research. I studied electrical tactile display during my master’s period, but it ended with submitting only a few papers to small conferences without paper review, and did not participate in any on-site academic meeting since the COVID era started during my master course.

When not programming in your daily job or in Simutrans, what do you like to do?

Aside from development, I love playing Simutrans. I usually play my local map with OTRP, and sometimes play a network game with my friends in the Japanese Simutrans community.
Chatting and voice calling on Discord is my daily habit. There are a bunch of discord servers which are derived from the Japanese Simutrans community, and I am in multiple of them. The relationship is a kind of friendship, rather than the simutrans community members, and we talk about so many kinds of topics there.

Although the frequency has decreased recently due to COVID, I often go to the home party in the house of one of the core community members. I don’t remember how many times I went there. At least, so many times since a few years ago. We spend a precious time there with beers and Japanese Sake. The house owner (We call him “Kumi-cho”) could not drink alcohol at first, but recently, he started enjoying the Sake we brought with us.

And recently I bought a new Toyota car with a manual gearbox, so I frequently go driving in my holidays. The driving is often with my family and the friends in the Simutrans community.

Indeed, the Japanese Simutrans community seems very united, and it is without doubt the largest and most active community. Which is surprising, since traditionally the largest community has been the German one (being the early developers from Germany). Why do you think the Japanese community has become the most active?

It is a tough question. Personally, I think the offline meeting culture and Japanese characteristics to prefer crafting are the factors of Japanese simutrans community prosperity. However, it is only one aspect of the community. To understand how the community became as today, I have to summarize the history of the Japanese simutrans community.

Fortunately, three years ago, Peruri summarized the community history in our meeting. The history described below is based on this video.

The Japanese Simutrans community is said that it started on the anonymous board, called “2ch”. It started with the translation project to Japanese, then the members started to post addons, their saved map, and screenshots. Since 2ch is anonymous, most of the members did not have their handle at that time.

After that, the Japanese simutrans wiki was founded, and addons were posted there. Uploading simutrans videos to “niconico”, a Japanese video sharing service, became popular at that time. With these activities, creators had handles in the community.

Simutrans 111.0 supported the network game. As soon as it was released, Japanese simutransers started to play the network game. Addon authors were also in the network game, which means players and addon authors play the game in the same place. At that time, twitter was becoming popular, and twitter became the main place for the Japanese community. On twitter, players also have their handles. Since the conversations on twitter are public, more and more people joined the Japanese simutrans community.

As the community prospers, some people started to meet face to face. They understood how great meeting face to face is, and the number of face to face meetings gradually increased. As a result, in the Japanese simutrans community, a bunch of smaller and closer communities which are based on face to face meetings were formed. Some members regularly held drinking parties in these communities. Moreover, meeting face to face encouraged starting the larger projects, such as SIS and pak256.

As the information exchanged in the communities increased in amount and became more private, twitter became not suitable for communities. So many communities moved to Discord, and they became closed communities. Since a few years ago, Discord has worked as comfortable and safe places for communities.

On the other hand, Japanese simutrans communities are not an exception for the recent world wide simutrans community shrink. As most communities work on Discord, fewer newcomers are coming to the communities. At the same time, some existing members reduce the time to spend in the community, and often disappear from the community. Also, we talk about things other than Simutrans more frequently.

One of those meetings is the Japanese Simutrans Conference. Could you tell us more about it? What kind of activities are done? When did it start and by who?

The Japanese Simutrans Conference started in 2017. At that time, the community members explored how to make addons and their play styles individually, and the knowledge was not shared enough. So, on twitter, I suggested holding a simutrans conference. The events themselves had been operated by other community members. The first one was held by JHSDF.

In the simutrans conferences, the attendees presented Simutrans related knowledge and experiences with slides. The simutrans conferences were held three times in 2017, and once a year since 2018. This year, I called for presentations for the simutrans conferences as we did last year, but no one applied for it. So I decided not to hold the conference this year. The Simutrans knowledge and experiences have been shared enough via the past simutrans conferences, and I think the Japanese Simutrans Conference served its purpose.

When did you join the community?

I joined the community ten years ago. At that time, the series “The story of Kumagaya peninsula development”, which is still a monumental Simutrans video series for these days, was being uploaded. I was affected, and also uploaded my Simutrans video series.
Seven years ago, I joined a face to face meeting for the first time, which was in a chartered train. And five years ago, I started modifying the simutrans code, and my contribution for the International Simutrans Forum.

Video from the Kumagaya series by 128Na

The Simutrans version you started working on at that time is what we know today as Simutrans OTRP (One-Way Two-Lane Road Patch). What did motivate you to start working on this project?

At the end of 2016, I was developing Route map maker, which is a software for PCs to make a railway route map easily. It was a success to some extent, and I was looking for the next thing to develop.
Route map maker was written from scratch, and I wanted to develop a new feature for an already existing larger software as the next step. Simutrans was the best for that purpose. At that time I had already played simutrans for five years, and I had wanted to try to add new features to it. So I decided to try modifying simutrans and adding a new feature for it.

There were so many candidate features to be developed, but I thought that it was easy to improve the road vehicle overtaking logic for one-way highway, which was revealed to be completely false. I knew that some conditions which seem to be too strict were imposed on overtaking, and I thought the overtaking improvement can be completed just by removing these conditions. The result was, the collision of the two vehicles on the overtaking lane. Then, my long journey of OTRP started.

At what point of development did you announce that you were working on your own version of Simutrans?

As soon as I succeeded to relax the conditions of overtaking, I posted the demo video on YouTube . This video showed overtaking under slope, dense traffic, and intersections. At this point, there were so many side effects to be solved.
Two months later, I posted a message on the International Simutrans Forum. Like Simutrans-Extended, at first, OTRP was intended to be merged into Simutrans Standard, so I submitted the patch files. The overtaking logic of Simutrans Standard was already very complicated. And as a result of adding so much logic to deal with the side effects by the relaxed overtaking conditions, the code of overtaking logic got more and more complicated, and I knew that the patch was very hard to merge into the simutrans nightly. I wanted to discuss how to solve this situation, but unfortunately, the overtaking logic complexity has not been solved and it is still a large technical debt of OTRP.

At the same time of posting a patch to the forum, I posted the executable binaries to test with. For the Japanese community, I mainly announced about these executable binaries, and eventually, they started to test and play with the OTRP binaries.

Demo video of Simutrans OTRP

What are other features that differentiate OTRP from Simutrans Standard?

There are four features which largely differentiate OTRP from Simutrans Standard. The first one is the improved road vehicle overtaking and other road related configurations, which is the original feature of OTRP.

The second one is the area construction tools which are suitable for large scale development. With the removal tool, you can select the area where you want to remove the object by dragging the area. The city building construction tool of OTRP enables you to select multiple kinds of city buildings, and distribute the selected buildings randomly in the selected area. The slope making tool also supports area selection. These area construction tools are useful especially on a network game. I should note that now these area construction tools can be implemented as squirrel scripted tools, and modifying the C++ code is not necessary.

The third one is convoy coupling. Convoy coupling can be a powerful tool to accommodate so many routes on a single track. OTRP realizes the convoy coupling feature with the two simple options in the schedule, “try coupling” and “wait for coupling”.

The last one is time scheduling.Before this feature was implemented, players had used the “maximum waiting time” feature to make trains depart at the regular interval. However, the waiting time was not so flexible (only 1/(2^n) month) and this approach was quite fragile because a single delay of arrival caused the delay of all successors. OTRP has the time scheduling feature which is similar to that of simutrans-Extended, but has some additional parameters like “no load” and “load immediately before the departure” options. These options are useful to control the passenger flow by optimizing the route costs.

Recently, Simutrans’ Lead Developer prissi stated in a previous interview that he would like to see the overtaking code ported back to Standard “now that it does not desync any more and seems stable”. Would you still like to see your code merged or are you afraid that this could make OTRP players lose interest in Simutrans OTRP after so many years of work?

Bringing the OTRP features to Standard is welcome. According to the survey conducted by Peruri, who talked about the Japanese simutrans community history in the conference, about 70% of Japanese players still use OTRP. Since OTRP stopped merging the nightly commits for some reasons, the fruits of simutrans standard development are not delivered to OTRP players. OTRP was derived from Simutrans Standard, and I hope Japanese players go back to the Standard version and enjoy the latest achievements of Simutrans Standard development.

There were some forks of Simutrans which implemented novel features. As far as I know, Experimental (now Extended), Iron Way, and Tiny Timetable Patch (ttt) are listed as larger ones. Especially, ttt, which was developed 10 years ago, had much more features than OTRP around time scheduling. However, except for Simutrans Extended which is actively maintained and developed by James, all these forks are not maintained and already obsolete, which means that the features of these forks were lost for most of the Simutrans players. Seeing the “loss” of the time scheduling feature of ttt, I wanted to avoid making OTRP one of these obsolete forks. But unfortunately, it is becoming one of them. I believe that most OTRP players will go back to Simutrans Standard in the future, although it may take a long time. Porting the overtaking code of OTRP to Simutrans Standard prevents the loss of overtaking feature, which should be a huge benefit for players.

I am for porting the overtaking logic to Simutrans Standard, but I think the code itself should not be ported. The overtaking code in OTRP contains so much ad-hoc logic to deal with the relaxed overtaking conditions. No one, including me, knows why the current OTRP overtaking code looks to work fine. The overtaking logic should be fully reimplemented when we port it to Simutrans Standard so that everyone can maintain it. At least, the complicated logic should be encapsulated. And, I regret to say that I have no plan to join this porting project for now. Compared to the time when I brought this to Simutrans Extended, I lost some of my motivations to contribute to the Simutrans codebase.

Screenshot showing Tiny Timetable Patch

What are the reasons behind your lack of motivation? Is this lack of motivation behind OTRP lack of development too?

To answer this question, I have to figure out what was my motivations for Simutrans development. I think there were four motivations for me.

The first one was simply realizing features I wanted. I wanted to make road vehicles overtake others more efficiently on a highway, and make convoys being coupled to simulate the railway operation in the real world. A smooth overtaking of trains was also what I wanted to play in my local and network games.

The second was realizing features everyone wanted. At the time when I started the OTRP development, road vehicle overtaking, railway convoy coupling, and time scheduling were the three largest features which so many Japanese Simutrans players had been dreamed. Also, keeping the base nightly revision up to date was an important thing, because OTRP players can enjoy the fruits of the latest Simutrans nightly development.

The third was learning how to modify an existing large software. Simutrans was the largest code base I had ever seen at that time, and the development of OTRP was a valuable opportunity to learn how to find the code I wanted to modify, how to modify while minimizing the bug, and how to deal with the players feedback. In this aspect, the OTRP development experience became the fundament of my carrier as a software engineer.

The last one was contributing to the Simutrans community. As a player who has been loved Simutrans for more than ten years, contributing to Simutrans is just fun.

Unfortunately, as OTRP matured, three of them seems to have been lost. Firstly, in the end of 2020, I almost completed the implementation of the time scheduling feature, and the three features which I and the Japanese community had been dreamed, road vehicle overtaking, railway convoy coupling, and time scheduling, were achieved. Now I have nothing new which I strongly want to realize. Other Japanese Simutrans players also seem to be basically satisfied with the current OTRP, although I still receive some minor requests.

Secondly, keeping the base nightly revision up to date became almost impossible. About two years ago, I remember that there was a big change on Simutrans nightly in the schedule settings UI. At that time, the schedule settings UI of OTRP was highly optimized for OTRP features. I made a prototype of the schedule settings UI based on the new one of the nightly, but it was very unpopular from the Japanese OTRP players at that time, and I had to give up following that change of the Simutrans nightly. I tried to merge other nightly commits at first, but it became soon very hard since there were so many dependencies to the schedule settings UI change.

Lastly, as I spent so much time in OTRP development, what I learn from OTRP development was decreasing. This is generally inevitable when you work in the same product for a long time. As I learned programming in other fields such as the research and my job, using modern languages such as Swift and Kotlin was much more fun. And, I gradually felt tired to work with the very old fashioned C++ code and deal with the bugs which are never seen with the modern languages.

For now, contributing to the community can be the only motivation of coding in Simutrans. To be honest, since I started my full time job, I am as busy as I was a graduate school student. However, my Simutrans development time was replaced with learning modern programming language features which I may use in my job, and other hobbies like driving a car.

Is there any feature you considered (or that was proposed to you) for OTRP but was discarded for technical or other reasons?

The road intersection feature. As in the real world of left sided driving, turning right causes the crossing over the opposite lane, and it may cause a traffic jam. The right turn lane feature and the right turn traffic light feature were considered, but both needed to handle multiple tiles as a single intersection object, and it was technically difficult. When I considered the intersection feature, I was playing Cities Skylines with the famous mod TM:PE, which gives so much control on road traffic. And I thought you could play Cities Skylines if you wanted much more control on the road traffic. Since Simutrans is a tile based game, this level of road traffic control is too much for Simutrans, I think.

Have you received any help from other contributors in Simutrans OTRP?

In code, the area construction tools were contributed by Shingoushori.

And, some people helped me to develop OTRP in other ways. Ahakuoku helped me a lot by doing so many tasks other than coding such as release announcement, response for inquiries, and bug investigation. 128Na opened the site “OTRP updates” which summarizes the OTRP releases. I often refer to this web site to check in which version a feature was implemented. And, so many Japanese community members helped me in the bug investigation in the early phase. Road vehicle overtaking, convoy coupling, and time scheduling are the features which received most bug reports.

The site OTRP updates is a living changelong of Simutrans OTRP.

We have discussed in previous interviews the apparent decline in Simutrans playerbase in the last decade. Simutrans OTRP collects statistics about usage, and that can help us understand this tendency. What does the OTRP data say about it?

The OTRP usage statistics says nothing about Simutrans player base decline. The Simutrans player base decline is a phenomenon over 10 years, and OTRP started collecting usage in 2020, only two years ago.

The OTRP usage statistics tells us about the number of active players, the share of OTRP versions, and the pak set share among the OTRP players. Although I have not analyzed the usage of this year, in 2021, the number of daily active players was constantly over 80, and over 100 on holidays. Older versions of OTRP are still used because sometimes a specific OTRP version has a problem with loading a player generated pakset. Some popular network games in the Japanese Simutrans community still use an older OTRP, such as v29_6.

According to the usage statistics, OTRP players prefer pak128 as much as pak128.japan. pak.nippon is slightly less popular than those two popular paksets, and the share of pak64 was about a half of that of pak.nippon in 2021.

The detailed analysis of 2021 is in this article, although it is in Japanese.

Where do you see Simutrans in the future?

I think Steam will be the main distribution route of Simutrans, due to the recent trend of relying on platforms and thanks to the effort of the Simutrans nightly development. The Japanese community has contributed to Simutrans mainly with addons, but most Japanese addons are not in the Simutrans official distribution. Since Steam is becoming a popular distribution route, I think we should consider how to deliver Japanese addons to the players from Steam. It’s kind of a political issue rather than a technical issue.

What is your preferred play-style?

I usually play Simutrans as a transport simulator, rather than a diorama. Basically I let cities grow as the game engine does. The hand construction of city buildings is only for the extension of the city limit.
Since OTRP became stable, I also prefer “car only” play. Since the capacity of road vehicles is much smaller than that of trains, it is very challenging to transport all passengers with road vehicles. Roads are always crowded, and large bus terminals suffer from grid locks.

Three years ago, we built a very large scale highway network in the network game. The highway has 10-lanes width at the widest point, which cannot be seen in Japan. Also, junctions are highly complicated.

Video showing the large scale highway network

Is there someone from the Simutrans community you admire?

In the international community, I especially admire Leartin. He gave me deep insights and showed proper ways when I was stuck in difficult problems. The convoy coupling feature is one of the most difficult problems for me and I did the implementation of it three times. Leartin proposed to me an uncomplicated and effective solution for this and the current architecture is based on Leartin’s proposal.

In the Japanese community, I admire 128Na. I cannot list all of his contributions, but he made the simutrans video series which are the most famous in Japan. He now builds and operates “Simutrans addon portal”, a website where a lot of Japanese addons have been posted recently.

What is your favorite pakset?

I love pak128, with a bunch of Japanese addons. I like this pakset because it has a high resolution and so many published addons with realistic painting.

Thank you so much for the interview! Is there anything more you would like to say to Simutrans players?

I hope the international community and the Japanese community interact more. There used to be a language barrier between the international community and the Japanese community, but now we can overcome it with an effective translation service. One of the reasons why OTRP was born was that the Japanese community could rarely bring the ideas which were discussed in the Japanese community to the international forum at that time. I hope more feature requests from the Japanese community are discussed with the international development team, and a bunch of Japanese addons contribute to Simutrans players all over the world, not only for Japanese. Fortunately, the international community and the Japanese community are interacting in some Discord servers these days.

And, I want to say thank you to Simutrans. Simutrans made me join this wonderful Japanese Simutrans community, which is now one of my essential communities. Simutrans gave me a chance to make changes in the code. The OTRP development experience is now the foundation of my career as a software engineer. And above all, Simutrans gave me so much time of joy.


Schedule of the Simutrans 25th Anniversary Posts

That’s all for the anniversary! Goodbye!

What? What do you say about a SUPER SECRET BIG FINAL EVENT? Ah yes, I nearly forget about the greatest Simutrans event ever made where everyone can participate! Do you want to know what it is…?

Sorry! It’s a surprise. See you in two weeks :-)