Hi Dark, Those are some very good questions. As with everything there are pros and cons with either solution so I'll explain each of your questions below in more detail in a question and answer format.
Q: If we leave aside the cross platform issue and just talk about ease of developement, I'm just wondering what the reason to use C would be, sinse from your description it sounds rather like the long way round. A: Well, there are a number of key advantages to using a language like C++. besides the cross-platform issue C++ is a low level language that can be used to write anything from the Windows kernel, which is the core component of any os, to writing hardware drivers, to more advanced applications like games from scratch. The high level languages like Visual Basic can not do this because it depends on a runtime, a special API, that is most likely itself written in C or C++ which is both a strength and a weakness of languages like Visual Basic. visual Basic can write games and other applications but can not write an operating system or write hardware drivers etc. More importantly because C++ is more low level it is compiled into binary code, AKA machine language, and can instruct the system what to do directly without an intermediate piece of software between your program and your computer. This improves over all performance of the game or application. Unfortunately, most high level programming languages are easier but take a hit in regards to performance. For instance, if I program a game in Java or a .Net language my source code is compiled into an intermediate language that is interpreted on the fly by a runtime interpreter. If I write a game in C# .Net, for example, it creates a *.exe file, but its actually just instructions for the .Net runtime executable file which is written in C++. Although, this isn't a major concern for modern machines benchmark tests still show that .Net or Java apps lag behind in performance compared to an app written in C++. Another issue is installing dependencies. Back when I was using C# .Net for STFC and Montezuma's Revenge a lot of people didn't like the fact they had to download a 300 MB setup file for .Net, another 300 MB to upgrade DirecttX to get Managed DirectX for .Net, and then finally download and install the game itself. We were talking atleast 500 MB or so in dependencies for Windows XP just to bring the system up to date in order to play a game. With C++ you may have to install dependencies, but generally speaking if the app is using core APIs, native libraries, that come as a part of the operating system nothing special needs to be installed. This was one of the factors why I chose C++ to begin with. I don't mind installing one or two extra dll libraries, which maybe adds an extra meg or two to the setup file, but asking people to install 500 MB of .Net dependencies or 50 MB of Java dependencies or whatever is just a bit rediculous. Finally, there is the issue of security. C++ apps are compiled to binary which is not impossible to crack, but more difficult than most programming languages. Usually a developer can by a tool to encrypt the executable to make it very very hard to reverse engineer. .Net and Java don't have these safeguards, because they are compiled to an instruction language, an intermediate language, that can easily be decompiled back to Visual Basic, C#, or Java source code. Such apps need an obfuscator, to rewrite the intermediate language to keep this from happening, but it is widely known that high level languages are less secure than C++ for that reason. Q: Even entombed, was I believe programmed not in C but in in c# or C.net, and went from initial concept to 10 level monster in less than 18 months, with more floors following very quickly, yet it apparently uses one of these shortcut languages you mention. A: Yes, Entombed was written in C# .Net. C# .Net is a rapid development version of C++, extremely simplified compaired to the C++ language, and a developer can get things done very quickly in C# .Net. As you might recall when I took over Montezuma's Revenge from James North I had completely rewritten the game from scratch in like three months after getting the source. Of course, I updated, changed, and modified things, but I was on a fast track with that game. It took me something like 14 months to nearly complete it, and that's when Utopia landed on me like a house of bricks. If not for that unfortunate situation I'd have it all done in 15 months from starting date. So C# .Net or Visual Basic .Net are definitely one way to rapidly design software for Windows. Q: Is in fact cross platform compatibility the only reason why you couldn't write mota in vb6, or another shortcut orientated language? A: No. As I said above there were other factors to consider as well. At the time I started writing games .Net wasn't even a core component of Windows, and .Net games etc weren't that common and a lot of people were upset at having to download and install several hundred MB of extra Windows components to bring XP up to date. Now, days with .Net 3.0 and .Net 4.0 being intergrated into Vista and Windows 7 this is a problem that has largely passed for new Windows users. All the same I felt it was in everyone's best interests if I cut the file size down by using common core APIs and components present on XP, Vista, Windows 7, etc without the high level .Net components. As for VB 6 specifically I think my feelings are clear on that subject. Its officially no longer supported by Microsoft, was dropped in Windows 7, and I knew clear back in 2006 that Visual Basic 6 was being phased out to make way for C# .Net or VB .Net for Windows Vista and beyond. So that's why I initially started with .Net then eventually changed to C++. That said, I'm beginning to regrete my decision of going to C++, because it has slowed down development and I'm having to learn or relearn things I haven't worked with in years. I generally program in C# .Net or VB .Net professionally so I'm more up to speed with those languages than I am with C++ and I'm kicking myself for doubling my work load for this reason or that. As you know I've got some other games in the works, I want to work on after MOTA, and i'm truly thinking of going back to .Net. However, now that I have a fully qualified game engine in C++ future games wouldn't take as long as MOTA has just because I have all the low level nitty gritty stuff done, and I have all the advantages, perhaps more, than if I were to use say VB, C# .Net, or Java. Cheers! --- 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 http://audyssey.org/mailman/listinfo/gamers_audyssey.org. All messages are archived and can be searched and read at http://www.mail-archive.com/gamers@audyssey.org. If you have any questions or concerns regarding the management of the list, please send E-mail to gamers-ow...@audyssey.org.