[BMX-Vanilla] Mac and Linux

Started by wookie22, September 29, 2020, 15:27:48

Previous topic - Next topic

wookie22

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?
Hidden Deep - 2D Action & Exploration Sci-Fi Thriller for PC/Mac/Linux
http://www.hiddendeepgame.com

Steve Elliott

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).
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

markcwm

#2
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 as it's probably okay.

Mac is easier than Linux to set up, I wrote a BMX install tutorial 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 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.

Derron

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

Steve Elliott

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.
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

Pingus

Blitzmax NG works quite well with macOS Catalina.
I'll do a PM when our game will be released on Mac.

wookie22

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. 
Hidden Deep - 2D Action & Exploration Sci-Fi Thriller for PC/Mac/Linux
http://www.hiddendeepgame.com

Derron

I am using NG for a long while now - used by some thousand players. Did not receive many "crash reports".


bye
Ron

markcwm

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.

Pingus

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.

Brucey

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.

wookie22

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? 
Hidden Deep - 2D Action & Exploration Sci-Fi Thriller for PC/Mac/Linux
http://www.hiddendeepgame.com

Derron

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

wookie22

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?
Hidden Deep - 2D Action & Exploration Sci-Fi Thriller for PC/Mac/Linux
http://www.hiddendeepgame.com

Derron

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