If I was to make a RTS...

Discuss the development of other free/open-source games, as well as other games in general.

Moderator: Forum Moderators

User avatar
appleide
Posts: 1003
Joined: November 8th, 2003, 10:03 pm
Location: Sydney,OZ

If I was to make a RTS...

Post by appleide »

What would I use? C++, Java, VB, RealBasic? Suggestions, please. The RTS would have a sprites/graphics engine similar to Escape Velocity, and Top-down view on units only.

Which has the best performance?
Which is easiest to use to make an RTS?
Which would make the game look good?
Why did the fish laugh? Because the sea weed.
tsr
Posts: 790
Joined: May 24th, 2006, 1:05 pm

Re: If I was to make a RTS...

Post by tsr »

appleide wrote:What would I use? C++, Java, VB, RealBasic? Suggestions, please. The RTS would have a sprites/graphics engine similar to Escape Velocity, and Top-down view on units only.

Which has the best performance?
Which is easiest to use to make an RTS?
Which would make the game look good?
- Looks are language independent
- Ease is more determined on your own capabilities and understanding of programming
- performance, well most games are developed in Assembler, C and/or C++, I guess that's because they are most efficient, but I might be wrong.

/tsr
User avatar
irrevenant
Moderator Emeritus
Posts: 3692
Joined: August 15th, 2005, 7:57 am
Location: I'm all around you.

Post by irrevenant »

What languages do you have experience with?

You could probably do it in Python, which would be easier if you're a beginner programmer (though you'd take a bit of a performance hit for it).

OTOH, if you're familiar with C/C++, you'd probably get better performance out of them.
User avatar
Tomsik
Posts: 1401
Joined: February 7th, 2005, 7:04 am
Location: Poland

Post by Tomsik »

C/C++ :)

It can be platfrom-independent when you use right libraries, its performance isn't bad and it have got tons of libraries for it.

Look.. well.. it depends on what artists you have got.

Warning: RTS is big thing, you need lots of work to make one.
User avatar
Polaris
Posts: 104
Joined: March 25th, 2004, 3:30 pm
Location: Invincible Cyclones Of FrostWinds
Contact:

Post by Polaris »

I would also say C or C++... If you are looking for performance, then C with mixed assembly is the best choice, while using C++ will be easier and still keep excellent performances.

Anyway, keep in mind that making any kind of game is a huge effort.... :wink:
Standing With So Cold A Heart... Watching The Death Of The Sun...
User avatar
appleide
Posts: 1003
Joined: November 8th, 2003, 10:03 pm
Location: Sydney,OZ

Post by appleide »

Tomsik wrote:Warning: RTS is big thing, you need lots of work to make one.
I've made one before in Revolution, but a problem in that is that you couldn't have more than one sprite move at a time... Also, there was only one player, and no ai, and only two units and two type of buildings. -soldier-peasant and a town and a gold mine. and some 'enemy units' that stand there to be target practice

I think the hardest bit is the AI, everything else is comparatively easy. (I have absolutely no experience even on how AI can be implemented, even if someone else wrote the AI script for me. Some one tell me briefly how you can leave "hooks" in the code so this can be done?, or just give me a link), Unless it is easier to just make it multiplayer on some server... (I have no experience with that either).
Why did the fish laugh? Because the sea weed.
User avatar
irrevenant
Moderator Emeritus
Posts: 3692
Joined: August 15th, 2005, 7:57 am
Location: I'm all around you.

Post by irrevenant »

Dude, you already wrote an RTS!?!? Then just do what you did last time only better. :)
User avatar
appleide
Posts: 1003
Joined: November 8th, 2003, 10:03 pm
Location: Sydney,OZ

Post by appleide »

irrevenant wrote:Dude, you already wrote an RTS!?!? Then just do what you did last time only better. :)
:oops:

I forgot to tell you that there was no terrain, either, and could select only 1 unit at a time. Look, it was a piece of crap I made in two afternoons some holiday 3-4 years ago, with less than 200 or so lines of code, and there is no way to implement any AI at all, and there was a maximum of 1 player per game only. Having AI is very important, and I want to know how. (also, I just realised that i could only make one sprite move at a time, is because i didn't have any 'graphics engine')

Thanks though. :)
Why did the fish laugh? Because the sea weed.
zaimoni
Posts: 281
Joined: January 27th, 2005, 7:00 am
Location: Linn Valley, KS U.S.A.
Contact:

Post by zaimoni »

Art: if you designed the engine right, you should be able to upgrade the art without altering the main engine. Technically, it's fastest to use libjpeg and libpng to get *.JPG and *.PNG support.

Language:
Use your dominant language. Unless that dominant language is assembly...you really need to conserve developer time. The BASICs (Visual Basic, BlitzBasic, DarkBasic) all lock you into Windows and/or Linux, for general cross-platform you'll want C, C++, or a compile-to-bytecode language. Speed generally requires compiling to machine language rather than bytecode...in which case, you'll want access to inline assembly as a last-resort optimization.

Of the bytecode languages, Python is probably best for prototyping. [Tcl/Tk can be agonizingly slow...I wouldn't recommend it as the GUI engine for real-time anything.] Python is also embeddable in C/C++, so any prototyping you do in Python can be reused. Just watch out for the language revisions.

While my dominant language is C++, the main cross-platform graphics libraries are all in C (and *much* easier to use than C I/O). The only reason to use C++ rather than C would be if the design was critically dependent on subclassing (like Wesnoth), or if you were willing to construct/use a reasonably powerful template library to automatically optimize, etc.

[While I am working on such a template library, this is partly because of my philosophical differences with the STL: I prefer to use C memory management for POD-structs because realloc() is a "killer function". It does use the Boost library heavily, so it requires unreasonably modern compilers (GCC 3.4 or higher, Metroworks Codewarrior 9+, or MSVC++ 2005. But the licensing for redistributing the runtime went bad with MSVC++ 7, even ignoring the conflict with the GPL.]
tsr
Posts: 790
Joined: May 24th, 2006, 1:05 pm

Post by tsr »

As for the AI, I assume you are going to let the game catch userevents that the game will respond to:

eg: user klicks unit and then klicks a location= unit moves to location (if possible (considering the gamerules :P)

All these events can be thrown by the AI, that is not the difficult part of AI programming, the hard part is finding out a smart way for the AI to decide what to do.

The wesnoth AI, allthough good has some known limitations: it doesn't use healing, leadership, weapon-specials, etc very efficient. (recently it has got much better at ganging up against one unit at a time, compare the 1.1.9 AI and the 1.0 AI to see it's progress).

((OT, could this be set-up, to actually show the progress?))

/tsr
zaimoni
Posts: 281
Joined: January 27th, 2005, 7:00 am
Location: Linn Valley, KS U.S.A.
Contact:

Post by zaimoni »

tsr, that reminds me of something I forgot: I have always found it annoying when the AI and the human player didn't have identical commands and rules. However, machine perception and pattern recognition are so backward technologically that it's best to remove the telepathy hack in a very late iteration.

Theoretically, this could mostly be handled by using the same internal command representation for both AI and human players
User avatar
appleide
Posts: 1003
Joined: November 8th, 2003, 10:03 pm
Location: Sydney,OZ

Post by appleide »

I am making an RTS. Just wait and see.*



*if you run MAC
Why did the fish laugh? Because the sea weed.
Lord_Aether
Posts: 127
Joined: November 11th, 2005, 9:06 am
Location: California

Post by Lord_Aether »

Cool
Mac OS X 10.5.7
Wesnoth 1.6.2
User avatar
Elvish_Pillager
Posts: 8137
Joined: May 28th, 2004, 10:21 am
Location: Everywhere you think, nowhere you can possibly imagine.
Contact:

Post by Elvish_Pillager »

appleide wrote:*if you run MAC
You're making a non-multi-platform game? How lame. :|
It's all fun and games until someone loses a lawsuit. Oh, and by the way, sending me private messages won't work. :/ If you must contact me, there's an e-mail address listed on the website in my profile.
Assasin
Posts: 956
Joined: March 15th, 2005, 3:51 am
Location: Where ever my mind takes me
Contact:

Post by Assasin »

Elvish Pillager wrote:
appleide wrote:*if you run MAC
You're making a non-multi-platform game? How lame. :|

However, most multi-platform games are lame. Either they work very well on one platform and sorta kinda well on another. Unless it is something very simple and elegant.

Like Wesnoth :wink:
I speak what's on my mind.

Which is why nothing I say makes sense.
Post Reply