Hi John,
I will reply to you off list, as we are straying away from gaming here.
Cheers.
Damien.
From: john
Sent: Thursday, August 24, 2017 3:29 PM
To: blind-gamers@groups.io
Subject: Re: [blind-gamers] bgt exclude components
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