Hi Dave, Well, a lot depends on what you want to do. The BGT toolkit, written by Philip Bennifall, would certainly fulfill all of your requirements as it is a fairly complete game engine and you can produce free games using the Shareware license version which costs $29 as I recall. Of course, if cost is a factor or you just want to get some practice into a general purpose programming language my next suggestion would be Microsoft's Visual C# .Net.
Visual C#, called C-Sharp, is really becoming the all purpose programming language these days, and Microsoft is marketing it pretty heavily as the replacement for Visual Basic in terms of newbies and amateur developers. Not to mention many professionals use Visual C# .Net as well for software development. As an all purpose programming language, and as someone who has used it extensively myself, I can say it has a lot going for it. First, it has largely replaced Visual Basic in terms of amateur and professional developers which means there is lots of documentation around. For instance, the Microsoft XNA Community is a forum specifically geared to C# .Net developers and Microsoft's XNA Framework for developing next gen games for the .Net Framework. Second, while Microsoft's XNA Framework/API isn't fully accessible there are plenty of alternatives today. There is SDLDotNet which is a .Net implementation of SDL and there is SlimDX which is a free and open source wrapper for Microsoft's DirectX 9, 10, and 11 APIs. Sapi 5 is a standard Windows com component and can easily be added to a C# .Net application with fairly easily. So C# .Net certainly has access to a wide array of high quality game APIs etc. Third, unlike a few years ago there are now free development IDEs and tools for Visual C#. Microsoft's Visual C# Express 2008 is free, and mostly accessible. Alternatively the Mono Project has released an IDE Monodevelop which is totally free as well. So obtaining development tools for Visual C# development these days is not a very expensive investment. Fourth, if you do think about developing something cross-platform its possible to do that via the Mono Project. While not 100% compatible with the Microsoft .Net platform its still relatively easily to create apps for operating systems like Mac or Linux via Mono. So C# .Net is beginning to see wider use beyond the Windows platform. Fifth, C# .Net is a simplified C-Style language that has a lot in common with Java. If you ever want to experiment or program in other languages like C++, Java, Flash, etc C# .Net will help you with that as it is similar to Flash and Java. Finally, newer Windows operating systems such as Vista and Windows 7 are pretty much geared for .Net applications out of the box. Windows Vista comes with .Net 3.0 by default and Windows 7 comes with .Net 4.0. The point being is that as newer Windows releases come out and .Net becomes the standard API for newer emerging games and applications you don't have to worry about installing 500 MB of components etc as is the case for older Windows platforms like Windows 2000 or Windows XP which really predates the big switch to .Net. With all that said, there are things to be aware of. C# .Net isn't without its drawbacks, and are among some of the reasons why I am currently not using it myself. First, and foremost, C# .Net is a runtime language and is compiled to an intermediate language which gets run by the .NetFramework. The problem with this approach is that it can easily be reverse engineered, cracked, hacked, and is a major security risk for comercial developers. To resolve that security problem, no thanks to Microsoft, you need to purchase a tool like Dotfuscator to scramble or obfuscate the il code so it can't be converted back into readable text/code. Second, if you have to deal with legacy operating systems like Windows XP, for example, your end users might be a bit turned off at having to install 300 or 400 MB of .Net components if their system is out of date, and I might add these components must be installed in the correct order or things will break. This is nothing short of a technical support nightmare when user x gets it wrong. Other than those two issues I think C# is really the way to go for future Windows development. Especially, if you are new to programming, and want to break into development with the bleeding edge Windows technologies and APIs without spending a small fortune or without a lot of complexity. 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://email@example.com. If you have any questions or concerns regarding the management of the list, please send E-mail to gamers-ow...@audyssey.org.