Re: Oolite a GNUstep-based game released on MS Store and FlatHub

R Frith-Macdonald <[email protected]> Wed, 25 Feb 2026 11:45:06 +0000
Newsgroups gmane.comp.lib.gnustep.general
Message-ID <[email protected]>
On 24/02/2026 03:42, Michael Rans wrote:
> Hi Riccardo,
>
> The framerate of the game was reported by the main Windows dev to be 
> significantly higher with a clang build than with a gcc build. I'm not 
> sure about Linux. 

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, with an assertion checking that an object was a ship:

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