SyntaxBomb - Indie Coders

Languages & Coding => BlitzMax / BlitzMax NG => Topic started by: wookie22 on September 29, 2020, 15:27:48

Title: [BMX-Vanilla] Mac and Linux
Post by: wookie22 on September 29, 2020, 15:27:48
Hello,

I'm currently developing on PC and have no experiences with Mac and Linux. Will Bmx Vanilla compiled executables be still working on the newest Mac/Linux machines?
Title: Re: [BMX-Vanilla] Mac and Linux
Post by: Steve Elliott on September 29, 2020, 16:05:55
No you'd have to use BlitzMax NG:  https://www.syntaxbomb.com/index.php/board,19.0.html

I'm sure Derron will be along soon to give you some advice (I don't use it personally).
Title: Re: [BMX-Vanilla] Mac and Linux
Post by: markcwm on September 29, 2020, 17:14:32
Hi wookie22,
yes for Linux it's all 64 bit now which BMX vanilla doesn't support. For Mac I think BMX vanilla wouldn't work in Catalina which is 64 bit only, I've only tried BMX vanilla with OSX Yosemite and it worked okay with what I tested (GL 3) but I recommend you use NG and provide only 64 bit apps for simplicity, I've had trouble with some release versions of NG so the most stable I found was v0.93 (ie. anything before v0.98) but I haven't tested the latest stuff so try the 0.120 release (https://github.com/bmx-ng/bmx-ng/releases) as it's probably okay.

Mac is easier than Linux to set up, I wrote a BMX install tutorial (https://www.syntaxbomb.com/index.php/topic,61.0.html) which goes through the need to download and extract Xcode, install the (recommended) Macports package which makes installing other tools easier, then how to install a source version of NG or vanilla.

For Linux there is a tutorial on Official Blitzmax NG (https://blitzmax.org/docs/en/setup/linux/) and also my tutorial which only covers Ubuntu but has more detail than the official tutorial, use the official Ubuntu dependency list rather than mine as it's outdated now, building modules is the same as Mac and you will need Gtk3 and Webkit2 if using Maxgui with gtk3maxgui (https://github.com/maxmods/gtk.mod).
Title: Re: [BMX-Vanilla] Mac and Linux
Post by: Derron on September 29, 2020, 19:46:40
Cannot speak for Mac OS ... am only using an old hackintosh to build Mac stuff - and this is already many months ago.

Adam tried to get bleeding edge NG running on his mac but seem to have had trouble. Brucey has also a Mac and ... it seems to work there (dunno how regular he tests).

Nonetheless I hope there is a new "release" in the near future as a lot of stuff was fixed (for some Linux distributions - with newer GCC, some compiler fixes, ...).


bye
Ron
Title: Re: [BMX-Vanilla] Mac and Linux
Post by: Steve Elliott on September 29, 2020, 19:49:31
I would suggest you have a fantastic game and go all-in on Windows for now.  When interest comes then you can look to porting the game to other systems.
Title: Re: [BMX-Vanilla] Mac and Linux
Post by: Pingus on September 30, 2020, 02:29:25
Blitzmax NG works quite well with macOS Catalina.
I'll do a PM when our game will be released on Mac.
Title: Re: [BMX-Vanilla] Mac and Linux
Post by: wookie22 on September 30, 2020, 14:23:01
Thank you very much for all answers. Yes I'm generally focusing on PC but there are some questions from followers and interested publishers about Mac and Linux.

I'm afraid that sadly :( I'll have to ultimately convert it onto other cross-platform engine (when game is ready) because as I'm reading here NG is still not too stable. 
Title: Re: [BMX-Vanilla] Mac and Linux
Post by: Derron on September 30, 2020, 14:34:27
I am using NG for a long while now - used by some thousand players. Did not receive many "crash reports".


bye
Ron
Title: Re: [BMX-Vanilla] Mac and Linux
Post by: markcwm on September 30, 2020, 16:14:44
I should have said I had compile issues last year with v0.98, v0.99 and v0.105 on Linux only, but have recently tried v0.120 and it works fine now.
Title: Re: [BMX-Vanilla] Mac and Linux
Post by: Pingus on September 30, 2020, 17:02:38
Once issues had been sorted out, BlitzmaxNG showed remarkably stable on Mac... My game is quite heavy (for a 2D game) and run fine on several generation of Mac/Macbooks.
I can't wait to see some progress on the Android side because it is extremly promising.
Title: Re: [BMX-Vanilla] Mac and Linux
Post by: Brucey on September 30, 2020, 23:35:22
Modern Linux and macOS are 64-bit, which legacy BlitzMax does not support.

Could you provide more information about NG's instability issues, please? I am not currently aware of any outstanding problems that make it unstable on any of the main desktop platforms.
Title: Re: [BMX-Vanilla] Mac and Linux
Post by: wookie22 on October 02, 2020, 11:02:29
Quote from: Brucey on September 30, 2020, 23:35:22
Modern Linux and macOS are 64-bit, which legacy BlitzMax does not support.

Could you provide more information about NG's instability issues, please? I am not currently aware of any outstanding problems that make it unstable on any of the main desktop platforms.

Hello Brucey, my BMX master :)

By "not stable" I meant problems with compiling Bmx-NG itself or its output. Yet these are not my experiences but it is what I read here from time to time.
I'm going to switch to NG and check it myself when my game will be close to finish (within 6 months I think). First because it works good on vanilla now for PC, second because I tried NG about 1.5 year ago and after successfully converting my code to work I noticed making a build takes 5-10x slower than on Vanilla what was quite important as I'm making dozens of builds every day. BTW. Is there any speed up since then? 
Title: Re: [BMX-Vanilla] Mac and Linux
Post by: Derron on October 02, 2020, 11:49:55
We had some compilation speedups over the years. Especially pub.mod/glew.mod was a hogger (when it contained a pretty big c/h file).

Even now vanilla might be a tick faster...but we talk about a low percentage of difference. When optimisation took place the complete ("non quick") compilation of my game was maybe 2 minutes on vanilla and 4-5 on NG. Now...it is a diifference of 5 seconds or less (no exact numbers).

In all cases: quick compile helps. Compiling on a local drive (so no samba share used in a VM running NG) helps. SSD helps (NG has more files it works with...and needs to check for file timestamps).

NG supports more stuff..so it needs to do a little bit more.


The biggest advantages:
- auto optimization of GCC
- auto generates constants for stuff like Chr(13) etc... Speed up
- more advanced containers (TObjectList vs old TList)
- overloads, structs (ways to keep the GC sane ;-))
- we fixed some stuff broken in vanilla (I stopped using vanilla, so I do no longer backport)
- new audio modules (streamed audio)
- optional sdl backend (better multi monitor handling... Tried fullscreen on a multi monitor setup?)


But yes.. there might be bugs ... or issues in the module. But there are more people voluntary fixing or checking something with NG than with vanilla.



Maybe do not try to convert your game all in one..maybe check NG out and then convert parts of your framework, to get used...to find potential issues etc.
I did so for TVTower too ... worked.


Bye
Ron
Title: Re: [BMX-Vanilla] Mac and Linux
Post by: wookie22 on October 02, 2020, 12:55:16
Quote from: Derron on October 02, 2020, 11:49:55
We had some compilation speedups over the years. Especially pub.mod/glew.mod was a hogger (when it contained a pretty big c/h file)...
...
In all cases: quick compile helps. Compiling on a local drive (so no samba share used in a VM running NG) helps. SSD helps (NG has more files it works with...and needs to check for file timestamps).

Hey, thanks for a deep answer :). I assume faster CPU helps also? Maybe it is time to invest. I can't wait to get my hands on NG just cannot defocus from making game itself now.

I'm currently using Blide as IDE. Will it work with NG? Is there other good alternative - I mean true IDE?
Title: Re: [BMX-Vanilla] Mac and Linux
Post by: Derron on October 02, 2020, 14:58:30
Blide "can work" (at least people here claimed it) I never used it since moving away from Windows (that time blide was still in active development).
There is no real "IDE" - maxIDE works ... but yeah.

Hezkore wrote an extension for VS Code ... and planned to rewrite it from ground up (to include debugger support). This does not feature smart auto-complete (yet) - so only keywords learned (like MaxIDE) can be auto-completed.



Faster CPU ... helps a bit. The new "BMK" (could be used with legacy too) allows multi-threaded C-compilation (if you used some external stuff written in C) - which is helpful for NG (as it translates bmx to c first :D).
Think SSD is helping the most - my CPU is from 2011 (amd llano, 4 cores) ... still "fast" enough (especially for "release" builds - debug is bigger, as it adds all the debug information into the c code, and takes longer).


bye
Ron
Title: Re: [BMX-Vanilla] Mac and Linux
Post by: Brucey on October 02, 2020, 16:13:18
With regards build speed, newer "bmk" has improved the order of building things - it compiles .bmx files first (hierarchically), followed by everything else. The more cores you have the more it can compile at the same time.

Using "Import" rather than "Include" also makes a big difference when compiling sources. Compiling great swathes of monolithic included sources will result in increased build times.


When you eventually get around to trying out NG again, give me a shout and I'll try to help you through any issues you may encounter.
Title: Re: [BMX-Vanilla] Mac and Linux
Post by: wookie22 on October 05, 2020, 11:30:47
Quote from: Brucey on October 02, 2020, 16:13:18
When you eventually get around to trying out NG again, give me a shout and I'll try to help you through any issues you may encounter.

Thank you Brucey - I will! :)