Genus Prime - 8-BIT WARS competition entry

Started by Derron, April 01, 2019, 08:51:53

Previous topic - Next topic

Derron

Genus Prime v1.0.1



Conquer the galaxy ...  by sending ships from your planet to others. Easy peasy isn't it?
Use your mouse to select planets and target enemy planets to set your ships free. Once the population counter of a planet goes below 0 - it will change ownership.
Owned planets generate Research Points (RP) which you can use to upgrade your tech tree on the knowledge hub.
Ah and you might want to buy some missiles as planetary defense of each planet.

There is a campaign mode (with some more events/elements) and a random (quick start) or skirmish (custom game) mode.

There is NO profile yet, so what campaigns you won is stored in your savegame - use that as progress.

Campaigns are written in plain XML - so you might want to add your own (especially with the ... Solar Support and Rebel features).





Controls: Mouse driven, use right click (or Escape key) to abort/exit a menu/screen. If the pixel flickering of some elements annoys you then hit "c" once to disable color alternation (I used it rarely but still... who knows). It flickers more the less Hz your screen has).

Use F5 to quicksave and F8 to quickload.





Download:
ht tps://w ww.gamezworld.de/files/GenusPrime_v1.0.1_LinuxMacWindows.zip
https://www.gamezworld.de/files/GenusPrime_v1.0.2_LinuxMacWindows.zip (Linux, Mac, Windows - each 32 and 64 bit)
Build date: 2019/04/06 (within bugfix-timespan)

ht tps://w ww.gamezworld.de/files/GenusPrime_v1.0.zip [Linux 64bit, Windows 32bit + 64bit]
(ignore "Build time" in app title - I am +1 to Qube's BST ;-))
(The 32bit Windows build was done afterwards with vanilla BlitzMax and is untested except for "executes and plays music").


Source code: https://github.com/GWRon/GenusPrime
(build instructions can be found there at the repos main page)





Media: SFX by me, graphics by me, fonts as stated in the fonts directory, music as stated in the music/licences.txt




bye
Ron

Derron

#1
As most of the downloads up to now were done by mac users I shaved off some spare time and updated my build-setup on the Mac - and finally did a build of the compo version for Mac:
- 32 bit variant is built with Vanilla BlitzMax
- 64 bit variant is built with BlitzMax NG (and SDL)

I only connected via VNC to the mac so I do not know if it played sound or not. Also do not use the Mac version to judge for the game if it does not have sound or odd visual bugs.

https://www.gamezworld.de/files/GenusPrime_v1.0_MacOS.zip

Contains only the binaries/folders - each zipped again as I am not sure if a simple "rename" would be OK. So once downloaded: extract it, extract the variant of your choice - and copy the "file" (which is actually a folder) into the normal GenusPrime_v1.0.zip-extracted folder (so next to the GenusPrime_Linux** and the GenusPrime_Windows**.exe files).



Hope it works.


bye
Ron

craigd

I had a quick play. Very nice little game. Looks like there's more depth to it so will give it another blast shortly :)

Xerra

Just to confirm, if you read the instructions you gave properly, and install it in the correct place then the Mac version does indeed work. I only mention this because this idiot decided he could just extract and run it without doing just that :-)

Oh, and yeah the music is playing so your sound is working ok.

Let you know what I think of your game once I've played a bit.
M2 Pro Mac mini - 16GB 512 SSD
ACER Nitro 5 15.6" Gaming Laptop - Intel® Core™ i7, RTX 3050, 1 TB SSD
Vic 20 - 3.5k 1mhz 6502

Latest game - https://xerra.itch.io/Gridrunner
Blog: http://xerra.co.uk
Itch.IO: https://xerra.itch.io/

Xerra

Guess I spoke too soon because the game crashes out shortly after you start the first tutorial mission. It's around 10 seconds in regardless of what you're actually doing. I'll have a play on the windows version to test the game unless the error report is any use to you in tracing the problem.

Process:               GenusPrime [88188]
Path:                  /Volumes/*/GenusPrime.app/Contents/MacOS/GenusPrime
Identifier:            GenusPrime
Version:               ???
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           GenusPrime [88188]
User ID:               501

Date/Time:             2019-04-03 17:46:37.532 +0100
OS Version:            Mac OS X 10.13.6 (17G5019)
Report Version:        12
Anonymous UUID:        E3A0403B-FC61-4F40-81B5-AB30B819EE5F

Sleep/Wake UUID:       170B483B-552D-4AF7-B1FF-0CE18DEBB86D

Time Awake Since Boot: 1700000 seconds
Time Since Wake:       280000 seconds

System Integrity Protection: enabled

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       EXC_I386_GPFLT
Exception Note:        EXC_CORPSE_NOTIFY

Termination Signal:    Segmentation fault: 11
Termination Reason:    Namespace SIGNAL, Code 0xb
Terminating Process:   exc handler


  • Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
    0   GenusPrime                       0x0000000105b7b743 0x10588b000 + 3082051
    1   GenusPrime                       0x0000000105b58dea 0x10588b000 + 2940394
    2   GenusPrime                       0x0000000105b57713 0x10588b000 + 2934547
    3   GenusPrime                       0x00000001058923cb 0x10588b000 + 29643
    4   GenusPrime                       0x0000000105890095 0x10588b000 + 20629
    5   GenusPrime                       0x0000000105899d6f 0x10588b000 + 60783
    6   GenusPrime                       0x00000001058f4781 0x10588b000 + 432001
    7   GenusPrime                       0x00000001058f3de6 0x10588b000 + 429542
    8   GenusPrime                       0x00000001058f4e72 0x10588b000 + 433778
    9   GenusPrime                       0x00000001058dcc02 0x10588b000 + 334850
    10  GenusPrime                       0x00000001058dce23 0x10588b000 + 335395
    11  GenusPrime                       0x00000001058f4ff3 0x10588b000 + 434163
    12  GenusPrime                       0x00000001058abc08 0x10588b000 + 134152
    13  GenusPrime                       0x0000000105b5a983 0x10588b000 + 2947459
    14  GenusPrime                       0x0000000105b5ae60 0x10588b000 + 2948704
    15  GenusPrime                       0x0000000105b5ab04 0x10588b000 + 2947844
    16  com.apple.CoreFoundation         0x00007fff4119947c __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
    17  com.apple.CoreFoundation         0x00007fff4119934a _CFXRegistrationPost + 458
    18  com.apple.CoreFoundation         0x00007fff41199081 ___CFXNotificationPost_block_invoke + 225
    19  com.apple.CoreFoundation         0x00007fff41157c12 -[_CFXNotificationRegistrar find:object:observer:enumerator:] + 1826
    20  com.apple.CoreFoundation         0x00007fff41156ca3 _CFXNotificationPost + 659
    21  com.apple.Foundation             0x00007fff43281817 -[NSNotificationCenter postNotificationName:object:userInfo:] + 66
    22  com.apple.AppKit                 0x00007fff3e846206 -[NSApplication _postDidFinishNotification] + 313
    23  com.apple.AppKit                 0x00007fff3e845e4f -[NSApplication _sendFinishLaunchingNotification] + 220
    24  com.apple.AppKit                 0x00007fff3e718ab3 -[NSApplication(NSAppleEventHandling) _handleAEOpenEvent:] + 562
    25  com.apple.AppKit                 0x00007fff3e7186e9 -[NSApplication(NSAppleEventHandling) _handleCoreEvent:withReplyEvent:] + 690
    26  com.apple.Foundation             0x00007fff432c4664 -[NSAppleEventManager dispatchRawAppleEvent:withRawReply:handlerRefCon:] + 287
    27  com.apple.Foundation             0x00007fff432c44e2 _NSAppleEventManagerGenericHandler + 102
    28  com.apple.AE                     0x00007fff4229cdd0 aeDispatchAppleEvent(AEDesc const*, AEDesc*, unsigned int, unsigned char*) + 1788
    29  com.apple.AE                     0x00007fff4229c677 dispatchEventAndSendReply(AEDesc const*, AEDesc*) + 41
    30  com.apple.AE                     0x00007fff4229c565 aeProcessAppleEvent + 383
    31  com.apple.HIToolbox              0x00007fff404734a0 AEProcessAppleEvent + 55
    32  com.apple.AppKit                 0x00007fff3e713d32 _DPSNextEvent + 2788
    33  com.apple.AppKit                 0x00007fff3eea9e34 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 3044
    34  com.apple.AppKit                 0x00007fff3e708885 -[NSApplication run] + 764
    35  GenusPrime                       0x0000000105b5adfd 0x10588b000 + 2948605
    36  GenusPrime                       0x000000010588d204 0x10588b000 + 8708

    Thread 1:
    0   libsystem_kernel.dylib           0x00007fff692a528a __workq_kernreturn + 10
    1   libsystem_pthread.dylib          0x00007fff6946c20e _pthread_wqthread + 1552
    2   libsystem_pthread.dylib          0x00007fff6946bbe9 start_wqthread + 13

    Thread 2:
    0   libsystem_kernel.dylib           0x00007fff692a4a16 __psynch_cvwait + 10
    1   libsystem_pthread.dylib          0x00007fff6946d589 _pthread_cond_wait + 732
    2   GenusPrime                       0x0000000105b79da7 0x10588b000 + 3075495
    3   GenusPrime                       0x0000000105b70035 0x10588b000 + 3035189
    4   GenusPrime                       0x0000000105b77e77 0x10588b000 + 3067511
    5   libsystem_pthread.dylib          0x00007fff6946c661 _pthread_body + 340
    6   libsystem_pthread.dylib          0x00007fff6946c50d _pthread_start + 377
    7   libsystem_pthread.dylib          0x00007fff6946bbf9 thread_start + 13

    Thread 3:
    0   libsystem_kernel.dylib           0x00007fff692a4a16 __psynch_cvwait + 10
    1   libsystem_pthread.dylib          0x00007fff6946d589 _pthread_cond_wait + 732
    2   GenusPrime                       0x0000000105b79da7 0x10588b000 + 3075495
    3   GenusPrime                       0x0000000105b70035 0x10588b000 + 3035189
    4   GenusPrime                       0x0000000105b77e77 0x10588b000 + 3067511
    5   libsystem_pthread.dylib          0x00007fff6946c661 _pthread_body + 340
    6   libsystem_pthread.dylib          0x00007fff6946c50d _pthread_start + 377
    7   libsystem_pthread.dylib          0x00007fff6946bbf9 thread_start + 13

    Thread 4:
    0   libsystem_kernel.dylib           0x00007fff692a4a16 __psynch_cvwait + 10
    1   libsystem_pthread.dylib          0x00007fff6946d589 _pthread_cond_wait + 732
    2   GenusPrime                       0x0000000105b79da7 0x10588b000 + 3075495
    3   GenusPrime                       0x0000000105b70035 0x10588b000 + 3035189
    4   GenusPrime                       0x0000000105b77e77 0x10588b000 + 3067511
    5   libsystem_pthread.dylib          0x00007fff6946c661 _pthread_body + 340
    6   libsystem_pthread.dylib          0x00007fff6946c50d _pthread_start + 377
    7   libsystem_pthread.dylib          0x00007fff6946bbf9 thread_start + 13

    Thread 5:: com.apple.audio.IOThread.client
    0   libsystem_kernel.dylib           0x00007fff6929b20a mach_msg_trap + 10
    1   libsystem_kernel.dylib           0x00007fff6929a724 mach_msg + 60
    2   com.apple.audio.CoreAudio        0x00007fff40bd287a HALB_MachPort::SendMessageWithReply(unsigned int, unsigned int, unsigned int, unsigned int, mach_msg_header_t*, bool, unsigned int) + 124
    3   com.apple.audio.CoreAudio        0x00007fff40bd27ed HALB_MachPort::SendSimpleMessageWithSimpleReply(unsigned int, unsigned int, int, int&, bool, unsigned int) + 45
    4   com.apple.audio.CoreAudio        0x00007fff40bcf859 HALC_ProxyIOContext::IOWorkLoop() + 977
    5   com.apple.audio.CoreAudio        0x00007fff40bcf2bc HALC_ProxyIOContext::IOThreadEntry(void*) + 128
    6   com.apple.audio.CoreAudio        0x00007fff40bceffe HALB_IOThread::Entry(void*) + 72
    7   libsystem_pthread.dylib          0x00007fff6946c661 _pthread_body + 340
    8   libsystem_pthread.dylib          0x00007fff6946c50d _pthread_start + 377
    9   libsystem_pthread.dylib          0x00007fff6946bbf9 thread_start + 13

    Thread 6:: com.apple.NSEventThread
    0   libsystem_kernel.dylib           0x00007fff6929b20a mach_msg_trap + 10
    1   libsystem_kernel.dylib           0x00007fff6929a724 mach_msg + 60
    2   com.apple.CoreFoundation         0x00007fff41184ea5 __CFRunLoopServiceMachPort + 341
    3   com.apple.CoreFoundation         0x00007fff411841f7 __CFRunLoopRun + 1783
    4   com.apple.CoreFoundation         0x00007fff41183867 CFRunLoopRunSpecific + 487
    5   com.apple.AppKit                 0x00007fff3e850fc4 _NSEventThread + 184
    6   libsystem_pthread.dylib          0x00007fff6946c661 _pthread_body + 340
    7   libsystem_pthread.dylib          0x00007fff6946c50d _pthread_start + 377
    8   libsystem_pthread.dylib          0x00007fff6946bbf9 thread_start + 13

    Thread 7:: CVDisplayLink
    0   libsystem_kernel.dylib           0x00007fff692a4a16 __psynch_cvwait + 10
    1   libsystem_pthread.dylib          0x00007fff6946d5c2 _pthread_cond_wait + 789
    2   com.apple.CoreVideo              0x00007fff42d773f3 CVDisplayLink::waitUntil(unsigned long long) + 237
    3   com.apple.CoreVideo              0x00007fff42d769a4 CVDisplayLink::runIOThread() + 500
    4   libsystem_pthread.dylib          0x00007fff6946c661 _pthread_body + 340
    5   libsystem_pthread.dylib          0x00007fff6946c50d _pthread_start + 377
    6   libsystem_pthread.dylib          0x00007fff6946bbf9 thread_start + 13

    Thread 0 crashed with X86 Thread State (64-bit):
      rax: 0xbadd4e293227bead  rbx: 0x000000010cfcb7c0  rcx: 0xbadd4e293227bead  rdx: 0x000000000001ace0
      rdi: 0x0000600000240ab0  rsi: 0x0000600000240a20  rbp: 0x00007ffeea373280  rsp: 0x00007ffeea373280
       r8: 0x0000000000000001   r9: 0x000060000005ffb0  r10: 0x000060000003d85c  r11: 0x000000000000000e
      r12: 0x0000000105cd8428  r13: 0x0000000105c96148  r14: 0x000000010c5804e0  r15: 0x0000000105c7bb10
      rip: 0x0000000105b7b743  rfl: 0x0000000000010282  cr2: 0x0000000114199000
     
    Logical CPU:     0
    Error Code:      0x00000000
    Trap Number:     13
M2 Pro Mac mini - 16GB 512 SSD
ACER Nitro 5 15.6" Gaming Laptop - Intel® Core™ i7, RTX 3050, 1 TB SSD
Vic 20 - 3.5k 1mhz 6502

Latest game - https://xerra.itch.io/Gridrunner
Blog: http://xerra.co.uk
Itch.IO: https://xerra.itch.io/

Xerra

Seems you made the game creates a logfile itself so maybe the attached tells you something?

M2 Pro Mac mini - 16GB 512 SSD
ACER Nitro 5 15.6" Gaming Laptop - Intel® Core™ i7, RTX 3050, 1 TB SSD
Vic 20 - 3.5k 1mhz 6502

Latest game - https://xerra.itch.io/Gridrunner
Blog: http://xerra.co.uk
Itch.IO: https://xerra.itch.io/

Steve Elliott

#6
I'm not getting sound on Linux, Derron.

I have sound in general and running Steam Games the sound is fine there.

Playing the game's sounds/music in the assets folder also works.
Win11 64Gb 12th Gen Intel i9 12900K 3.2Ghz Nvidia RTX 3070Ti 8Gb
Win11 16Gb 12th Gen Intel i5 12450H 2Ghz Nvidia RTX 2050 8Gb
Win11  Pro 8Gb Celeron Intel UHD Graphics 600
Win10/Linux Mint 16Gb 4th Gen Intel i5 4570 3.2GHz, Nvidia GeForce GTX 1050 2Gb
macOS 32Gb Apple M2Max
pi5 8Gb
Spectrum Next 2Mb

Derron

@ Xerra
Do both variants (32 and 64bit) crash on your Mac?
The 64bit variant uses some fixes in the Garbage Collector which needs some testing (eg. for TVTower I do not use the most up-to-date variants as it created issues).



@ Steve Elliot
Which binary did you try? 32bit or 64bit?
Which distribution? It should use/have installed "PulseAudio".

log.app.txt might contain information about the audio system.

I will create a new version which allows to use another sound engine (eg. Alsa).


bye
Ron

Steve Elliott

There was only a 64-bit Linux version (32 and 64-bit for Windows).  I'm running Mint 19.1.  OK will try that new version.
Win11 64Gb 12th Gen Intel i9 12900K 3.2Ghz Nvidia RTX 3070Ti 8Gb
Win11 16Gb 12th Gen Intel i5 12450H 2Ghz Nvidia RTX 2050 8Gb
Win11  Pro 8Gb Celeron Intel UHD Graphics 600
Win10/Linux Mint 16Gb 4th Gen Intel i5 4570 3.2GHz, Nvidia GeForce GTX 1050 2Gb
macOS 32Gb Apple M2Max
pi5 8Gb
Spectrum Next 2Mb

Qube

Quote from: Derron on April 03, 2019, 19:08:16
Do both variants (32 and 64bit) crash on your Mac?
The 64bit variant uses some fixes in the Garbage Collector which needs some testing (eg. for TVTower I do not use the most up-to-date variants as it created issues).
Tried both variants and both crash on Mac after playing the beginners rule tutorial for a few seconds :


Process:               GenusPrime [1215]
Path:                  /Users/USER/Downloads/*/GenusPrime.app/Contents/MacOS/GenusPrime
Identifier:            GenusPrime
Version:               ???
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           GenusPrime [1215]
User ID:               501

Date/Time:             2019-04-03 19:23:15.607 +0100
OS Version:            Mac OS X 10.14.3 (18D109)
Report Version:        12
Anonymous UUID:        A8C7AA34-124C-3EB2-5A0E-60F45EDDE869


Time Awake Since Boot: 8900 seconds

System Integrity Protection: disabled

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x000000000000011e
Exception Note:        EXC_CORPSE_NOTIFY

Termination Signal:    Segmentation fault: 11
Termination Reason:    Namespace SIGNAL, Code 0xb
Terminating Process:   exc handler [1215]
Mac Studio M1 Max ( 10 core CPU - 24 core GPU ), 32GB LPDDR5, 512GB SSD,
Beelink SER7 Mini Gaming PC, Ryzen 7 7840HS 8-Core 16-Thread 5.1GHz Processor, 32G DDR5 RAM 1T PCIe 4.0 SSD
MSI MEG 342C 34" QD-OLED Monitor

Until the next time.

Derron

#10
@ Steve

https://www.gamezworld.de/files/GenusPrime_v1.0_Linux.zip

Unzip and override the files. 32 bit variant wont be needed but it's there now.

To adjust the sound engine open up "config/settings.xml" and look for "sound_engine". (it get's rewritten on programme execution, so the following "comment section" wont be there.

<!-- possible values:
all:     AUTOMATIC
linux:   LINUX_ALSA, LINUX_OSS, LINUX_PULSE, UNIX_JACK
mac:     MACOSX_CORE
windows: WINDOWS_ASIO, WINDOWS_DS

attention: program might crash with invalid settings!
-->
<sound_engine>AUTOMATIC</sound_engine>

Try with LINUX_ALSA or LINUX_OSS or LINUX_PULSE.

Derron

#11
Quote from: Qube on April 03, 2019, 19:25:12
Tried both variants and both crash on Mac after playing the beginners rule tutorial for a few seconds :

Will try to debug it somehow. How many seconds are "few seconds"?
Do you do something "user interaction"-wise?


Asking as it does not crash here - might be a "more modern Mac thing".



If you are a bit experienced with "Blitzmax NG" then of course you could compile it on your own - as the sources are free:
https://github.com/GWRon/GenusPrime


bye
Ron

Steve Elliott

Win11 64Gb 12th Gen Intel i9 12900K 3.2Ghz Nvidia RTX 3070Ti 8Gb
Win11 16Gb 12th Gen Intel i5 12450H 2Ghz Nvidia RTX 2050 8Gb
Win11  Pro 8Gb Celeron Intel UHD Graphics 600
Win10/Linux Mint 16Gb 4th Gen Intel i5 4570 3.2GHz, Nvidia GeForce GTX 1050 2Gb
macOS 32Gb Apple M2Max
pi5 8Gb
Spectrum Next 2Mb

Derron

#13
That is interesting - as "Automatic" should try to start with PulseAudio. Pretty odd thing.
Nonetheless: good it works now.

Could of course add a gui-drop-down in the settings to make it more convenient for other Linuxers - dunno how many are around there. But for now I think this is no bugfix and it has to wait for the voting end time.


bye
Ron

Steve Elliott

Quote
That is interesting - as "Automatic" should try to start with PulseAudio. Pretty odd thing.

That's computers for you, maybe just default to to PulseAudio in settings.

Quote
But for now I think this is no bugfix and it has to wait for the voting end time.

Sound not playing is definitely a bug, but that seems to be a simple fix - just update with a new config file.   :)
Win11 64Gb 12th Gen Intel i9 12900K 3.2Ghz Nvidia RTX 3070Ti 8Gb
Win11 16Gb 12th Gen Intel i5 12450H 2Ghz Nvidia RTX 2050 8Gb
Win11  Pro 8Gb Celeron Intel UHD Graphics 600
Win10/Linux Mint 16Gb 4th Gen Intel i5 4570 3.2GHz, Nvidia GeForce GTX 1050 2Gb
macOS 32Gb Apple M2Max
pi5 8Gb
Spectrum Next 2Mb