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

Try Game Maker 8

It has enough power to make the very greatest of 2D RPGs but is the easiest to learn.

It's also got multiplayer TCP/IP play so if you're good enough you can make your game co-op. Many people swear by 32dll if you're getting into multiplayer search the forums for that.

It has a scripting language, but you can get started just using drag and drop command icons and build them like a flowchart.

The community is huge and theres millions of games ppl have made and put up the source code for that you can copy and learn from.
 
Joined
Jul 10, 2007
Messages
2,993
Location
Australia
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

That is awesome.
 
Joined
Jan 10, 2008
Messages
4,354
Location
Austin, TX
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!

Learning all the features of a good object-oriented programming language and using those features when it makes sense goes a long way! Knowing when to subclass, use delegates, abstraction, encapsulation, private/public/protected properties and methods, interfaces, etc. If you understand all those concepts (and possibly some of the common design patters), then you're more than half-way there! And I know *I* really should learn to do all that stuff much better than I do now!!

(Of course, re-reading that, this basically means that you design your software well, probably before even writing one line of code.)
 
Last edited:
Joined
Oct 18, 2006
Messages
2,915
Location
The Netherlands
Agreed.

Fortunately (IMO) object oriented programming makes it easier to structure your program well (as long as you know how to use the features, of course)

public Pibbur(){this.name="Pibbur";}
 
One good thing about OO is that you can have a terribly implemented class, but so long as the public interface to it makes sense, that does not kill the entire software as long as the class does what it is asked. You can easily rewrite the implementation part later. Just make sure that everything that needs to be public (that other parts of the game need to know about or use) makes sense and is laid out well.

But then some people go and *STILL* lump EVERYTHING in one horrifying class as if it were a procedural language and complain that stuff is hard or does not work. :(

Anyway, I've always thought that OO programming must be a perfect fit for game development (there are *so* many objects in any game!). I want to try that out some day, see if something so complex can really be made simple through OO.

public Zombie(int hitPoints, bool feedingFrenzy) : Monster(hitPoints)
{
HitPoints = hitPoints;
Speed = feedingFrenzy ? 10 : 6;
}

:)
 
Joined
Oct 18, 2006
Messages
2,915
Location
The Netherlands
public Zombie(int hitPoints, bool feedingFrenzy) : Monster(hitPoints)
{
HitPoints = hitPoints;
Speed = feedingFrenzy ? 10 : 6;
}

Passing in boolean values to control the flow of a function is considered bad design. Tsk tsk.
 
Joined
Oct 24, 2006
Messages
1,769
Location
Minnesota, USA
One good thing about OO is that you can have a terribly implemented class, but so long as the public interface to it makes sense, that does not kill the entire software as long as the class does what it is asked. You can easily rewrite the implementation part later. Just make sure that everything that needs to be public (that other parts of the game need to know about or use) makes sense and is laid out well.

But then some people go and *STILL* lump EVERYTHING in one horrifying class as if it were a procedural language and complain that stuff is hard or does not work. :(

Anyway, I've always thought that OO programming must be a perfect fit for game development (there are *so* many objects in any game!). I want to try that out some day, see if something so complex can really be made simple through OO.

public Zombie(int hitPoints, bool feedingFrenzy) : Monster(hitPoints)
{
HitPoints = hitPoints;
Speed = feedingFrenzy ? 10 : 6;
}

:)

You would throw quite a few cats at me, if you saw my code!

I'm still stuck way too much in the procedural mindset - and I'm having the hardest time adapting to OO - but I'm learning as I go.

Fortunately, I don't mind redoing things over and over - as that's how I've always worked :)
 
Passing in boolean values to control the flow of a function is considered bad design. Tsk tsk.

It's the constructor, so I can initialise the zombie with a feeding frenzy.

Zombie newZombie = new Zombie(25, true);

Not that I'm terribly good at good design. :)

P.S. Why is that considered bad design?
 
Joined
Oct 18, 2006
Messages
2,915
Location
The Netherlands
My advice is to learn about design patters, save time and creates high quality code.


P.S. Why is that considered bad design?

Imagine the zombie having lots of different modes later... and you pass a boolean for each... this would quickly become messy.
 
Joined
Oct 25, 2006
Messages
6,292
I'm still stuck way too much in the procedural mindset - and I'm having the hardest time adapting to OO - but I'm learning as I go.
Javascript has some good OO characteristics. It's different from how C++/Java/C# work but is much easier to understand. A class in those languages are viewed as "meta" information, whereas in Javascript a class is just an object which can be accessed and updated like any regular object. It uses a technique called prototype inheritance which I think is pretty neat.
 
Joined
Mar 30, 2008
Messages
1,163
Location
Scandinavia
Javascript has some good OO characteristics. It's different from how C++/Java/C# work but is much easier to understand. A class in those languages are viewed as "meta" information, whereas in Javascript a class is just an object which can be accessed and updated like any regular objects. It uses a technique called prototype inheritance which I think is pretty neat.

Hmm, I'm using XNA - because it's very useful and efficient for handling graphics and I'm very happy with Visual Studio Express and C#.

So, I'm quite comfortable with my solution - and I know it's more about me being stuck in ancient-land - than the language not being suited for the project.

Truth be told, I was never interested in becoming a programmer - and I'm only doing it out of having no other choice.

But, I have a relatively easy time learning and I'm good with coming up with creative solutions.

The advantage of doing a game like the one I'm doing, is that performance won't be much of an issue. It's not going to be a game with a ton of things going on at run-time - and since combat will be turn-based, it's not a problem that I don't optimise so well.
 
My advice is to learn about design patters, save time and creates high quality code.

Yeah, I know some obviously, but never read the book cover to cover…

Imagine the zombie having lots of different modes later… and you pass a boolean for each… this would quickly become messy.

Oh yeah, I wrote a static function once to generate and send an email, that had like twenty parameters. :p I probably should have created a class for all that or something. But it works. :p

DArtagnan said:
I'm still stuck way too much in the procedural mindset - and I'm having the hardest time adapting to OO - but I'm learning as I go.

I can't imagine being stuck in procedural thinking using a object-oriented language and framework! I mean, everything the language offers in terms of features, libraries, etc. are object-oriented, how do you even abuse that procedurally? :p

Make one object and do everything from there?
 
Joined
Oct 18, 2006
Messages
2,915
Location
The Netherlands
If you are actually wanting to break into the game industry to program, I think C++ is the end-all-be-all. A better plan may be to learn a Visual Studio.Net language, earn a good bit of money from the business community, and use that cash to pay other people to write games for you in C++.

Imagine the zombie having lots of different modes later… and you pass a boolean for each… this would quickly become messy.
Don't be silly, who would do that? You just pass a 32-bit integer and use each bit in the number as one of your flags! <grinning, ducking, running>

Though that bit about design is an important one - it's probably the most often flubbed thing out there. The biggest problem is folks who just have no clue about how to design things well but there are also folks who seem to know the design rules but have no clue why they are there. They're the ones who will make half a dozen classes to write a Hello World program and give an interface to each class.

What will REALLY drive you nuts, though, are the people who use perfectly good designs - just not the designs that fit your own tastes. Then you've got no excuse to re-write the entire program! Oh the pain....
 
Joined
Aug 3, 2008
Messages
8,258
Location
Kansas City
...
What will REALLY drive you nuts, though, are the people who use perfectly good designs - just not the designs that fit your own tastes. Then you've got no excuse to re-write the entire program! Oh the pain….

I feel your pain, friend! I've been there.

Why don't you come with me to a Programmers Anonymous meeting?
 
I can't imagine being stuck in procedural thinking using a object-oriented language and framework! I mean, everything the language offers in terms of features, libraries, etc. are object-oriented, how do you even abuse that procedurally? :p

Make one object and do everything from there?

Well, I just pretty much ignore everything smart and do it in the most slavelike moronic way you can imagine :)

I'm using XNA - which has a very procedural-looking class called "game1.cs" pr. default. Everything in that class reminds me of a standard procedural structure - so I guess that's why I've had an easier time adapting to it.

To me, at this stage - it's about getting all the basic functions working before I go about actually designing the code in a smart way. I have to make the game do what I want it to do, so I know it's possible for me, and I'm just the kind of person who NEEDS to see it working. I can't sit down and study all the time, because I have a ton of work that needs to be done - beyond just the code.

It's the only way I can accomplish anything, as I've never learned object oriented code from the ground up. In fact, I've never actually read any books about it - so I really have no idea what I'm doing half the time.

Yet, I've managed to make a simplistic engine - where a "dungeon map" object holds tiles (also objects) that I draw based on position and facing. It works :)

At the moment, I'm trying to figure out the best way of drawing objects (physical objects) on specific tiles - and I'm using a "tile class" containing information about the kind of tile (wall, floor, etc.) and I'm probably going to use multi-dimension arrays for decorations, and some kind of an array for the items.

I have to figure out what objects on what sides of what tiles to include in the draw function - depending on position and facing, as I'd like to do just a little optimising.

So that's what I'm struggling with atm :)
 
Fortran!

Jokes aside, if you're serious about programming - stick with any OO language and pick up a book as thick as a brick, then work your way through. It will no doubt take a considerable amount of time, but I honestly don't see a simple way of learning proper programming from scratch. There are no short cuts to understanding programming.

Either that or use some sort of toolset with a graphical interface, specifically designed to make games or mods. They often require you to do basic scripting (triggers and so on), but no more than that.
 
Joined
Oct 18, 2006
Messages
7,586
Location
Bergen
Back
Top Bottom