Best Programming Language to learn for RPG design? Best resource to learn it from?

gumbomasta

Searcher
Joined
January 23, 2007
Messages
46
C#? C++? Java? Is there a book you recommend that could teach me in a sort of crash-course way?

Might as well start somewhere… :p

-g
 
Joined
Jan 23, 2007
Messages
46
All those languages you listed are fairly complex. To be anywhere near useful with them you'd almost need 3 years worth of college degree in Computer Science. Well, even then you would have only just gotten started. Learning just the languages is only a small fraction of the skillset required for programming.

If all you're interested in is designing content, then I'd suggest using an existing game that's moddable and make a module for it instead. You don't need any programming skills beyond writing scripts in a special purpose language for that.
 
Joined
Mar 30, 2008
Messages
1,163
Location
Scandinavia
Go with C#, download Visual Studio Express, find a tutorial - and just experiment until you die from exhaustion. Steal bits of code left and right, until you have something that actually works.

A ton of documentation available, and tutorials ranging from being targeted at the completely inexperienced to advanced coders.

I never cared to sit down and read much when I was itching to do something, so I just tend to work as I go. Somehow, I've managed to do most of the things I've set out to do - but it's a long road when you don't have all the theory in place. But it's about what you prefer.

If you have the patience to take a proper course and read a few huge books, that's always a good foundation.

Oh, and about the biggest mistake you can ever make is telling yourself there's something you can't do - unless you're 100% certain it's impossible.
 
I agree with Dartagnan, C#/Visual Studio is a good choice, for several reasons, including the visual design environment. It's not as complex as C++, and the strict nature of the language/environment protects you from making a lot of errors (which C++ happily allows you to do). However, C# comes with the .net architecture and a HUUUGE amount of classes/components, which can be a bit overwhelming, but you'll start with the basics, and a good tutorial will lead you safely through the jungle.

You don't need anything near a 3 year college degree to use any of the languages, I certainly did not. I would recommend a good book, not only to learn the language, but to learn programming and programming design, which is just as important as, perhaps even more important than learning the language. You need to learn how to create a good class structure (the components you create in your programs), and in my book that requires more than you're likely to get from a turtorial and experimenting. I like the professional C# series from Wrox, the target audience of those are however people who already know a bit about programming. I would recommend that you get yourself an introduction text like "C# for dummies" and after that go for books like the Wrox'es.

Eventually you would probably also benefit for a book on game programming, there are several good books, including books on RPG programming.

After that it depends on how advanced you want to be. There are books about using 3D geometry, about the mathematics involved, about physics…. But all that lie a couple of years ahead.

And if you want to get REALLY advanced and write high performance stuff, you need to switch from C# to a language like C++, as that requires memory manipulation which C# won't allow you to do. But again, that's years ahead, and by then C++ won't be particularly difficult.

Currently there are some new trends regarding preferred programming languages, new languages like Ruby (which I no little about other than the name) are gaining increasing support. So things may change. But for the moment: C# is your best choice, IMO.
 
Java would be your best bet. Many java libs have been ported to Android so there is a fair chance your Java games can run on Android.

i.e. http://slick.cokeandcode.com/

The best thing about Java (apart from also preparing you for Android) is that if it all goes belly up you can still find a job in Business world.
 
Joined
Oct 18, 2006
Messages
3,086
Location
Sigil
Java would be your best bet. Many java libs have been ported to Android so there is a fair chance your Java games can run on Android.

i.e. http://slick.cokeandcode.com/

The best thing about Java (apart from also preparing you for Android) is that if it all goes belly up you can still find a job in Business world.

Java is a good language. Personally I don't like it, but that's entirely personal and not completely rational. I think it's ugly. 'nuff said.

I still would recommend C#/visual studio becuase that's IMO the easiest way to get into programming. You can still learn Java later if you want.

And a c#/.net background is also a way into Business programming. C# is widely used, because it integrates very well with the major databases like Oralce and Microsoft SQL Server, and software integration solutions like Biztalk.

If you want to go for Java, Bruce Eckel has written a fairly good book: Thinking Java, which he has made freely available online at http://www.mindviewinc.com/Index.php. You will also find a similar book on C++ there.
 
Last edited:
My point is, learning programming is a huge distraction if your intent is to design a game. Maybe you should describe a little what you'd like to achive, gumbomasta?
 
Joined
Mar 30, 2008
Messages
1,163
Location
Scandinavia
My point is, learning programming is a huge distraction if your intent is to design a game. Maybe you should describe a little what you'd like to achive, gumbomasta?

I can agree with the above, it really depends on what you want to do. And, starting with a mod may be a more gentle introduction to game design (it depends how well design the modding tool is, I guess).

Then, if you find yourself dedicated, go for the languages.
 
Last edited:
It all depends on what you want to do, and what your target is.

If you get more specific I can give you more detailed advice. As I am certainly an expert in this area.

If you want to make a game which works on many platforms with fairly modern graphics.... unity 3d is the way to go. You can either use javascript/ruby or scripting languages or C# for it.

If you want AAA quality UDK is more or less your only choice currently, in which case you'll be writing your RPG in unreal scrip and using kismet ( visual editor ).

If you want to make something completely unique, you could go with Ogre or Torque ( both C++ ).

To try to develop your own RPG from scrach... unless you are aiming at simple 2d graphics or text.. this is not an option.
 
Joined
Oct 25, 2006
Messages
6,292

To try to develop your own RPG from scrach… unless you are aiming at simple 2d graphics or text.. this is not an option.

Unless you are like me who REALLY love to program using bare bones Win32 API, DirectX API and OpenGL API.

But then I'll (probably?) never finish a game in the first place. (Except for the one I created in 1985 as a present for my oldest daughter).

What GG says makes sense. Unless you are like me who REALL... Oh, sorry. Already said that.
 
I still prefer visual basic to start :) instructions are somewhat readable (not like C) and you don't have to worry about all the micro-management (pointers and what not). When I graduated from college, if I had heard myself saying what I just said, I would have committed suicide. To me C was king and everything else was rubbish, but really, Basic is an easier language to comprehend (and does pretty much anything you need). And if you use .NET, you could learn with VB and branch to C# seamlessly, in fact, you could rewrite a module from VB to C# and your application won't even notice the difference.
 
Joined
Sep 23, 2008
Messages
5,645
Location
Tardis
Thanks for all the suggestions.

I've narrowed down the engine I want to use: Unity3D, because it's visually appealing and can work across several different platforms. And it's free.

I was inspired by this game, Fract. Even though it has little to do with RPG mechanics, I'm impressed by what was achieved in terms of atmosphere, elegance and ingenuity, using the Unity3D engine.

As for a language, I may delve into either C# or Javascript. We'll see. Unity seems to recognize both languages.

As for gameplay concept, I was really inspired by the discussion that went one at the "Why Can't We Have more TB RPGs" thread a few days back. It further galvanized me to want to bring a WEGO style combat system to an RPG, not unlike the game Frozen Synapse. I would want to layer that sort of combat engine, which requires strategic use of movement, timing and spacial awareness, with RPG mechanics and character abilities.

Frozen Synapse, from what I've gleaned, happens to be powerd by the Torque Engine, and it has two or three guys working on it.

For now, though, I simply want to have that basic combat tech demo down that will use its WEGO system. The RPG Kit for Unity seems like one person's way into getting an rpg combat system working in Unity, but I'd be open to study this and bend it to my own whims. Once that core combat mechanic is solid, i think it can be a strong foundation for any RPG universe / story / world that could be built around it. For now, though, the focus is on that core combat design.

My expectations for this game concept are truly modest, as are my abilities to pull it off, but it's still an idea that hasn't stopped nagging at me. I want to zero in on the smartest way, given my limited coding experience and time resources, to explore whether I can make it a reality.

thanks,
g
 
Joined
Jan 23, 2007
Messages
46
edit:
Deleted. Didn't make much sense. ;)
 
Joined
Aug 30, 2006
Messages
7,830
I got back into programming with the NWN Toolset. Its not Object Oriented, but its close. Its a C like language and the 3D Object can be used like OO.

If you are looking to design RPG games everything is right there for you - powerful scripting tools, conversation editor, quest journal..etc. etc.

I wouldn't recommend the NWN2 Toolset as its just not that intuitive. I haven't tried Dragon Age. I did look at the Morrowind toolset many years ago.
 
Joined
Oct 19, 2006
Messages
5,212
Location
The Uncanny Valley
Everything pibbur and GothicGothicness said is true. That said, and I have no experience with engines, *proper* programming/design does take an unusually long time to train yourself in. The thing is, those years of experience does get your brain into a way of thinking that three months usually just does not deliver.

But of course there have been some people doing amazing things in short time (and lots more people that have thrown together truly horrible piles of ugly, unstructured, unmaintainable code that actually, for some reason, seems to work).

I deal with some of the latter at work sometimes. :(
 
Joined
Oct 18, 2006
Messages
2,915
Location
The Netherlands
From one of the posters at the Codeproject Lounge (yesterday):

"Just came across this comment in another programmer's code:

/* This method is a total disaster. It works, but stepping through it is a nightmare. The original
* programmer and God are probably the only ones who understand it. ENTER AT YOUR OWN RISK!!! */

Gave me a much needed chuckle this morning. Unfortunately, I now need to enter this method to perform some maintenance. Wish me luck! Big Grin | :-D "
 
I think about 50% or more of the code I have written in my career should begin with that warning.

I'm 100% self-taught from a combination of books, message boards and experimentation. Which probably produces the absolute worst type of programmer. I'm slowly getting better though. I've finally trained myself to comment the vast majority of my code so I at least know what the line is supposed to be doing, but I have a long way to go before anyone will ever think my code is pretty!
 
Joined
Jan 10, 2008
Messages
4,353
Location
Austin, TX
I learned C++ while in school and had a great time with it while learning graphics using OpenGL. I don't use it anymore though since it was too low level. Your comments about ugly code though reminded me of the general opinion many have of the C++ language. I was a bit surprised to discover that later on. Even programming language designers loath it and regard it as a mishmash of concepts bolted to eachother by ducktape. I've come to agree that it takes considerable dicipline to create good code in that language. The upshot is that it enables you to learn languages like Java and C# much easier. Too bad though they're so tied to their respective vendors. Java seems to be over the hill. C# seems like a great choice if you want to work exclusively on the Microsoft platform.
 
Last edited:
Joined
Mar 30, 2008
Messages
1,163
Location
Scandinavia
"Just came across this comment in another programmer's code: (snip)

Hehe. In a related vein, I'm working with code that follows no coherent style whatsoever. Think random indentation, no line length limit including as much code in one line as possible, and so on. A nightmare. Caused me to make the following quote one of my favorites:

Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.
- John F. Woods
 
Last edited:
Joined
Aug 30, 2006
Messages
3,486
Back
Top Bottom