Hi Thomas,

We are certainly in agreement here. Unicode conversions, memory management and all the other things are certainly a pain which I guess is why we are writing engines. Smile. Luckily AngelScript has built in garbage collection so I didn't have to worry about that part, but I did have to write a small converter function from char* to WCHAR* etc. Not a big deal if it is called behind the scenes by the scripting engine but if you need to actively use it while programming, that's not so good.

As for .net, I dislike it for a few reasons. First of all, it is huge. Huge, bulky, and constantly being updated so you need to download new versions of the thing. There is no reason why a few programming components should be that large, in my opinion. Granted Windows Vista and above are including .net, but then there is the issue of extra dependencies, like to play certain games you need to install not only .net but also this extra wrapper, and then a wrapper for that wrapper. Not something I'll cheer for. When I download a game, I just want it to run. I don't want to care about what it uses internally. See my drift? I also don't like the fact that .net programs are so easy to reverse engineer, and to protect yourself you need to get yet another extra add-on. Not nice. Oh I don't have a problem that a high level language compiles into mid-level byte code, .net does it and so does AngelScript and Lua and what have you, but the environment should take measures to secure the byte code. I use strong encryption to protect mine in BGT. Oh I'm sure it can be cracked, but at least I am trying and not making people get an upgrade just to have basic security features.

How come you decided to switch from .net to C++? What were your main reasons?

Kind regards,

Philip Bennefall
----- Original Message ----- From: "Thomas Ward" <thomasward1...@gmail.com>
To: <phi...@blastbay.com>; "Gamers Discussion list" <gamers@audyssey.org>
Sent: Friday, January 28, 2011 4:40 AM
Subject: Re: [Audyssey] Game Engines was Heli

Hi Philip,

You definitely have a point. Although, I know C++ fairly well myself I
don't like using it as much as something like C# .NET just because its
a little too low-level for my liking. As author Jesse Liberty put it
in his book Teach Yourself C# .net in 21 Days, "going back to C++ is
like pulling teeth." He has a very good point as C# .net via the .NET
Framework wraps all that low-level stuff in a high-level interface.

For example, as you know and I know, a lot of the Windows API
functions take Unicode character strings. Well, if you have a lot of
anci strings you have to convert them to an unicode wide character
string before passing them to the API function. That's a pain in the
butt. In .net languages you don't have to worry about that problem
because the System::String class can convert between ansci and unicode
quite easily.

Then, there is the issue of memory management and garbage collection.
To be honest the garbage collecter is one of the strong advantages to
using .net languages rather than C++. With C++ you are on your own
unless you write your own garbage collecter to manage garbage
collection in the background.

Anyway, I agree with you. For various reasons writing games in C++ is
a pain. There is no doubt about that. Using a scripting language like
Angelscript or using a .net language as a high-level interface is
obviously a much easier solution all things considered.

Although, I'm curious to know why you don't like .net. There is a lot
i personally like about it, and for Windows programming it makes my
life as a programmer much much easier. There is also Mono, a Mac/Linux
implamentation of .net, which really makes cross-platform development
fairly straight forward for a lot of apps.

As for the BGT documentation I can't honestly remember when the last
time I looked at them was. It was well before 1.0 came out. Maybe beta
3 or beta 4. Something along that lines. As you said, a lot has
changed since then, and I should have looked before saying what I


On 1/27/11, Philip Bennefall <phi...@blastbay.com> wrote:
Hi Thomas,

I don't know when you last viewed the BGT documentation but until fairly
recently, the more advanced object oriented parts of the language were not
covered at all in the tutorial. AngelScript has inheritance, polymorphism
through interfaces, overloaded functions and class operators, and even such
things as function pointers. So while not quite a programming language it
comes very close while stil being extremely simple, and I would never go
back to writing actualg ame logic in C++ again. I'm all for using C++ where
speed/performance is concerned, but equally as convinced that high level
game logic should be written in a high level language. And since I am not a
fan of .net, I ended up using a scripting solution. This way I don't even
have to initialize anything, no need to open a device, set up DirectInput or
even worry about creating the window or setting up the timer threading
model, all this is done behind the scenes for you. Similarly, everything is
properly destroyed even if a script exception occurs.

Kind regards,

Philip Bennefall

Gamers mailing list __ Gamers@audyssey.org
If you want to leave the list, send E-mail to gamers-unsubscr...@audyssey.org.
You can make changes or update your subscription via the web, at
All messages are archived and can be searched and read at
If you have any questions or concerns regarding the management of the list,
please send E-mail to gamers-ow...@audyssey.org.

Reply via email to