Dizaka
-
Posts
482 -
Joined
-
Last visited
-
Days Won
5
Posts posted by Dizaka
-
-
Can't start the alpha release for multiplayer play. Get the following crash on selecting "login" for multiplayer lobby.
Quote-------------------------------------
Translated Report (Full Report Below)
-------------------------------------Process: pyrogenesis [29961]
Path: /Applications/0 A.D..app/Contents/MacOS/pyrogenesis
Identifier: com.froissant.0ad.test
Version: 0.0.27-rc1-27645 (0.0.27-rc1-27645)
Code Type: ARM-64 (Native)
Parent Process: launchd [1]
User ID: 502Date/Time: 2023-05-21 11:49:36.8096 -0400
OS Version: macOS 13.3.1 (22E772610a)
Report Version: 12
Anonymous UUID: EF933ABC-7C19-BB2D-5057-3F4B05C44CBA
Time Awake Since Boot: 260000 secondsSystem Integrity Protection: enabled
Crashed Thread: 0 main Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x00000001054b8000
Exception Codes: 0x0000000000000002, 0x00000001054b8000Termination Reason: Namespace SIGNAL, Code 10 Bus error: 10
Terminating Process: exc handler [29961]VM Region Info: 0x1054b8000 is in 0x1054b8000-0x1054bc000; bytes after start: 0 bytes before end: 16383
REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL
dyld private memory 105478000-1054b8000 [ 256K] rw-/rwx SM=PRV
---> dyld private memory 1054b8000-1054bc000 [ 16K] ---/--- SM=NUL
Kernel Alloc Once 1054bc000-1054c4000 [ 32K] rw-/rwx SM=PRVThread 0 Crashed:: main Dispatch queue: com.apple.main-thread
0 pyrogenesis 0x102167ca4 __gmpn_cnd_add_n + 164
1 pyrogenesis 0x10214bb24 _nettle_ecc_mod_add + 96
2 pyrogenesis 0x10215060c _nettle_ecc_dup_th + 84
3 pyrogenesis 0x1021512b0 _nettle_ecc_mul_g_eh + 224
4 pyrogenesis 0x1021554d4 nettle_curve25519_mul_g + 276
5 pyrogenesis 0x10213ff9c edwards_curve_mul_g + 72
6 pyrogenesis 0x10213c1e0 wrap_nettle_pk_generate_keys + 6788
7 pyrogenesis 0x102102110 _gnutls_gen_ecdh_common_client_kx_int + 412
8 pyrogenesis 0x1021013a0 _gnutls_gen_ecdh_common_client_kx + 36
9 pyrogenesis 0x101fe6b04 _gnutls_send_client_kx_message + 280
10 pyrogenesis 0x101fdb630 handshake_client + 7084
11 pyrogenesis 0x101fd98d8 gnutls_handshake + 896
12 pyrogenesis 0x101f74ce8 gloox::GnuTLSBase::handshake() + 72
13 pyrogenesis 0x101f74a38 gloox::GnuTLSBase::decrypt(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) + 72
14 pyrogenesis 0x101f76e28 gloox::TLSDefault::decrypt(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) + 64
15 pyrogenesis 0x101ec80d4 gloox::ClientBase::handleReceivedData(gloox::ConnectionBase const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) + 84
16 pyrogenesis 0x101ec08cc gloox::ConnectionTCPClient::recv(int) + 728
17 pyrogenesis 0x101ec4810 gloox::ClientBase::recv(int) + 96
18 pyrogenesis 0x1009399f8 RunGameOrAtlas(PS::span<char const* const>) + 7044
19 pyrogenesis 0x100937da4 main + 64
20 dyld 0x18279bf28 start + 2236Thread 1:
0 libsystem_pthread.dylib 0x182aeed8c start_wqthread + 0Thread 2:: Task Mgr #0
0 libsystem_kernel.dylib 0x182ab7710 __psynch_cvwait + 8
1 libsystem_pthread.dylib 0x182af4574 _pthread_cond_wait + 1232
2 libc++.1.dylib 0x182a1cef0 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28
3 pyrogenesis 0x100b6b204 Threading::WorkerThread::RunUntilDeath() + 292
4 pyrogenesis 0x100b6d334 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(Threading::WorkerThread*), Threading::WorkerThread*>>(void*) + 64
5 libsystem_pthread.dylib 0x182af3fa8 _pthread_start + 148
6 libsystem_pthread.dylib 0x182aeeda0 thread_start + 8Thread 3:: Task Mgr #1
0 libsystem_kernel.dylib 0x182ab7710 __psynch_cvwait + 8
1 libsystem_pthread.dylib 0x182af4574 _pthread_cond_wait + 1232
2 libc++.1.dylib 0x182a1cef0 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28
3 pyrogenesis 0x100b6b204 Threading::WorkerThread::RunUntilDeath() + 292
4 pyrogenesis 0x100b6d334 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(Threading::WorkerThread*), Threading::WorkerThread*>>(void*) + 64
5 libsystem_pthread.dylib 0x182af3fa8 _pthread_start + 148
6 libsystem_pthread.dylib 0x182aeeda0 thread_start + 8Thread 4:: Task Mgr #3
0 libsystem_kernel.dylib 0x182ab7710 __psynch_cvwait + 8
1 libsystem_pthread.dylib 0x182af4574 _pthread_cond_wait + 1232
2 libc++.1.dylib 0x182a1cef0 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28
3 pyrogenesis 0x100b6b204 Threading::WorkerThread::RunUntilDeath() + 292
4 pyrogenesis 0x100b6d334 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(Threading::WorkerThread*), Threading::WorkerThread*>>(void*) + 64
5 libsystem_pthread.dylib 0x182af3fa8 _pthread_start + 148
6 libsystem_pthread.dylib 0x182aeeda0 thread_start + 8Thread 5:: Task Mgr #4
0 libsystem_kernel.dylib 0x182ab7710 __psynch_cvwait + 8
1 libsystem_pthread.dylib 0x182af4574 _pthread_cond_wait + 1232
2 libc++.1.dylib 0x182a1cef0 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28
3 pyrogenesis 0x100b6b204 Threading::WorkerThread::RunUntilDeath() + 292
4 pyrogenesis 0x100b6d334 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(Threading::WorkerThread*), Threading::WorkerThread*>>(void*) + 64
5 libsystem_pthread.dylib 0x182af3fa8 _pthread_start + 148
6 libsystem_pthread.dylib 0x182aeeda0 thread_start + 8Thread 6:: Task Mgr #7
0 libsystem_kernel.dylib 0x182ab7710 __psynch_cvwait + 8
1 libsystem_pthread.dylib 0x182af4574 _pthread_cond_wait + 1232
2 libc++.1.dylib 0x182a1cef0 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28
3 pyrogenesis 0x100b6b204 Threading::WorkerThread::RunUntilDeath() + 292
4 pyrogenesis 0x100b6d334 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(Threading::WorkerThread*), Threading::WorkerThread*>>(void*) + 64
5 libsystem_pthread.dylib 0x182af3fa8 _pthread_start + 148
6 libsystem_pthread.dylib 0x182aeeda0 thread_start + 8Thread 7:: Task Mgr #2
0 libsystem_kernel.dylib 0x182ab7710 __psynch_cvwait + 8
1 libsystem_pthread.dylib 0x182af4574 _pthread_cond_wait + 1232
2 libc++.1.dylib 0x182a1cef0 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28
3 pyrogenesis 0x100b6b204 Threading::WorkerThread::RunUntilDeath() + 292
4 pyrogenesis 0x100b6d334 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(Threading::WorkerThread*), Threading::WorkerThread*>>(void*) + 64
5 libsystem_pthread.dylib 0x182af3fa8 _pthread_start + 148
6 libsystem_pthread.dylib 0x182aeeda0 thread_start + 8Thread 8:: Task Mgr #6
0 libsystem_kernel.dylib 0x182ab7710 __psynch_cvwait + 8
1 libsystem_pthread.dylib 0x182af4574 _pthread_cond_wait + 1232
2 libc++.1.dylib 0x182a1cef0 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28
3 pyrogenesis 0x100b6b204 Threading::WorkerThread::RunUntilDeath() + 292
4 pyrogenesis 0x100b6d334 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(Threading::WorkerThread*), Threading::WorkerThread*>>(void*) + 64
5 libsystem_pthread.dylib 0x182af3fa8 _pthread_start + 148
6 libsystem_pthread.dylib 0x182aeeda0 thread_start + 8Thread 9:: Task Mgr #5
0 libsystem_kernel.dylib 0x182ab7710 __psynch_cvwait + 8
1 libsystem_pthread.dylib 0x182af4574 _pthread_cond_wait + 1232
2 libc++.1.dylib 0x182a1cef0 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28
3 pyrogenesis 0x100b6b204 Threading::WorkerThread::RunUntilDeath() + 292
4 pyrogenesis 0x100b6d334 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(Threading::WorkerThread*), Threading::WorkerThread*>>(void*) + 64
5 libsystem_pthread.dylib 0x182af3fa8 _pthread_start + 148
6 libsystem_pthread.dylib 0x182aeeda0 thread_start + 8Thread 10:: Task Mgr #8
0 libsystem_kernel.dylib 0x182ab7710 __psynch_cvwait + 8
1 libsystem_pthread.dylib 0x182af4574 _pthread_cond_wait + 1232
2 libc++.1.dylib 0x182a1cef0 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28
3 pyrogenesis 0x100b6b204 Threading::WorkerThread::RunUntilDeath() + 292
4 pyrogenesis 0x100b6d334 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(Threading::WorkerThread*), Threading::WorkerThread*>>(void*) + 64
5 libsystem_pthread.dylib 0x182af3fa8 _pthread_start + 148
6 libsystem_pthread.dylib 0x182aeeda0 thread_start + 8Thread 11:: JS Helper
0 libsystem_kernel.dylib 0x182ab7710 __psynch_cvwait + 8
1 libsystem_pthread.dylib 0x182af4574 _pthread_cond_wait + 1232
2 pyrogenesis 0x10186786c mozilla::detail::ConditionVariableImpl::wait_for(mozilla::detail::MutexImpl&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&) + 80
3 libsystem_pthread.dylib 0x182aeeda0 thread_start + 8Thread 12:: JS Helper
0 libsystem_kernel.dylib 0x182ab7710 __psynch_cvwait + 8
1 libsystem_pthread.dylib 0x182af4574 _pthread_cond_wait + 1232
2 pyrogenesis 0x10186786c mozilla::detail::ConditionVariableImpl::wait_for(mozilla::detail::MutexImpl&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&) + 80
3 libsystem_pthread.dylib 0x182aeeda0 thread_start + 8Thread 13:: JS Helper
0 libsystem_kernel.dylib 0x182ab7710 __psynch_cvwait + 8
1 libsystem_pthread.dylib 0x182af4574 _pthread_cond_wait + 1232
2 pyrogenesis 0x10186786c mozilla::detail::ConditionVariableImpl::wait_for(mozilla::detail::MutexImpl&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&) + 80
3 libsystem_pthread.dylib 0x182aeeda0 thread_start + 8Thread 14:: JS Helper
0 libsystem_kernel.dylib 0x182ab7710 __psynch_cvwait + 8
1 libsystem_pthread.dylib 0x182af4574 _pthread_cond_wait + 1232
2 pyrogenesis 0x10186786c mozilla::detail::ConditionVariableImpl::wait_for(mozilla::detail::MutexImpl&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&) + 80
3 libsystem_pthread.dylib 0x182aeeda0 thread_start + 8Thread 15:: JS Helper
0 libsystem_kernel.dylib 0x182ab7710 __psynch_cvwait + 8
1 libsystem_pthread.dylib 0x182af4574 _pthread_cond_wait + 1232
2 pyrogenesis 0x10186786c mozilla::detail::ConditionVariableImpl::wait_for(mozilla::detail::MutexImpl&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&) + 80
3 libsystem_pthread.dylib 0x182aeeda0 thread_start + 8Thread 16:: JS Helper
0 libsystem_kernel.dylib 0x182ab7710 __psynch_cvwait + 8
1 libsystem_pthread.dylib 0x182af4574 _pthread_cond_wait + 1232
2 pyrogenesis 0x10186786c mozilla::detail::ConditionVariableImpl::wait_for(mozilla::detail::MutexImpl&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&) + 80
3 libsystem_pthread.dylib 0x182aeeda0 thread_start + 8Thread 17:: JS Helper
0 libsystem_kernel.dylib 0x182ab7710 __psynch_cvwait + 8
1 libsystem_pthread.dylib 0x182af4574 _pthread_cond_wait + 1232
2 pyrogenesis 0x10186786c mozilla::detail::ConditionVariableImpl::wait_for(mozilla::detail::MutexImpl&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&) + 80
3 libsystem_pthread.dylib 0x182aeeda0 thread_start + 8Thread 18:: JS Helper
0 libsystem_kernel.dylib 0x182ab7710 __psynch_cvwait + 8
1 libsystem_pthread.dylib 0x182af4574 _pthread_cond_wait + 1232
2 pyrogenesis 0x10186786c mozilla::detail::ConditionVariableImpl::wait_for(mozilla::detail::MutexImpl&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&) + 80
3 libsystem_pthread.dylib 0x182aeeda0 thread_start + 8Thread 19:: JS Wasm MachExceptionHandler
0 libsystem_kernel.dylib 0x182ab3f14 mach_msg2_trap + 8
1 libsystem_kernel.dylib 0x182ac6240 mach_msg2_internal + 80
2 libsystem_kernel.dylib 0x182abcb78 mach_msg_overwrite + 604
3 libsystem_kernel.dylib 0x182ab4290 mach_msg + 24
4 pyrogenesis 0x1018465c4 MachExceptionHandlerThread() + 248
5 libsystem_pthread.dylib 0x182aeeda0 thread_start + 8Thread 20:: caulk.messenger.shared:17
0 libsystem_kernel.dylib 0x182ab3e90 semaphore_wait_trap + 8
1 caulk 0x18c112024 caulk::semaphore::timed_wait(double) + 212
2 caulk 0x18c111ed8 caulk::concurrent::details::worker_thread::run() + 36
3 caulk 0x18c111bc8 void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, void (caulk::concurrent::details::worker_thread::*)(), std::__1::tuple<caulk::concurrent::details::worker_thread*>>>(void*) + 96
4 libsystem_pthread.dylib 0x182af3fa8 _pthread_start + 148
5 libsystem_pthread.dylib 0x182aeeda0 thread_start + 8Thread 21:: com.apple.audio.IOThread.client
0 libsystem_kernel.dylib 0x182ab3f14 mach_msg2_trap + 8
1 libsystem_kernel.dylib 0x182ac6240 mach_msg2_internal + 80
2 libsystem_kernel.dylib 0x182abcb78 mach_msg_overwrite + 604
3 libsystem_kernel.dylib 0x182ab4290 mach_msg + 24
4 CoreAudio 0x184edd624 HALB_MachPort::SendSimpleMessageWithSimpleReply(unsigned int, unsigned int, int, int&, bool, unsigned int) + 104
5 CoreAudio 0x184dcad14 HALC_ProxyIOContext::IOWorkLoop() + 3516
6 CoreAudio 0x184dc987c invocation function for block in HALC_ProxyIOContext::HALC_ProxyIOContext(unsigned int, unsigned int) + 116
7 CoreAudio 0x184f2c564 HALB_IOThread::Entry(void*) + 88
8 libsystem_pthread.dylib 0x182af3fa8 _pthread_start + 148
9 libsystem_pthread.dylib 0x182aeeda0 thread_start + 8Thread 22:
0 libsystem_pthread.dylib 0x182aeed8c start_wqthread + 0Thread 23:: CSoundManagerWorker
0 libsystem_kernel.dylib 0x182ab750c __semwait_signal + 8
1 libsystem_c.dylib 0x1829982d0 nanosleep + 220
2 pyrogenesis 0x100fadd84 SDL_Delay_REAL + 104
3 pyrogenesis 0x100e57f98 SDL_Delay + 36
4 pyrogenesis 0x100bade04 CSoundManagerWorker::Run() + 164
5 pyrogenesis 0x100badd18 Threading::HandleExceptionsBase<&CSoundManagerWorker::RunThread(CSoundManagerWorker*), void (*)(CSoundManagerWorker*)>::Wrapper(CSoundManagerWorker*) + 128
6 pyrogenesis 0x100bae290 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(CSoundManagerWorker*), CSoundManagerWorker*>>(void*) + 64
7 libsystem_pthread.dylib 0x182af3fa8 _pthread_start + 148
8 libsystem_pthread.dylib 0x182aeeda0 thread_start + 8Thread 24:: CUserReportWorker
0 libsystem_kernel.dylib 0x182ab7710 __psynch_cvwait + 8
1 libsystem_pthread.dylib 0x182af4574 _pthread_cond_wait + 1232
2 libc++.1.dylib 0x182a1cef0 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28
3 pyrogenesis 0x100b739b8 CUserReporterWorker::Run() + 680
4 pyrogenesis 0x100b73620 Threading::HandleExceptionsBase<&CUserReporterWorker::RunThread(CUserReporterWorker*), void (*)(CUserReporterWorker*)>::Wrapper(CUserReporterWorker*) + 124
5 pyrogenesis 0x100b75264 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(CUserReporterWorker*), CUserReporterWorker*>>(void*) + 64
6 libsystem_pthread.dylib 0x182af3fa8 _pthread_start + 148
7 libsystem_pthread.dylib 0x182aeeda0 thread_start + 8Thread 25:: SDLTimer
0 libsystem_kernel.dylib 0x182ab7710 __psynch_cvwait + 8
1 libsystem_pthread.dylib 0x182af4574 _pthread_cond_wait + 1232
2 pyrogenesis 0x100f8d56c SDL_CondWaitTimeout_REAL + 208
3 pyrogenesis 0x100f8cf24 SDL_SemWaitTimeout_REAL + 196
4 pyrogenesis 0x100eeb5d4 SDL_TimerThread + 624
5 pyrogenesis 0x100eead84 SDL_RunThread + 88
6 pyrogenesis 0x100f8c7a0 RunThread + 24
7 libsystem_pthread.dylib 0x182af3fa8 _pthread_start + 148
8 libsystem_pthread.dylib 0x182aeeda0 thread_start + 8Thread 26:
0 libsystem_pthread.dylib 0x182aeed8c start_wqthread + 0Thread 27:
0 libsystem_pthread.dylib 0x182aeed8c start_wqthread + 0Thread 28:
0 libsystem_pthread.dylib 0x182aeed8c start_wqthread + 0Thread 29:: com.apple.NSEventThread
0 libsystem_kernel.dylib 0x182ab3f14 mach_msg2_trap + 8
1 libsystem_kernel.dylib 0x182ac6240 mach_msg2_internal + 80
2 libsystem_kernel.dylib 0x182abcb78 mach_msg_overwrite + 604
3 libsystem_kernel.dylib 0x182ab4290 mach_msg + 24
4 CoreFoundation 0x182bd28b8 __CFRunLoopServiceMachPort + 160
5 CoreFoundation 0x182bd1198 __CFRunLoopRun + 1208
6 CoreFoundation 0x182bd058c CFRunLoopRunSpecific + 612
7 AppKit 0x185f1a508 _NSEventThread + 172
8 libsystem_pthread.dylib 0x182af3fa8 _pthread_start + 148
9 libsystem_pthread.dylib 0x182aeeda0 thread_start + 8Thread 30:: TextureConverter
0 libsystem_kernel.dylib 0x182ab7710 __psynch_cvwait + 8
1 libsystem_pthread.dylib 0x182af4574 _pthread_cond_wait + 1232
2 libc++.1.dylib 0x182a1cef0 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28
3 pyrogenesis 0x100c34ce0 CTextureConverter::RunThread(CTextureConverter*) + 244
4 pyrogenesis 0x100c357cc void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(CTextureConverter*), CTextureConverter*>>(void*) + 64
5 libsystem_pthread.dylib 0x182af3fa8 _pthread_start + 148
6 libsystem_pthread.dylib 0x182aeeda0 thread_start + 8Thread 31:
0 libsystem_pthread.dylib 0x182aeed8c start_wqthread + 0
Thread 0 crashed with ARM Thread State (64-bit):
x0: 0xffffffffffffffff x1: 0x000000014031e410 x2: 0x000000014031e420 x3: 0x00000001054b7fd8
x4: 0x0000000000000004 x5: 0x0000000000000000 x6: 0x0000000000000000 x7: 0x0000000000000000
x8: 0x0000000000000000 x9: 0x0000000000000000 x10: 0x0000000000000000 x11: 0x0000000000000000
x12: 0x0000000000000000 x13: 0x0000000000000000 x14: 0x00000000ffffffff x15: 0x0000000000000000
x16: 0xd7960001054cc080 x17: 0x000000013ee3bcd0 x18: 0xfffffffffffffe00 x19: 0x0000600000034000
x20: 0x0000600003550980 x21: 0x00000001043cf640 x22: 0x0000000104066e79 x23: 0x000000010432e000
x24: 0x0000000000000000 x25: 0x00000001043cf5d8 x26: 0x000000016f4cb340 x27: 0x000000016f4cb350
x28: 0x0000000104066f50 fp: 0x000000016f4ca370 lr: 0x000000010214bb24
sp: 0x000000016f4ca340 pc: 0x0000000102167ca4 cpsr: 0x40001000
far: 0x00000001054b8000 esr: 0x92000007 (Data Abort) byte read Translation faultBinary Images:
0x100934000 - 0x104293fff com.froissant.0ad.test (0.0.27-rc1-27645) <c6b43cb8-2df7-3ff2-a855-27c0e895607d> /Applications/0 A.D..app/Contents/MacOS/pyrogenesis
0x107ae8000 - 0x107c1bfff com.apple.audio.units.Components (1.14) <3318bd64-e64f-3e69-991d-605d1bc10d7d> /System/Library/Components/CoreAudio.component/Contents/MacOS/CoreAudio
0x12bb24000 - 0x12c433fff com.apple.audio.AudioDSPComponents (1.0) <8bb98236-6907-3ad1-8a3a-54552b32953b> /System/Library/Components/AudioDSP.component/Contents/MacOS/AudioDSP
0x12e894000 - 0x12e89ffff libobjc-trampolines.dylib (*) <80f14f3d-d099-3693-a8e0-eb9a526b1790> /usr/lib/libobjc-trampolines.dylib
0x13e738000 - 0x13e7a3fff com.apple.AppleMetalOpenGLRenderer (1.0) <7651840d-f268-3dea-ab6e-979cd46d3b2b> /System/Library/Extensions/AppleMetalOpenGLRenderer.bundle/Contents/MacOS/AppleMetalOpenGLRenderer
0x182796000 - 0x18282453b dyld (*) <ac277a36-1808-327a-8761-cca585421212> /usr/lib/dyld
0x182aed000 - 0x182af9fff libsystem_pthread.dylib (*) <b401cfb3-8dfe-32db-92b3-ba8af0f8ca6e> /usr/lib/system/libsystem_pthread.dylib
0x182ab3000 - 0x182aecfe7 libsystem_kernel.dylib (*) <7acbd9bc-d056-310e-858d-81b116cf6d28> /usr/lib/system/libsystem_kernel.dylib
0x182a0a000 - 0x182a96ff7 libc++.1.dylib (*) <79cab92f-5e03-31e7-b2bd-feafdfd2bbde> /usr/lib/libc++.1.dylib
0x18c110000 - 0x18c138fff com.apple.audio.caulk (1.0) <06456788-36d4-3e9d-ab9a-eab934756fe4> /System/Library/PrivateFrameworks/caulk.framework/Versions/A/caulk
0x184bee000 - 0x185281fff com.apple.audio.CoreAudio (5.0) <41fa6c48-7a9f-3181-a122-953cfaa18117> /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio
0x18298b000 - 0x182a09ff7 libsystem_c.dylib (*) <9277aff7-3cc3-30d0-99b7-c62680da95cf> /usr/lib/system/libsystem_c.dylib
0x182b53000 - 0x18302cfff com.apple.CoreFoundation (6.9) <b4fdaece-9727-3969-b014-27f7f24c8e01> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
0x185db7000 - 0x186cc5fff com.apple.AppKit (6.9) <cc3e5215-4cd7-364c-8750-6eb7002720ce> /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
0x0 - 0xffffffffffffffff ??? (*) <00000000-0000-0000-0000-000000000000> ???External Modification Summary:
Calls made by other processes targeting this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by all processes on this machine:
task_for_pid: 0
thread_create: 0
thread_set_state: 0VM Region Summary:
ReadOnly portion of Libraries: Total=1.2G resident=0K(0%) swapped_out_or_unallocated=1.2G(100%)
Writable regions: Total=1.9G written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=1.9G(100%)VIRTUAL REGION
REGION TYPE SIZE COUNT (non-coalesced)
=========== ======= =======
Accelerate framework 384K 3
Activity Tracing 256K 1
CG backing stores 6720K 12
CG image 2528K 12
ColorSync 576K 26
CoreAnimation 176K 11
CoreGraphics 64K 4
CoreGraphics (reserved) 16K 1 reserved VM address space (unallocated)
CoreUI image data 784K 10
Foundation 16K 1
Foundation (reserved) 16K 1 reserved VM address space (unallocated)
Kernel Alloc Once 32K 1
MALLOC 648.0M 73
MALLOC guard page 192K 10
MALLOC_MEDIUM (reserved) 1.1G 10 reserved VM address space (unallocated)
MALLOC_NANO (reserved) 128.0M 1 reserved VM address space (unallocated)
OpenGL GLSL 256K 3
STACK GUARD 56.5M 32
Stack 36.5M 32
VM_ALLOCATE 2.0G 74
VM_ALLOCATE (reserved) 256K 9 reserved VM address space (unallocated)
__AUTH 819K 199
__AUTH_CONST 14.7M 374
__CTF 824 1
__DATA 3986K 364
__DATA_CONST 17.8M 381
__DATA_DIRTY 826K 126
__FONT_DATA 2352 1
__GLSLBUILTINS 5174K 1
__LINKEDIT 817.6M 6
__OBJC_RO 66.2M 1
__OBJC_RW 2011K 1
__TEXT 367.0M 397
dyld private memory 272K 2
mapped file 180.7M 27
shared memory 976K 19
=========== ======= =======
TOTAL 5.4G 2227
TOTAL, minus reserved VM space 4.2G 2227-----------
Full Report
-----------{"app_name":"pyrogenesis","timestamp":"2023-05-21 11:49:37.00 -0400","app_version":"0.0.27-rc1-27645","slice_uuid":"c6b43cb8-2df7-3ff2-a855-27c0e895607d","build_version":"0.0.27-rc1-27645","platform":1,"bundleID":"com.froissant.0ad.test","share_with_app_devs":1,"is_first_party":0,"bug_type":"309","os_version":"macOS 13.3.1 (22E772610a)","roots_installed":0,"name":"pyrogenesis","incident_id":"D66C8611-B51F-46F5-810D-256C670AEAB9"}
{
"uptime" : 260000,
"procRole" : "Foreground",
"version" : 2,
"userID" : 502,
"deployVersion" : 210,
"modelCode" : "MacBookPro18,2",
"coalitionID" : 21178,
"osVersion" : {
"train" : "macOS 13.3.1",
"build" : "22E772610a",
"releaseType" : "User"
},
"captureTime" : "2023-05-21 11:49:36.8096 -0400",
"incident" : "D66C8611-B51F-46F5-810D-256C670AEAB9",
"pid" : 29961,
"translated" : false,
"cpuType" : "ARM-64",
"roots_installed" : 0,
"bug_type" : "309",
"procLaunch" : "2023-05-21 11:48:32.0814 -0400",
"procStartAbsTime" : 6338700342583,
"procExitAbsTime" : 6340253411216,
"procName" : "pyrogenesis",
"procPath" : "\/Applications\/0 A.D..app\/Contents\/MacOS\/pyrogenesis",
"bundleInfo" : {"CFBundleShortVersionString":"0.0.27-rc1-27645","CFBundleVersion":"0.0.27-rc1-27645","CFBundleIdentifier":"com.froissant.0ad.test"},
"storeInfo" : {"deviceIdentifierForVendor":"191EA99C-CBC7-5963-8E1E-03806486FE99","thirdParty":true},
"parentProc" : "launchd",
"parentPid" : 1,
"coalitionName" : "com.froissant.0ad.test",
"crashReporterKey" : "EF933ABC-7C19-BB2D-5057-3F4B05C44CBA",
"throttleTimeout" : 2147483647,
"codeSigningID" : "com.froissant.0ad.test",
"codeSigningTeamID" : "7F574G3D4R",
"codeSigningFlags" : 570499857,
"codeSigningValidationCategory" : 6,
"codeSigningTrustLevel" : 0,
"sip" : "enabled",
"vmRegionInfo" : "0x1054b8000 is in 0x1054b8000-0x1054bc000; bytes after start: 0 bytes before end: 16383\n REGION TYPE START - END [ VSIZE] PRT\/MAX SHRMOD REGION DETAIL\n dyld private memory 105478000-1054b8000 [ 256K] rw-\/rwx SM=PRV \n---> dyld private memory 1054b8000-1054bc000 [ 16K] ---\/--- SM=NUL \n Kernel Alloc Once 1054bc000-1054c4000 [ 32K] rw-\/rwx SM=PRV ",
"exception" : {"codes":"0x0000000000000002, 0x00000001054b8000","rawCodes":[2,4383801344],"type":"EXC_BAD_ACCESS","signal":"SIGBUS","subtype":"KERN_PROTECTION_FAILURE at 0x00000001054b8000"},
"termination" : {"flags":0,"code":10,"namespace":"SIGNAL","indicator":"Bus error: 10","byProc":"exc handler","byPid":29961},
"vmregioninfo" : "0x1054b8000 is in 0x1054b8000-0x1054bc000; bytes after start: 0 bytes before end: 16383\n REGION TYPE START - END [ VSIZE] PRT\/MAX SHRMOD REGION DETAIL\n dyld private memory 105478000-1054b8000 [ 256K] rw-\/rwx SM=PRV \n---> dyld private memory 1054b8000-1054bc000 [ 16K] ---\/--- SM=NUL \n Kernel Alloc Once 1054bc000-1054c4000 [ 32K] rw-\/rwx SM=PRV ",
"extMods" : {"caller":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"system":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"targeted":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"warnings":0},
"faultingThread" : 0,
"threads" : [{"triggered":true,"id":1708067,"threadState":{"x":[{"value":18446744073709551615},{"value":5371978768},{"value":5371978784},{"value":4383801304},{"value":4},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":4294967295},{"value":0},{"value":15534603969044988032},{"value":5350079696},{"value":18446744073709551104},{"value":105553116479488},{"value":105553172171136},{"value":4366071360,"symbolLocation":0,"symbol":"g_Profiler2"},{"value":4362497657},{"value":4365410304},{"value":0},{"value":4366071256,"symbolLocation":0,"symbol":"g_frequencyFilter"},{"value":6162264896},{"value":6162264912},{"value":4362497872}],"flavor":"ARM_THREAD_STATE64","lr":{"value":4329880356},"cpsr":{"value":1073745920},"fp":{"value":6162260848},"sp":{"value":6162260800},"esr":{"value":2449473543,"description":"(Data Abort) byte read Translation fault"},"pc":{"value":4329995428,"matchesCrashFrame":1},"far":{"value":4383801344}},"name":"main","queue":"com.apple.main-thread","frames":[{"imageOffset":25377956,"symbol":"__gmpn_cnd_add_n","symbolLocation":164,"imageIndex":0},{"imageOffset":25262884,"symbol":"_nettle_ecc_mod_add","symbolLocation":96,"imageIndex":0},{"imageOffset":25282060,"symbol":"_nettle_ecc_dup_th","symbolLocation":84,"imageIndex":0},{"imageOffset":25285296,"symbol":"_nettle_ecc_mul_g_eh","symbolLocation":224,"imageIndex":0},{"imageOffset":25302228,"symbol":"nettle_curve25519_mul_g","symbolLocation":276,"imageIndex":0},{"imageOffset":25214876,"symbol":"edwards_curve_mul_g","symbolLocation":72,"imageIndex":0},{"imageOffset":25199072,"symbol":"wrap_nettle_pk_generate_keys","symbolLocation":6788,"imageIndex":0},{"imageOffset":24961296,"symbol":"_gnutls_gen_ecdh_common_client_kx_int","symbolLocation":412,"imageIndex":0},{"imageOffset":24957856,"symbol":"_gnutls_gen_ecdh_common_client_kx","symbolLocation":36,"imageIndex":0},{"imageOffset":23800580,"symbol":"_gnutls_send_client_kx_message","symbolLocation":280,"imageIndex":0},{"imageOffset":23754288,"symbol":"handshake_client","symbolLocation":7084,"imageIndex":0},{"imageOffset":23746776,"symbol":"gnutls_handshake","symbolLocation":896,"imageIndex":0},{"imageOffset":23334120,"symbol":"gloox::GnuTLSBase::handshake()","symbolLocation":72,"imageIndex":0},{"imageOffset":23333432,"symbol":"gloox::GnuTLSBase::decrypt(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)","symbolLocation":72,"imageIndex":0},{"imageOffset":23342632,"symbol":"gloox::TLSDefault::decrypt(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)","symbolLocation":64,"imageIndex":0},{"imageOffset":22626516,"symbol":"gloox::ClientBase::handleReceivedData(gloox::ConnectionBase const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)","symbolLocation":84,"imageIndex":0},{"imageOffset":22595788,"symbol":"gloox::ConnectionTCPClient::recv(int)","symbolLocation":728,"imageIndex":0},{"imageOffset":22611984,"symbol":"gloox::ClientBase::recv(int)","symbolLocation":96,"imageIndex":0},{"imageOffset":23032,"symbol":"RunGameOrAtlas(PS::span<char const* const>)","symbolLocation":7044,"imageIndex":0},{"imageOffset":15780,"symbol":"main","symbolLocation":64,"imageIndex":0},{"imageOffset":24360,"symbol":"start","symbolLocation":2236,"imageIndex":5}]},{"id":1708377,"frames":[{"imageOffset":7564,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":6}]},{"id":1708378,"name":"Task Mgr #0","frames":[{"imageOffset":18192,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":7},{"imageOffset":30068,"symbol":"_pthread_cond_wait","symbolLocation":1232,"imageIndex":6},{"imageOffset":77552,"symbol":"std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)","symbolLocation":28,"imageIndex":8},{"imageOffset":2322948,"symbol":"Threading::WorkerThread::RunUntilDeath()","symbolLocation":292,"imageIndex":0},{"imageOffset":2331444,"symbol":"void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(Threading::WorkerThread*), Threading::WorkerThread*>>(void*)","symbolLocation":64,"imageIndex":0},{"imageOffset":28584,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":6},{"imageOffset":7584,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1708379,"name":"Task Mgr #1","frames":[{"imageOffset":18192,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":7},{"imageOffset":30068,"symbol":"_pthread_cond_wait","symbolLocation":1232,"imageIndex":6},{"imageOffset":77552,"symbol":"std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)","symbolLocation":28,"imageIndex":8},{"imageOffset":2322948,"symbol":"Threading::WorkerThread::RunUntilDeath()","symbolLocation":292,"imageIndex":0},{"imageOffset":2331444,"symbol":"void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(Threading::WorkerThread*), Threading::WorkerThread*>>(void*)","symbolLocation":64,"imageIndex":0},{"imageOffset":28584,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":6},{"imageOffset":7584,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1708380,"name":"Task Mgr #3","frames":[{"imageOffset":18192,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":7},{"imageOffset":30068,"symbol":"_pthread_cond_wait","symbolLocation":1232,"imageIndex":6},{"imageOffset":77552,"symbol":"std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)","symbolLocation":28,"imageIndex":8},{"imageOffset":2322948,"symbol":"Threading::WorkerThread::RunUntilDeath()","symbolLocation":292,"imageIndex":0},{"imageOffset":2331444,"symbol":"void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(Threading::WorkerThread*), Threading::WorkerThread*>>(void*)","symbolLocation":64,"imageIndex":0},{"imageOffset":28584,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":6},{"imageOffset":7584,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1708381,"name":"Task Mgr #4","frames":[{"imageOffset":18192,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":7},{"imageOffset":30068,"symbol":"_pthread_cond_wait","symbolLocation":1232,"imageIndex":6},{"imageOffset":77552,"symbol":"std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)","symbolLocation":28,"imageIndex":8},{"imageOffset":2322948,"symbol":"Threading::WorkerThread::RunUntilDeath()","symbolLocation":292,"imageIndex":0},{"imageOffset":2331444,"symbol":"void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(Threading::WorkerThread*), Threading::WorkerThread*>>(void*)","symbolLocation":64,"imageIndex":0},{"imageOffset":28584,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":6},{"imageOffset":7584,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1708382,"name":"Task Mgr #7","frames":[{"imageOffset":18192,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":7},{"imageOffset":30068,"symbol":"_pthread_cond_wait","symbolLocation":1232,"imageIndex":6},{"imageOffset":77552,"symbol":"std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)","symbolLocation":28,"imageIndex":8},{"imageOffset":2322948,"symbol":"Threading::WorkerThread::RunUntilDeath()","symbolLocation":292,"imageIndex":0},{"imageOffset":2331444,"symbol":"void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(Threading::WorkerThread*), Threading::WorkerThread*>>(void*)","symbolLocation":64,"imageIndex":0},{"imageOffset":28584,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":6},{"imageOffset":7584,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1708383,"name":"Task Mgr #2","frames":[{"imageOffset":18192,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":7},{"imageOffset":30068,"symbol":"_pthread_cond_wait","symbolLocation":1232,"imageIndex":6},{"imageOffset":77552,"symbol":"std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)","symbolLocation":28,"imageIndex":8},{"imageOffset":2322948,"symbol":"Threading::WorkerThread::RunUntilDeath()","symbolLocation":292,"imageIndex":0},{"imageOffset":2331444,"symbol":"void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(Threading::WorkerThread*), Threading::WorkerThread*>>(void*)","symbolLocation":64,"imageIndex":0},{"imageOffset":28584,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":6},{"imageOffset":7584,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1708384,"name":"Task Mgr #6","frames":[{"imageOffset":18192,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":7},{"imageOffset":30068,"symbol":"_pthread_cond_wait","symbolLocation":1232,"imageIndex":6},{"imageOffset":77552,"symbol":"std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)","symbolLocation":28,"imageIndex":8},{"imageOffset":2322948,"symbol":"Threading::WorkerThread::RunUntilDeath()","symbolLocation":292,"imageIndex":0},{"imageOffset":2331444,"symbol":"void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(Threading::WorkerThread*), Threading::WorkerThread*>>(void*)","symbolLocation":64,"imageIndex":0},{"imageOffset":28584,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":6},{"imageOffset":7584,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1708385,"name":"Task Mgr #5","frames":[{"imageOffset":18192,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":7},{"imageOffset":30068,"symbol":"_pthread_cond_wait","symbolLocation":1232,"imageIndex":6},{"imageOffset":77552,"symbol":"std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)","symbolLocation":28,"imageIndex":8},{"imageOffset":2322948,"symbol":"Threading::WorkerThread::RunUntilDeath()","symbolLocation":292,"imageIndex":0},{"imageOffset":2331444,"symbol":"void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(Threading::WorkerThread*), Threading::WorkerThread*>>(void*)","symbolLocation":64,"imageIndex":0},{"imageOffset":28584,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":6},{"imageOffset":7584,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1708386,"name":"Task Mgr #8","frames":[{"imageOffset":18192,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":7},{"imageOffset":30068,"symbol":"_pthread_cond_wait","symbolLocation":1232,"imageIndex":6},{"imageOffset":77552,"symbol":"std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)","symbolLocation":28,"imageIndex":8},{"imageOffset":2322948,"symbol":"Threading::WorkerThread::RunUntilDeath()","symbolLocation":292,"imageIndex":0},{"imageOffset":2331444,"symbol":"void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(Threading::WorkerThread*), Threading::WorkerThread*>>(void*)","symbolLocation":64,"imageIndex":0},{"imageOffset":28584,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":6},{"imageOffset":7584,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1708388,"name":"JS Helper","frames":[{"imageOffset":18192,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":7},{"imageOffset":30068,"symbol":"_pthread_cond_wait","symbolLocation":1232,"imageIndex":6},{"imageOffset":15939692,"symbol":"mozilla::detail::ConditionVariableImpl::wait_for(mozilla::detail::MutexImpl&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&)","symbolLocation":80,"imageIndex":0},{"imageOffset":7584,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1708389,"name":"JS Helper","frames":[{"imageOffset":18192,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":7},{"imageOffset":30068,"symbol":"_pthread_cond_wait","symbolLocation":1232,"imageIndex":6},{"imageOffset":15939692,"symbol":"mozilla::detail::ConditionVariableImpl::wait_for(mozilla::detail::MutexImpl&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&)","symbolLocation":80,"imageIndex":0},{"imageOffset":7584,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1708390,"name":"JS Helper","frames":[{"imageOffset":18192,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":7},{"imageOffset":30068,"symbol":"_pthread_cond_wait","symbolLocation":1232,"imageIndex":6},{"imageOffset":15939692,"symbol":"mozilla::detail::ConditionVariableImpl::wait_for(mozilla::detail::MutexImpl&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&)","symbolLocation":80,"imageIndex":0},{"imageOffset":7584,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1708391,"name":"JS Helper","frames":[{"imageOffset":18192,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":7},{"imageOffset":30068,"symbol":"_pthread_cond_wait","symbolLocation":1232,"imageIndex":6},{"imageOffset":15939692,"symbol":"mozilla::detail::ConditionVariableImpl::wait_for(mozilla::detail::MutexImpl&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&)","symbolLocation":80,"imageIndex":0},{"imageOffset":7584,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1708392,"name":"JS Helper","frames":[{"imageOffset":18192,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":7},{"imageOffset":30068,"symbol":"_pthread_cond_wait","symbolLocation":1232,"imageIndex":6},{"imageOffset":15939692,"symbol":"mozilla::detail::ConditionVariableImpl::wait_for(mozilla::detail::MutexImpl&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&)","symbolLocation":80,"imageIndex":0},{"imageOffset":7584,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1708393,"name":"JS Helper","frames":[{"imageOffset":18192,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":7},{"imageOffset":30068,"symbol":"_pthread_cond_wait","symbolLocation":1232,"imageIndex":6},{"imageOffset":15939692,"symbol":"mozilla::detail::ConditionVariableImpl::wait_for(mozilla::detail::MutexImpl&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&)","symbolLocation":80,"imageIndex":0},{"imageOffset":7584,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1708394,"name":"JS Helper","frames":[{"imageOffset":18192,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":7},{"imageOffset":30068,"symbol":"_pthread_cond_wait","symbolLocation":1232,"imageIndex":6},{"imageOffset":15939692,"symbol":"mozilla::detail::ConditionVariableImpl::wait_for(mozilla::detail::MutexImpl&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&)","symbolLocation":80,"imageIndex":0},{"imageOffset":7584,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1708395,"name":"JS Helper","frames":[{"imageOffset":18192,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":7},{"imageOffset":30068,"symbol":"_pthread_cond_wait","symbolLocation":1232,"imageIndex":6},{"imageOffset":15939692,"symbol":"mozilla::detail::ConditionVariableImpl::wait_for(mozilla::detail::MutexImpl&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&)","symbolLocation":80,"imageIndex":0},{"imageOffset":7584,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1708396,"name":"JS Wasm MachExceptionHandler","frames":[{"imageOffset":3860,"symbol":"mach_msg2_trap","symbolLocation":8,"imageIndex":7},{"imageOffset":78400,"symbol":"mach_msg2_internal","symbolLocation":80,"imageIndex":7},{"imageOffset":39800,"symbol":"mach_msg_overwrite","symbolLocation":604,"imageIndex":7},{"imageOffset":4752,"symbol":"mach_msg","symbolLocation":24,"imageIndex":7},{"imageOffset":15803844,"symbol":"MachExceptionHandlerThread()","symbolLocation":248,"imageIndex":0},{"imageOffset":7584,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1708406,"name":"caulk.messenger.shared:17","frames":[{"imageOffset":3728,"symbol":"semaphore_wait_trap","symbolLocation":8,"imageIndex":7},{"imageOffset":8228,"symbol":"caulk::semaphore::timed_wait(double)","symbolLocation":212,"imageIndex":9},{"imageOffset":7896,"symbol":"caulk::concurrent::details::worker_thread::run()","symbolLocation":36,"imageIndex":9},{"imageOffset":7112,"symbol":"void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, void (caulk::concurrent::details::worker_thread::*)(), std::__1::tuple<caulk::concurrent::details::worker_thread*>>>(void*)","symbolLocation":96,"imageIndex":9},{"imageOffset":28584,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":6},{"imageOffset":7584,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1708434,"name":"com.apple.audio.IOThread.client","frames":[{"imageOffset":3860,"symbol":"mach_msg2_trap","symbolLocation":8,"imageIndex":7},{"imageOffset":78400,"symbol":"mach_msg2_internal","symbolLocation":80,"imageIndex":7},{"imageOffset":39800,"symbol":"mach_msg_overwrite","symbolLocation":604,"imageIndex":7},{"imageOffset":4752,"symbol":"mach_msg","symbolLocation":24,"imageIndex":7},{"imageOffset":3077668,"symbol":"HALB_MachPort::SendSimpleMessageWithSimpleReply(unsigned int, unsigned int, int, int&, bool, unsigned int)","symbolLocation":104,"imageIndex":10},{"imageOffset":1953044,"symbol":"HALC_ProxyIOContext::IOWorkLoop()","symbolLocation":3516,"imageIndex":10},{"imageOffset":1947772,"symbol":"invocation function for block in HALC_ProxyIOContext::HALC_ProxyIOContext(unsigned int, unsigned int)","symbolLocation":116,"imageIndex":10},{"imageOffset":3401060,"symbol":"HALB_IOThread::Entry(void*)","symbolLocation":88,"imageIndex":10},{"imageOffset":28584,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":6},{"imageOffset":7584,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1708446,"frames":[{"imageOffset":7564,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":6}]},{"id":1708449,"name":"CSoundManagerWorker","frames":[{"imageOffset":17676,"symbol":"__semwait_signal","symbolLocation":8,"imageIndex":7},{"imageOffset":53968,"symbol":"nanosleep","symbolLocation":220,"imageIndex":11},{"imageOffset":6790532,"symbol":"SDL_Delay_REAL","symbolLocation":104,"imageIndex":0},{"imageOffset":5390232,"symbol":"SDL_Delay","symbolLocation":36,"imageIndex":0},{"imageOffset":2596356,"symbol":"CSoundManagerWorker::Run()","symbolLocation":164,"imageIndex":0},{"imageOffset":2596120,"symbol":"Threading::HandleExceptionsBase<&CSoundManagerWorker::RunThread(CSoundManagerWorker*), void (*)(CSoundManagerWorker*)>::Wrapper(CSoundManagerWorker*)","symbolLocation":128,"imageIndex":0},{"imageOffset":2597520,"symbol":"void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(CSoundManagerWorker*), CSoundManagerWorker*>>(void*)","symbolLocation":64,"imageIndex":0},{"imageOffset":28584,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":6},{"imageOffset":7584,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1708450,"name":"CUserReportWorker","frames":[{"imageOffset":18192,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":7},{"imageOffset":30068,"symbol":"_pthread_cond_wait","symbolLocation":1232,"imageIndex":6},{"imageOffset":77552,"symbol":"std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)","symbolLocation":28,"imageIndex":8},{"imageOffset":2357688,"symbol":"CUserReporterWorker::Run()","symbolLocation":680,"imageIndex":0},{"imageOffset":2356768,"symbol":"Threading::HandleExceptionsBase<&CUserReporterWorker::RunThread(CUserReporterWorker*), void (*)(CUserReporterWorker*)>::Wrapper(CUserReporterWorker*)","symbolLocation":124,"imageIndex":0},{"imageOffset":2364004,"symbol":"void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(CUserReporterWorker*), CUserReporterWorker*>>(void*)","symbolLocation":64,"imageIndex":0},{"imageOffset":28584,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":6},{"imageOffset":7584,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1708451,"name":"SDLTimer","frames":[{"imageOffset":18192,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":7},{"imageOffset":30068,"symbol":"_pthread_cond_wait","symbolLocation":1232,"imageIndex":6},{"imageOffset":6657388,"symbol":"SDL_CondWaitTimeout_REAL","symbolLocation":208,"imageIndex":0},{"imageOffset":6655780,"symbol":"SDL_SemWaitTimeout_REAL","symbolLocation":196,"imageIndex":0},{"imageOffset":5993940,"symbol":"SDL_TimerThread","symbolLocation":624,"imageIndex":0},{"imageOffset":5991812,"symbol":"SDL_RunThread","symbolLocation":88,"imageIndex":0},{"imageOffset":6653856,"symbol":"RunThread","symbolLocation":24,"imageIndex":0},{"imageOffset":28584,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":6},{"imageOffset":7584,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1708462,"frames":[{"imageOffset":7564,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":6}]},{"id":1708486,"frames":[{"imageOffset":7564,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":6}]},{"id":1708487,"frames":[{"imageOffset":7564,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":6}]},{"id":1708508,"name":"com.apple.NSEventThread","frames":[{"imageOffset":3860,"symbol":"mach_msg2_trap","symbolLocation":8,"imageIndex":7},{"imageOffset":78400,"symbol":"mach_msg2_internal","symbolLocation":80,"imageIndex":7},{"imageOffset":39800,"symbol":"mach_msg_overwrite","symbolLocation":604,"imageIndex":7},{"imageOffset":4752,"symbol":"mach_msg","symbolLocation":24,"imageIndex":7},{"imageOffset":522424,"symbol":"__CFRunLoopServiceMachPort","symbolLocation":160,"imageIndex":12},{"imageOffset":516504,"symbol":"__CFRunLoopRun","symbolLocation":1208,"imageIndex":12},{"imageOffset":513420,"symbol":"CFRunLoopRunSpecific","symbolLocation":612,"imageIndex":12},{"imageOffset":1455368,"symbol":"_NSEventThread","symbolLocation":172,"imageIndex":13},{"imageOffset":28584,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":6},{"imageOffset":7584,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1708560,"name":"TextureConverter","frames":[{"imageOffset":18192,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":7},{"imageOffset":30068,"symbol":"_pthread_cond_wait","symbolLocation":1232,"imageIndex":6},{"imageOffset":77552,"symbol":"std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)","symbolLocation":28,"imageIndex":8},{"imageOffset":3149024,"symbol":"CTextureConverter::RunThread(CTextureConverter*)","symbolLocation":244,"imageIndex":0},{"imageOffset":3151820,"symbol":"void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(CTextureConverter*), CTextureConverter*>>(void*)","symbolLocation":64,"imageIndex":0},{"imageOffset":28584,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":6},{"imageOffset":7584,"symbol":"thread_start","symbolLocation":8,"imageIndex":6}]},{"id":1708578,"frames":[{"imageOffset":7564,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":6}]}],
"usedImages" : [
{
"source" : "P",
"arch" : "arm64",
"base" : 4304617472,
"CFBundleShortVersionString" : "0.0.27-rc1-27645",
"CFBundleIdentifier" : "com.froissant.0ad.test",
"size" : 60162048,
"uuid" : "c6b43cb8-2df7-3ff2-a855-27c0e895607d",
"path" : "\/Applications\/0 A.D..app\/Contents\/MacOS\/pyrogenesis",
"name" : "pyrogenesis",
"CFBundleVersion" : "0.0.27-rc1-27645"
},
{
"source" : "P",
"arch" : "arm64e",
"base" : 4423843840,
"CFBundleShortVersionString" : "1.14",
"CFBundleIdentifier" : "com.apple.audio.units.Components",
"size" : 1261568,
"uuid" : "3318bd64-e64f-3e69-991d-605d1bc10d7d",
"path" : "\/System\/Library\/Components\/CoreAudio.component\/Contents\/MacOS\/CoreAudio",
"name" : "CoreAudio",
"CFBundleVersion" : "1.14"
},
{
"source" : "P",
"arch" : "arm64e",
"base" : 5028069376,
"CFBundleShortVersionString" : "1.0",
"CFBundleIdentifier" : "com.apple.audio.AudioDSPComponents",
"size" : 9502720,
"uuid" : "8bb98236-6907-3ad1-8a3a-54552b32953b",
"path" : "\/System\/Library\/Components\/AudioDSP.component\/Contents\/MacOS\/AudioDSP",
"name" : "AudioDSP",
"CFBundleVersion" : "1"
},
{
"source" : "P",
"arch" : "arm64e",
"base" : 5075714048,
"size" : 49152,
"uuid" : "80f14f3d-d099-3693-a8e0-eb9a526b1790",
"path" : "\/usr\/lib\/libobjc-trampolines.dylib",
"name" : "libobjc-trampolines.dylib"
},
{
"source" : "P",
"arch" : "arm64e",
"base" : 5342724096,
"CFBundleShortVersionString" : "1.0",
"CFBundleIdentifier" : "com.apple.AppleMetalOpenGLRenderer",
"size" : 442368,
"uuid" : "7651840d-f268-3dea-ab6e-979cd46d3b2b",
"path" : "\/System\/Library\/Extensions\/AppleMetalOpenGLRenderer.bundle\/Contents\/MacOS\/AppleMetalOpenGLRenderer",
"name" : "AppleMetalOpenGLRenderer",
"CFBundleVersion" : "1"
},
{
"source" : "P",
"arch" : "arm64e",
"base" : 6483959808,
"size" : 582972,
"uuid" : "ac277a36-1808-327a-8761-cca585421212",
"path" : "\/usr\/lib\/dyld",
"name" : "dyld"
},
{
"source" : "P",
"arch" : "arm64e",
"base" : 6487461888,
"size" : 53248,
"uuid" : "b401cfb3-8dfe-32db-92b3-ba8af0f8ca6e",
"path" : "\/usr\/lib\/system\/libsystem_pthread.dylib",
"name" : "libsystem_pthread.dylib"
},
{
"source" : "P",
"arch" : "arm64e",
"base" : 6487224320,
"size" : 237544,
"uuid" : "7acbd9bc-d056-310e-858d-81b116cf6d28",
"path" : "\/usr\/lib\/system\/libsystem_kernel.dylib",
"name" : "libsystem_kernel.dylib"
},
{
"source" : "P",
"arch" : "arm64e",
"base" : 6486532096,
"size" : 577528,
"uuid" : "79cab92f-5e03-31e7-b2bd-feafdfd2bbde",
"path" : "\/usr\/lib\/libc++.1.dylib",
"name" : "libc++.1.dylib"
},
{
"source" : "P",
"arch" : "arm64e",
"base" : 6644891648,
"CFBundleShortVersionString" : "1.0",
"CFBundleIdentifier" : "com.apple.audio.caulk",
"size" : 167936,
"uuid" : "06456788-36d4-3e9d-ab9a-eab934756fe4",
"path" : "\/System\/Library\/PrivateFrameworks\/caulk.framework\/Versions\/A\/caulk",
"name" : "caulk"
},
{
"source" : "P",
"arch" : "arm64e",
"base" : 6522068992,
"CFBundleShortVersionString" : "5.0",
"CFBundleIdentifier" : "com.apple.audio.CoreAudio",
"size" : 6897664,
"uuid" : "41fa6c48-7a9f-3181-a122-953cfaa18117",
"path" : "\/System\/Library\/Frameworks\/CoreAudio.framework\/Versions\/A\/CoreAudio",
"name" : "CoreAudio",
"CFBundleVersion" : "5.0"
},
{
"source" : "P",
"arch" : "arm64e",
"base" : 6486011904,
"size" : 520184,
"uuid" : "9277aff7-3cc3-30d0-99b7-c62680da95cf",
"path" : "\/usr\/lib\/system\/libsystem_c.dylib",
"name" : "libsystem_c.dylib"
},
{
"source" : "P",
"arch" : "arm64e",
"base" : 6487879680,
"CFBundleShortVersionString" : "6.9",
"CFBundleIdentifier" : "com.apple.CoreFoundation",
"size" : 5087232,
"uuid" : "b4fdaece-9727-3969-b014-27f7f24c8e01",
"path" : "\/System\/Library\/Frameworks\/CoreFoundation.framework\/Versions\/A\/CoreFoundation",
"name" : "CoreFoundation",
"CFBundleVersion" : "1971"
},
{
"source" : "P",
"arch" : "arm64e",
"base" : 6540718080,
"CFBundleShortVersionString" : "6.9",
"CFBundleIdentifier" : "com.apple.AppKit",
"size" : 15790080,
"uuid" : "cc3e5215-4cd7-364c-8750-6eb7002720ce",
"path" : "\/System\/Library\/Frameworks\/AppKit.framework\/Versions\/C\/AppKit",
"name" : "AppKit",
"CFBundleVersion" : "2299.50.120"
},
{
"size" : 0,
"source" : "A",
"base" : 0,
"uuid" : "00000000-0000-0000-0000-000000000000"
}
],
"sharedCache" : {
"base" : 6483296256,
"size" : 3539582976,
"uuid" : "a52a6d6b-ad23-3f37-b4f1-4b6316acd74c"
},
"vmSummary" : "ReadOnly portion of Libraries: Total=1.2G resident=0K(0%) swapped_out_or_unallocated=1.2G(100%)\nWritable regions: Total=1.9G written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=1.9G(100%)\n\n VIRTUAL REGION \nREGION TYPE SIZE COUNT (non-coalesced) \n=========== ======= ======= \nAccelerate framework 384K 3 \nActivity Tracing 256K 1 \nCG backing stores 6720K 12 \nCG image 2528K 12 \nColorSync 576K 26 \nCoreAnimation 176K 11 \nCoreGraphics 64K 4 \nCoreGraphics (reserved) 16K 1 reserved VM address space (unallocated)\nCoreUI image data 784K 10 \nFoundation 16K 1 \nFoundation (reserved) 16K 1 reserved VM address space (unallocated)\nKernel Alloc Once 32K 1 \nMALLOC 648.0M 73 \nMALLOC guard page 192K 10 \nMALLOC_MEDIUM (reserved) 1.1G 10 reserved VM address space (unallocated)\nMALLOC_NANO (reserved) 128.0M 1 reserved VM address space (unallocated)\nOpenGL GLSL 256K 3 \nSTACK GUARD 56.5M 32 \nStack 36.5M 32 \nVM_ALLOCATE 2.0G 74 \nVM_ALLOCATE (reserved) 256K 9 reserved VM address space (unallocated)\n__AUTH 819K 199 \n__AUTH_CONST 14.7M 374 \n__CTF 824 1 \n__DATA 3986K 364 \n__DATA_CONST 17.8M 381 \n__DATA_DIRTY 826K 126 \n__FONT_DATA 2352 1 \n__GLSLBUILTINS 5174K 1 \n__LINKEDIT 817.6M 6 \n__OBJC_RO 66.2M 1 \n__OBJC_RW 2011K 1 \n__TEXT 367.0M 397 \ndyld private memory 272K 2 \nmapped file 180.7M 27 \nshared memory 976K 19 \n=========== ======= ======= \nTOTAL 5.4G 2227 \nTOTAL, minus reserved VM space 4.2G 2227 \n",
"legacyInfo" : {
"threadTriggered" : {
"name" : "main",
"queue" : "com.apple.main-thread"
}
},
"logWritingSignature" : "f79a5fd6f630cc5b86d7546dd63ecca99ba61072",
"trialInfo" : {
"rollouts" : [
{
"rolloutId" : "5fb4245a1bbfe8005e33a1e1",
"factorPackIds" : {},
"deploymentId" : 240000021
},
{
"rolloutId" : "60f8ddccefea4203d95cbeef",
"factorPackIds" : {},
"deploymentId" : 240000025
}
],
"experiments" : [
{
"treatmentId" : "c28e4ee6-1b08-4f90-8e05-2809e78310a3",
"experimentId" : "6317d2003d24842ff850182a",
"deploymentId" : 400000013
},
{
"treatmentId" : "6dd670af-0633-45e4-ae5f-122ae4df02be",
"experimentId" : "64406ba83deb637ac8a04419",
"deploymentId" : 900000005
}
]
}
}Model: MacBookPro18,2, BootROM 8422.100.650, proc 10:8:2 processors, 32 GB, SMC
Graphics: Apple M1 Max, Apple M1 Max, Built-In
Display: LS49AG95, 5120 x 1440, Main, MirrorOff, Online
Display: M28U, 5120 x 2880 (5K/UHD+ - Ultra High Definition Plus), MirrorOff, Online
Display: M28U, 2560 x 1440 (QHD/WQHD - Wide Quad High Definition), MirrorOff, Online
Memory Module: LPDDR5, Samsung
AirPort: spairport_wireless_card_type_wifi (0x14E4, 0x4387), wl0: Mar 8 2023 18:27:05 version 20.96.27.0.8.7.144 FWID 01-ec2ac09e
Bluetooth: Version (null), 0 services, 0 devices, 0 incoming serial ports
Network Service: Wi-Fi, AirPort, en0
PCI Card: ethernet, Ethernet Controller, Thunderbolt@3,0,0
USB Device: USB31Bus
USB Device: USB31Bus
USB Device: USB3.0 Hub
USB Device: TS4 USB3.2 Gen2 HUB
USB Device: TS4 USB3.2 Gen2 HUB
USB Device: TS4 USB3.2 Gen2 HUB
USB Device: TS4 USB2.0 Hub
USB Device: TPS DMC Family
USB Device: TS4 USB2.0 HUB
USB Device: composite_device
USB Device: TS4 USB2.0 HUB
USB Device: TS4 USB2.0 HUB
USB Device: Freestyle Edge RGB Keyboard
USB Device: USB Receiver
USB Device: USB31Bus
Thunderbolt Bus: MacBook Pro, Apple Inc.
Thunderbolt Bus: MacBook Pro, Apple Inc.
Thunderbolt Bus: MacBook Pro, Apple Inc.
Thunderbolt Device: TS4, CalDigit, Inc., 1, 39.1
-
Issue: People use garrisoning to take off targetting off units.
Example: Someone pushes with barracks using garrisons/ungarrisons from said barracks. That means that targetting of 30 units can be reset by garrisoning them in 3 barracks. Ungarrisoning instantly makes it possible to kill units that are capturing barracks.
Suggestion: 4-6 second timer when unit is idle and vulnerable to dmg doing nothing while garrisoning. Alternative suggestion is all armor becomes 0 but unit can attack while garrisoning.
Conversely, ungarrisoning units should not be instant.
- 2
- 2
-
2 minutes ago, real_tabasco_sauce said:
You actually already can in the community mod
Oh wow, it's hidden well lol. Didn't see it at first glance. Will look for it.
-
5 hours ago, wowgetoffyourcellphone said:
I was going to say type but OH that is cool. You can promote either of spearmen or swordsmen.
-
4 hours ago, BreakfastBurrito_007 said:
@alre I hope I can clarify:
We are only comparing Han's Will-to-fight with other civs Will-to-fight. Hans is simply superior. I know that everyone would prefer to keep unique aspects of the civ, but the options are adjust/rebalance the upgrades, or revert to standard will-to-fight.
I think you can keep the uniqueness by just switching the costs around.
The most valuable damage IG is ranged damage. Make ranged cost metal+1 other instead of just wood/food. Change the cost of melee from metal+1other to wood/food. Keeps uniqueness and makes it more fair, imo.
- 2
-
50 minutes ago, BreakfastBurrito_007 said:
Another suggestion for Han:
"Will to fight" is separated for Han, with a ranged version of the upgrade and a melee version, each with about half of the regular resource costs.
Because the vast majority of general damage in the game is done by ranged units, the ranged version of will to fight is better than the melee one, and consequently better than the general "will to fight" that all other civs have.
Those upgrades need to be either adjusted or merged into the standard "will to fight"
27 minutes ago, chrstgtr said:Good point. I kind of like the uniqueness of it. But it makes it easier to concentrate your army focus. I would suggest keeping separate, but raising the cost of each.
Proposal: Change the costs around.
Make ranged one cost: Stone/Metal (or Metal/Wood)
Make melee one cost: Food/Wood (or Food/Wood/Stone)
Ranged needs to cost metal. I'm fine with them being split. With it costing metal it is about similar to "obtain difficulty" of WTF.
- 2
-
Can we just rename will to fight?
-
1 minute ago, real_tabasco_sauce said:
@Dizaka I see what you mean but these issues are individual and outside the scope of the upgrades we discussed. Adding the upgrades would in no way stop updates to elephant archers for example.
...
Lastly, I doubt such an overlay is possible or even effective. Instead, we can just add what has been voted for into 0.26.4, and then I can modify the upgrades as necessary to be a part of the community mod in a27. (because I really haven't seen any good reasons not to add them.)
this way a27 and 0.26.4 get the more popular items here, and the upgrades could possibly go through a longer period of playtesting.
I'm hoping it is possible. You can disable/enable allied vision being explored. I don't see why it'd be impossible to enable/disable technology trees from lobby.
My main concern is 0ad and community mod becoming too divergent and incompatible. I genuinely like the changes but they are drastic. To not change the spirit and intent while increasing the complexity of balancing, I would seriously consider the proposed changes as ones that would need a lot of balancing and input/testing. I think a checkbox would be best choice and I do not mean to belittle your effort because I like the changes but they are drastic but are what is wanted, civ diversification.
-
1 hour ago, real_tabasco_sauce said:
Hi @Dizaka thanks a lot for this feedback. Do you mind if I use the list you made in the unit specific upgrades description in Gitlab?
Go for it. That's why I included the files so there is no need to "repeat" the work.
1 hour ago, real_tabasco_sauce said:first: I think you meant to say 'P2' and 'P3' not 'P1' and 'P2'.
Ooops
1 hour ago, real_tabasco_sauce said:I think the current cav concerns will remain since we were unable to agree on a nerf for them. I thought the health adjustments were pretty ideal, but it seems players had their concerns with them since many voted no.
Keep in mind that the existing "cavalry_health" and "cavalry_speed" upgrades would be removed here as @Feldfeldmentioned, so the upgrades would technically buff infantry more than cavalry.
Sounds good
1 hour ago, real_tabasco_sauce said:What do you mean by "defining the unit roles"? Are you saying the units are too similar for these upgrades to make sense? Are some upgrades too similar? Also what are the red, underlined parts?
What I mean by that is, for example:
Macdonians: They don't have non-champ xbow. However, the upgrade (Streamlined fletching) for xbow is provided for them. Currently, that upgrade seems pointless and/or their champions too strong?
Another Point: Certain civs feel "empty." I genuinely feel that each civ should have tank/ranged for both cav and infantry. There are a few civs don't have both for cav unless you include mercs. That is, cav usually win games. If civs don't have cav tank/ranged combos then they are weak civs. I think this could be changed with more diversity by doing chariots and mounted cav and mixing this up and making elephant cav viable for some civs (sele/Maury).
Another Point: Maury elephant archers are sidelined by 2 pop. Their damage has been halved. They are not used anymore.
Another Point: Ranged siege is weird situation with infantry attacks. Same with rams. I don't understand why these units can't be used versus live units.
Another Point: Kush axemen. Are they sword? Are they Spear? Are they Pike? What is their role?
Another Point: Persian Axe Cav. What are they? What function should they serve?
Another Pont: Han Halber(sp?)? Are they just reskined pikemen? An hybrid sword/spear/pike? Hybrid sword/pike? Hybrid Sword/spear? Why do han need pike, spear, and hal. Could it be hal+ just another one, not all 3?
Another Point: Heroes without auras? Sparta comes into mind. Then Mauryas if temple update is permanent.
Another Point: Are merc cav even used/useful?
I think the changes being proposed are more of an "overlay" that could be perfected/added in the future but the primary effort should be at making current units more usable. That's why I think, if it does get implemented, it's as a checkbox for multiplayer in the community mod. That is, I don't want to live through another "archer update" (which WAS necessary) to make units viable. I'd prefer all units to be viable BEFORE any changes are put on top for uniqueness.
Disclaimer: I'm of the perspective that 0ad matches, ideally, should be 20-30 minute matches majority of the time. Anything over 45 minutes is too "hardcore" to attract casual players. There needs to be an available aggressive early game, aggressive mid game, and aggressive end game. Phases shouldn't be just "transitions."
-
4 hours ago, real_tabasco_sauce said:
Im frankly just surprised so many would reject such a large addition of content to the game. Almost nobody would vote no on a new civ, even thought they may not understand all the details on the new civ.
@Dizaka did you follow the link provided? https://gitlab.com/0ad/0ad-community-mod-a26/-/merge_requests/25
It is a tech tree, a system, found in the barracks/stable for each unit. Each of these 23 is an upgrade for a particular unit type. among them, there is a level 1 (town phase, costing 100 food, wood, metal) and a level 2 (city phase, costing 200 f,w,m). They do not effect mercenaries. Each civ is allotted 4 to 8 of these upgrades for units which are important to their play style, and also depending on balance. (for instance, I didn't give the skirmish cav upgrade to mauryans).
each upgrade is also designed to give differentiating qualities to units (longer pikes, increased pikemen cavalry counter, spearmen prepare time upgrade).
The idea is that the upgrades one civ has access to are at least a little different from another, and different advantages/disadvantages come from this.
I hope you can see that they all work together as a system and that adding a select few of them wouldn't work well.
A lot of you mentioned you like them, but a few things are remain unappealing. What would you personally change about the upgrades?
Here's are my concerns and suggestions for #3 after going through everything and summarizing it for myself (note: this took 2+ hours. Not a simple vote item).
Final Conclusion Statement: It's a great idea and it's something where 0ad should strive for "civ differentiation." However, the main issues is that base units needs to be balanced and roles more defined. That is, spear/pike/sword/axe, bow/skrim/sling/xbow, cav vs infantry, need to be more defined. Currently, cav are OP for endgame even without the proposed upgrades. As it stands, the upgrades, I think, would make 0ad a cav-centered game.
Suggestion/Middle ground: A checkbox in community mod to "enable" this over base game. Alternatively, a new "community mod" type but then this wouldn't get usage.
My analysis is based on the following "data" and extraction of information.
· Athenians
o Horseback training
-
-
- P1
- .65 Attack/Range/PrepareTime
- .75 Attack/Ranged/projectile/Spread
-
Husbandry
- P1
- 1.1 Health/Max
-
Chamfron
- P2
- +1 Resistance/Entity/Damage/Pierce
-
Longer slings
- P2
- +5 Attack/Ranged/MaxRange
- 1.1 Attack/Ranged/PrepareTime
-
Basic Training
- P1
- 1.2 Attack/Melee/Damage/Pierce
-
Battle Charge
- P2
- 1.5 UnitMotion/Acceleration
- 1.1 UnitMotion/Walkspeed
-
· Britons
o Husbandry
o Chamfron
o Longer slings
o Basic Training
o Battle Charge
· Carthaginians
o Heavy draw weight
-
-
- Available P1
- Maury/Kush/Carth/Hah
- 1.15 attack/ranged/damage/pierce modification
- 1.5 projectile speed modification
-
o Horseback training
-
- Basic Training
- Battle Charge
· Gauls
o Horseback training
-
-
- P1
- .65 Attack/Range/PrepareTime
- .75 Attack/Ranged/projectile/Spread
-
o Husbandry
o Balanced Javelins
-
-
- P1
- +30 Attack/Ranged/Projectile/Speed
- 0.7 Attack/Ranged/Projectile/Spread
-
o Spear Thrower
o March training
-
-
- P1
- 1.1 UnitMotion/Walkspeed
-
· Han
o Heavy draw weight
o Horse Racing
-
-
- P1
- 1.1 UnitMotion/Walkspeed
- 1.5 UnitMotion/Acceleration
-
Lancing tactics
- P2
- 1.2 Attack/Melee/Damage/Pierce
- .25 Attack/Melee/PrepareTime
- Streamlined Fletching
-
Longer Pikes
- P1
- Sele/Mace/Ptol/Han
- +4 Attack/Melee/MaxRange
- Basic Training
- Battle Charge
-
· Iberians
o Horse Racing
o Lancing tactics
o Balanced Javelins
o March training
· Kushites
o Heavy draw weight
o Horseback training
o Horse Racing
o Greaves
-
-
- P1
- +1 Resistance/Entity/Damage/Hack
-
o Lightly Armored
-
-
- P2
- 1.3 UnitMotion/Walkspeed
- 1.5 UnitMotion/Acceleration
- -1 Resistance/Entity/Damage/Pierce
- March training
-
Hand Guards
- P2
- 1.1 Health/Max
- +1 Resistance/Entity/Damage/Hack
-
· Macedonians
o Horse Racing
o Lancing tactics
o Streamlined Fletching
-
-
- P1
- 1.5 Attack/Ranged/projectile Speed
- 0.8 Attack/Ranged/Projectile/Spread
- Longer Pikes
-
Buttspike (Rome?)
- P2
- 1.2 Attack/Melee/Damage/Pierce
- 1.5 Attack/Melee/Bonus/BonusCavMelee/Multiplier
- Balanced Javelins
-
Spear Thrower
- P2
- Mace/Rome/Gaul
- +5 Attack/Ranged/MaxRange
-
· Mauryas
o Heavy draw weight
o Scouting tactics
-
-
- Available P1
- Adds 10 to vision & range
-
Cavalry Heavy Draw
- P2
- 1.15 attack/ranged/damage/pierce modification
- 1.5 projectile speed modification
- Husbandry
- Chamfron
- Greaves
- Lightly Armored
-
· Persians
o Scouting tactics
o Cavalry Heavy Draw
o Heavy Axe
-
-
- P1
- 1.65 Attack/Melee/Damage/Hack
- 1.5 Attack/Melee/Damage/Crush
- 1.5 Attack/Melee/RepeatTime
-
Raiding Cavalry
- P2
- 1.15 Motion/Walk
- 1.25 Motion/Acceleration
- 0.75 Resistance/Entity/Damage/Pierce
- Basic Training
-
· Ptolemies
o Scouting tactics
o Horse Racing
o Lancing tactics
o Longer Pikes
· Romans
o Horse Racing
o Lancing tactics
o Balanced Javelins
o Spear Thrower
o March training
o Hand Guards
· Seleucids
o Scouting tactics
o Cavalry Heavy Draw
o Horse Racing
o Longer Pikes
-
- Buttspike
- Balanced Javelins
· Spartans
o Horse Racing
o Balanced Javelins
o Basic Training
o March training
-
"Heavy draw weight"
- Available P1
- Maury/Kush/Carth/Hah
- 1.15 attack/rangedd/damage/pierce modfication
- 1.5 projectile speed modification
-
"Scouting tactics"
- Available P1
- Pers/Sele/Ptol/Maur
- Adds 10 to vision & range
-
"Cavalry Heavy Draw"
- P2
- Maur/Sele/Pers
- 1.15 attack/rangedd/damage/pierce modfication
- 1.5 projectile speed modification
-
Heavy Axe
- P1
- Pers
- 1.65 Attack/Melee/Damage/Hack
- 1.5 Attack/Melee/Damage/Crush
- 1.5 Attack/Melee/RepeatTime
-
Raiding Cavalry
- P2
- Pers
- 1.15 Motion/Walk
- 1.25 Motion/Acceleration
- 0.75 Resistance/Entity/Damage/Pierce
-
Horseback training
- P1
- Gaul/Athen/Kush/Cart
- .65 Attack/Range/PrepareTime
- .75 Attack/Ranged/projectile/Spread
-
Horse Racing
- P1
- Rome/Mace/Kush/han/Iber/Ptol/Spart/Sele
- 1.1 UnitMotion/Walkspeed
- 1.5 UnitMotion/Acceleration
-
Lancing tactics
- P2
- Mace/Han/Rome/Ptol/Iber
- 1.2 Attack/Melee/Damage/Pierce
- .25 Attack/Melee/PrepareTime
-
Husbandry
- P1
- Athen/Brit/Maur/Gaul
- 1.1 Health/Max
-
Chamfron
- P2
- Athen/Maur/Brit
- +1 Resistance/Entity/Damage/Pierce
-
Greaves
- P1
- Kush/Maur
- +1 Resistance/Entity/Damage/Hack
-
Lightly Armored
- P2
- Kush/Maur
- 1.3 UnitMotion/Walkspeed
- 1.5 UnitMotion/Acceleration
- -1 Resistance/Entity/Damage/Pierce
-
Streamlined Fletching
- P1
- Han/Mace
- 1.5 Attack/Ranged/projectile Speed
- 0.8 Attack/Ranged/Projectile/Spread
-
Longer Pikes
- P1
- Sele/Mace/Ptol/Han
- +4 Attack/Melee/MaxRange
-
Buttspike
- P2
- Mace/Sele
- 1.2 Attack/Melee/Damage/Pierce
- 1.5 Attack/Melee/Bonus/BonusCavMelee/Multiplier
-
Balanced Javelins
- P1
- Iber/Mace/Spart/Gaul/Sele/Rome
- +30 Attack/Ranged/Projectile/Speed
- 0.7 Attack/Ranged/Projectile/Spread
-
Spear Thrower
- P2
- Mace/Rome/Gaul
- +5 Attack/Ranged/MaxRange
-
Lead Shot
- P1
- 1.3 Attack/Ranged/Damage/Pierce
- 1.25 Attack/Ranged/Damage/Crush
- 1.2 Attack/Ranged/RepeatTime
-
Longer slings
- P2
- Athens/Brit
- +5 Attack/Ranged/MaxRange
- 1.1 Attack/Ranged/PrepareTime
-
Basic Training
- P1
- Athen/Pers/Brit/Spart/Cart/Han
- 1.2 Attack/Melee/Damage/Pierce
-
Battle Charge
- P2
- Athen/Brit/Cart/pers
- 1.5 UnitMotion/Acceleration
- 1.1 UnitMotion/Walkspeed
-
March training
- P1
- Iber/Rome/Gaul/Kush/Spart
- 12.1 UnitMotion/Walkspeed
-
Hand Guards
- P2
- Rome/Kush
- 1.1 Health/Max
- +1 Resistance/Entity/Damage/Hack
-
- 1
-
-
44 minutes ago, BreakfastBurrito_007 said:
I would like more people to have this mindset.
People are saying that all the upgrades in the system being bundled together is a bad idea. I suppose the alternative is to have 23 fractions of the system all in series in the poll. If you support this way of voting for the system please state the advantages.
My understanding: Votes for a change should be informed votes. That is, to make changes as appealing and unanimously supported/voted by the community so that there is a greater likelyhood of adoption in a27 (if even possible) it would be best to vote on this when changes are properly elaborated.
Problem: Yes, someone can go through code, but not everyone can read code. Yes, someone can go through comments, but not everyone has the time to read the comments. Doing the items in series is an alternative to if the item is not described properly in the changes. I spent 20 minutes reading through all the items and voting on obvious things. Then I spend 30 minutes reading through the comments to find item 3 changes and to try to piecemeal what the 23 changes are. I couldn't find enough of a descriptive of all the individual 23 items that were changed/added. This doesn't necessarily mean that those changes are bad. But I do not want to jeopardize the integrity of the process.
I can't make informed votes on changes, that likely, are good when they aren't descriptive if I want a high chance of other changes making it into a27. My reasoning is that I want to protect the integrity of the whole vote process to make sure that the changes in the community mod are likely to be given a strong weight by stan and the dev team.
Maybe add a 4th option "better description needed" in the votes?
-
16 minutes ago, chrstgtr said:
Do you mean 3?
Yea, sorry.
13 minutes ago, real_tabasco_sauce said:Yeah we did something like that. Unfortunately this means only 5 changes will be actually added, which is a tiny fraction of the work I put in here
Hopefully I don't get any blame for the lack of content.
I don't think anyone is unappreciative of your work, just an fyi. There's a lot of stuff that I do for family that is unacknowledged and when it comes to a group vote I usually get outvoted. Doesn't necessarily mean anything other than a decision was made.
2 minutes ago, real_tabasco_sauce said:I would say learning new things is good. If there are more things to learn, that means there is more content to explore.
Also Said saying he feels like a newbie is a massive exaggeration, he still plays very well XD.
Also, this isn't a balance mod, its for new features too.
Again, I think I did a bad job of communicating what the upgrade system involves. Sorry to all the yes voters.
I think if 3 was more itemized into 23 items it would get a lot more support. Sort of like #1.
-
3 hours ago, real_tabasco_sauce said:
I would say with 26 votes we could probably call it. Anyone disagree?
Looks to me like 1,2,3,4,8, and 10 certainly have enough support, but i'm not sure about 7. Neither cavalry change was supported, we can redesign something for cavalry later as @chrstgtr said.
#7 (crush rebalance and hack attack for clubs) is one vote ahead for yes and its actually a fairly minimal change, the main thing is increasing macemen's general effectiveness for fighting. Less crush armor also means catapults will 1 hit more units, which I see as a positive.
Does anyone think 7 shouldn't be added even though there are more yes votes?
edit: nevermind, I guess the votes keep coming. When should we call it?
I'mma get bashed for this one:
For 4 I voted no. It may be good ideas. Great ideas too. I'd strongly, however, suggest making that "1 item changed/modified then vote for that 1 item." Do not bundle items as riders for voting.
It's hard to get a large overview of impact on the individual items/riders. It would be better for a "no bundling/riders" rule on changes to be voted on. Might sound stupid, but riders could be a problematic (a rider is an additional provision added to a bill or other measure under consideration).
- 1
-
Just concerned about the healer changes.
If you make healer upgrades/cost of healers too cheap then Mauryas are left with just 1 hero that is useful. Just something to think about. Currently, having mauryas as allies is beneficial due to temple upgrade team bonus and hero for cheaper temples and temple upgrades.
I think if the healer changes are implemented then Mauryas team bonus AND the hero upgrade (chariot hero) may need a change concurrently.
@chrstgtr @BreakfastBurrito_007 @real_tabasco_sauce
- 2
-
56 minutes ago, hamdich said:
Nub post like
it'sits writer- 1
- 1
-
There is an idle counter for units. There really should be a garrison counter for units too. One garrison counter for arrow generation garrisons and another for non arrow generation garrisons.
- 1
-
I like this mod.
- 4
-
19 hours ago, Stan` said:
@Dizaka Thanks for the report. Did it happen with A25b? You can pass -nosound to 0 A.D. too.
So I did this and I have not really experienced the problem. Will continue trying.
I did notice that I do have sound though? Is that command supposed to disable sound hence "no sound"?
-
@Stan` It happens in replays and during games. It doesn't happen until later.
This did not happen in A25b. However, I played A25b on Arch Linux and this on macOS. Not sure if OS makes a difference. I did not manage to play A25b on Windows (but before I played all on Windows).
I will try with passing -nosound and report back.
-
I play most computer games without sound. I'm not deaf, just a preference. Habit from youth when gaming at night with family sleeping ...
When setting the game sounds to 0, after some time, the console gets spammed with cannot find ogg files. When setting sound to at least "1" this does not happens and corrects the error.System: macOS Monterey; Apple M1
- 1
-
12 hours ago, Player of 0AD said:
I like it to reach 100 population in under 7 minutes. Changing the game would mean less fun.
I'm curious: If the game would use less units and be equally as challenging / fun (basically, the same, just less units) would that be ok to use less units vs more? There's a point, I think, where it would be more fun to do 6v6 and 10v10 games that are low pop rather than a 1v1 with 300 or 4v4 with 200.
- 1
-
15 minutes ago, Darkcity said:
There are two options. Allow capturer to train captured civic units or not allow that. We can look at from multiple perspective.
-
Gameplay persepective
- Not allow case: In this case gameplay will be as usual nothing impacted. People will know what to expect and what are the benefits of caturig the building.
-
Allow: New gameplay kicks in, people can train any units of any civilization as long as they capture the buildings. Maybe interetsing gameplay, but few limitions are there.
- User will see so many units types, He will have so many questions.
- He opts for a civic that has some units. Now he sees so many units from so many buidlings, which one to train?
- Therotically speaking a game with ffa of 8 players, a player can have 8 different variation of each units like skirmish cav, will he even going to use that?
-
People play a civic becasue they know the civic, sure some variation in units are preferred but with too many options player might get confuse.
There can be other cases as well.
We should test out this in mode if possible.
-
Logical persecptive:
-
A civilization that especialize in certain units types should have suprior units compared to a capturur that doesn't especialize in it. If Romans captures Sele elephant stables and train eles then they should be inferior in stats.
If we are willing to do that then I think it should be fine logically. - Certain units types are specific to a civilization that defines their indentity, should fire cav be trained other than by Iberians? It can be questioned.
-
A civilization that especialize in certain units types should have suprior units compared to a capturur that doesn't especialize in it. If Romans captures Sele elephant stables and train eles then they should be inferior in stats.
-
Product perspective
- A single player can have so many types of units trainable under him, depends on types of buildings captured. It will add to some level of more complexity.
- UI handling will be difficult. Suppose you are brits, you have ptole backs and roman barcks and mauryans barcks captured, and so on. In certain cases, no of differnet units will exceed the supported number on screen. For example on slecting barack we can show 10 differnet types of units. But now we have 20 types of units, the UI will break.
- The units trained under capturur shouldn;t be able to build captured civilization building. This needs to be disbaled else it will be hugh mess. For example if a roman civic captured mauryans & brits baracks and trained archer and sling. These units should not build those civic specific building. UI will break. To handle this we will need hard checks, another level of complexity.
===================================================================================================
My point is allowing going with option 2 is more complex and less logical than we think. We can make some expercation for certain units and among certain civiclizations, but fully allowing I'm not in favour of.
We can either go with option 1 or have some exceptions (something in middle) but not option 2.
I think there are 3/4 options that differentiate make merc and/or champion units transferable for captured buildings.
-
Gameplay persepective
-
1 minute ago, alre said:
the game, sadly, doesn't have a gameplay manager (Stan's words)
That just a fancy way of saying that he didn't delegate the power to someone so he still holds it :P.
-
1 hour ago, Stan` said:
It wasn't. It was my bad ^^
Was a fun and unique mechanic, lol. Actually seemed well thought out and only done vs civs that had arsenal at the time which was only 1 civ.
Alpha 27 Pre-release/Release Candidate Build Testing
in Game Development & Technical Discussion
Posted
Winner winnner, chicken dinner. That totally fixed it.