SyntaxBomb - Indie Coders

General Category => Showcase => Topic started by: Derron on April 01, 2019, 08:51:53

Title: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 01, 2019, 08:51:53
Genus Prime v1.0.1

(https://www.syntaxbomb.com/proxy.php?request=http%3A%2F%2Fi.imgur.com%2FT0WKeqe.png&hash=b65f0671f12e96ea862efe0159d683df6f21722f)

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
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 03, 2019, 15:10:54
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
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: craigd on April 03, 2019, 17:27:40
I had a quick play. Very nice little game. Looks like there's more depth to it so will give it another blast shortly :)
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Xerra on April 03, 2019, 17:31:38
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.
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Xerra on April 03, 2019, 17:49:53
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
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Xerra on April 03, 2019, 17:51:50
Seems you made the game creates a logfile itself so maybe the attached tells you something?

Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Steve Elliott on April 03, 2019, 18:41:19
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.
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 03, 2019, 19:08:16
@ 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
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Steve Elliott on April 03, 2019, 19:12:44
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.
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Qube on April 03, 2019, 19:25:12
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]
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 03, 2019, 19:32:19
@ 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.
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 03, 2019, 19:36:22
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".
(https://www.syntaxbomb.com/proxy.php?request=http%3A%2F%2Fi.imgur.com%2Fh6akBzI.png&hash=2781dd6b614e8ff2ca1cef2e85cc83a1190fd60c)


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
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Steve Elliott on April 03, 2019, 20:14:39
LINUX_PULSE works here.   :D
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 03, 2019, 20:17:01
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
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Steve Elliott on April 03, 2019, 20:23:59
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.   :)
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Qube on April 03, 2019, 20:30:11
QuoteWill try to debug it somehow. How many seconds are "few seconds"?
Do you do something "user interaction"-wise?

Here is a video which shows it crashing while playing for a short time. Not doing any special, just clicking about ( left, right clicks ) :

https://www.youtube.com/watch?v=ahJ3emUcOzs
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 03, 2019, 20:35:03
Defaulting to PulseAudio might lead to crash on distributions not having PulseAudio installed - at least it happened that way for my game TVTower on "Knoppix" and another Linux distribution.

My log file eg contains this:

[21:25:03] ERR      | SOUNDMANAGER.SETAUDIOENGINE(): audio engine "AUTOMATIC" (configured) failed.
[21:25:03] DBG      | SOUNDMANAGER.SETAUDIOENGINE(): initialized with engine "LINUX_PULSE".

So "auto" failed (Alsa) and it tried LINUX_PULSE then.

If it used eg. "Alsa" (which would work on your distribution too) then you might experience odd things: it works if no other sound source is playing (browser with youtube, internet radio ...).
If you now use PulseAudio then you might see that Youtube won't play as it cannot play audio - if you then end the application it starts to play. At least it is that way here in my Linux Mint 18.3

Might be the reason why many use OpenAL to tackle all these problems. On Windows that means to provide an additional .dll file and maybe some more little annoyancies.




@ Qube
Hmm you do not seem to do something special. And if it was something special then it would not explain why it crashes on Xerras Mac too (except he does the special thing too ... which I doubt). I think it also crashes on "skirmish" or so - so nothing "campaign specific" (introduction screens were shown - and from then on nothing should differ to a random/skirmish game). Muting the music won't fix it too (I think).
(I even tried to click the way you did - and it survived  :-/)

I assume it is an issue with my old XCode and your newer Mac.

Maybe Brucey or another NG user can compile on a newer Mac OS (make sure to update BCC/BMK and the brl/pub/sdl modules if you use the 0.99 mac release).


Thanks for uploading the video. Windows version does not crash I hope ;-)

bye
Ron
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Steve Elliott on April 03, 2019, 20:43:46
Well there's not a huge amount of people with Linux on here, so if they have a problem with sound then we have a solution with a quick config edit.
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Steve Elliott on April 03, 2019, 21:34:15
Quote
you might experience odd things: (browser with youtube...

ok I see what you mean, after using LINUX_PULSE in settings that made youtube videos sound awful.  So use one setting on start up and switch on program exit?  That's what I did manually to get Youtube sound back.
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 03, 2019, 21:42:23
QuoteSo use one setting on start up and switch on program exit?
Hmmm, what should that do on program exit? Did not really get it.


- you start the app and it tries one of the sound engines - eg PulseAudio
- each youtube video you start afterwards (while the app is running) it stays silent
- end the app and you can play youtube videos with sound

- start a youtube video and it plays sound
- start the app with Pulse Audio and it plays sound

- start a youtube video and it plays sound
- start the app with Alsa it plays no sound


Sound on Linux always was a bit of an issue (for me). PulseAudio changed a lot already (hot switching to bluetooth output, hdmi instead of soundcard etc.).
Dunno how it is with AGK (and others). Maybe they tackle it different to me (using "rtAudio" via maxmod2.mod).


Aside of the audio discussion here I am not against reading some feedback or other (solveable! :-) bug reports.


bye
Ron
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Steve Elliott on April 03, 2019, 21:53:15
Quote
Sound on Linux always was a bit of an issue (for me).

As a Linux newcomer I think sound is a major problem and lags behind the rest of the OS, which is very nice.

I had to change sound settings in your game, and then back again to regain (undistorted) Youtube sound.  Some experimentation for later, it seems you have bigger problems on Mac to sort.  I can get the game to run without crashing on Linux.
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 03, 2019, 23:24:48
I compiled a new version - which should allow to not initialize the sound engine at all and to make it configurable via GUI.

(https://www.syntaxbomb.com/proxy.php?request=http%3A%2F%2Fi.imgur.com%2Foy8I2VZ.png&hash=b9eba1ce9241e59107f097d27b20a200531c0710)

https://www.gamezworld.de/files/GenusPrime.MacOS.64bit.AudioChanged.zip
-> contains 2 zip files with one not using rtAudio.mod (if that creates the crash)

https://www.gamezworld.de/files/GenusPrime.Linux.AudioChanged.zip
-> contains the 32 and 64bit variant with the Audio-Driver-GUI thing

if settings.xml contains audio_engine="NONE" then it _should_ avoid to init the audio engine at all.
Nonetheless I would wonder if it was rtAudio - as the "main screen" already uses it ... so it should crash there too. But hey, better test that out than nothing.


Original Download is left intact (just in case someone says that the GUI option addition is against the rules).


bye
Ron
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Steve Elliott on April 03, 2019, 23:35:22
Yes that latest version solved all problems on default settings.  The game has sound, and after quitting it doesn't effect You Tube Videos.   :)
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Qube on April 04, 2019, 00:03:59
All we need now is a stable Mac version, chop chop, get back to it ;D
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Steve Elliott on April 04, 2019, 00:09:01
Quote
All we need now is a stable Mac version, chop chop, get back to it ;D

What we need is a language that runs on WIndows, Mac and Linux.  But perfectly.   ;)
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Qube on April 04, 2019, 00:18:59
QuoteWhat we need is a language that runs on WIndows, Mac and Linux.  But perfectly.   ;)
Sounds like a cool theme for the next competition? :P
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Steve Elliott on April 04, 2019, 00:21:30
Quote
Sounds like a cool theme for the next competition? :P

In 8 weeks??!!
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Qube on April 04, 2019, 00:23:05
QuoteIn 8 weeks??!!
Too long? ;D
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Steve Elliott on April 04, 2019, 00:24:21
Hehe.   ;D
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Xerra on April 04, 2019, 04:57:45
Meh, why not. Amos 2 is almost finished and he's not been working on it for much longer :-)

http://amos2.net/#/
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 04, 2019, 05:33:48
So the new Mac download didn't help?


@ language
Most of the time it's the libraries which need some love. So to play sound cross-platform, to render graphics cross-platform.
For Mac there is also the issue of not allowing cross-compilation from within other OSes. So you need a mac (or hackintosh / working VM) to compile for Mac. Scripting-Languages like AGK, Godot, ... would then just provide a pre-built binary (containing the "engine") and the only thing the user needs to supply are assets + scripts. That way other targets could be "exported to" without needing real hardware access / OS installations of this platform.


@ mac
if someone wants to compile with a newer BlitzMax NG:
- download https://github.com/bmx-ng/bmx-ng/releases/tag/v0.99.3.31.macos
- extract and run the "run_me_first.command" or "build_maxide.sh"
- download and extract https://github.com/bmx-ng/bcc
- download and extract https://github.com/bmx-ng/bmk
- build bcc.bmx and bmk.bmx from within MaxIDE
- replace BlitzMaxNG/bin/bcc and */bmk with the newly build ones
- download and extract https://github.com/bmx-ng/brl.mod
- download and extract https://github.com/bmx-ng/pub.mod
- download and extract https://github.com/bmx-ng/sdl.mod
- download and extract https://github.com/bmx-ng/maxmod2.mod
- remove BlitzMaxNG/mods/brl */pub */sdl
- extract the above's downloads into it

You should now run the most recent version of NG without having to rely on a new "release".
With this you should be able to compile Genus Prime on your Mac.

Edit: maybe I should write a "update_installation.command" thing to automate the process (somewhere Brucey already had such a "fetch latest stuff" thingy)...

Bye
Ron
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Xerra on April 04, 2019, 17:29:10
Thought I'd have a go and got most of the way through but building the modules caused a problem as shown in the picture.

I'm very rusty with BlitzMax as I've not coded anything with it for a few years so maybe I missed something.

Do the modules need to be renamed to remove the "-master" at the end of them when they are extracted?

Also do the four new mod folders go in BlitzMax/mod folder or the BlitzMax/mod/pub/ folder?

I couldn't find anything like this:  - remove BlitzMaxNG/mods/brl */pub */sdl

You would need to untick debug mode and build gui app so that the user builds a console app when compiling BCC and BMK within the Editor.

If I can get this right then I'll put a mac build here for those who want it.
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 04, 2019, 19:06:00
brl.mod-master must become "brl.mod"
pub.mod-master must become "pub.mod"
sdl.mod-master must become "sdl.mod"

and these folders need to get put into blitzmax/mods/...
The ones with the same name in this folder you better rename first (brl.mod.bak or so) to keep them.

BUUUUUUT .... BEFORE you do that you could already try it with that version:
rename those "enum" (4 lines) to "enumerator". Should be all (in my code)

Updating the modules can be useful for certain fixes - a new BCC needs of course new modules as they used that "enum" which is now a registered keyword.

IF you are able to compile - regardless of how it plays then or if it crashes:
- xcode version
- os x version

I ask because IWasAdam compiled the game on his mac and experienced a lot of issues (window started behind all other windows, mouse clicks did not get registered until you moved the mouse, ...) but I do not know yet if it happened to the mac version I upped too. I for myself compiled it on Yosemite with an gray beared xcode (4.7 or so) and if you are "up to date" your xcode might be 10.3 or 10.4.


bye
Ron
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Xerra on April 04, 2019, 19:40:55
Ok, looks like i've got it going. Just going to do some testing to make sure it works ok then i'll upload it here.
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 04, 2019, 19:56:49
If that then works for you (without crashing) and then also for IWasAdam and Qube ... we will need to know what xcode and OSX you use ... *excited now*


bye
Ron
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Imerion on April 04, 2019, 20:30:17
This was really impressive! A fun take on this game concept and I especially liked the GUI - lots of fantastic little details. Just tried a quick match now, but will play some more and report back if I find something to report. Seems to work great on my Xubuntu 18.10 system though.:)
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Xerra on April 04, 2019, 21:10:52
Damn it. No luck. Game runs ok but it's the same problem as the original released build where it quits out around 10 - 15 seconds of playing the game.
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 04, 2019, 21:14:15
But you could now build and run a "debug" variant to see where it crashes?


bye
Ron
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Xerra on April 04, 2019, 21:17:25
Quote from: Derron on April 04, 2019, 21:14:15
But you could now build and run a "debug" variant to see where it crashes?

I'll give it a try.
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Xerra on April 04, 2019, 21:34:04
Building as a debug build runs fine from the IDE it seems. But when you run the generated application directly then the same error after starting the main game happens again. No debug messages given during play.
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 04, 2019, 21:42:20
Pheeww... if it works when started by something "else"...
But the "release" build crashes when run from within MaxIDE ?

I assume if you are running the application from a terminal (open a terminal, move into the GenusPrime directory and start it via ./GenusPrime(.app)) and it did not crash then it is a matter with OS X (non-signed app etc).

-> am a bit clueless now. I somehow hoped it just crashes in debug and points to the broken code line ;-)
Nonetheless I am pretty sure that some of you (eg. Brucey) know why might not crash in a debug environment here and there - some stuff works different in debug mode (GC or so).


bye
Ron
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: iWasAdam on April 05, 2019, 06:05:16
i'm on macos 10.14.4 Mojave latest build.

One thing to remember with macs is only compile for 64bit - Just don't go near 32bit. You have only a few moths before 32bit support is completely dropped!
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 05, 2019, 10:31:52
The 32bit build was just there as I compiled it with "vanilla". The 64 bit build was done with NG.


@IWasAdam
What Xcode version is installed on yours? Just want to find out why it "halfly" works on Xerra's Mac in Debug mode and not on yours.

Maybe Qube can give it a shot too - or whoever is a bit used to BlitzMax and wants to toy around with it anyway (so this is a good chance to try some stuff).


@ Xerra and IWasAdam
Do the "samples" (BlitzMax/samples) work or behave the same erratical way (crashes, only in debug mode, no mouse clicks).


bye
Ron
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: iWasAdam on April 05, 2019, 14:01:20
my version of xcode is 10.2
I'll do some recompiles and see if I can find anything for you

got it to compile and running smooth now - don't know what the mouse issue was. looks like it solved itself?????

on windows then  posted build completely stopped - sound continued as a single tone, then it started to slowly catch up and then went at normal speed?

mac build is running without music (I turned it off)
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 05, 2019, 14:36:47
Thanks for the heads up.

Does the mac build run with audio (if you build it with it) or did just just say you muted it (because of the "ugly" music/sounds).

Glad you got it working - feel free to upload it so Xerra/Qube can give it a whirl too.


@ Windows
Win64 or Win32 build? (NG vs Vanilla).
Native or via Virtual Machine? I played it on Windows 10 "native" and Mini-XP "Virtual Box".

Has anybody else experience that Windows-issue?



bye
Ron
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Xerra on April 05, 2019, 17:48:30
Just to clarify, I built the game with debug mode as a gui app for 64 bit Mac. I ran the created application and it had the same problem as previous versions where it would crash out 15 seconds or so after starting the first level.

However, when I built and run the game from within NG then it did run without that issue and I played the game for half an hour or so without crashing. I have no idea why this happens but I wanted to make sure you're aware as you seemed to be thinking it was the other way round.
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Xerra on April 05, 2019, 17:49:54
Also, what I should add, is that I really like the game. I'm rubbish at it but I think it's a very good entry for this competition. I've had a go at most of the games now and it's definitely one of my favourites. I reckon it will do well in the voting.
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 05, 2019, 17:55:26
Could you try to run it from within a terminal? Might be an SDL issue then.

- open a terminal
- cd path/to/GenusPrime
- ./GenusPrime (or ./GenusPrime.app - dunno how it is named).


bye
Ron
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: iWasAdam on April 06, 2019, 06:53:57
nope it crashes after about 4-5 seconds of play.  :o

crash happens at
tree_successor
bmx_map_intmap_hasnext
_brl_map_intmap_TIntNodeEnumerator_HasNext
TSpace_Update

So it looks like there is an error (possible with a null object), something to do with TMap?
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 06, 2019, 07:02:05
That helps a lot ...
it's a "concurrent modification" - I iterate over ships and remove parts of them during the iteration (if they landed on something).

A first check if that fixes the issue (I would provide a more performant one):

Open up "GenusPrime.bmx":
Ctrl+F to find "Type TSpace"
Ctrl+F to find "Method Update"

And replace it with:

Method Update:Int()
For Local star:TBackgroundStar = EachIn backgroundStars
star.Update()
Next


For Local missile:TMissile = EachIn missiles.Copy().Values()
missile.Update()
Next


For Local ship:TShip = EachIn ships.Copy().Values()
ship.Update()
Next



'ACHTUNG: eventuell Updates "randomisieren", damit jeder Planet
'         mal zuerst dran kommt (angegriffen wird, produziert,...)
For Local planet:TPlanet = EachIn planets
planet.Update()
Next
End Method


Then it would create a copy of the whole map in each loop (not performant for now but as said the most simple fix).
I will try to shape of some sparetime this morning/lunchtime and and upload a new version then.

bye
Ron
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 06, 2019, 07:35:34
If the previously mentioned "simple fix" works: I updated the code at github to do a better performing fix until I get a reply to the opened issue at github (Hope for Brucey or HurryStarfish ;-)).


Four options to update:
- checkout the git repo again
- update your local repo (if you cloned ....)
- manually insert the patch: https://github.com/GWRon/GenusPrime/commit/6bba1d8f864922d1458342eb679787e96d4a33a5
- download and override the GenusPrime.bmx: https://raw.githubusercontent.com/GWRon/GenusPrime/master/GenusPrime.bmx


I hope it works and fixes the issue. I meanwhile will compile the game again on my old Mac - and am excited to see if it works then for you too (with my old XCode etc).
Still does not explain why it should work when executed from within MaxIDE and not when "double clicked".

bye
Ron
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: 3DzForMe on April 06, 2019, 07:41:49
Awesome gameplay Derron, love the associated sound as well.

Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: iWasAdam on April 06, 2019, 08:01:19
yep, the new code worked :)
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 06, 2019, 08:03:19
BTW I could verify the mouse issue you had: If you by accident built a "console" version (not "gui") then it opens in a terminal and the event processing seems to be a bit borked. Will open up an issue for NG.

Uploading a new 1.0.1 later (VirtualBox update garbaged my Windows VM so the windows build takes a bit).

bye
Ron
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 06, 2019, 08:32:14
Uploaded v1.0.1 (Linux, Mac, Windows)
- fixed some colors leading to a titlescreen flicker (removed color alternate-trick on logo-text) - whopping 20 pixels
- fixed issue with "concurrent modification" of some TIntMaps leading to crashes
- (compared to the v1.0 it contains a sound-engine selector now - especially useful for Linuxers)

Download contains:
- legacy BlitzMax builds: Linux32, MacOS32, Windows32
- current BlitzMax NG builds: Linux64, MacOS64, Windows64

https://www.gamezworld.de/files/GenusPrime_v1.0.1_LinuxMacWindows.zip



I revived my "BlitzMax without additional modules"-ogg-streaming code, might test it later on with this project now as I know about some Mac users here ;-)
Works for vanilla now - NG segfaults and needs some love/adjustments.


bye
Ron
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 06, 2019, 12:26:53
Here is a build by IWasAdam based on the patch I posted this morning (so it still says v1.0 don't wonder). If my newest version crashes for you - let me know and until we get that fixed you can use IWasAdams build.

https://www.gamezworld.de/files/GenusPrime.mt.app.zip

Just extract and drop the GenusPrime.mt.app "file" (collection) into the GenusPrime directory.


bye
Ron
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Xerra on April 06, 2019, 13:50:23
I swapped out the source code with Rons revised source code and built the game. It worked ok - no more crashes but it doesn't end the first level when you win...
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 06, 2019, 15:35:40
Will look into it this evening - when at home again. This happens because it also checks ship count to see if a player is dead (might have set all his last ships to flee to another planet). Somehow this count is now not updated properly for you (I use a cache...to count). It is decreased on a RemoveShip() call... Which now does not delete a ship immediately but in the following for loop of the update cycle. So I thought it is logically the same... Seems not.
As said I will have a look at it later.

Could you try my download ...does it crash as it does for IWasAdam?
If it crashes then one of you both will have to build a Mac version for me afterwards.

Bye
Ron
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Xerra on April 06, 2019, 15:57:48
Quote from: Derron on April 06, 2019, 15:35:40
Could you try my download ...does it crash as it does for IWasAdam?

Your version worked ok for me - apart from the bug where the level doesn't end. I just extracted the MacOS64 file and dropped it into my current folder - no crashes.
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 06, 2019, 16:15:35
Are you on macos 10.14 too?
Wonder why they both crash at Adams but not on yours. There's a difference between your systems.

Will fix the issue this evening.

Bye
Ron
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Xerra on April 06, 2019, 18:08:29
Quote from: Derron on April 06, 2019, 16:15:35
Are you on macos 10.14 too?
Wonder why they both crash at Adams but not on yours. There's a difference between your systems.

My Mac is prehistoric but that shouldn't really cause an issue. I've been too busy using the machine to let the latest OS update install and restart it, however.

Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Steve Elliott on April 06, 2019, 18:40:11
High Sierra?   :o
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 06, 2019, 21:39:15
@ Xerra
Eaaasy fix:
Replace in GenusPrime.bmx:
Code (BlitzMax) Select

Field alive:int
'with
Field alive:int = True

If a ship was not alive it never decreased the count when getting destroyed ;-)

Updated my repo accordingly (just fetch a new GenusPrime.bmx if you want).



@ Steve
(https://www.syntaxbomb.com/proxy.php?request=http%3A%2F%2Fi.imgur.com%2F8WSp4WZ.png&hash=70afe6969a697df437e09e6a8ad93bb7aee8b122)



@ others
Uploaded v1.0.2 with fixes. Adams version for Mac should still work - as it did the "performance hungry" fix (creating a copy of a map containing all currently existing ships/missiles each time).


https://www.gamezworld.de/files/GenusPrime_v1.0.2_LinuxMacWindows.zip


Thanks for Xerra pointing me to the bug regarding the level end check/playerstates.


bye
Ron
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: iWasAdam on April 07, 2019, 08:30:21
Hi Derron.
I really like the concept for this and I'm going to use it as a test bed for my next project.
I like the concept of clicking/selection and sending things that you have no real control over

I'm working on the base core of clicking and selecting atm
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Steve Elliott on April 07, 2019, 08:47:14
@ Derron  :o :o  ;D
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 07, 2019, 09:32:18
Quote from: iWasAdam on April 07, 2019, 08:30:21
Hi Derron.
I really like the concept for this and I'm going to use it as a test bed for my next project.
I like the concept of clicking/selection and sending things that you have no real control over

I'm working on the base core of clicking and selecting atm


Feel free to use some of the code / logic (it is Open Source you can have more than a peek).

Think one could do this in a Fantasy/Monsters world too ... so different castles (puddy-slime-pond-castle vs anthill-castle...)  and different troops. Would even allow for different TechTrees ...
Drop me a line if you want to tinker in a collaborative way.


bye
Ron
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: iWasAdam on April 07, 2019, 10:24:28
currently I am at the 'putting things on screen (squares, so no designation). I've added sizes and kinds, but neither have any function yet
and then sorting out the selecting - done

I'm not going to use any of the code or look at it. as I want to get a feel for how things fit together in my head (completely blank at the moment)
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 07, 2019, 10:40:39
For selection and so on: all the entities on screen have an "area" which reflects their map position and dimension. This area-rectangle can either get converted to screenspace - or you just convert your input into map-space. Then a simple "entity.area.contains(mousePos) then SelectEntity(entity)" is enough to that.
Using group select - dunno if this is the best approach - I just used a check whether a groupSelectionRect is created (done on "button down" with x,y at mouse pos and w,h = 0,0) and if then button is no longer down you use the new mouse position for rectangle's width/height.

But I think you know all of this already as your other games hat similar interaction mechanics.


@ sizes
I had sizes for planets in too (for now they are fixed). Sizes would have then allowed for more population, more missiles, ...
but thought "feature creep"...so kept it out - same for stealth, anti-stealth, ...


What might be of interest for (...to think about - not to look at) is to make sure that cities/planets/castles/... "bases" are having a minimum distance to their neighbours - and to avoid clamping too much (or... to allow/enforce clamping/grouping). I prefer dynamically created worlds over hand crafted ones - as this allows for endless games (I use defined seeds - maybe it would have been a good idea to add a "seed input widget" for the random/skirmish games to more easily replay stuff).


First game idea was btw without the complexity of upgrades - just "grow and send" but then I saw that other games used a similar approach which is why I wanted to be at least a bit different. A pity that this means to increase gameplay complexity (which isn't what all players like).


PS: I protoyped with DrawOval too. Some stuff like mouse cursor and the animated selection rectangle are even still created using DrawRect chains. Sooner or later the "graphician" in me wanted to tinker a bit so you will do for sure too.


bye
Ron
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: iWasAdam on April 07, 2019, 13:00:47
Here's a base build showing a single selection and range. the yellow/grey things are the available units. they are yellow when they are available
(https://vjointeractive.files.wordpress.com/2019/04/screenshot-2019-04-07-at-12.58.25.png)
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 07, 2019, 13:06:08
Does size of the objects influence "refill speed" (try to describe it in neutral words)?

The range indicator seems to say: you can only target stuff in range - so you need to "chain" your movements (had this in mind too but ended up with a simple planetary defense).

If so: think about what happens if eg "20 units" reach one of the same owners other circle which already has 20 of 30 "unit slots" filled. Cap increased or something send back or ... ?


bye
Ron
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: iWasAdam on April 08, 2019, 07:56:55
Derron - not to drial this I've moved further work into Strata Nova
https://www.syntaxbomb.com/index.php/topic,5446.msg25062.html#msg25062 (https://www.syntaxbomb.com/index.php/topic,5446.msg25062.html#msg25062)
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 17, 2019, 08:49:00
Xerra suggested to add some features - so I added some of them:

- "Ctrl + A" to select all your planets
- Middle-Mouse-Button "click" to center the click position on screen (mouse "drag" is TODO)
-> [Interface] added CTRL+A (select all) middle-mouse-button (map move). Idea: Xerra (https://github.com/GWRon/GenusPrime/commit/b7e6a6ba4d4eb75d791f0d2a7b56ce9e1dea9b6b)


Next to the suggestions I now also deselect a planet if you loose owner ship but only íf you selected multiple planets as a single planet selection might be intentional.


Will try the map drag later on and update binaries to test the new sound engine too (no more rtAudio for streamed ogg - if it works at least ;-)).
Now kindergarten asked me to help building up a skid/slide so real life "world building" is asking for my attention.

bye
Ron
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: iWasAdam on April 18, 2019, 06:54:00
hint - middle mouse is not a brilliant support choice as many people don't have mice with 3 buttons or even 2 buttons.

if you were looking at (purely from a usability point). track the mouse. over a planet = select not over a planet = drag about - or consider not needing to drag the screen about (some form of auto scaling perhaps?)
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 18, 2019, 08:11:50
@ auto scaling
Nope - we already have the ability to position via minimap clicks, moving mouse to the sides of the space-viewport


@ 3 buttons
Yes, these people with 1button mices would not be able to use the middle mouse buttons nor would they be able to use right click. For them you need to provide eg. "D" and "F" keys to emulate the buttons (D and F because of their positions for a resting-hand-on-keyboard - and F having the "marker" on it for 10 finger typing).


@ mouse over planet or not
If you have your mouse not over a single planet you most probably want to mouse-area-select. Also it might look a bit odd if you did not hit the targeted planet perfectly and now the scrolling starts (for the moment you "hit" the mouse - aka "mouse down" until you "clicked" which means you released the mouse button).

I could add the option (for 1-button-mouse-users) to handle double click: double click then "scrolls to".

Aside of that I could also just add a simple cursor-key-movement to get rid of all that extra handling for 1-button-mouse-users (except for "right click").


As said above one should not forget: map dragging, mouse map scrolling, ... this is a convenience-extra-feature which is reachable with mouse-movement (sides) and LMB-click (minimap) already.


@ new release
Will have to fight a little bug in my freeaudio-soundmanager as it bugs refilling stream buffers on the second crossfade to a track (a-b-a) think the TChannels behave not exactly as they should with static buffers or an even simpler but yet hidden bug.

bye
Ron
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 22, 2019, 21:49:06
Took a bit longer to do that little bugfix ;-)

I rewrote the crossfader in my SoundManager class. The problem was or is, that there was no easy way to chain a streamed audio to a FreeAudio-channel object and to synchronize played time (to refill buffers accordingly etc.). Once I seem to have it working I found crackling sounds on my Windows 10 notebook - seems the FreeAudio module has some quirks for the Windows part if it is running Windows 98 :) - and these settings are required here too (and they are even used in an exaggerated way when utilizing the Direct Sound backend ...). Once that was fixed I now have had at least flawless playback on:
- notebook with Windows 10 64Bit and a Linux Mint 18 64bit
- my desktop with Linux Mint 18 64Bit
- 32bit Mini-XP-VM on my desktop

Was not able to check the audio output of the Mac but ...heyya.


So for all 3 OS this means the download here (v1.0.4) now does not use "maxmod2/rtAudio" for playback of the music but the BlitzMax-provided FreeAudio and a little custom audiostream solution by me. It might work - or might fail, dunno.
Maybe that even makes it work on Adam's Mac OS but I heavily doubt it.


Next to the audio backend I added:
- map dragging (middle mouse button)
- map clicking (middle mouse button)
- ctrl+a to select all planets


Download: https://github.com/GWRon/GenusPrime/releases/download/v1.0.4/GenusPrime_v104_LinuxMacWindows.zip


Would be nice if some of you (Xerra?) could give it a little test (sound playback and new control support). If your feedback is positive I would upload it to itch.io (maybe it finds some new players then).


bye
Ron
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 25, 2019, 07:42:55
Regarding Download count at least one user might have tried the new version - any feedback to sound and map controls?

BTW: If you always wondered how to easily find out the download count of stuff at Github: https://www.somsubhra.com/github-release-stats/?username=GWRon&repository=GenusPrime

bye
Ron
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Xerra on April 25, 2019, 09:52:06
Ye of little faith. I downloaded it a couple of days back but i've got a bit of a nasty ear infection so not had much computer time until today.

Mac version works fine for this update, I'm happy to say. Using Ctrl-A and moving the map with the middle mouse button does give a much better feel to playing the game now. I suspected it would but luckily you didn't need to have that in place for the compo version to still become the deserved winner. Personal opinion is the game is still a little too hard for my liking. 3rd tutorial level where the map is first scrollable is an example. I struggle to get off that because it feels like the enemy gets the upper hand far too quickly for me to establish a solid foothold.

I'll be very curious to see what kind of bigger game comes out of this now you and Adam are plotting world domination. Looking forward to having a play on that.
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 25, 2019, 10:03:58
Thanks for the feedback - and get well soon.


Open up "assets/maps/campaign_02.xml"
You can adjust population, missiles ... or even time the support to a later moment. You might even add a support for your player (you then just need to "survive till that moment").

Maybe that helps already.


And yes - I've lost many times too, it really depends on timing - so eg. start your ships later than an enemy so that his ships decrease population count of the planet for you (saves you some ships).
Also I rescued ships by sending them to other planets if I see multiple fleets targeting a planet (first fleet will kill you, second one the first fleet). So same game here: let them kill each other.
If you do it wrong right on start you will already be on the looser side without knowing it yet. It is hard to "turn around" the game in later stages - especially if only you and a single cpu player are left.


Feel free to post other ideas for the game.

bye
Ron
Title: Re: Genus Prime - 8-BIT WARS competition entry
Post by: Derron on April 25, 2019, 16:39:11
Added a page at itch.io (first time user ;-)).
https://gwron.itch.io/genus-prime

let's see if it brings in some downloads.


bye
Ron