Sign in to follow this  
double O seven

Question about the torque engine?????

Recommended Posts

Wasnt sure where this thread belonged so I just stuck it in here. Anyways, my tech partner and I are going to be making what we hope will later form into somewhat of an MMO, but thats to be determined depending on what kind of fan base it generates, but right now were thinking that the torque engine is our best bet. Were not attempting to put together any kind of product with golden market value to compete with other industry titles, this will only be a learning experience. My question is, does the torque engine provide good, or even decent network support? Last I heard (if I'm not mistaken) was 125 player capacity per server. Well, thats not gonna cut it mustard. We need something thats "slightly" affordable and can host a fair number of players without too many connection difficulties. But like I said, this will be more or less a learning experience to see what kind of popularity it will gain. And its gonna be a pretty heavy task making it. So any suggestions are appreciated. Thanks again.

Share this post


Link to post
Share on other sites
Perhaps since there's Internet involved and you'll need it very efficient, I would consider either doing the network programming yourself (an extremley large mountain ;)), or getting a dedicated network library. I can't really give this as a fact, but more my opinion, but I'm quite wary of an engine that attempts to do many things, as unless it has dedicated developers and lots of them who have a lot of varied skills, then it will do lots of things badly rather than one thing well...

Anyways, I'm developing an Internet based RTS and the network library I'm looking at is:

http://www.rakkarsoft.com

The price tag is quite nice. :) Hope it helps you!

Share this post


Link to post
Share on other sites
Quote:
Original post by TractorTom
I'm quite wary of an engine that attempts to do many things...

So, you are wary of the Unreal engine, or the Source engine?

The Torque engine is well known for having some of the best networking support out there, so I don't see why you wuold encourage someone to rewrite it.

Share this post


Link to post
Share on other sites
Quote:
Original post by smitty1276
So, you are wary of the Unreal engine, or the Source engine?


and just a couple of characters after that:
"...as unless it has dedicated developers and lots of them who have a lot of varied skills..."
The Unreal engine or the Source engine wasn't done by a few people in their spare time. ;)

"The Torque engine is well known for having some of the best networking support out there, so I don't see why you wuold encourage someone to rewrite it."
I'm not encouraging him to rewrite it, I simply said that if he had the networking skills then it would be an option. As good as the torque engine may be for networking, I don't see it being as effective as a dedicated networking library.

Share this post


Link to post
Share on other sites
Quote:
Original post by TractorTom
As good as the torque engine may be for networking, I don't see it being as effective as a dedicated networking library.


Why? Out of curiousity, what makes you think that implementing your own networking system using a "dedicated networking library" will result in a product that is superior to what is widely regarded as one of the best networking game engines? What makes you so sure that the Torque team (which isn't "a couple of developers in their spare time", btw) doesn't have their own "dedicated network library" running under the hood (I haven't looked at the source)?

It sounds like you are intending to discourage the use of existing game engines, and recommending instead the use of a collection of disparate "specialized" engines--which is fine, I might add. But your argument can be applied to any component of any engine. With any engine, you are going to sacrifice some flexibility in exchange for having most of the work already done for you. A game engine's networking system is already going to be optimized to work with the rest of the engine in the most efficient way possible... ideally, at least.

Share this post


Link to post
Share on other sites
An FPS and a MMO typically have very different networking requirements. Torque is aimed towards the FPS model of frequent, high-resolution updates. A typical update rate is between 10 and 30 times per second.

In an MMO, you typically select monster, press attack button, and wait. The command rate is much lower, and the amount of data that needs to be forwarded between players is much less. A typical update rate is between 1 and 4 times a second (many WoW servers have a 1.5 second round-trip time!)

Note that the game design and the networking go hand in hand. First, figure out what the game design requirements are, then derive the networking from there, and then you'll figure out how many players you can have per physical server machine. Also remember that a typical MMO game will cluster a world on multiple physical machines, through zoning or other such mechanisms.

Share this post


Link to post
Share on other sites
Quote:

Why? Out of curiousity, what makes you think that implementing your own networking system using a "dedicated networking library" will result in a product that is superior to what is widely regarded as one of the best networking game engines?

Well, I'll conceed that unless you're pretty nifty with networking, then writing your own probably isn't for the best.

Although, I'm sure the torque team know their stuff. But clearly it stands to reason that if a company is selling a certain library to do a specific job at the same cost as an entire engine then they're either a)daft b)are superiour at what they do.

Quote:

What makes you so sure that the Torque team (which isn't "a couple of developers in their spare time", btw) doesn't have their own "dedicated network library" running under the hood (I haven't looked at the source)?

True, torque may be running a dedicated network library, in which case no worries.

Quote:

It sounds like you are intending to discourage the use of existing game engines, and recommending instead the use of a collection of disparate "specialized" engines--which is fine, I might add.

Yes, I suppose it does. :) Unless I could afford a high quality engine (Unreal would do nicely...), I'd prefer to 'build' the engine using specialised engines like you describe, as I'm not a fan of buying an engine that attempts to do a lot of different things. Mainly because some things would take the sideline for other things in the engine. That's just diseconomies of scale and can't be helped.

Quote:

A game engine's networking system is already going to be optimized to work with the rest of the engine in the most efficient way possible... ideally, at least.

True, well I'd hope so. Although I wouldn't feel comfortable just sending plain requests to some easy network class, after all it may be optimised to work with the engine, but not necessarily your game data types. A few bytes extra on a packet can be a killer if you're in a performance bottleneck for Internet. Although, granted like you say you lose some flexibility in exchange for having work done, but I feel that not using a proper package that allows for good modification can lead to some badly performing code as it may encourage the user to get lazy and just call something like: sendPlayerStatusOverNet(), rather than having a much finer point of control over things.

Also, I'm drilled with OOP, and as a result I expect many other things to operate in the same manner. So buying an engine to me seems quite a difficult thing as it's not always overly easy to take out a certain collision detection algorithm and replace it with your own etc...


I feel we may have to agree to disagree here. (-:

Share this post


Link to post
Share on other sites
No offense to the OP, but looking at some of your past posts, it seems you have a new idea for a large game project every few months. Do you know what is involed in an MMO? Do a forum search and you will find hundreds of posts regarding people starting an MMO... never to be heard from again.

Quote:
Original post by double O seven
Last I heard (if I'm not mistaken) was 125 player capacity per server.


Torque has no hard cap limit on the number of players. There used to be a limit on the number of players supported over the network - this was removed long ago. Then there was a 128 player limit which is limited by the width of a player ID field (7 bits) - this was also removed about 3 years ago. In the current version of TGE, there is no hardcoded player cap.

Practically, though, there is a cap to the # of players your game can support, but this is completely dependant on the type of game you are creating, and the amount of data you need to transmit. Oh, and it also depends on the skill of your programmers.

Quote:
Original post by TractorTom
Perhaps since there's Internet involved and you'll need it very efficient, I would consider either doing the network programming yourself (an extremley large mountain ;)), or getting a dedicated network library. I can't really give this as a fact, but more my opinion, but I'm quite wary of an engine that attempts to do many things....


The typical definition of a gaming engine is one that encapsulates many things - universal to all games - in a single framework or API, so that the wheel does not need to keep being reinvented. Rendering, physics, network, AI, sound, etc etc. It is true that putting together an engine that performs all these tasks does have the potential to become an ugly monster if not designed properly. Judging by your 'opinion', though, you have overlooked a very important group of engines, as already pointed out.

Quote:
Original post by TractorTom
I'm not encouraging him to rewrite it, I simply said that if he had the networking skills then it would be an option. As good as the torque engine may be for networking, I don't see it being as effective as a dedicated networking library.


Well seeing as a dedicated network library (OpenTNL) was created from the TGE networking code, TGE is therefore based on a dedicated networking library, so your point makes no sense. The Networking FAQ has a great list of available networking libraries. Unless you are looking for a learning experience, or you just need some very basic utilities, or you have a lot of free time, writing your own network library is not really recommended.

Quote:
Original post by TractorTom
But clearly it stands to reason that if a company is selling a certain library to do a specific job at the same cost as an entire engine then they're either a)daft b)are superiour at what they do.


- c) the engine may have other features that are outdated and the price is lowered to reflect this
- d) economics - the engine may have a lower price, as they figure they can make more money selling to broader audience at a cheaper rate
- e) the products come with different levels of support
- f) the products are released under different licenses
... etc ....

----------------------------

To sum up:

@ OP: Good luck with your MMO. Torque has no hard player cap. Torque is probably the only engine of it's quality and potential that you will find for such a price and with the capability of supporting a large group of players. If you want to write your own engine, there are many freely available networking libraries (see FAQ) that can assist you in that.

@ TractorTom: Opinions based on lack of facts are not good opinions, in my opinion!

Share this post


Link to post
Share on other sites
hm.. I don't know how the torque engine does its job, but I don't think it will do it in the same quality for an (MMO)RPG and an (MMO)FPS. these types of games are just so different that you need a different design of your network layout, protocol and more. IMO you can't build a network library that is fit for all types of games. In this example RPG vs FPS. RPG can be handled with TCP and has no problems with it (seeh hplus' post) but I can't image an fps written with an tcp network code to run without lags..
I don't know what the torque engine is for, but I heard something about a "torque mmorpg system" or something like that, so that could be fit for writing mmorpgs but surely not for an fps or even mmofps

and @the theoretical number of users: simply using a player id field of <enter the number of bits you like, say 32 is enough> doesn't mean, the server can HANDLE 2^32 users even if it would be possible in playerIDs

Share this post


Link to post
Share on other sites
There are several MMOs in development using Torque. There's an MMO starter pack that is available from the Torque community. Minions of Mirth from Prairie Games uses Torque and has hundreds of players.

Torque's networking isn't going to let you do an MMO right out of the box, but that's no reason not to use it. The thing about Torque is that you get the complete source code to modify as you see need. It's the same case as the Unreal Engine, which is used in Lineage, Vanguard: Saga of Heroes, and other MMOs. UE is an FPS engine, but licensees modify networking, terrain rendering, and whatever else they need to get the job done. For Minions of Mirth, Josh Ritter integrated Python with Torque and used the Twisted framework for some of the networking, though Torque's networking is still at the heart of the game.

So Torque is not a shrink-wrapped solution for an MMO, but that doesn't mean it can't be used as a base to build one. That implies that you have to know what you are doing.

Share this post


Link to post
Share on other sites
If you played the original EverQuest, it lagged pretty hard when you had more than 100 players in a single zone. The way they scaled the game to thousands of players per shard was to run each shard on its own machine (a few less popular zones can share the same machine, but run in different processes).

With Torque, suppose you could do 128 players per process -- that's not bad! Split your game on 15 zones, run each zone on a separate process, and you support up to 1500 simultaneous players! (In reality, they will not spread out that nicely, but the basic idea still applies).

My opinion is that you shouldn't attempt to scale by putting all your eggs in one super big, super fast basket that costs a lot of money and requires regular sacrifices of red-headed virgins to keep operating. You should scale by plugging in cheap, almost "disposable" server hardware, and farm the load out over a cluster.

Share this post


Link to post
Share on other sites
Hplus speaks the truth here. Trust me, sacrificing red headed virgins get old fast, especially when your user base grows faster than the tech of the potential hardware you can buy to fix a particular problem. Then it's a race between your userbase growth and the speed optimisation you can make while trying to hack in some sort of multi server capabilities into an architecture that was never meant to support it.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this