Eyot is a new language I’m building to make offloading work to the GPU as seamless as spawning a background thread. Eyot source code is transparently compiled for both CPU and GPU, with communication between the two handled by the runtime. Traditional GPU programming expects you to handle many tasks, such as memory allocation, compiling the kernel, scheduling work, etc. These have long been…
For the last few years we’ve been working on a train management game, Iron Roads, which we released to Early Access today. Somewhat atypically for a game releasing in 2025, Iron Roads is written in pure C, not C++, pure C99. As a choice it has had its ups and downs, which I wanted to share in this post. The TLDR for why I chose C is that I wanted easy portability and simplicity, but most…
Iron Roads has seen influx of new testers recently, and with them have arrived new perspectives and feedback. This feedback has kicked off a new cycle of worrying, analysing and fixing as we described in our last blog . This time we aren’t worried so much about the systems in the game, so much as we are worried about whether we are communicating those systems to players effectively. A lot of the…
Our update cycles seem to begin with us worrying about Iron Roads, pinpointing the source of our uneasiness, worrying some more, working on changes to assuage our concerns, sharing the result with play-testers and iterating based on feedback. This time was no different, and stemmed from a new worry - does Iron Roads have a thematic identity of its own? - and an old worry we wrote about back in…
The upcoming update will remove emails from the game and replace them with a similar, but different, concept of contracts . As much as we liked the whimsy and storytelling of the emails, in practice they have some issues in Iron Roads: Accepting an email is busywork for a player We had a system of on one email for every task. We had reasoned that more than one email for a task is unnecessary…
We’ve had a busy summer with Iron Roads, with the first pre-alpha playtest in May, and Steam’s NextFest in June. After those we trawled through our Discord , Steam, Twitter messages and YouTube playthroughs to understand what was and wasn’t working with Iron Roads. Based on that, we’ve been working towards the 0.1.0 update, which is looking to be a significant overhaul. Two key insights we…
Something very exciting happened last month: Iron Roads was released into the big scary world and onto the screens of the first batch of alpha testers. What a ride it’s been (please excuse the train puns). We’ve had an enthusiastic, and unexpected, response to our call for testers. We are grateful to the lovely folks who put up with the bugs and major quality of life issues, joined our fledgling…
We have been working on a train management game called Iron Roads over the past few months. Now that it is beyond the prototype phase and approaching its public debut at Steam’s summer NextFest, we thought it would be a good time to start a devlog. Iron Roads is a train management game in which players lay tracks, buy trains and set their routes to establish train networks that connect people and…
Happy New Year! Inspired by the excellent 8,760 hours guide we’ve written a recap of last year: what went well, what didn’t, where we tried hard and where we didn’t. What went well? We’ll always have Paris was the project that dominated our 2022. It was an artistic project, undertaken purely for the joy of making it. We loved developing it, and got to see many people play it and understand what we…
We just sent out the 1.0.5 update of We’ll always have Paris. There are no big changes, it just fixes a small typo, and a crash that could occur if the game could find no sound devices. We’ve only managed to reproduce the crash on Windows, but it may have affected other systems as well. Happy Holidays!