Hi Damien, Well said on all counts. I'm in about the same position; I'd like to move to something with more features and support, but BGT does so many of the little things so easily its difficult to not look for ways around the engine's limitations (getting drive information via wmic and batchfiles rather than built-in calls, for example). I've also been struggling to find anything that compiles down to executables easily (java's special at best, python files are huge and have to decompress themselves, C is... C). Have you had any luck finding a language that can bridge the gap at all?
Best, John From: Damien Sykes-Lindley Sent: Wednesday, August 23, 2017 16:22 To: blind-gamers@groups.io Subject: Re: [blind-gamers] bgt exclude components Hi John, I’m afraid there are no public updates to BGT at the moment. To be honest until I hear any different I’m treating it more or less as a dying language. There has actually been an entire topic on Twitter today regarding the suitability of BGT, and I’ll say here, albeit more detailed, what I said there. BGT has its place. But it also has its limits. BGT is very good for creating 2d-based audiogames while being friendly for beginners in the process. BGT is not good for general purpose applications. Its speed isn’t optimised for it, neither is its size. Most importantly, its library support is extremely basic, meaning that in order to use a good 95% of available libraries with BGT, they would need separate wrapper libraries. When I first started to learn game programming, I started with VB6. While that was considered a programming language, it was still very much a limited environment. Tutorials were becoming scarce, examples low on the ground, and the language itself was dying out thanks to the introduction of the .NET platforms. Even DirectX needed it’s own VB-compatible DLL, hence the reason many users are struggling to play older games on Windows 7, 8, or 10. Believe it or not, my journey with VB6 came to an unceremonious finality during the beta testing phase of BGT. From that moment on, anything I wanted to do was done using BGT. So, to clarify. I started with VB6 (a COM/OLE/ActiveX environment), tinkered with AutoIt (a UI automation scripting language which also tried its best to serve a general-purpose environment but was far too specifically designed to do so efficiently), then moved house to BGT (a gaming platform). As much as some people may class these as programming, to me they are very much scripting. All sandbox environments, limited functionality, very specific purposes, and encouraging software development management skills which are not generally encouraged in general programming. It’s unfortunate, but a lot of people go through one of two phases: Either they switch to a general purpose language rather quickly, realise how much better it is, and come to despise the scripting languages they learned as introductory tools, or they treat it with unrestrained reverence, use them forever and a day, and become so reliant on these scripting alternatives that nothing else matters to them, to the point that they will even attempt to push these languages far beyond the boundaries of perhaps even twice their limits. I’m not saying that anyone on this list is at one phase or the other. Personally, I’m stuck sitting on the fence. I realise how much better general purpose programming languages are, in terms of speed and size optimisations. But the sheer size and the tasks that are either possible or mandatory with these languages I find all too overwhelming, to the point that sometimes finding libraries and compiling them can be a challenge in itself, without the extra coding and debugging. So while I appreciate some of the benefits of many general purpose languages, I have myself become all too reliant on the sandbox environment, having used it for the past 16 years. As a consequence, pointers, handles, data structures and callbacks on the coding end, and version control, package managers, bug trackers, unit testing, automated building and dedicated debuggers on the software engineering end, have only entered my programming world very recently – a sad situation for any application, games included. So, the upshot. If you know for an absolute 100% certainty that you only want to concentrate on audiogames, and 2d-based audiogames at that, BGT is a good option. However if you feel you also want to branch out into end product optimisation, 3d-based audio, environmental effects, general purpose applications etc, I would give the advice to skip the scripting stage and go straight to learning general programming and software engineering concepts. As far as I’m concerned, scripting languages are hinkypunks. They lure you into a false sense of security and then watch heartlessly while you’re dragged down by the realisation that programming isn’t as simple as scripting makes it out to be. Cheers. Damien. From: john Sent: Wednesday, August 23, 2017 7:48 PM To: blind-gamers@groups.io Subject: Re: [blind-gamers] bgt exclude components Hi Damien, Thanks for such a detailed response, that gives me exactly the info I was looking for. Unfortunately it is the base size of BGT I'm looking to reduce (an 850kb executable is a lot more than needed for 2kb of code). Do you happen to know if there's any development being done on it at all? I remember Philip had said a while ago he had some updates in the works, but that time to work on them was limited. Again, thank you for such a clear and helpful response. I can't say how refreshing it was to get this email, especially since I've been dealing with Microsoft support recently. Best, John From: Damien Sykes-Lindley Sent: Wednesday, August 23, 2017 13:05 To: blind-gamers@groups.io Subject: Re: [blind-gamers] bgt exclude components Hi, Unfortunately this isn’t possible. These components are part of the BGT engine rather than included scripts. Of course since BGT itself is a compiled executable, you can’t tell it to reduce its own size. If it were a C or C++ library that would be different. Also, BGT’s version of AngelScript doesn’t do any size optimisation techniques like removing code that isn’t used. For instance including the sound_pool library and not using it would still include the sound_pool code to your final executable. AngelScript is updated much more regularly than BGT is, however, so later versions of AngelScript may or may not utilise these optimisations. This is one of the reasons I don’t use BGT half as often as I used to. Literally the only way to optimise BGT executable size, is to use less code, and compile in release rather than debug mode. Cheers. Damien. From: john Sent: Wednesday, August 23, 2017 5:54 PM To: blind-gamers@groups.io Subject: [blind-gamers] bgt exclude components Hi list, I've recently been trying to find ways to reduce the size of BGT executables. Specifically, I'm looking to exclude unused sections of the engine during compiletime; for example, if I'm writing a program to work entirely offline, then there's no need to include the network subsystem. Does anybody know if something like this is possible? I write a lot of small, single-purpose applications that don't need many features, so it'd be really useful to trim them down to size, per say. Best, John