Bmax : X-platform

Miscellaneous Forums/General Discussion/Bmax : X-platform

How successful has the X-platform part of Bmax been?
Those who have had games published how many released a Win and/or Mac and/or Linux version?
If you did what was the return and do you think it was worth it?
If you didn't, what were the main reasons for not doing so?

good question tg... i'm also interested in who has released a 'max game for which platform, and how it was received...

--Mike

I've been planning to switch Naked War to Bmax when the 3D module arrives. I'm beginning to wonder whether the Mac stuff is worth bothering with. One of the testers is running the B3D version on a new Intel Mac (under Windows) anyway. I wonder if Mac gamers are just going to use windows for games anywhow.

Never did see the point of the Linux stuff. Linux people don't pay for sofware anyway.

Read these :

http://forums.indiegamer.com/showthread.php?t=6916&highlight=mac+game+sales
http://forums.indiegamer.com/showthread.php?t=6419&highlight=mac+game+sales
http://forums.indiegamer.com/showthread.php?t=5757&highlight=mac+game+sales (DR Germ is BMAX)
http://forums.indiegamer.com/showthread.php?t=5777&highlight=mac+game+sales

Now don't you think BRL should put some effort it?

I pretty much consider myself a cross platform developer. It is more or less fairly easy to do that with BlitzMax so long as you can find somewhere to compile to the different platforms - your relatives may come in handy ;-) ... I think there are a few areas when you have little choice but to use platform-specific code for each platform in order for things to work the same on each, which defeats the cross-platform-ability, but it's not too much price to pay considering most of it works as is. I haven't released anything yet but intend to release on all 3/4 platforms.

Mac is worth it, until the market becomes saturated I guess, but it's still ripe for Indie games. However, I might still stick to PC games as my core market. We'll see...

Linux isn't really worth it imho...unless you can convert to it REALLY easily.

I doubt that Intel Mac users who can boot XP will make much of an impact on the majority of Mac users who will want games on their native platform. Booting up a different OS just to play a game will soon become tiresome if they do the majority of their work on a Mac.

Perhaps but considering the wealth of stuff available for PC - If I had an Intel Mac I'd be sorely tempted to use Windows for games.

I don't have a strong opinion on this. And it's a very new situation isn't it?

Linux people don't pay for sofware anyway.
Neither do Windows users. They get it all free with their new computer, and steal the rest.

I'm beginning to wonder whether the Mac stuff is worth bothering with.
You should probably ask established independant developers. Like Blizzard. And I'll wager making a Mac verison of World of Warcraft was a little more expensive and time consumeing than buying a Mac, installing BlitzMAX, and hitting 'Compile'.

If I had an Intel Mac I'd be sorely tempted to use Windows for games.
If you only want a Mac for playing games, you are not making a sensible purchace. People do not buy Macs primarilly for playing games. They buy Macs because it represents a whole product, along with their iPod, iTunes, and favorite podcasts, and comes with out-of-the-box software to do these things, and do them well.

I think BRL has a great opportunity to really create a `pure` cross-platform system. It's almost there but not quite. Ideally it shouldn't be necessary for us game designers to have to do anything `differently` to make something work on a given platform. If the cross-platform element of Max was `pure`, we could just literally write one piece of code and immediately compile it on another platform with *exactly* the same results in every area. No need to think about whether windows does something differently or whether there are quirks to work around. No need to have `know how` about these platforms that you're creating for. Imagine if you didn't have to have any prior knowledge about Windows in order to make a perfectly running exe and package for it, or to create a Mac game for people with Windows PC's and no Mac experience.

I think what BRL should aim for, and achieve, and it should be possible, is:

a) Create binaries for all platforms/CPU's that BlitzMax can be targetted to, from each individual platform/CPU, so developers only need to own one platform and can safely TRUST that their distributed product for the other platforms works perfectly without having to own one.

b) Have a system that creates `packages` or `distributables` or `archives` in an easy WYSIWYG kind of way, to allow you to pull together all your documentation, icons, data files, exe's, etc and create a distributable package/archive/disk image/whatever that can then be easily installed on any of the platforms it's made for, without having to own those platforms. This should also include automatical generation (or via a wizard) of proper `installers` for the software being distributed.

c) Ensure that you ONLY ever have to write your code ONCE, and then it will run anywhere (Amiga Anywhere, Anyone?) without needing to modify anything, nor to have to write a single line of platform-specific code - get rid of those ?Windows ?Mac ?Linux things, too, they are anti-cross-platform. It's really kind of sad that Max is SO close to being truly and purely cross-platform, but to fall short.

d) Build all these extra features into the IDE.

e) Add at least a half decent graphics editor to the standard Max distribution, which should include sourcecode, plus a decent-sized game with source.

f) Give us all a slice of cake for free with each purchase.

;-)

a) Not possible. BM has no own compilers but relays on the plattforms native compilers (GCC, MingW, XCode). Its not like Realbasic that has its own compilers ...

c) That is definitely needed. The current inconsistencies (especially undocumented ones) are a serious problem for "professional usage".

d) If we have the extras, it shouldn't be that hard to add them. One thing I would definitely like to see would be an integrated UPXer. I can offer the code for a simple GUI Frontend to UPX 2 written in BM + MaxGUI. Perhaps I should give that the CE makers if I think about it ... would surely be a usefull addition to the windows version of it.

e) The first thing if we come to decent graphics would be a DX9 driver for Max2D instead of DX7. The fact that OpenGL is faster is a quite strong proof that DX7 is definitely "stoneaged" on Windows and not an acceptable "base" for a "new" programming language that has a given focus around 2D programming. DX7 has been replaced over 6 years ago ...

f) Lol ... naw better not ... don't want to smell it when it reaches me here in switzerland from NZ after 2 weeks or the like ;-)

a) I agree, although for a different reason. It simply takes too long to have 4 different rollout procedures for each project.

b) NSIS (Nullsoft Scriptable Install System) already does this. It's even easier if you have the Eclipse plug-in.

c) Those ?Windows ?Mac ?Linux compiler directives are the reason it's cross platform at all. Write once - run anywhere is not likely to happen while companies think that lock-out features are nessecary to secure market leadership.

d) Rubbish. Scrap the IDE and provide integration tools for Eclipse, Xtools, Code WArrior and Visual Studio (in that order).

e) It'd certainly help with the whole product thing. Of course again, I would prefer if BRL developed tools that already supported the products people where already using anyway, rather than making their own.

a) Not possible. BM has no own compilers but relays on the plattforms native compilers (GCC, MingW, XCode). Its not like Realbasic that has its own compilers ...
BlitzMax does have its own compiler. BCC. It only needs GCC for rebuilding the C++ libraries. What BlitzMAX relies on are third party assemblers and linkers - some of which are part of the GNU Compiler Collection (which is cross-platform, at least on Linux you can link a PE32 binary). However if BlitzMAX would integrate well with third party products (like say, CodeWarrior) this would quickly be a non-issue.

Neither do Windows users. They get it all free with their new computer, and steal the rest.

Speak for yourself.

Linux people don't buy stuff for linux. If they did, we'd be seeing wow on linux too...

Cross platform is a nice concept, but that's it. If you want to make some money on (or at least) games then don't bother with linux or mac. According to Flame, Apple users don't actually play games (unless it's the worldwide leading MMO) and linux users don't pay for software, and regular users cannot install a hardware acceleration card (I know I cannot). There is no market, unless you create AAA titles (I don't see that happening), or if you don't create games.

Which ironically is exactly why we bought blitz basic back then in the first place.

Maybe there is a market for apps, but like Flame said again in another thread: the GUI system is not really fit to create full-blown apps as the feature set is still lacking more advanced features most people need when you create sophisticated GUIs, as it seems to be added to let you (the games developer) create your editors and stuff... Which adds to the question again why it was added as you create your editors on the system you develop on, not the system you develop for. Why do I need a GUI system for Mac or Linux when I develop on Windows? Sure, the choice is nice, but agina, not practical. Add to that the huge differences between the GUI systems (Windows, OS-x, Linux) and you've got a development hell cut out for you.

Oh and Flame: I use windows, are you calling me a thief? I don't steal the software I use you know.

Cross platform is a nice concept, but that's it. If you want to make some money on (or at least) games then don't bother with linux or mac.
Oh how I laugh.

lol

I don't think it would be suitable for Max to achieve cross platform purity by having integration with other large applications that you'd have to pay extra for just to get the functionality. I don't want to purchase code warrior. I would like Max to do the work for me - it's a loyalty thing, not rational ;-)

Flamey .... the ?Windows ?Mac and ?Linux directives are all very well but should not be something that the user should have to touch. It's all very well that Max has to do platform specific code behind the scenes, but I shouldn't need to know about it or get involved in it. That's why I think they should be removed, if Max were capable of being purely cross-platform, so I wouldn't have to think about making something specific. I don't care what Max does under the hood to get things working, so long as from my vantage point, from the work that I put into things and the knowledge that I have, I don't have to sacrifice something or make changes to adapt MY contribution to a given platform.

I also agree Max has a compiler, which it had even back in the BlitzBasic days on the Amiga, which was a big part of its appeal. But I can see how getting things to compile for all platforms, from all platforms, is quite a complicated thing.

I disagree with Wiebo that cross platform is just fairy fluff. Since my main platform is a Mac and I don't own or intend to own a PC, all my development has to occur on the Mac and compile on the Mac. I am thinking I might hijack a relative's PC to compile a linux/windows version but that's about it. I don't want to directly develop ON the pc. If it weren't for Max's cross-platform nature, I would not be here writing right now, because it's only due to Max coming out on the Mac (first) that I saw the entire programming occupation as a possibility again. If Max weren't on the Mac I would never have gotten back into this stuff.

As to MaxGUI I think it is adequate to create whatever you want. I think that naturally things that are supported in Max by default are `helpful` for most people but if you want to do advanced stuff then you have to reach out behind the scenes and do some things yourself. You could easily write your own routines to create additional functionality in a GUI based on what MaxGUI offers. Just because it doesn't come provided `by default`, like how Max2D doesn't have some things by default, doesn't mean you couldn't do those things if you were serious about it. Even if it means writing your own custom gadgets and control code, it's still possible. The basics are there. If you are serious about greating advanced software you will also be serious about going above and beyond what is provided to you and you'll step into the brave world of finding ways to make it happen. The tools you are given don't define what you can create with it. That's down to your imagination.

Oh how I laugh.

You do that. I don't waste my time anymore with cross platform development. It's nice that you are creating your modules with cross-platform compatibility, but I have yet to see someone who uses it to make something decent. Can you tell me if your cross-platform modules turn up in linux or mac games?

I disagree with Wiebo that cross platform is just fairy fluff. Since my main platform is a Mac and I don't own or intend to own a PC, all my development has to occur on the Mac and compile on the Mac.

If you ONLY use a Mac then you're not developing cross-platform. So you concentrate on one system/market. Good, so do I. Compiling an .exe on windows from time to time doesnt count as cross-platform dev imho though.

The tools you are given don't define what you can create with it. That's down to your imagination.

True, but they do define the time you need to spend to get a decent product. I've developed several custom gadgets and handle code for my form editor, GUIde, because I wanted to create a good application. Took a lot of time though, even if this is my hobby. Think about how many developers are ready to spend their valueable time in things like that. Not too much. The GUI system was, and still is, lacking for serious and quick development (which was the main appeal of Blitz to begin with) and it is losing that appeal very quickly.

Don't misunderstand me. I love Max, but I've got my hands full with one platform, as the others are too much of a bother.

Compiling an .exe on windows from time to time SHOULD be what cross-platform development is about. In other words, there is a unity or oneness across the platforms which means I should be able to build the application on any platform and it should do the same thing. I don't HAVE to spend time developing separately and individually on different platforms in order to get something running. That's what it's meant to be like. I should be able to select my platform of preference, do all the development on it, then very very easily and with absolute minimal effort `port it` to the other platforms, preferably with no further coding whatsoever. Why would I then go and do more work on those other platforms? To do what? The only work you'd have to do is to make up for where the cross-platform ability of Max was lacking.

Time isn't valuable, either. There's plenty of it and it isn't going anywhere.

Speak for yourself.
Hey, I'm just repeating what our industry organizations are telling us. Haven't you heard? Piracy is destroying windows, that's why they feel they need such draconian copy protection schemes in the first place. Oh and I couldn't speak for myself, since I'm not really a windows user. And the reason you're not seeing a specific Linux version, is because Linux is not a mainstream OS, and the Windows version of WoW works with Transgaming anyway.

Apple users don't actually play games (unless it's the worldwide leading MMO)
Maybe if other games existed, it wouldn't be like that? But by all means stay away from Linux and Mac. More market for the rest of us.

Time isn't valuable, either.
Sure it is. Time to market is a crucial element. Which somewhat ironicly is the argument in favour of your position, that people shouldn't have to muck around with their game, just to get i running on Windows.

Oh and I couldn't speak for myself, since I'm not really a windows user

I look at your sig and see other things

More market for the rest of us.

When did you release anything, flame?

Piracy doesn't destroy software, software that attempts to protect itself destroys software.

I look at your sig and see other things
You just have a different definition of what a Windows user is. People desperate to belong to a group will often include anyone they can in that group, whether they want to belong to it or not. I don't use Windows by choice, and once I graduate, you'll see my sig reflect the OS I prefer using.

When did you release anything, flame?
First of all, you seems to be a little confused by the terms. By "the rest of us" I don't mean "me". I meant everyone who does write cross platform applications. With the exeption of a small BlitzPlus application, done for a client, I don't really release stuff unless specificly asked, since until quite recently BlitzMax programing was a hobby, rather than a profession. Long time members of this board will remember I used to offer up all my source code on www.blitzbasic.dk but since it crashed, and no-one seemed to care, getting it up and running again hasn't exactly been a top priority.

Piracy doesn't destroy software, software that attempts to protect itself destroys software.
I never said it did. I said that pirates (and by extension a large portion of Windows users) do not pay for software - at least not the developers.

>>Never did see the point of the Linux stuff. Linux people don't pay for sofware anyway. <<

What the ... ? Of course I've paid for my software. I doubt that anyone's reason for using linux is not paying for software.


Flamey .... the ?Windows ?Mac and ?Linux directives are all very well but should not be something that the user should have to touch. It's all very well that Max has to do platform specific code behind the scenes, but I shouldn't need to know about it or get involved in it. That's why I think they should be removed, if Max were capable of being purely cross-platform, so I wouldn't have to think about making something specific.



All cross-platform languages that I know of have these sort of compile/run-time directives. What you're sort of suggesting is an abstract "4th way" of performing functions. While not a horrible idea, it presents a lot of long-term problems that aren't always immediately apparent.

As Flameduck eluded to earlier (although his answer was a bit more political than technical), sometimes function A isn't abstract enough to generalize across several platforms. The risk of making it difficult to retain efficient compilation as operating systems upgrade and evolve is greater if you go your own way.


If it weren't for Max's cross-platform nature, I would not be here writing right now, because it's only due to Max coming out on the Mac (first) that I saw the entire programming occupation as a possibility again. If Max weren't on the Mac I would never have gotten back into this stuff.



There are several reasons to own a Mac. Arguably more for owning a PC. Either way, easy cross platform languages have been native to Mac for quite some time... Java and Python have been available since OS X 9 or earlier.

I do agree with your letter "B" though. However, there are problems with that too. That sort of takes Max to the CLR/JVM-like intermediate language model. Since Max is a minor player in the language game, you'd have to pacakge the Max byte-code compiler with each application (unless Mark and Simon could convince Microsoft, Apple and Redhat/BSD/Linux Flavor X to distribute Max virtual machines in their operating systems) Doing so would probably make the install package a fairly daunting size for online distribution.


Never did see the point of the Linux stuff. Linux people don't pay for sofware anyway.


Getting anything to work reliably on every flavor of Linux is a labor of love.

Linux people do not pay for software because a majority of their widely used software is available via open source. It's not so much a piracy thing more than a really can't pay for it thing (though most open source projects do accept donations... and believe it or not... people DO donate if the product is good and there's a desire for long-term support).

I've seen plenty of software for Linux that isn't free. Linux users should technically have more money to spend on entertainment software since they save it on operating system costs. :)

But again, the challenge is making software that stably runs on all linux flavors. Linux open-source approach is it's own worst enemy in many ways. The variety of kernals don't allow a build-once distribute-many luxury found on Windows and (mostly) Mac. This instability produces a support nightmare for the small game shops like the ones here.

Honestly, in my opinion, that's what prevents Linux from becoming a major player in the home market. You usually can't simply install a program and run it. Short of including your source code and letting the application compile natively on install, it's highly difficult to guarantee your program will run on anyone's linux system.


d) Rubbish. Scrap the IDE and provide integration tools for Eclipse, Xtools, Code WArrior and Visual Studio (in that order).


I agree. Except I'd move VS closer to the top now that they have a free version available.

I agree. Except I'd move VS closer to the top now that they have a free version available.
Well price wasn't really the issue for the ordering, so much as feature set and cross platform development potential.

I could keep pointing out the holes in flame's logic, but that would be pointless, as debating a point ad-infinitum is flame's hobby, instead of actually producing stuff.
Reading this thread though does prove though that corss-development is not a no-brainer, and most people prefer to concentrate on one platform anyway.