{"id":389,"date":"2014-08-08T14:19:46","date_gmt":"2014-08-08T14:19:46","guid":{"rendered":"http:\/\/www.coolbasic.com\/blog\/?p=389"},"modified":"2014-08-08T14:19:46","modified_gmt":"2014-08-08T14:19:46","slug":"the-story-of-blitzbasic","status":"publish","type":"post","link":"https:\/\/www.coolbasic.com\/blog\/2014\/08\/08\/the-story-of-blitzbasic\/","title":{"rendered":"The story of BlitzBasic"},"content":{"rendered":"<p><img decoding=\"async\" src=\"http:\/\/www.coolbasic.com\/common\/images\/archives\/2014\/08\/bbasiclogo.GIF\" alt=\"BlitzBasic logo\" \/><\/p>\n<p>3 months ago <a href=\"http:\/\/www.blitzbasic.com\/Products\/blitzplus.php\" title=\"BlitzPlus\">BlitzPlus<\/a> went open-source. A few days ago <a href=\"http:\/\/www.blitzbasic.com\/Products\/blitz3d.php\" title=\"Blitz3D\">Blitz3D<\/a> followed. When I first read about BlitzPlus being made available on GitHub I kind of silently congratulated them for making that decision. To me it wasn\u2019t surprising at all because of what has happened to the indie game industry and hobbyist game making in general for the past few years. The trend is strongly leaning towards mobile platforms &#8211; at least for 2D games. On PC you\u2019d better be going with 3D nowadays &#8211; unless your 2D game is either one of those more complex genres, or when the touch interface isn\u2019t enough. In other words, BlitzPlus had become somewhat obsolete (being 2D only and desktop only); it simply doesn\u2019t answer to the modern game development demand. So in my opinion, it made perfect sense to go open-source since not them (The Blitz Research Lab), or anyone else would be making any real money out of it &#8211; especially now that they have <em>two competing products<\/em> of their own (i.e. BlitzMax and <a href=\"http:\/\/www.monkey-x.com\/\" title=\"Monkey-X\">Monkey<\/a>).<\/p>\n<p>Originally, BlitzPlus was released after Blitz3D. I never understood why they wanted to do that &#8211; why develop a new product when they could\u2019ve just brought the new features (native UI commands) into the existing product, Blitz3D. It would\u2019ve strengthened the brand and not confused new customers. Not just that, but then they introduced BlitzMax whose main selling points were cross-plaform support (for the desktop) and language syntax enhancements. These changes actually do warrant a new product, though, because all of the breaking changes. From developer\u2019s point of view, however, cross-platform support is a nightmare to establish, improve, and maintain; you\u2019ll have to provide the base functionality for all supported platforms now, which will essentially multiply development time by an order of magnitude. This also explains why BlitzMax launched without 3D. They simply didn\u2019t have time to do it, especially when the community expectations were \u201cat least Blitz3D level of functionality\u201d.<\/p>\n<p>Thankfully, BlitzMax is rather modular. To this day it has been extended with countless libraries developed by the community. Much more than a one-man company can produce on its own. There was even a community driven 3D module in development. Sadly, it was shut down before release because Mark Sibly announced the \u201cofficial 3D module\u201d with some teaser screens and info. I believe there could\u2019ve even been a small demo. Well\u2026 that official 3D module never came out. I don\u2019t know what happened, but I guess developing a full featured 3D engine that works on all supported platforms the same way took so much time that Mark lost interest before it was finished. Just kidding.<\/p>\n<p>A more reasonable theory is that back then the mobile revolution was happening, thanks to iPhone, and Mark saw the huge market potential. So maybe the point of interest just shifted. As BlitzMax already had the functionality that met the mobile game development needs (which is to create 2D games as easily as possible), why not utilize that. So BlitzMax now needed to support new platforms. But if you want to run games on a phone it will place some limits to the engine. A system that was designed to execute on a desktop was too heavy for a phone. This is when Mark first hinted about \u201cbmax2\u201d on his blog. The new system would have to be \u201clighter\u201d which in itself would already require lots of code rewrite. So why not bring yet more syntax enhancements and make it a new product. <em>Monkey<\/em> was born.<\/p>\n<p>Monkey targets 12 platforms, including <em>Ouya<\/em> and <em>PSM<\/em>. That\u2019s pretty impressive. The only way to make this happen in a reasonable way is to translate a program written in the Monkey language (basically a BlitzBasic derivative) into some well-known other language and compile that for the target platform. Based on what Mark has written on <a href=\"http:\/\/marksibly.blogspot.fi\/\" title=\"Mark Sibly's blog\">his blog<\/a> from 2011 onwards there has been quite some technical challenges to get everything to work on such a broad set of platforms. Fighting environment related bugs rather than having fun implementing new features into your product can get really tiresome after a while. And I think that explains why the development of Monkey has been slow. It\u2019s still plagued by a large amount of little bugs. These are nasty because they seem so minor in the users\u2019 eyes and if not fixed in a timely manner they will begin to lose interest and faith into the product\u2019s quality. In addition, new potential customers first scan the forum for some general information, then find about the endless list of these small unfixed things, get a negative first impression, and move on in search of alternatives.<\/p>\n<p>All these products. All these years. Yet there is no 3D functionality apart from Blitz3D. And B3D is still based on the ancient DirectX7. Even mobile games nowadays heavily utilize 3D because the sharp improvement in hardware performance in modern phones and tablets. What\u2019s more, is that the explosion of mobile market has caught the interest of \u201cmore-than-just-indie\u201d level game development companies. These shops have professional 3D artists, animators, programmers, composers and designers and release some really nice looking 3D titles for mobile devices. Mobile games are no longer all about 2D. And if Blitz Research Labs want to be offering a \u201cserious\u201d development tools that target these platforms, they\u2019ll need a 3D engine and fast! Unity is already taking over as the \u201cde facto\u201d environment to develop 3D games for the mobile. You\u2019re already late!<\/p>\n<p>There is a <a href=\"http:\/\/www.monkey-x.com\/Community\/posts.php?topic=5548\" title=\"Monkey-X Forums - Monkey roadmap\">roadmap<\/a> for Monkey that hints about \u201cmojo3d\u201d.<\/p>\n<blockquote><p>Mojo3d is already in development &#8211; although it may not be called that once it&#8217;s finished. The basic idea here is to provide a simple, immediate mode, low level 3D API that people can use to write higher level stuff with, for example, a backwards compatible Mojo driver capable of enhanced effects\/custom shaders etc. Currently, I am aiming for compatibility with all targets capable of gl2\/gles2\/d3d11. More on this is it develops&#8230;<\/p><\/blockquote>\n<p>It\u2019s still not out, and reading that topic gave me the impression that it\u2019s not going to be anytime soon. As I said earlier, the expectations are \u201cminimum B3D level of functionality\u201d, but this time for all target platforms. Mark, haven\u2019t you learned anything? You really want to try and make it available on all 12 target platforms, including HTML5?! Even Unity doesn\u2019t do anything like that (there\u2019s a browser plug-in for rendering instead). This is a MASSIVE job to do; you can\u2019t handle it alone. Not within a reasonable time anyway. At the same time your competitors are rocking away with their 30+ member development teams. Technology soars up faster than ever before. If you do this the engine will be outdated right from the get-go.<\/p>\n<p>3 months ago, Mark dropped a bomb. He said in the roadmap topic:<\/p>\n<blockquote><p>Alas, there is no ETA on &#8216;next up&#8217; Monkey features.<\/p>\n<p>The sad truth is, Monkey sales are not good and it&#8217;s likely I will have to find some kind of &#8216;supplementary&#8217; income soon &#8211; not easy for a guy who&#8217;s never held down a real job! Well, since I was 18 anyway. This is not likely to improve productivity, but I do plan on at least continuing to provide updates\/fixes and improvements to current Monkey, pretty much as I have been doing recently. But &#8216;Monkey 2&#8217; (as it was evolving into) is right now on hold.<\/p><\/blockquote>\n<p>It\u2019s possible that Monkey 2 was supposed to be a successor for Blitz3D and\/or BlitzMax. But since that is now out of the picture and Monkey is going to have only maintenance fixes from now on, I wouldn\u2019t expect new products anytime soon. Which means that Blitz is losing the last momentum it had and will undoubtedly be overshadowed by the competing products.<\/p>\n<p>Soon after that statement, Mark wrote a <a href=\"http:\/\/marksibly.blogspot.fi\/2014\/04\/slightly-depressing-update.html\" title=\"Article: slightly-depressing-update\">follow-up<\/a> in his blog. The article was titled \u201c<strong>A slightly depressing update&#8230;<\/strong>\u201d where he elaborates about the low Monkey sales. BlitzPlus was announced open-source 2 days later. <\/p>\n<p>He agrees that marketing could be better, but in my opinion fails to see some important points that all, in my opinion, play part in the problem. Anyway\u2026 this post was depressing also to read, and it has caused a lot of stir and concerns all over Monkey and BlitzBasic forums. I have always thought Mark\u2019s writing style is a bit too aggressive, but this is not how you do PR. Even though you had to get it off your chest, you shoul\u2019ve picked your words better.<\/p>\n<p>And now Blitz3D went open-source too. For BlitzPlus it made sense, but I really don\u2019t get the reasoning behind this move. Yes, it\u2019s old (15 years, huh?), but it\u2019s still *the 3D dev tool* in their whole product line. All you had to do was to update its engine pipeline to use DirectX 11, and perhaps add more commands that affect the entities\u2019 appearance. Maybe physics too. Make it compatible with the more modern Windows versions. Or maybe MacOS and Linux. I know that you couldn\u2019t apply the syntax enhancements that BlitzMax and Monkey have, but quite frankly, you didn\u2019t have to. People would still use it. You don\u2019t have to (and shouldn\u2019t) compete with your own products. Monkey and Blitz3D serve different needs; one is cross-platform and the other is specialized in desktop (it doesn\u2019t matter if it had a simpler syntax).<\/p>\n<p>The problem is that the Blitz Research Lab has too many products. Instead of adding to existing products they develop a new one. And each time the new product is expected to also contain everything than the previous product did. In addition, they also keep introducing these breaking changes to either libraries or language syntax. Even though it may seem like a good idea to release something completely new every now and then (and get paid for of the purchase) the fact is that you have a flaw in the business model.<\/p>\n<p>Blitz products have always been buy-once-get-lifetime-updates-for-free. This can only take you so far. You basically have to develop completely new products regularly to get (partly the same) users to pay more. And there comes a point where the amount of work is simply too much (especially for one man) to sustain this pattern. Too little return for too much work. Now, look at how some other companies do it\u2026 companies like Microsoft, Adobe, Autodesk etc. They too publish a new version of their most popular software every 1-3 years. But they always build on top of the previous version. If you take a moment and look how Visual Studio, for example, has evolved since 2003\u2026 it improves each time, but is still definitely based on the previous version. Moreover C# and VB.NET have both evolved as languages too, adding new features and syntax. But the developers still view C# as a single language and Visual Studio as a single product (or brand). As a result, the products are more mature, too.<\/p>\n<p>Even though I think Monkey is a great product, it simply fails at marketing. If you\u2019re a programmer, I completely understand that there might not be any interest in marketing. The Blitz Research Lab is a really small company. I\u2019ve got the impression that Mark Sibly is completely self-employed, and I don\u2019t think there\u2019s anyone else to help with the \u201cboring\u201d things such as writing documentation, managing websites, or doing accounting. it would help a tremendous amount if you had a sales guy, or even another developer (who could handle the editor and website, for example). But the problem appears to be that they can\u2019t afford to hire anyone. It\u2019s a vicious circle that feeds itself: you can\u2019t do everything needed \u2192 products suffer \u2192 sales suffer \u2192 starts over. It\u2019ll generate frustration, create stress, lead to burnout, lose of interest etc.<\/p>\n<p>As someone in the Monkey forums put it: \u201cMonkey&#8217;s major issue is that it simply cannot keep up with the perceived competition in the form of Unity, Gamemaker and other well funded and well teamed tools, and the gap is going to grow over time.\u201d<\/p>\n<p>I think that BlitzPlus and BlitzMax were mistakes. Mark shoul\u2019ve just developed Blitz3D to have their features (while still targeting multiple desktop platforms). But the mobile revolution blinded him. He took a big risk with Monkey and it didn\u2019t turn out as well as expected. While the new language features such as classes with constructors, and even polymorphism do sound good on paper the fact is that at that point why would I not choose C++ instead (especially when you lose your sweetest carrot i.e. 3D). One might argue that BlitzBasic as a language would then be outdated. But that\u2019s fine because the game runtime and easiness to use it were the things that mattered most. Blitz3D had its target audience. But not anymore, and only because its tech is too old.<\/p>\n<p>While Monkey supporting mobile platforms is indeed a really nice thing, the problem is that those platforms already have <em>official<\/em> SDKs that everyone uses; If you\u2019re a newbie game developer who wants to create his first iPhone game the first googling will not lead to Monkey website. It will lead to the SDK download and developer community sites. Also, you won\u2019t find a way to solve your coding problems in Monkey but with the \u201cmore-adopted\u201d way instead.<\/p>\n<p>I don\u2019t know how Mark will overcome this, but I think making Blitz3D open-source without having a replacing product already available, was made in a hurry and without thinking. I don\u2019t think Monkey has any chance at competing with mobile game development tools (2D or 3D) anymore, but I don\u2019t know if introducing yet another product will be the desperately needed medicine either \ud83d\ude41  All I can say is: Mark, get a job to stabilize the income, take a time to think about what you want to do with the BlitzBasic brand and products. Put Monkey on Steam if you don\u2019t want to handle marketing on your own.<\/p>\n<p>BlitzPlus open-source topic:<br \/>\n<a href=\"http:\/\/www.blitzbasic.com\/Community\/posts.php?topic=102473\">http:\/\/www.blitzbasic.com\/Community\/posts.php?topic=102473<\/a><\/p>\n<p>Blitz3D open-source topic:<br \/>\n<a href=\"http:\/\/www.blitzbasic.com\/Community\/posts.php?topic=102907\">http:\/\/www.blitzbasic.com\/Community\/posts.php?topic=102907<\/a><\/p>\n<p>Source codes on GitHub:<br \/>\n<a href=\"https:\/\/github.com\/blitz-research\">https:\/\/github.com\/blitz-research<\/a><\/p>\n<p>Mark\u2019s blog:<br \/>\n<a href=\"http:\/\/marksibly.blogspot.fi\/\">http:\/\/marksibly.blogspot.fi\/<\/a><\/p>\n<p>Monkey roadmap:<br \/>\n<a href=\"http:\/\/www.monkey-x.com\/Community\/posts.php?topic=5548\">http:\/\/www.monkey-x.com\/Community\/posts.php?topic=5548<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>3 months ago BlitzPlus went open-source. A few days ago Blitz3D followed. When I first read about BlitzPlus being made available on GitHub I kind of silently congratulated them for making that decision. To me it wasn\u2019t surprising at all because of what has happened to the indie game industry and hobbyist game making in [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[12],"_links":{"self":[{"href":"https:\/\/www.coolbasic.com\/blog\/wp-json\/wp\/v2\/posts\/389"}],"collection":[{"href":"https:\/\/www.coolbasic.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.coolbasic.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.coolbasic.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.coolbasic.com\/blog\/wp-json\/wp\/v2\/comments?post=389"}],"version-history":[{"count":3,"href":"https:\/\/www.coolbasic.com\/blog\/wp-json\/wp\/v2\/posts\/389\/revisions"}],"predecessor-version":[{"id":392,"href":"https:\/\/www.coolbasic.com\/blog\/wp-json\/wp\/v2\/posts\/389\/revisions\/392"}],"wp:attachment":[{"href":"https:\/\/www.coolbasic.com\/blog\/wp-json\/wp\/v2\/media?parent=389"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.coolbasic.com\/blog\/wp-json\/wp\/v2\/categories?post=389"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.coolbasic.com\/blog\/wp-json\/wp\/v2\/tags?post=389"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}