|
| 1 | +--- |
| 2 | +title: "OpenLoco version 24.11" |
| 3 | +tagline: "Release blog post" |
| 4 | +author: "Duncan Frost" |
| 5 | +date: 2024-11-28 20:20:00 +0000 |
| 6 | +layout: single |
| 7 | +classes: wide |
| 8 | +categories: news |
| 9 | + |
| 10 | +gallery: |
| 11 | + - url: /assets/img/24.11.NewTrains.png |
| 12 | + image_path: /assets/thumbs/24.11.NewTrains.png |
| 13 | + alt: "Seven new trains" |
| 14 | + title: "OpenGraphics initial release" |
| 15 | + |
| 16 | +--- |
| 17 | + |
| 18 | +OpenLoco v24.11 is out! In this release we've added our initial OpenGraphics objects, |
| 19 | +finished all of the 'paint' code, and fixed a bunch of bugs. |
| 20 | + |
| 21 | +For a complete summary of changes, please find the |
| 22 | +[OpenLoco changelog](https://github.com/OpenLoco/OpenLoco/releases/tag/v24.11) on GitHub. |
| 23 | + |
| 24 | +## Assorted bug fixes (#2623, #2676, #2678, #2690, #2691, #2708, #2717, #2721, #2723, #2726, #2729, #2731, #2732, #2735, #2752, #2770) |
| 25 | + |
| 26 | +It's been a real bumper month of bug fixes. Myself, @LeftOfZen, @AaronVanGeffen and new contributor |
| 27 | +@LeeSpork all fixed a bunch of crashes and bugs. Check the changelog for further details of all the |
| 28 | +fixes. Please do keep identifying bugs and crashes and reporting them on Discord or on Github. The |
| 29 | +main reason this month has had so many fixes is due to more reports rather than last months release |
| 30 | +being particularly bug prone. If there is a particular bug that you know about that hasn't been |
| 31 | +fixed, please raise the issue on Discord there might be a reason it can't be addressed or perhaps we |
| 32 | +have just forgotten about it. |
| 33 | + |
| 34 | +## Add initial OpenGraphics objects (#2697) |
| 35 | + |
| 36 | +@SteveEmfore has created 7 vehicle objects and @LeftOfZen created 14 cargo objects for the |
| 37 | +OpenGraphics project. The OpenGraphics project aims to create replacements for all vanilla |
| 38 | +objects. All of the objects will have slightly different names and look different but the stats of |
| 39 | +the vehicles will be identical to vanilla. It is planned that we will incrementally improve the |
| 40 | +objects. @DazWizzle has also created some road vehicles for the project but they were not ready for |
| 41 | +this initial release. |
| 42 | + |
| 43 | +{% include gallery %} |
| 44 | + |
| 45 | +Next month I plan to add basic asset pack support. The plan is that when the OpenLoco asset pack |
| 46 | +is enabled any newly created scenarios will automatically switch objects to use the OpenGraphics |
| 47 | +equivalent objects. Opening a save will not cause any object switching it will only work on |
| 48 | +starting new scenarios. For now the default asset pack will be vanilla so there will be no |
| 49 | +automatic object switching. |
| 50 | + |
| 51 | +## Widget refactoring (#2674, #2675) |
| 52 | + |
| 53 | +Continuing from last month @ZehMatt has been trying to improve the GUI widgets so that they work in |
| 54 | +a more logical way. There is still a good bit to do on this but it's slowly getting there. Once this |
| 55 | +work is complete we should be able to simplify how creating UI windows work making it easier to add |
| 56 | +new features. |
| 57 | + |
| 58 | +## Misc audio refactoring (#2699, #2700) |
| 59 | + |
| 60 | +New contributor @LeeSpork has been reworking the audio system this month. He has cleaned up and |
| 61 | +simplified the music playlist selection. Audio in general is one area where we have fully |
| 62 | +reimplemented all vanilla code so it is ripe for new features and general improvements. We look |
| 63 | +forward to seeing what @LeeSpork has in mind. |
| 64 | + |
| 65 | +## Finish the paint functions (#2737, #2738, #2744, #2755, #2757) |
| 66 | + |
| 67 | +@ZehMatt expressed an interest in improving how the 'paint' system worked. The one issue though |
| 68 | +was there was still one or two functions that hadn't been implemented preventing the improvements. |
| 69 | +After a quick review of what was outstanding I decided to bash out the final functions. The final |
| 70 | +functions were road stations, tram pylons, supports and bridges. Please be on the lookout for any |
| 71 | +display issues with those particular areas this release. |
| 72 | + |
| 73 | +In the vanilla code the paint functions take up a huge percentage of the codebase: ~20%. It's a great |
| 74 | +milestone knowing that that is finally behind us. With this system finished expect a bunch of |
| 75 | +improvements in drawing over the coming months. For example we could: add multithreading support to greatly |
| 76 | +improve performance; or split the UI from the viewport to allow scaling the UI and viewport |
| 77 | +independently. Also with all this code implemented we know how everything is drawn in the game. If |
| 78 | +you are a mod creator we can tell you exactly in what situations an image is used. We could also |
| 79 | +add new drawing code for new mod features! |
| 80 | + |
| 81 | +## Simulate and compare on CI (#2765) |
| 82 | + |
| 83 | +To verify that we haven't accidentally changed the simulation of the game we like to run a couple |
| 84 | +of saves for a fixed amount of time. You can then compare the result against a reference. As the |
| 85 | +simulation is deterministic the two saves should always match. This has been very useful when |
| 86 | +implementing new game commands but as it's run locally by each developer it can often be forgotten. |
| 87 | +@ZehMatt decided to fix this by running this test on the CI server which builds the game. For now |
| 88 | +this can only be done after a change has been merged but at least we know straight away which pull |
| 89 | +request broke things. |
0 commit comments