About six months ago i picked up game programming as a hobby again after a period of approximately 12 years. The last thing i programmed in was GWBasic
Quite a lot has happened in the last twelve years. Since i didn´t really know where to start, i started with Visual Basic.Net, for the only reason that the name sounded vaguely familiar to GWBasic. In the past six months i created a few small games (Tic tac toe, 2d sidescroller, 2d maze with AI opponent). I am currently thinking about my logical next steps. I am mostly interested in the technical side of game development, especially AI, and don't care much about the graphical side (i love to play Dwarf Fortress for example ;-)
I am wondering whether i should specialise further in VB.net or start learning another language like C# or Python. Therefore i have a few questions i would like to ask you:
1. Why does almost nobody use VB.Net? Is is not suited for game programming?
2. Should i move to another language or continue using VB.Net?
3. If i should move to another language, given my interests and experiences, which language would suit me better? Python or C#? Or maybe another language?
I am very interested to hear from you. Thank you very much in advance!
Generally the problem is, VB.NET is just C# in a fat suit.
Sticking to VB.NET wont harm you, as you will be able to switch to C# in just a few days tops they are so similar. That said, C# is more popular and the most supported ( book, samplewise, etc... ) so really, why bother with VB.net
Frankly, VB.net was just created to transition VB coders to .NET. Now that that was 10 or so years in the past, there is very little reason for it to exist any longer.
1. Why does almost nobody use VB.Net? Is is not suited for game programming? No programmer wants to be labeled a Mort so that's why you won't see anyone using it and even if they do they'll deny it It doesn't help that Microsoft treats VB.Net as 2nd class language, for example XNA supports C# but not VB.Net, Microsoft code samples written for C# not VB.Net etc.
2. Should i move to another language or continue using VB.Net? You should use what you are most efficent and comfortable with. If you plan on doing anything graphical or move into 3D this may mean switching to C# but as mentioned VB.Net is so similar to C# that there are automated tools that will convert 99% of your code unlike VB6 to VB.Net conversion tools from Microsoft that never worked and probably another reason quite a few programmers dumped VB.Net since they were VB6 programmers that got pissed off at Microsoft for breaking backwards compatibility. In the past i.e. VB6 days it was easier finding books, code examples, online help for VB so that's why it was the #1 used Microsoft language for a long time. Now Microsoft is putting all the same effort into C#/XNA so that's what most will choose and stick with for the foreseeable future.
3. If i should move to another language, given my interests and experiences, which language would suit me better? Python or C#? Or maybe another language? Personally, I've made games in both Python and C# and I like both langugages so you can't go wrong picking either one. You'll pick up C# quicker though since C# is pretty similar to VB.Net and if you've invested any amount of time in learning the .Net framework classes you can still keep using them. Also, as I said above it's now easier finding books, code examples, online help for C#/XNA than VB.Net and even Python these days so that can only help
P.S. I also used to make games in VB and VB.Net and it was actually easier and funner than C# due to better Visual Studio intellisense and Edit and Continue (Visual Basic)
support but since there is no longer any Directx/XNA support for it I use C#/C++ exclusively on Windows nowadays.
Don't talk about writing games, don't write design docs, don't spend your time on web boards. Sit in your house write 20 games when you complete them you will either want to do it the rest of your life or not * Andre Lamothe
Speaking about the 3rd question, If you want to keep on developing PC games, you may choose one of high-level languages, like C# or Java.
But if you going to switch to mobile or consoles, I will recommend you to choose C++, it is a little bit harder, than C#, but it is more professional