Became a Linux build discussion - originally "How to encourage more developers to be involved"

An area for discussing new ideas and additions to Oolite.

Moderators: winston, another_commander

User avatar
hiran
Theorethicist
Posts: 2483
Joined: Fri Mar 26, 2021 1:39 pm
Location: a parallel world I created for myself. Some call it a singularity...

Re: How to encourage more developers to be involved

Post by hiran »

MrFlibble wrote: Fri Jul 25, 2025 12:38 am
Have been busy this evening.

Latest attempt

I've removed old includes, and now use espeak-ng (thanks LoneWolf).
This version runs nicely on my Ubuntu 24 LTS. However the restrictions on speech output remain. If turned on they can block the game.
Quite unfortunate as whenever I target another ship and the missile locks there is a speech message - blocking the game. When I can finally shoot the other ship is no longer at my laser target.

So well done, it's a great achievement.
Sunshine - Moonlight - Good Times - Oolite
User avatar
MrFlibble
---- E L I T E ----
---- E L I T E ----
Posts: 469
Joined: Sun Feb 18, 2024 12:13 pm

Re: How to encourage more developers to be involved

Post by MrFlibble »

hiran wrote: Wed Jul 30, 2025 8:03 pm
MrFlibble wrote: Fri Jul 25, 2025 12:38 am
Have been busy this evening.

Latest attempt

I've removed old includes, and now use espeak-ng (thanks LoneWolf).
This version runs nicely on my Ubuntu 24 LTS. However the restrictions on speech output remain. If turned on they can block the game.
Quite unfortunate as whenever I target another ship and the missile locks there is a speech message - blocking the game. When I can finally shoot the other ship is no longer at my laser target.

So well done, it's a great achievement.
I'll see if I can replicate that on real metal. Got stuff on for a couple of days, but should be able to poke around on Friday and beyond.
User avatar
mcarans
---- E L I T E ----
---- E L I T E ----
Posts: 374
Joined: Sun Jun 20, 2010 6:00 pm

Re: How to encourage more developers to be involved

Post by mcarans »

MrFlibble wrote: Fri Jul 25, 2025 12:38 am
Have been busy this evening.

Latest attempt

I've removed old includes, and now use espeak-ng (thanks LoneWolf).
Fantastic work! You're making great progress.
User avatar
MrFlibble
---- E L I T E ----
---- E L I T E ----
Posts: 469
Joined: Sun Feb 18, 2024 12:13 pm

Re: How to encourage more developers to be involved

Post by MrFlibble »

hiran wrote: Wed Jul 30, 2025 8:03 pm
MrFlibble wrote: Fri Jul 25, 2025 12:38 am
Have been busy this evening.

Latest attempt

I've removed old includes, and now use espeak-ng (thanks LoneWolf).
This version runs nicely on my Ubuntu 24 LTS. However the restrictions on speech output remain. If turned on they can block the game.
Quite unfortunate as whenever I target another ship and the missile locks there is a speech message - blocking the game. When I can finally shoot the other ship is no longer at my laser target.

So well done, it's a great achievement.
Might be worth trying the newest build from my fork.

At least for me, speech causes no obvious issue, at least when leaving the station on Mint 21.3, which of course closely resembles the build host. I'll check on Ubuntu 24 when time permits. Is speech-dispatcher running?

In my save-game, I set and re-set the language and voice in the game options, as some of those didn't exist before IIRC, and even though I'd set female voice previously, it was male until I re-set it. On launching, speech causes no lag on my system. Do you get graphical freeze during speech on launch?

One (new) issue. In expansion manager, if windowed and the window loses focus, keyboard control gets lost. Not sure if that was a previous behaviour. Needs further investigation.
User avatar
MrFlibble
---- E L I T E ----
---- E L I T E ----
Posts: 469
Joined: Sun Feb 18, 2024 12:13 pm

Re: How to encourage more developers to be involved

Post by MrFlibble »

hiran wrote: Wed Jul 30, 2025 8:03 pm
This version runs nicely on my Ubuntu 24 LTS. However the restrictions on speech output remain. If turned on they can block the game.
Quite unfortunate as whenever I target another ship and the missile locks there is a speech message - blocking the game. When I can finally shoot the other ship is no longer at my laser target.
There's something to learn here, but I don't know what it is.

I've just tried this out on a live boot of Ubuntu 24.04.2.

Ingredients.
  • i5-6500T with 8G Ram.
  • Ubuntu 24.04.2 ISO copied to a Ventoy stick.
  • The latest (test variant) release SE installer from my fork on a spare partition of my Ventoy (you can't see the main Ventoy partition if you boot from it).
Other computers are available :wink: It'd probably work out the same using standard Ubu install stick instead of Ventoy.

Method.

Boot Ubuntu.
Install Oolite.
Run it:

Code: Select all

$ /home/ubuntu/GNUstep/Applications/Oolite/oolite
Watch it fail. Figure out the dependencies. Install them.

Code: Select all

sudo apt update
sudo apt install libsdl1.2debian libopenal1 libobjc4
At this point, at least for me, speech-dispatcher was not running. You can read below to see ways to check for it and kill it to put things in the same state.

Start a new game, then go to game options. Turn speech to 'on'. Set a female voice. Nope. The female setting makes no difference.

Close Oolite.

Invoke the speech dispatcher:

Code: Select all

# check it's there..
$ ps x | grep speech | grep -v grep
# Returns nothing, so it was not loaded.
$ spd-say hello
# check it's there..
$ ps x | grep speech | grep -v grep
ubuntu     10344  0.3  0.1 475656 10680 ?        Ssl  15:54   0:01 /usr/bin/speech-dispatcher -s -t 0
ubuntu     10359  0.1  0.1 116292 10068 ?        Sl   15:54   0:00 /usr/lib/speech-dispatcher-modules/sd_espeak-ng /etc/speech-dispatcher/modules/espeak-ng.conf
ubuntu     10362  0.0  0.0 162692  6216 ?        Sl   15:54   0:00 /usr/lib/speech-dispatcher-modules/sd_dummy /etc/speech-dispatcher/modules/dummy.conf
ubuntu     10365  0.0  0.0   5668  2820 ?        S    15:54   0:00 /usr/lib/speech-dispatcher-modules/sd_openjtalk /etc/speech-dispatcher/modules/openjtalk.conf
# Clearly!
...then run Oolite. Setting female voice works, so set that and English (Great Britain), then save the game.
Close Oolite and kill speech-dispatcher:

Code: Select all

kill $(ps x | grep speech-dispatcher | grep -v grep | awk '{print $2}')
...then run Oolite, loading the save-game, speech is still Female. Speech-dispatcher has not been restarted. It does not seem to matter if speech-dispatcher is running/present at this point.

At no point did I experience any lag that I could attribute to speech.

Maybe it's different once Ubuntu is installed.

Would appreciate it if you'd try it a) on your setup, and b) from the live installer, and let me know what happens.
User avatar
hiran
Theorethicist
Posts: 2483
Joined: Fri Mar 26, 2021 1:39 pm
Location: a parallel world I created for myself. Some call it a singularity...

Re: How to encourage more developers to be involved

Post by hiran »

Here is my system configuration:

Code: Select all

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 24.04.2 LTS
Release:	24.04
Codename:	noble
$

Code: Select all

$ cat /proc/cpuinfo 
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 158
model name	: Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz
stepping	: 13
microcode	: 0x104
cpu MHz		: 800.039
cache size	: 12288 KB
physical id	: 0
siblings	: 8
core id		: 0
cpu cores	: 8
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 22
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp vnmi md_clear flush_l1d arch_capabilities
vmx flags	: vnmi preemption_timer invvpid ept_x_only ept_ad ept_1gb flexpriority tsc_offset vtpr mtf vapic ept vpid unrestricted_guest ple shadow_vmcs pml ept_mode_based_exec
bugs		: spectre_v1 spectre_v2 spec_store_bypass swapgs taa itlb_multihit srbds mmio_stale_data retbleed eibrs_pbrsb gds bhi
bogomips	: 7200.00
clflush size	: 64
cache_alignment	: 64
address sizes	: 39 bits physical, 48 bits virtual
power management:
[... 8 CPUs later]
$

Code: Select all

$ cat /proc/meminfo 
MemTotal:       32782872 kB
MemFree:        27941432 kB
MemAvailable:   30141784 kB
Buffers:          192968 kB
Cached:          2272520 kB
SwapCached:            0 kB
Active:          2981316 kB
Inactive:        1133096 kB
Active(anon):    1608136 kB
Inactive(anon):        0 kB
Active(file):    1373180 kB
Inactive(file):  1133096 kB
Unevictable:        8132 kB
Mlocked:              32 kB
SwapTotal:       2097148 kB
SwapFree:        2097148 kB
Zswap:                 0 kB
Zswapped:              0 kB
Dirty:               240 kB
Writeback:             0 kB
AnonPages:       1657084 kB
Mapped:           846772 kB
Shmem:             46524 kB
KReclaimable:     124004 kB
Slab:             442864 kB
SReclaimable:     124004 kB
SUnreclaim:       318860 kB
KernelStack:       19696 kB
PageTables:        34952 kB
SecPageTables:         0 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    18488584 kB
Committed_AS:    9730956 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      101800 kB
VmallocChunk:          0 kB
Percpu:            10400 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
FileHugePages:         0 kB
FilePmdMapped:         0 kB
Unaccepted:            0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
Hugetlb:               0 kB
DirectMap4k:      648100 kB
DirectMap2M:     8706048 kB
DirectMap1G:    24117248 kB
$

Code: Select all

$ lspci | grep VGA
01:00.0 VGA compatible controller: NVIDIA Corporation GM107 [GeForce GTX 750 Ti] (rev a2)
$

Code: Select all

$ ps x | grep speech
  11869 ?        Ssl    0:00 /usr/bin/speech-dispatcher -s -t 0
  11884 ?        Sl     0:00 /usr/lib/speech-dispatcher-modules/sd_espeak-ng /etc/speech-dispatcher/modules/espeak-ng.conf
  11887 ?        Sl     0:00 /usr/lib/speech-dispatcher-modules/sd_generic /etc/speech-dispatcher/modules/dtk-generic.conf
  11890 ?        Sl     0:00 /usr/lib/speech-dispatcher-modules/sd_dummy /etc/speech-dispatcher/modules/dummy.conf
  11893 ?        S      0:00 /usr/lib/speech-dispatcher-modules/sd_openjtalk /etc/speech-dispatcher/modules/openjtalk.conf
  11955 pts/0    S+     0:00 grep --color=auto speech
$

Code: Select all

$ spd-say hello

^-- talks to me

Code: Select all

cd ~/GNUstep/Applications/Oolite
./oolite
⁻-- starts up Development version 1.91.0.7730-250725-52d7194

In the main menu/game options speech options are all disabled. Wondering why.
As soon as I load a savegame, speed options are available and turned on.
I can fly in the solar system. Then I initiate a hyperjump and fail it to end up with Thargoids.
To my surprise I can still control the ship, but as I shoot a couple of them and they get more aggressive I can hear/feel the spoken messages are not catching up with the events. Flying/combating is getting tighter, and eventually I bail out and return to the solar system.

I am surprised flying was not all impossible. It was much better than my previous experience although I had not changed stuff. Or is it the OXPs I am running?
Sunshine - Moonlight - Good Times - Oolite
User avatar
MrFlibble
---- E L I T E ----
---- E L I T E ----
Posts: 469
Joined: Sun Feb 18, 2024 12:13 pm

Re: How to encourage more developers to be involved

Post by MrFlibble »

Thanks!
hiran wrote: Sun Aug 03, 2025 8:07 pm
Here is my system configuration:
model name : Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz
MemTotal: 32782872 kB
Good stuff. So, more oomph than I'd tested with.
hiran wrote: Sun Aug 03, 2025 8:07 pm
⁻-- starts up Development version 1.91.0.7730-250725-52d7194
Ah! That's before I'd shoehorned espeak-ng in. Give my latest a whirl! Oolite 1.91.0.7749-250802-cf91fd5.

Speech-dispatcher seems to be running on your setup by default. Please, try killing it before you launch Oolite then start a new Jameson, to test if the uninitiated options are messed up like they were in my run. Then you can redo with speech-dispatcher running to test that the options indeed behave.

At the end of all this, it may just be that in some situations, there's too much speech so the queue stacks up. Can't say I've ever had that much that it's stumbling, but I rarely invoke speech-dispatcher.

If you kill the speech-dispatcher, load a savegame, then fly a battle, maybe near-simultaneous events will run in parallel instead of queueing up.

If that last bit works (using latest build), and with speech-dispatcher the queue turns out to be causing these issues, perhaps there's a way to invoke, and also dodge round a running speech-dispatcher so we get the options, and also the parallel speaking in chaotic situations (which I find quite immersive).

I confess I've not dived deep enough into the code to work out how speech functions WRT using dispatcher or not.
User avatar
hiran
Theorethicist
Posts: 2483
Joined: Fri Mar 26, 2021 1:39 pm
Location: a parallel world I created for myself. Some call it a singularity...

Re: How to encourage more developers to be involved

Post by hiran »

MrFlibble wrote: Mon Aug 04, 2025 9:04 am
Thanks!
hiran wrote: Sun Aug 03, 2025 8:07 pm
Here is my system configuration:
model name : Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz
MemTotal: 32782872 kB
Good stuff. So, more oomph than I'd tested with.
hiran wrote: Sun Aug 03, 2025 8:07 pm
⁻-- starts up Development version 1.91.0.7730-250725-52d7194
Ah! That's before I'd shoehorned espeak-ng in. Give my latest a whirl! Oolite 1.91.0.7749-250802-cf91fd5.
So I just downloaded 1.91.0.7749-250802-cf91fd5 and tried again (no killing of espeak or other daemons).

And it is perfectly playable. Your efforts show effect! :-)

So all I am wondering about: on the main menu I cannot control speech output unless I load a savegame where it is enabled. That is a minor issue though as I usually proceed from savegames anyway.
Sunshine - Moonlight - Good Times - Oolite
User avatar
MrFlibble
---- E L I T E ----
---- E L I T E ----
Posts: 469
Joined: Sun Feb 18, 2024 12:13 pm

Re: How to encourage more developers to be involved

Post by MrFlibble »

hiran wrote: Mon Aug 04, 2025 2:21 pm
So I just downloaded 1.91.0.7749-250802-cf91fd5 and tried again (no killing of espeak or other daemons).

And it is perfectly playable. Your efforts show effect! :-)
Most excellent news. Thanks for testing. I'll re-enable the windows build at my next sitting, to test that I haven't b0rked anything there. Should be about ready to do a PR soon.
hiran wrote: Mon Aug 04, 2025 2:21 pm
So all I am wondering about: on the main menu I cannot control speech output unless I load a savegame where it is enabled. That is a minor issue though as I usually proceed from savegames anyway.
Speech options are per-save, so they're correctly not available on the main menu. I wonder why that hasn't been hidden there?

Would you mind verifying that you can set up speech properly in a new Jameson, toggling male/female. Then close Oolite, kill speech-dispatcher, start Oolite, and verify that another new Jameson has no such luck?. All will be restored by spd-say something, which will restart speech-dispatcher. No need to launch or save.
Post Reply