BlitzMax Online Runtime

Miscellaneous Forums/General Discussion/BlitzMax Online Runtime

Would Blitz Research consider developing a cross platform browser plug-in to allow for web based Blitz applications - kind of like Flash or Flex? I know that there's are Windows plugins that allow for this, but they aren't multiplatform (whole point of web applications) and still require meaty downloads. A dedicated runtime that sits within the browser and compiles some type of just in time code would reduce application download sizes - making a more feasible platform when considering download times for users and bandwidth issues for servers.

Flex is no plugin by the way...

From what I've heard, Flex is what runs in your browser and Adobe On Air is the framework that works outside of your browser.

This strikes me as one of the things which BRL should outsource to a third party developer. Realistically, with Simon working on MaxGUI and B3DSDK, and Mark working on BlitzMax and whatever Max3D ends up being called, so I can't see this happening.

There are things like a browser compatible runtime for BMax, and also a .Net implementation of BMax which I think would be fantastically useful, but are unlikely to get done by BRL. Perhaps someone who could handle this should get in touch with Mark and see about making it happen.

and also a .Net implementation of BMax which I think would be fantastically useful

In what way?

I'd think an ARM-compatible version of Max would be much more useful for gaming (since that is how BRL market BlitzMax, unfortunately).

In what way?

Because I think being tied to MinGW is going to limit BlitzMax's growth and development. Hell, it already is limiting it, what with being stuck with an old version and some people ( probably you and me among them ) having to work with different versions to produce modules, and some BRL modules not being compatible with recent versions.

In the past, if you wanted a huge codebase and access to most libraries, you used C++, you had no choice. Building BlitzMax on top of a C++ compiler has been fantastic for allowing integration of a lot of those libraries, and no one knows that better than you.

But the wind is changing, and C++ is not going to be the way to integrate with things in the future. A lot of libraries are already being built solely for .Net compatible languages. Delphi has gone .Net now ( ok, there are historical reasons for this, but even so, it means that a .Net assembly is now of use to Delphi users too. )

Here I am one year into a BlitzMax game project which is going to take another 2 years plus, and I'm already painfully aware that I'm going to have to end up porting the engine to C# or C++ if we don't have a .Net Blitz language at some point. I can't be the only person who sees this in their future.

EDIT: Let's be honest. For Windows development, this is Microsoft. Does anyone really doubt that it's only a matter of time until you simply can't *use* DirectX at all without using .Net?


I can't be the only person who sees this in their future.



I see it... I was writing in C# nearly all day yesterday and probably today too (If I can squeeze a few hours)... Porting my Word(ish) engine to XNA to see how it plays... And currently, the signs are looking good.

I understand the migration to managed code for developers IMO will be like the scenerio we had when DOS developers refused to admit Windows was the way forward. You either grasp it, or get left behind. I was never programming on a PC at the time, and understand things move on, and sometimes, you've gotta change your way of working, even if you dont want to.

People may also complain that the runtime is big (But lets be fair, its not a runtime library, its a platform like Win32), but really, it shouldnt interfere with developers deploying their games... Most games have or require you to install the newest version of DirectX, and I've never heard any complaints regarding that, ever. So to be fair, deploying .NET with your game isnt going to cause any bother.

I personally think .NET and managed code is the future in Windows development, and, DirectX programming too. And I think, if you wait longer and longer to jump on the bandwagon, you'll be years behind everyone else.

Which is never good.

Dabz

I approached BRL about this almost 2 years ago - they did not have the courtesy to respond. Other vendors are interested in making this happen so I expect you'll see something from someone else in the future. The problems doing this with BMAX are vast, as Gabriel mentioned. For example, how do you ensure that the user has a suitable compiler installed and what do you do about third party modules, dll's and updates?

Well I would certainly be interested in buying it. The solution to the problem about ensuring that the end user has a suiable compiler installed is that the Blitz application wouldn't be delivered as Blitz code, but more as byte code; the online runtime would act as a virtual machine like Java VM - the runtime would then compile a specific version of the application to run best on the users setup.

@GameBoy
Go to the Adobe site...

As much as i would love to see a crossplatform plugin for BlitzMax i somehow can't imagine a succesful third party plugin for it. These plugins are very security sensible and normally you want one vendor beeing ich charge for this!

And there we have Java, Flash, Director, Unity, ...most of them are also JIT compiled nowadays so that performance less and less will be an issue on the code side. Some do provide proper hw acceleration, some don't.


And there we have Java, Flash, Director, Unity, ...most of them are also JIT compiled nowadays so that performance less and less will be an issue.


Any reason to have another plugin to install?
At this point better a mod that 'convert' a BlitzMax program (and resources) to Java - so it can run even on mobile-phones.

Game Boy, Flex is based upon the Flash platform.

I see it... I was writing in C# nearly all day yesterday and probably today too (If I can squeeze a few hours)... Porting my Word(ish) engine to XNA to see how it plays... And currently, the signs are looking good.

Oh yeah? How bad has it been so far? I'm currently undertaking a complete rewrite of my game engine ( still in BlitzMax ) to make it much more streamlined and readable so that it would be easier to port then that day arrives. The main thing which concerns me is libraries. Last time I tried playing with C#, I had problems finding exact replacements for TList and TMap. I found that the C# collections don't include collections with the exact same functionality, which led to problems. How are you handling that? Writing your own or have you found collections you're happy with?


Oh yeah? How bad has it been so far?



Been going great Gabs mate... I'm not new to C# as I've been dabbling with it for years (off/on) and have already knocked a couple of small things up with it using XNA:-

http://www.syntaxbomb.com/forum/index.php/board,47.0.html

Once you find out where everything should go when starting a project (And the included XNA tutorials show you this), its a breeze.

Regarding collections, System.Collections has a vast amount of neat ways of storing your data, and found that yes, they dont actually provide what I need, or so I thought...

I've been using ArrayLists to collect my objects, and have bundled together something like this:-

Crap example removed, look below! ;)


I picked that up in the docs and changed it a little, but you can see how I'm going with it, and its working just fine! :D

Dabz

Just thought, that may not be a good example as you usually use For loops to fill lists:-

using System;
using System.Collections;
using System.Text;

public class XY
{
    public int x;
    public int y;

    public void ShowObjectValues()
    {
        Console.WriteLine("x:{0}", x);
        Console.WriteLine("y:{0}", y);
    }
}


namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            ArrayList myAL = new ArrayList();

            for (int loop = 0; loop < 10; loop++)
            {        
                    XY xy = new XY();

                    xy.x = loop+1;
                    xy.y = loop+10;

                    myAL.Add(xy);
            }

            ShowAllObjectValues(myAL);
        }

        public static void ShowAllObjectValues(ArrayList myList)
        {
            foreach (XY obj in myList)
                obj.ShowObjectValues();
            Console.WriteLine();
        }
    }
}


That shows it a lot better! :)

Dabz

I had problems finding exact replacements for TList and TMap.
ArrayList and Dictionary. Respectively.

Thanks guys. I don't get a lot of free time, but I would like to spend a little time now and then practicing my C++/C# skills so I'm hoping to start by porting sections of my game engine over. ArrayLists and Dictionaries look like they'll be good.

From what I've heard, Flex is what runs in your browser and Adobe On Air is the framework that works outside of your browser.


Flex tuns in Flash, like Winni said. AIR applications, however, can be developed in not only Flash, but also in HTML and JavaScript. Your statement was correct I suppose, but just a bit misleading.

As of .NET 2.0 and beyond, you should avoid using ArrayList in favor of System.Collections.Generic.List<T>.

The generic collections give you better performance, usability, and safety.

I guess if you really need to port something directly over from blitzmax's lists -- ArrayList is the closest in operation but, uhm....to quote myself:

The generic collections give you better performance, usability, and safety.



So yeah :)

heh. that was fun!


The generic collections give you better performance, usability, and safety.



mmm, I didnt know that... will look into it though Orca! ;)

Thanks

Dabz