Some help for an Uber-n00b

Started by
2 comments, last by Daerax 15 years, 9 months ago
Hello, I have recently decided I would like to try my hand at programming a game after re-falling in love with the old Resident Evil games and thinking "ah!!, this would be good in the form of a small online RPG with a "home" building that characters just come from (stuff happens inside there as well) and a zombie-infested city to play with (in a nutshell). I knew that Capcom would not make exactly what I desired (same graphics as RE2 and no more than 10 on one "city", so I took it upon myself to see if I the files made sense (they did not :P), so thought I should try this (I am aware that it is a long term goal but I would like to work towards being able to do it). I have looked around the site but still have questions, if you could answer them I would be grateful; 1) What language would be best to learn to go towards my goal? 2) What book/s would I need for it that are available in the UK, amazon or otherwise? 3) and finally what compiler (preferably free but I would be more than willing to pay for quality)? Thanks for your time.
Advertisement
Hi there,

I hope you dont underestimate the amount of time you have to spend programming before you eventually get to that online RPG. Certainly it is not something you choose as a project to start programming.

Do you have any programming experience? If not, I suggest you learn about one first. For a online RPG you can use many languages. Nice languages for beginners are C# and Python. A bit harder but still worth the effort is C++. When you know the basics of your language, check what the graphics possibilities are. Choose a graphics library and learn about it. C# can use XNA, SDL.net etc. For Python PyGame maybe a good choice, or Panda. You probably find the most for C++.

After you learned programming graphics you'll have to learn about network programming. How to use sockets, asynchronous sending/receiving etc. And THEN (if you manage this far) you'll probably be able to write that online game.

But don't understand me wrong. If you spend enough time and effort in learning these skills you'll be able to create a nice game. Just keep in mind it is a long term project.

I can't really help you with names of books, I rarely use them. Most of the information you need can be found on the internet I think. And for compilers:

- C# has a good free IDE called SharpDevelop, I use it myself. Else buy Visual Studio
- Python is technically a scripting language, so no compiler. The parsers free.
- C++ has many compilers, I can recommend you Dev-C++ as a free one

Good luck with your game!
If you are developing C# or C++ on Windows and for Windows, then there really is no reason not to use Microsoft's free 'Express' versions of Visual Studio.

microsoft.com/express

They are excellent.
Note you will want to learn the vocabulary are use below, in this age it is more important to learn such before pointers, assembly etc.

As Carlos mentions get one of Visual Express 2008, they are far superior to Dev C++ and SharpIDE. The below is motivated by the old slides by unreal engine maker: The-Next-Mainstream-Programming-Language-A-Game-Developers-Perspective-by-Tim-Sweeney

Other languages to consider are python like Boo and ActionScript 2.0. I recommend ActionScript because because of its (type free/'dynamically typed') nature it adds just a tad bit more flexibility and expressivity to beginners, it allows higher order functions, multiple dispatch, dynamic extension of classes, closures , pattern matching and algabraic types (the latter is a conversion of similar written for &#106avascript) all important. Why 2.0? because Actionscript left prototype based OOP to more 'traditional' OOP. This means it lost built in support for the powerful notion of mixins (which will be useful to you as a game programmer, especially when using component style) causing things like the algebraic type extension to becomes less elegant, more cumbersome.

I recommend Boo over python because it is statically typed but does allow dynamic behaviour by the duck type keyword. That means that when you want to you can not think about the types of what you are doing and just let computer figure it out. This allows you to utilize multiple dispatch in statically typed Boo. Allows beginners to do simple metaprogramming (as well leverage extentions as algebraic types or matching on objects written by others to write more powerful code). Is is a full .net consumer and producer so you get access to any .NET library such as SDL.net, linq or slimdx. Flaws is no Visual studio IDE. Pro is less verbose than C#.

For similar reasons I recommend Visual Basic .Net (although it does not have built in metaprogramming support which is not really a big deal for one starting). Bonus is IDE. Pro is friendlier beginner syntax than C#.

Recommending Visual Basic .NET and Boo over C# or Python for following reasons: As a beginner you will make many errors that a static type system will protect you from, but when needed you can go dynamic and leverage the flexibility there. Learning key concepts such as dynamic dispatch, latent/duck typing, extension methods, closures, comprehensions, generators, higher order functions, generics and anonymous types (though in Boo the semantics is emulated with arrays) gives you a level of fexibility to allow you to get to a point where you are writing more complex games quicker.

Note that the above are not advanced concepts and should be the bread and butter of everyday programming. It is only because less abstracted languages are too close to the machine model that they have come to be known as advanced. As a beginner you want to be able to express your code as easily as possible you dont need to juggle the additional abstraction of the machine. You are only a single person and want your code to pack as much per line as possible.

[Edited by - Daerax on July 28, 2008 7:21:32 AM]

This topic is closed to new replies.

Advertisement