Skip to content

Commit 64756fb

Browse files
Add dev log for v24.12 (#26)
1 parent dfce0d3 commit 64756fb

File tree

2 files changed

+105
-1
lines changed

2 files changed

+105
-1
lines changed

_pages/download.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ tagline: "Get the latest and the greatest release here."
44
layout: single
55
classes: wide
66
permalink: /download/
7-
latest_version: "24.11"
7+
latest_version: "24.12"
88
---
99

1010
# Downloading the game
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
---
2+
title: "OpenLoco version 24.12"
3+
tagline: "Release blog post"
4+
author: "Aaron van Geffen"
5+
date: 2024-12-28 16:00:00 +0100
6+
layout: single
7+
classes: wide
8+
categories: news
9+
10+
---
11+
12+
OpenLoco v24.12 is out! This release mainly focuses on bug fixes,
13+
but there's some exciting changes under the hood as well!
14+
15+
For a complete summary of changes, please find the
16+
[OpenLoco changelog](https://github.com/OpenLoco/OpenLoco/releases/tag/v24.12) on GitHub.
17+
18+
## Jukebox rework
19+
20+
The Locomotion jukebox features various tracks for the game's different eras. These can be played
21+
in their original order, but you can also make your own playlist. There was an edge case, though,
22+
where a playlist with your one favourite track would stop playing after that one track!
23+
Fed up with this, new contributor @LeeSpork removed the cause in
24+
[#2750](https://github.com/OpenLoco/OpenLoco/pull/2750). Moreover, he refactored the jukebox code,
25+
so it now lives in its own compilation unit in [#2771](https://github.com/OpenLoco/OpenLoco/pull/2771).
26+
Nice work!
27+
28+
## Paint interop removal
29+
30+
The game's various drawing routines for rendering the world viewport, called paint routines,
31+
have all been implemented as of last month. This marked a huge milestone for the project, and while it
32+
is still early days, we're already seeing the first benefits: we were able to drop all the so-called
33+
interop code from the paint namespace. This code was used to interface between the vanilla Locomotion
34+
game and our implementation while not all paint routines had been implemented in C++.
35+
As of [#2772](https://github.com/OpenLoco/OpenLoco/pull/2772), this could all be removed!
36+
Not only does this make the code quite a bit cleaner, it also paves the way for more advanced rework
37+
in the future, such as multi-threaded rendering!
38+
39+
## Train collision detection
40+
41+
When do trains collide with one another? The question may seem obvious to us, but due to how
42+
the game engine works, collisions have to be implemented explicitly. In
43+
[#2587](https://github.com/OpenLoco/OpenLoco/pull/2587), @duncanspumpkin unravelled
44+
how the vanilla implementation works, and reimplemented it in C++.
45+
46+
While it should work as before right now, this implementation will allow us to improve the
47+
behaviour in the future. For example, right now, road vehicles can't collide with track vehicles!
48+
While vehicles clipping into one another may be interesting in its own way, it doesn't make
49+
for a very realistic simulation...
50+
51+
## Vehicles not producing sound
52+
53+
Something that has puzzled some players for a while, is that various custom objects would not
54+
produce any sound effects. It turns out their frequency specifications were zeroed out, which
55+
in [DirectSound](https://en.wikipedia.org/wiki/DirectSound) had the effect of disabling
56+
direction-based frequency shifting. In 2022, we moved to OpenAL as the audio backend, so this
57+
niche feature no longer worked, and in fact muted the sound effect completely!
58+
As of [#2806](https://github.com/OpenLoco/OpenLoco/pull/2806), we now mimic vanilla behaviour
59+
by disabling the frequency shifting for small frequency values.
60+
61+
## Further demystifying of the company AI
62+
63+
Resident wizard @duncanspumpkin has been working on further demystifying the company AI
64+
by reimplementing more parts of it in C++. In [#2783](https://github.com/OpenLoco/OpenLoco/pull/2783),
65+
we figured out how AI allocated tracks are removed. This is basically the equivalent of
66+
the 'ghost' elements used by human players, but can stick around for much longer.
67+
Further, in [#2789](https://github.com/OpenLoco/OpenLoco/pull/2789) a similar thing
68+
was reimplemented for track signals.
69+
70+
While you should not see any difference in gameplay yet, understanding how the current AI
71+
works paves the way for future improvements, so this is all very exciting!
72+
73+
## Crashes after moving your Locomotion install
74+
75+
Remember how we introduced having multiple locations for objects
76+
[a few releases ago](https://openloco.io/news/2024/10/openloco-v24.10.html#updates-to-object-index-and-selection-2629-2650)?
77+
Well, it turns out our new code didn't like people moving their Locomotion install.
78+
This doesn't happen very often, realistically, but caused an unexpected crash for some players.
79+
After figuring out what went wrong, @duncanspumpkin patched this nicely with more flexible
80+
(de)serialisation of the object index in [#2761](https://github.com/OpenLoco/OpenLoco/pull/2761).
81+
82+
## Bug fixes galore
83+
84+
It's hard to crunch out a bunch of code without introducing a few bugs along the way.
85+
Thankfully, @duncanspumpkin found some time to fix a bunch this month.
86+
87+
Let's start with [#2782](https://github.com/OpenLoco/OpenLoco/pull/2782),
88+
which fixes issues with bridge painting. In the last release, people quickly noticed something
89+
we missed, which is that some bridge pieces were missing their railings!
90+
Having penned the code responsible, Duncan quickly fixed the issue.
91+
92+
Some players noticed that the same name would show up for an industry, and some industries
93+
would not be named at all! This took a bit of digging, but was ultimately fixed in
94+
[#2798](https://github.com/OpenLoco/OpenLoco/pull/2798).
95+
96+
Another issue was that people lining up for a tram or bus stop would all show up in
97+
the same colour! This had to do with what we internally call the cargo density —
98+
and yes, people are considered cargo too, in this game...
99+
A quick fix, thankfully, so patched as of [#2799](https://github.com/OpenLoco/OpenLoco/pull/2799)/
100+
101+
Finally, it was brought to our attention that the sound effect being played for company bankruptcy
102+
has been inverted! This meant the 'crowd' would cheer insted of boo your company when it goes
103+
out of business. It's a simple mistake, with amusing consequences. With
104+
[#2800](https://github.com/OpenLoco/OpenLoco/pull/2800) in, the right sound effect is played once again.

0 commit comments

Comments
 (0)