Is BlitzMaxNG future-proof enough to create sellable applications?

Started by imaginaryhuman, November 06, 2021, 22:14:42

Previous topic - Next topic

imaginaryhuman

I'm considering making an image processing app, to sell online, for windows and mac at least. I'd love to be able to use blitzmax NG to do it. My main concern is the future support for hardware. And being able to get it onto e.g. mac app store and such where you apparently need to be an recognized publisher so as not to raise flags every time someone tries to install etc.

Apple will have shifted new hardware to their silicon within the next year. Intel mac will start to phase out, though it could take 10 years. Windows and Mac are both supported currently via the 64-bit support, how long will that last?

Do you think it's advisable for someone to make an app in BlitzMaxNG, with the intent of being able to keep it working for the next 10,20,30 years?

My only other choice is to do it in C# inside Unity3D as a development platform, which is not at all my preferred way to work, but at least a very likely long-term supported platform.

angros47

BlitzMax is open source, so as long as there will be people interested in developing it, it should receive updates to support new hardware. In theory, you might even learn to modify it yourself, to support new hardware (although it's NOT an easy task)

About it being future-proof (especially if compared to Unity): it is absolutely impossible to answer such a question. Do you remember Blitz3D, Nuclear Basic, and Ionic Wind Basic? Nuclear Basic and Ionic Wind Basic were better than Blitz3D: they came up later, they were more modern, supported more modern hardware, and had more features. They both have been abandoned, development has ceased, Nuclear Basic has no site anymore, and Ionic Wind is still a 32 bit only compiler (according to their site). Blitz3D is still developed, although at a slow pace. But 10 years ago no one would have expected that: in the same way, I can't know what will still be actual in the next 10 years.

imaginaryhuman

Ok. But like for example, Apple Silicon is already out ... BlitzMax presumably does not run on/compile for it yet? (I could be out of touch).

Another example, when installing Blitz on my Mac I have to go through hoops in the terminal to even get it built before using it, because it's not recognized as 'genuine software' and apple screens it. etc.... getting around stuff like that. I wouldn't want paying customers to have to deal with warning screens and stuff of that like, when trying to install my software. I don't know enough about it at the moment. Maybe it's enough that it's sold on an apple/microsoft supported marketplace?


imaginaryhuman

Another thing... does blitzmax support Metal for graphics on apple devices? And if not, isn't OpenGL going to potentially be phased out at some point and replaced with Metal? From what I gathered OpenGL is not being updated any more? So how would blitz do 2d graphics etc without it? Or is there a solution for that already? And on PC is the direct3d9 driver going to be obsolete at some point soon? Are people switching to Vulcan and other such things?

e.g "OpenGL is officially deprecated by Apple starting with macOS Mojave 10.14. However, Apple is still maintaining the standard."

"In Catalina, as in every macOS version going all the way back to Mavericks, the macOS OpenGL implementation is stuck at version 4.1 (2010), and the OpenCL version is stuck at 1.2 (2011). "

If OpenGl goes bye-bye, what is the backup that blitzmax would use?

MikeHart

Like with any Open Source project, it initial maintainer might follow new interests. If it isn't used by him/her/it then the chance that it will happen one day is big.
Go with the bigger tools, they certainly have what you call being future proof.

Talking about the small tools, nobody knows what Apple will do in the future regarding OpenGL. The plan for my tool is to support Metal at one point. So like others , while i have that 50% done, I procastrinate that work that involves that rest of the task for quite some time. With iap and ads being a moving target, there are certainly bigger issues to solve.

iWasAdam

Re Apple and Metal - I think we've got around 2-4 years of openGL left. but there will also be minor changes that will break things along the way.

Apple silicon is something else completely - you will need to compile into arm/silicon based code and not x86.

Apple have said they are working on a 2 year transition. we are just starting year 2...

Looking at past track record. Again I feel we have 2-4 years before they pull rosetta 2 support along with OpenGL completely from their OS.

My Own thoughts are (similar to Mikes) this:
You need to move code to Metal and apple silicon now. the longer you leave it the harder it will become. You will need to find a way to transition. this may mean moving language entirely or finding your own way through.
Unfortunately none of this is going to be simple  ???

I think in the short term you will loose a lot of graphics functionality until devs really get to grips with Metal...





angros47

Regarding Silicon: it is supposed to be an ARM64 processor; I am not sure, since I don't program in BlitzMax, but at far as I know ARM64 is already one of the supported platforms: BlitzMax emits C code, that can be compiled for ARM processors, so it should work with no issues

Regarding Metal: I am not sure Metal will be the future: Apple is surely pushing for it, but only Apple devices adopt it: Windows systems adopt DirectX 12, and Android systems use Vulkan, to perform the same things. According to what I read around, the future standard might be Vulkan, not Metal (since Vulkan is an open standard, more portable than Metal)

Programming in Vulkan seems to be a pain: I had a look at the tutorials, and gave up when I saw that to draw a triangle on screen (something that in OpenGL can be done with 3-4 lines) requires more than 1000 lines. I assume that Metal is just as painful. That, along with the fact that there is a lot of legacy code that uses OpenGL, might mean that OpenGL would still me used, with libraries on top of Vulkan/Metal/DirectX 12. The library Angle, for example, allows to use GLES code on a Vulkan, or on a Metal driver, so if you can code in GLES you should be able to compile it for Metal by just including some more libraries.

As far as I have read around, you would need to target Metal directly, instead of using OpenGL or GLES on top of it, only if you plan to use multithread code (OpenGL is not thread safe, all GL commands must be used from the same threat or they don't work). If you don't need to use it, you can stay with OpenGL (I think)

My thoughts are: if you procrastinate, waiting to get the future tool, you will never get anything done. Because when a tool will be ready, and finally working, a new one will already be planned. So, stick with what you can use, and find a way to get it to fit to your target system. Heck, there are people who knew only to code in Quick Basic, with QB64 they are still able to target modern systems. Is it optimal? No. Does it work? Yes.

So, use the tool you are comfortable with. Don't struggle with learning the last one available (that might be forgotten in two years anyway); if a platform is successful, your favorite language will likely be ported to it anyway. If a platform is a failure, it's not worth developing for it anyway.

Hotshot

I wouldn't buy Ionic Wind Basic as have you seen their forum as doesn't seem to be Active!

So what Programming Language there is

Cerberus X
AGK2
PureBasic
Raylib
GLBasic

Is that it?

round157

Quote from: Hotshot on November 07, 2021, 22:32:34
I wouldn't buy Ionic Wind Basic as have you seen their forum as doesn't seem to be Active!

So what Programming Language there is

Cerberus X
AGK2
PureBasic
Raylib
GLBasic

Is that it?

Hi, very interesting.

However, GBasic also has a not very active forum. Wonkey may have an user community as active(or large) as Cerberus X in the future but they are not BASIC dialects.(Also Raylib)

QB64 and FreeBASIC has large user bases and B4X series has a huge community!

iWasAdam

QuoteRegarding Metal: I am not sure Metal will be the future
it already is. it is the defacto ios/ipados/macos graphics system. it is modern and tied directly to the hardware. it's here to stay.

If I were to stick my head really far out. The one that is in dangerous territory is Vulkan. although it is meant to be a replacement for OpenGl you nailed it by stating it is far too cumbersome with 1000 lines of code just to create a triangle. Open standard or not. to be widely accepted it must be better and simpler to use than what it replaces. and it does seem that Vulkan is neither of those.

There is also a tiny but growing disrupter in 3d tech: the CPU. 3d has long chased the single big model approach (where a level was sent and kept) - the big issues being the interconnect between cpu and gpu. but this has huge problems with the big boys deciding that more and more pre work is being done on the cpu and the final result being sent to the gpu. this is seismic shift in how things work. 3d (the back end) is moving to be all about culling, what you can see. but also the whole scene being dealt with at the same time. old concepts of how lighting work, geometry, material etc are starting to blur and become something else.

MikeHart


iWasAdam

I'm assuming you mean me?

on the 3d front the top people to look at is unreal - this is the forefront of tech:

They have the top code and are pushing what is possible and how it is done.

there is a problem with (lets call it) 3d disconnect - where what the 3d modeller can create and what a game can do are completely different.
- in essence a 3d modeler is all about creating hi-res content to be viewed or renderered at super high res for advertising, films, tv, effects etc. The whole chain is about making it look great whatever the cost (memory, time, etc)
- 3d games/realtime 3d system have a very different skillset - you need a way to minimize size of models textures, etc and come up with innovative ways to make it look great - you cheat.

one thing with Apple and Metal that is not obvious is how the memory works - it's flat - just like the 80's. you have 64k of ram, 12k is the screen, 48k for the program. Apple silicon is the same - there is no GPU ram, it's system ram, so there is no memory transfer from the CPU it's just there. You just tell Metal where it is... even the board looks similar to the old c64, spectrums, etc:


NVidia is currently attempting to buy arm for this very reason. their gpu's can't do what apple are doing at super low power.

Pfaber11

I'm using AGK studio  right now and it's up to date and probably will be for years to come.   My last 3 games have support for Vulkan and the graphics are very smooth. It's all up to date in terms of being able to publish on Android play store too. AGK studio seems to tick most boxes for me anyway. Good luck.
Windows 11 home edition
PureBasic 6.20 and AppGameKit studio
ASUS Vivo book 15 16gb ram 256gb ssd
HP Desktop; AMD 3700 A10 16GB ram 2 GB graphics card windows 10

MikeHart

Thank IwasAdam. I was asking for links but yes, your explanation makes sense.

Regarding AGK: Nobody knows how long TGC can keep their business up. I predict they will be next who drop the ball. They are not Apple Silikon ready and do not support Metal. I doubt they ever will do so. Next I predict Godot will slow down big time as Juan already mentioned financial problems after 4.0. Metal is not on their list. 4.0 doesn't even come with OpenGLES, they will run out of time and money to implement the needed changes to support Metal on MacOS and IOS.

GMS aka YYG recently got bought by Opera, so they got quite some funding behind them. Unity and UE are there to stay. Us small players can dance as much around them as we want. We will never beat that marking power or come even remotely close to them.  Same goes for the development power.

Back on the topic.... I would go the Python road for applications. That is the closest thing to be cross platform and that will stay and is supported. Ithas tons and I mean tons of modules for every use case you can think of. They are some quit nice image processing libs I saw when I looked into it.

Pfaber11

I hope you are wrong about TGC but you maybe right. And yes Python will be around for a very long time of that  I'm sure. How about AGK for Python I think that's still a thing.
Windows 11 home edition
PureBasic 6.20 and AppGameKit studio
ASUS Vivo book 15 16gb ram 256gb ssd
HP Desktop; AMD 3700 A10 16GB ram 2 GB graphics card windows 10