Regarding the crash, that is odd since the AppImage is built on clang using Ubuntu and the Flatpak also uses clang. Did you use ShellScripts/Linux/checkout_deps.sh to build GNUstep? The versions of GNUstep libraries needed by Oolite are newer than the latest stable releases because certain fixes and additions since the last stable releases are needed. The script checks out from GitHub the latest commit of each of the GNUstep libraries. Once new stable releases are made, I will change to use them. This will be particularly beneficial in simplifying the Windows build assuming those new stable releases are put up as MSYS2 packages. It would be nice if there could also be stable clang packages for major distros flavours like Debian, Fedora and Arch in future, but until then for clang, building the libraries will be needed.

I want to make a clarification about framerate as I misunderstood what our main Windows dev said about it. I'll just quote him directly to avoid confusion:

"The framerate of the Clang build on Windows is not significantly higher than gcc's, but it is a bit better, there is indeed a small difference when comparing similar build configurations at uncapped framerate and under similar entity loads at the same location between the two builds but it is not that significant. Both hit 400+ fps on my tests but it's not like Clang hitting 600 fps and gcc hitting only 450. Plus, at the end of the day almost everyone plays with v-sync on, which limits framerate to the monitor refresh anyway (60, 70, 120, 144 fps etc.). Where the Clang build shines though, is maintaining a steady frame pace. The Clang build for me offers a gameplay experience that just feels smoother - that's why I recommend it."

Apologies for my incorrect reporting on that.

Please let me know if using the latest builds of GNUstep libraries makes any difference to the crash.

Thanks,
Mike

On Wed, Feb 25, 2026 at 11:45 AM, R Frith-Macdonald wrote:

   I thought I'd try that out on Debian. Using current (from the
   respective git repositories this morning) gnustep and oolite code, I
   built with gcc and with clang.

   On my system in the tutorial the gcc version was reporting a frame
   rate in the 70s.

   Unfortunately, the clang version crashed after displaying the
   startup screen...

   1  0x00007ffff68064ac in __GI_abort () at ./stdlib/abort.c:77
   #2  0x00007ffff6806420 in __assert_fail_base (fmt=<optimized out>,
        assertion=<optimized out>, file=<optimized out>, line=14876,
        function=<optimized out>) at ./assert/assert.c:118
   #3  0x00007ffff68166dc in __assert_fail (assertion=<optimized out>,
        file=<optimized out>, line=<optimized out>, function=<optimized out>)
        at ./assert/assert.c:127

   #4  0x0000555555aab11b in -[ShipEntity(SubEntityRelationship)
   isShipWithSubEntityShip:] (self=0x52300003d508, _cmd=<optimized
   out>, other=0x51f000131688)

        at src/Core/Entities/ShipEntity.m:14876
   #5  0x000055555596fadb in -[Entity parentEntity] (self=0x51f000131688,
        _cmd=<optimized out>) at src/Core/Entities/Entity.m:592
   #6  0x00005555559708bf in -[Entity absolutePositionForSubentityOffset:] (
        self=<optimized out>, _cmd=<optimized out>, offset=...)
        at src/Core/Entities/Entity.m:679
   #7  0x00005555559705ed in -[Entity absolutePositionForSubentity] (
        self=0x7ffff21790d0, _cmd=<optimized out>)
        at src/Core/Entities/Entity.m:671
   #8  0x00005555559703f5 in -[Entity updateCameraRelativePosition] (
        self=0x51f000131688, _cmd=<optimized out>)
        at src/Core/Entities/Entity.m:665
   #9  0x0000555555970246 in -[Entity setPosition:] (self=<optimized out>,
   --Type <RET> for more, q to quit, c to continue without paging--
        _cmd=<optimized out>, posn=...) at src/Core/Entities/Entity.m:650

   #10 0x0000555555ade17c in -[OOExhaustPlumeEntity
   initForShip:withDefinition:andScale:] (self=0x51f000131688,
   _cmd=<optimized out>, ship=<optimized out>,

        definition=<optimized out>, scaleFactor=<optimized out>)
        at src/Core/Entities/OOExhaustPlumeEntity.m:79

   #11 0x0000555555addfb5 in +[OOExhaustPlumeEntity
   exhaustForShip:withDefinition:andScale:] (self=<optimized out>,
   _cmd=<optimized out>, ship=0x52300003d508,

        definition=0x50400138bc58,

        scale=<error reading variable: Value cannot be represented as
   integer of 8 bytes.>) at src/Core/Entities/OOExhaustPlumeEntity.m:63

   #12 0x0000555555a4fa31 in -[ShipEntity setUpSubEntities] (
        self=<optimized out>, _cmd=<optimized out>)
        at src/Core/Entities/ShipEntity.m:869
   #13 0x0000555555a4c4b1 in -[ShipEntity setUpFromDictionary:] (
        self=<optimized out>, _cmd=<optimized out>, shipDict=0x507000113da8)
        at src/Core/Entities/ShipEntity.m:446
   #14 0x00005555559879c7 in -[PlayerEntity setUpShipFromDictionary:] (
        self=0x52300003d508, _cmd=<optimized out>, shipDict=<optimized out>)
        at src/Core/Entities/PlayerEntity.m:2285
   #15 0x0000555555d3694a in -[Universe setUpInitialUniverse] (

        self=<optimized out>, _cmd=<optimized out>) at
   src/Core/Universe.m:10573 #16 0x0000555555cfe793 in -[Universe
   initWithGameView:] (self=0x52d000adc408,

        _cmd=<optimized out>, inGameView=<optimized out>)
   --Type <RET> for more, q to quit, c to continue without paging--
        at src/Core/Universe.m:834
   #17 0x0000555555cba6dd in -[GameController applicationDidFinishLaunching:] (

        self=0x511000009788, _cmd=<optimized out>,
   notification=<optimized out>)

        at src/Core/GameController.m:253
   #18 0x0000555555cc4061 in main (argc=<optimized out>, argv=<optimized out>)
        at src/SDL/main.m:209

Reply via email to