Thursday, May 27, 2010

The plan!

Hi,

Ok, here's the plan:

I am currently working on a 'light' version of BlitzMax designed to run on a wide range of target platforms. For now, let's call it 'bmx2'.

Bmx2 will be similar to bmx language wise, but will have a much smaller and simpler set of modules that will be targeted at simple 2D game creation.

But the major feature of bmx2 is that it will be a 'translator', designed to convert code from bmx2 syntax to as many target languages as possible - preferably in as human readable a form as possible.

I have already made considerable progress generating output for the following target languages: C++, C#, Java, JavaScript and ActionScript. I also plan to add python add some stage, and...?

In addition, I have a simple Blitz2D/Max2D-like module underway and some very simple 'system' modules for the following platforms: Win32, MacOS, Linux, HTML5, Flash, XNA, Android. There's an iPhone version too, but it's status is very much 'up-in-the-air' right now due to licensing issues.

Anyway, development has now reached the point where I am interested in getting more people involved.

Right now I'm interested in people who are keen on language design and/or have some experience with several languages. If that sounds like you and you'd like to get involved please contact blitzmunter at gmail dot com.

Flash demo (well, not *that* flash - very simple actually! You may need to click window to activate too):



Same demo running on HTML5, Android and XNA:



LOTS more info soon.

Peace out!
Mark

37 comments:

  1. Hi,
    nice 'plan', but I'm a little confused about this.

    1. Please don't call it Bmx2, call BlitzMaxVoodoo - BMXMultiverse or whatelse.
    2. it seems to be a 'subset' of Blitzmax, game targeted: nothing bad in it, but it seems a 'step forward' than a 'step ahead'
    3. good news about the 'translator' for other 'languages/platforms'... but this seems to make (to me) not a language but a tool (maybe usable for BlitzMax or Blitz3d too...)
    4. what are the differences with BlitzMax?

    Yes I know this is only a plan, an alpha stage etc... and take my post only for constructive critic (if any) or suggestions.

    Cheers

    ReplyDelete
  2. Hi

    > Please don't call it Bmx2

    Ok.

    > nothing bad in it, but it seems a 'step forward' than a 'step ahead'

    I am trying to create a 'very cross platform' system and as such I'm kind of forced to keep things simple (for now anyway) or the work involved in getting it going everywhere would be overwhelming. Besides, I'm still a great believer in the idea that with a small, well chosen command set, great things are possible!

    > good news about the 'translator' for other 'languages/platforms'... but this seems to make (to me) not a language but a tool

    It's a 'proper' language that could be converted to ASM (or LLVM) if required. But this would really be kind of pointless - it's much eaiser AND more useful/flexible to instead convert to other high level languages.

    It contains a parser which generates an 'abstract syntax tree' (AST) just like a normal compiler. However, the AST is then converted into any number of target languages - so the AST is really the 'intermediate representation' (in compiler-talk terms).

    More on all this later!

    Bye,
    Mark

    ReplyDelete
  3. Hi Mark
    Looking really good.
    I'm very happy to see HTML5 and Android on the list.

    ReplyDelete
  4. Hi Mark,

    This baby sounds very interesting, but it is only of limited use if you restrict it (again) to be a "games-only" language.

    You see, with BlitzMax you have created something that is so much more than just a 2D-games-creation language. It's more like Java without the buzzwords and the corporate managers, and many folks actually use it to write (gasp!) applications with it. You know, boring bread and butter stuff to pay the bills.

    It would be just great if this new BlitzMax Mobile/Lite would have strong support for native GUI apps, networking and SQLite and other databases.

    I know - it's not the kind of business that you want to do, and I can't blame you for it. After all, it's dull stuff and there are many reasons to NOT waste one's life with enterprise boredom. But I thought I mention it anyway.

    As for your question, I've spent a couple of years of my life as technical writer, support engineer and also as developer on the Xbase++ team at good old Alaska Software, so I have some of that experience you are looking for.

    Ciao,
    Winni

    ReplyDelete
  5. The C# translation layer means you could use this new cross-compiler to create Xbox 360 games in this bmx edition? I mean, is it using purely XNA or anything windows speciffic?

    ReplyDelete
  6. It will be interesting to see how access to native API's are handled, when the API SDK is not available on the translators platform.

    ReplyDelete
  7. hi,
    will be possible in future make 3D games with minib3d or leadwerks module using bmx2?

    I always waited for this and
    being a 3D artist Please I need to know.

    ReplyDelete
  8. This comment has been removed by the author.

    ReplyDelete
  9. Please just make BMX with more features and more platforms, without the attempts at game-making modules. Get rid of the graphics and sound modules, and just make the language and compiler. The community can do the rest.

    ReplyDelete
  10. If you have any compiled Android *.APK game you want testing I can install and test on my Moto Droid/Milestone handset

    ReplyDelete
  11. Awesome! Can't wait to try it.
    Btw: maybe you can post the code used to flash game above?

    ReplyDelete
  12. Is one of the aims of this to standardise serialisation over the range of supported platforms? That would be as important to me as the gfx-related stuff.

    ReplyDelete
  13. This sounds like exactly the tool I want. I can't wait 'til it's ready for prime time :)

    ReplyDelete
  14. Sounds terrific! I dig this idea and will buy it when released for sure!

    ReplyDelete
  15. > I mean, is it using purely XNA or anything windows speciffic?

    It's pure XNA - it should be capable of producing games that run on Windows (although you'd probably want to use the native version instead as apparently XNA has compatibility issues on Windows), Xbox and Windows Phone 7 (love that name!).

    ReplyDelete
  16. I would like to have a live interpreter-based system running the source code. It's so much quicker than keep doing the "build, compile, package, sign, install, launch" thing on Android for example. I would rather leave that to the final stage

    ReplyDelete
  17. Mark, the plan sounds good, good luck with that, hope it goes well. With your skills I can only expect a wonderful tool to come out of this. :)

    Please don't take any advice from any Blitz forum members, they seem to take total leave of their senses when discussing your activities.

    Cheers!

    ReplyDelete
  18. This is exciting, exactly what I would need right now. A shame that it will take a while till I can pay for a license.

    But Android, Flash and XBox 360 development all from one source is just great! If you want someone to test with Motorola Droid and Xbox 360 then I would be more than willing to help! Email is xivoo at xivoo dot com :)

    ReplyDelete
  19. Thinking more about this, I'm hoping the 2D engine will have vector graphics support. I see a huge potential in the HTML5 branch for making not just games, but also banners and other interactive web page elements now typically made with Flash.

    ReplyDelete
  20. Mark: Will the AST parser/generator be available as a module? This would allow us to build our own blitz->[insert name] tool chain translators.

    ReplyDelete
  21. Hi,

    > Mark: Will the AST parser/generator be available as a module?

    Yes!

    ReplyDelete
  22. The idea surely sounds interesting, but that's about it. I mean I really like (love?) BlitzMax and I really don't know why, since it has many shortcomings. (No 3D, no function overloading ..)
    The german BlitzMax community has sent you an E-Mail with suggestions for improvement, but there is still not even an answer.

    What I want to say is that I am afraid that you concentrate on something new and BlitzMax, which is still not quite complete in the opinion of many, will be left alone. I don't mean to nag, I know it must be a lot of work to code BlitzPlus, Blitz3D and BlitzMax. But if you start something completely new, who will support and improve BlitzMax in the future?

    Please don't forget BlitzMax, it's too good to be forgotten.

    ReplyDelete
  23. I really can't wait to see more of this. Sounds really exciting and I know by past experience that it will exceed my expectations and will buy it right away.

    Keep it up! and please show us some code :)

    ReplyDelete
  24. Me again. I forgot to mention that I totally support Josh Klint's idea. It would be great to have stuff like Private/Protected/Public instead of a little Max2D addition or something like this. If you concentrate on the language the community can - and will - take care of the rest, just like with all other languages..

    ReplyDelete
  25. It seems that Apple has changed (again) the section 3.2.2 - now Apple allows to use 'embedded interpreted code in a limited way if such use is solely for providing minor features or functionality that are consistent with the intended and advertised purpose of the application'.
    So no more 'strictly' limit... it seems?

    ReplyDelete
  26. Yeh, they Apple has made good call this time. Even Shiva (with Lua scripting things) will work fine, so I'd guess this "BMX2" should be just fine for iPhone & iPad in terms of licence.

    This is so great news, can't wait to see this thing!

    Where can I pre-order this? o:)

    ReplyDelete
  27. Mark, this is fantastic news! I've been making a few javascript-based games for the web already, just as an alternative to all the flash sites out there. This would help tremendously, as well as getting them on phones. Can't wait to hear more!

    ReplyDelete
  28. "hi,
    will be possible in future make 3D games with minib3d or leadwerks module using bmx2?

    I always waited for this and
    being a 3D artist Please I need to know."

    simple question
    Once again the 3D developer always forgotten
    a yes,no,maybe or never
    is better than being ignored!

    ReplyDelete
  29. Hi,

    It will initially be targeted at simple 2D game creation.

    I would love to add 3D features eventually, but that is a VERY competitive area these days so I'd first want to come up with something rockingly cool/different or there'd be no point. So far I've only got a few vague ideas here...so no 3D for now.

    Also, bmx1 is certainly not going away anytime soon, so I can see it remaining the preferred tool for 'low level' stuff where you need direct-ish access to platform specific APIs etc. Bmx2 (or whatever) will be a much more abstract, higher level system.

    It would have been nice to think I could have just made a few tweaks to bmx1 to achieve what I want - but bmx1 is by now a pretty large project and has become somewhat resistant to change!

    Certainly, in the time it would have taken me to shoehorn in something like function overloading I could have achieved much more on a whole new version - which is what I'm doing.

    Not to mention that the overall design of the modules is very much dependent upon 'traditional' OS's and not particularly suitable for abstracting across a wider range of target platforms.

    No doubt disappointing some in the process, but 'more targets' is by far the most frequent feature request I get these days and this is best way I can think of achieving that.

    ReplyDelete
  30. This comment has been removed by the author.

    ReplyDelete
  31. hi,
    and thanks for replying

    just include/"enable" minib3d as was done with blitz max!
    it is not necessary more than Blitz 3D's command-set to create great 3d games for touch screen devices!

    ReplyDelete
  32. Yeah, thanks for the reply Mark.
    Although it's kind of sad, since without function overloading the whole OOP thing is kinda awkward to implement.

    ReplyDelete
  33. ..are we going to have some sort of SDK so we could easy plug in 3D solution of our choice for specific console?

    ReplyDelete
  34. So, what's the story with this so far? I'd love to give you a hand with the Android and/or Java stuff if I can.

    ReplyDelete
  35. Man, I'm so excited about this. Any more news Mark?

    ReplyDelete

Note: Only a member of this blog may post a comment.