Torque: the next generation
by Sander Van Rossen · in Torque Game Engine · 03/24/2003 (3:45 am) · 19 replies
I'm rather annoyed that torque is outdated, and there are some talks about refactoring the old code and that it may take some time to complete.
This basically means that any changes i make to my own code now, might just as well be worthless in the future when this new version of torque is done.
In my opinion, the quicker the new version is done, or at least it's basic framework, the better.
Anyway, i've been thinking about engine architecture the last couple of days, and i just want to share a couple of conclusions.
a game consists out of three parts:
artwork/content
technology
gameplay
technology is required to be able to provide artwork & gameplay
artwork is important to sell the game in the first place,
gameplay keeps it popular
so if the engine is only a tool to supply the artwork and
to handle the gameplay logic, it should be a thin and flexible
system.
as much logic as possible should be put in scripts and shaders.
when i say shaders, i don't mean shaders as in graphics shaders or cg shaders
or anything.
shaders could be for a large variety of things like sound (soundfx settings, enviroment?), model skins, particle fx, material (what sound/particlefx to use when hit, friction etc.), model physics (weight etc.) and ofcourse also for graphics.
hell we could even have gameplay specific shaders like player 'shaders' for games that have multiple player classes you can chose from.
yes, these things can be put in the script, but in my opinion it's simpler to have seperate simple files that just contain a couple of keywords and variables.
that way artists, or game designers can just change a couple of keywords or variables and check the result quickly. no coders required.
no need for extra (confusing) functionality that shouldn't be used by them anyway.
what also is important, is better syntax checking in the scripting language.
right now syntax checking is almost non existant..
ofcourse the engine should be modular so that different rendering systems/algorithms etc. can easily be used side by side.
This basically means that any changes i make to my own code now, might just as well be worthless in the future when this new version of torque is done.
In my opinion, the quicker the new version is done, or at least it's basic framework, the better.
Anyway, i've been thinking about engine architecture the last couple of days, and i just want to share a couple of conclusions.
a game consists out of three parts:
artwork/content
technology
gameplay
technology is required to be able to provide artwork & gameplay
artwork is important to sell the game in the first place,
gameplay keeps it popular
so if the engine is only a tool to supply the artwork and
to handle the gameplay logic, it should be a thin and flexible
system.
as much logic as possible should be put in scripts and shaders.
when i say shaders, i don't mean shaders as in graphics shaders or cg shaders
or anything.
shaders could be for a large variety of things like sound (soundfx settings, enviroment?), model skins, particle fx, material (what sound/particlefx to use when hit, friction etc.), model physics (weight etc.) and ofcourse also for graphics.
hell we could even have gameplay specific shaders like player 'shaders' for games that have multiple player classes you can chose from.
yes, these things can be put in the script, but in my opinion it's simpler to have seperate simple files that just contain a couple of keywords and variables.
that way artists, or game designers can just change a couple of keywords or variables and check the result quickly. no coders required.
no need for extra (confusing) functionality that shouldn't be used by them anyway.
what also is important, is better syntax checking in the scripting language.
right now syntax checking is almost non existant..
ofcourse the engine should be modular so that different rendering systems/algorithms etc. can easily be used side by side.
#2
www.realspace.org
Enjoy!
03/24/2003 (4:39 am)
Your "Shaders" idea seems a lot like the "Actors" in the Aelous Engine. Aeolus is also extremely flexible and is infinitely upgradeable and updateable. The only drawback is that it's not cheap or free as the TGE is, although it IS a ton cheaper than most of the other major game engines out there.www.realspace.org
Enjoy!
#3
It's amazing how many people here think they cannot make a good game unless they have all the latest bells and whistles. Those DO NOT sell games. I have never met anyone who bases their purchasing decisions on whether or not a game has shaders, bumps, etc. They care about the play, the content, the FUN.
03/24/2003 (5:01 am)
Unless your current project is near complete and you've reached a brick wall caused by a lack of technology, you have no right to be annoyed.It's amazing how many people here think they cannot make a good game unless they have all the latest bells and whistles. Those DO NOT sell games. I have never met anyone who bases their purchasing decisions on whether or not a game has shaders, bumps, etc. They care about the play, the content, the FUN.
#4
it's just annoying, and unavoidable, that it means that a lot of code (not script code) i'll write will be useless in so many months :(
that's why i hope that this refactoring will be quick and will start -soon-
Charles: well shaders is a bad name for it all, but since i didn't know of an alternative name...
as for calling it actors... doesn't sound like a well suited name for it either ;)
Erik: you're missing my point. good gameplay *is* very important, but selling a game requires more than just good gameplay.
You & i might think gameplay is the most important part of the game, but most people just look at the pretty pictures on the box when they buy a game.
I just ment that, ideally, an engine is a thin layer which is completely configurable so that the gameplay & artwork only has the hardware as limiting factor.
Yes torque is pretty good engine as it is, but right now it's clearly a first/third person engine and most of it's features are rather hardcoded.
If you want to implement more innovative gameplay then it's a hell of a lot of work to change everything.
When i'm talking about technology, i'm not necesarily reffering to graphics, but also to sound, physics AND more flexibility when it comes to gameplay..
I've already reached some brick walls which i had to code around or rewrite some code..
and this code might be obsolete in a couple of months
i'm just venting some steam here hehe (didn't mean to get you upset ;)
03/24/2003 (6:26 am)
Melv: i'm not annoyed that refactoring is taking place, i'm actually quite pleased about that.it's just annoying, and unavoidable, that it means that a lot of code (not script code) i'll write will be useless in so many months :(
that's why i hope that this refactoring will be quick and will start -soon-
Charles: well shaders is a bad name for it all, but since i didn't know of an alternative name...
as for calling it actors... doesn't sound like a well suited name for it either ;)
Erik: you're missing my point. good gameplay *is* very important, but selling a game requires more than just good gameplay.
You & i might think gameplay is the most important part of the game, but most people just look at the pretty pictures on the box when they buy a game.
I just ment that, ideally, an engine is a thin layer which is completely configurable so that the gameplay & artwork only has the hardware as limiting factor.
Yes torque is pretty good engine as it is, but right now it's clearly a first/third person engine and most of it's features are rather hardcoded.
If you want to implement more innovative gameplay then it's a hell of a lot of work to change everything.
When i'm talking about technology, i'm not necesarily reffering to graphics, but also to sound, physics AND more flexibility when it comes to gameplay..
I've already reached some brick walls which i had to code around or rewrite some code..
and this code might be obsolete in a couple of months
i'm just venting some steam here hehe (didn't mean to get you upset ;)
#5
Thanks,
Eric
03/29/2003 (5:30 pm)
Is there an ETA on this next version of Torque? When is Torque 1.2.0 going to be released? Does the GG staff still work on improving Torque or is just a community effort? since I am not an SDK owner should I wait to become one if a new version will be released?Thanks,
Eric
#6
@Sander, where did you hear that a completely new and reworked version of torque is about to come out in a few months? I've read most of the content on this site and I've never even heard a rumor close to what your saying. Is this really true and if so could you tell me where you read it? What I understand from everything I've read from Jeff and the GG guys, they have pretty much handed torque over to the community to improve upon. I find it rather surprising that you are under the imprssion that torque is about to completely change into a whole new engine, it took them a year to go from 1.1.1 to 1.2, and that was before GG started working on their own games, what makes you think a version 2 will be comming out anytime soon?
speaking of which, what ever happened to the torque enhancement project, werent those guys promising open source bump mapping back in November? In fact I remember they were promising us a lot of things, what ever happened to those guys?
03/29/2003 (5:51 pm)
@Eric, dont worry, if your an sdk owner then you have aces to dowload the current version of torque whenever you want for as long as you live (assuming nuclear war or some other catastrophe doesnt hinder the operations of GG's server)@Sander, where did you hear that a completely new and reworked version of torque is about to come out in a few months? I've read most of the content on this site and I've never even heard a rumor close to what your saying. Is this really true and if so could you tell me where you read it? What I understand from everything I've read from Jeff and the GG guys, they have pretty much handed torque over to the community to improve upon. I find it rather surprising that you are under the imprssion that torque is about to completely change into a whole new engine, it took them a year to go from 1.1.1 to 1.2, and that was before GG started working on their own games, what makes you think a version 2 will be comming out anytime soon?
speaking of which, what ever happened to the torque enhancement project, werent those guys promising open source bump mapping back in November? In fact I remember they were promising us a lot of things, what ever happened to those guys?
#7
03/29/2003 (8:26 pm)
Eric Risser: Mark Frohnmayer's post here: www.garagegames.com/index.php?sec=mg&mod=forums&page=result.thread&qt=9619
#8
1) Torque is no where close to outdated.
2) Syntax checking in scripts is working perfectly fine, for me anyway.
3) Gameplay is based on how you code and script your copy, it really has nothing to do with the actual engine.
4) if you're worried about engine changes then backup your current code, try to use cvs to apply the differences and if that fails attempt to figure out a way to implement the new stuff without hurting your copy.(Hey we all have had to do it already especially using parts of code in resources have been written for the HEAD while many of us are trying to get it working on the latest release v1.1.2)
5) Game development is never going to be easy and smooth riding unless you're smoking pot and visualizing all those compile errors scrolling on your screen are happy hamsters dancing for joy!
;)
03/29/2003 (10:04 pm)
Ok...1) Torque is no where close to outdated.
2) Syntax checking in scripts is working perfectly fine, for me anyway.
3) Gameplay is based on how you code and script your copy, it really has nothing to do with the actual engine.
4) if you're worried about engine changes then backup your current code, try to use cvs to apply the differences and if that fails attempt to figure out a way to implement the new stuff without hurting your copy.(Hey we all have had to do it already especially using parts of code in resources have been written for the HEAD while many of us are trying to get it working on the latest release v1.1.2)
5) Game development is never going to be easy and smooth riding unless you're smoking pot and visualizing all those compile errors scrolling on your screen are happy hamsters dancing for joy!
;)
#9
03/29/2003 (11:29 pm)
wow, dont know how I missed that one! oh well, they are still in the design phase, I think it will be awhile before we see a new torque :(
#10
Altough the differences between each generation of engines becomes smaller, and a lot of new techniques only require clever use of artwork (and is therefore also possible in torque)
Compared to some of the engines i've worked with, or have seen in action, it *is* getting outdated.
That's why i think it would be a good thing to make the engine more modular and flexible, so that parts of the engine can be replaced with newer ones without breaking anything in other parts of the engine.
And a truly modular and flexible engine will never get outdated as long as it's modules get updated..
Well good for you then.
No, gameplay is about how the game plays, it has nothing to do how you script.
And come on, are you honestly saying that torque has no limitations?
You can only script the things that are possible with the engine.
If the kind of game you want to make isn't limited by torques ability, then fine, great.
But please don't assume that that's the same for everybody.
So you're saying "oh we all have this problem so it's not a problem"?
That's what i've been doing so far too obviously.
But it feels like such a waste of my precious little time i have to work on this to just re-invent the wheel..
So you're saying we should accept all limitations and never try to improve things?
Well that's a nice attitude
I know game development is not an easy and smooth ride
(I've worked in the game industry, i know how it works)
That doesn't mean we should just accept all the things that slow us down.
It's fairly clear that games are becoming more and more content orientated.
This means longer development time.
This also means that we need better tools and more automation for content generation.
It also means more complex and flexible technology is required.
And as the technology becomes more complex and flexible, maintainability becomes paramount.
And torque in it's current form is hard to maintain, and that needs to be improved!
Improving the infrastructure of the engine would really be beneficial to the community, for those who are working with torque now, and those who will want to make games with torque in the future.
03/30/2003 (4:41 am)
Nathan:Quote:1) Torque is no where close to outdated.
Altough the differences between each generation of engines becomes smaller, and a lot of new techniques only require clever use of artwork (and is therefore also possible in torque)
Compared to some of the engines i've worked with, or have seen in action, it *is* getting outdated.
That's why i think it would be a good thing to make the engine more modular and flexible, so that parts of the engine can be replaced with newer ones without breaking anything in other parts of the engine.
And a truly modular and flexible engine will never get outdated as long as it's modules get updated..
Quote:2) Syntax checking in scripts is working perfectly fine, for me anyway.
Well good for you then.
Quote:3) Gameplay is based on how you code and script your copy, it really has nothing to do with the actual engine.
No, gameplay is about how the game plays, it has nothing to do how you script.
And come on, are you honestly saying that torque has no limitations?
You can only script the things that are possible with the engine.
If the kind of game you want to make isn't limited by torques ability, then fine, great.
But please don't assume that that's the same for everybody.
Quote:4) if you're worried about engine changes then backup your current code, try to use cvs to apply the differences and if that fails attempt to figure out a way to implement the new stuff without hurting your copy.(Hey we all have had to do it already especially using parts of code in resources have been written for the HEAD while many of us are trying to get it working on the latest release v1.1.2)
So you're saying "oh we all have this problem so it's not a problem"?
That's what i've been doing so far too obviously.
But it feels like such a waste of my precious little time i have to work on this to just re-invent the wheel..
Quote:5) Game development is never going to be easy and smooth riding unless you're smoking pot and visualizing all those compile errors scrolling on your screen are happy hamsters dancing for joy!
So you're saying we should accept all limitations and never try to improve things?
Well that's a nice attitude
I know game development is not an easy and smooth ride
(I've worked in the game industry, i know how it works)
That doesn't mean we should just accept all the things that slow us down.
It's fairly clear that games are becoming more and more content orientated.
This means longer development time.
This also means that we need better tools and more automation for content generation.
It also means more complex and flexible technology is required.
And as the technology becomes more complex and flexible, maintainability becomes paramount.
And torque in it's current form is hard to maintain, and that needs to be improved!
Improving the infrastructure of the engine would really be beneficial to the community, for those who are working with torque now, and those who will want to make games with torque in the future.
#11
03/30/2003 (6:20 am)
Well, you have the source, so you can make Torque into whatever you want really. Why worry about a big change invalidating your code, and then say that the problem with the engine is that it is not being updated? I say go make your game with the current engine like we are. I wouldn't recommend trying to compete with graphical content anyway, there's no way you can beat the 40 man graphics departments as an indie. I would list a bunch of other areas that the big developers don't even make an decent effort in, but I suspect it is pretty obvious.
#12
03/30/2003 (11:46 am)
Alright Sander if you don't like the engine the way it is don't come on here and start bitching, go recode it your own fucking way and quit wasting our time with your damn complants. You're the one annoying us, not the engine. No one said leave it the way it is, apparently you're the one who's going to leave it the way it is and have us worry about making it the way you want it. So if you want it a different way do it yourself.
#13
03/30/2003 (11:50 am)
this is pathetic.
#14
on the other hand Sander, at some point you need to stop worrying about whats going to come out and just decide to stick with what you have. I had the same dilema with Isotope X, I wanted to stay away from the code as much as possible because I figured it would be trash whenever the next update to torque came out, but finnaly I just had to say thats it and stick to a single version of torque and go from there. even if a torque 2 with bump mapping, vertex and pixel whatevers comes out, I'll probably still work on Isotope X with good old version 1.2.0... work on whatever your going to work on now and make your next game with whatever updated version is out at the time.
03/30/2003 (1:14 pm)
Nathan, stop being a jerk... this guy hasnt really been out of line at all in this thread, I dont believe he's been "bitching", "complaining" or "waisting our time". The guy read in another thread that the GG crew are planning an outline for a newer torque and he decided to give some very intelligent and thought out suggestions for how that design could be better (not just graphics wise, but better for all areas of the game). True torque is very good as it is now and true the scripting system is very flexible, but its nothing compared to the flexibility that Sander is describing. Your comment of "if you want it different then do it yourself" is just stupid, theres no way Sander could do all this himself, I believe Sander was making a suggestion to GG about a better design concept that they might find beneficial for torque 2. I dont beleive anywhere in this thread he asked "us" to do all the work.on the other hand Sander, at some point you need to stop worrying about whats going to come out and just decide to stick with what you have. I had the same dilema with Isotope X, I wanted to stay away from the code as much as possible because I figured it would be trash whenever the next update to torque came out, but finnaly I just had to say thats it and stick to a single version of torque and go from there. even if a torque 2 with bump mapping, vertex and pixel whatevers comes out, I'll probably still work on Isotope X with good old version 1.2.0... work on whatever your going to work on now and make your next game with whatever updated version is out at the time.
#15
03/30/2003 (3:57 pm)
How does one deal with patches meant for the HEAD version if you are working on 1.2.0? Can you see what the patch is changing before you apply it? I am just trying to better understand the patch process. Thanks!
#16
grow up. if you don't like what i've got to say, just don't read the damn post.
Eric Risser:
thanks :)
Yea i'm starting to think about just splitting off my work as well.
But it's kinda sad, coz i liked the idea of contributing to the torque engine, and if i go in a completely different direction, i couldn't possibly submit my changes as a patch anymore.. (would be way too big, and changes too radicall)
Sigh.
Well maybe i'll share the code of the engine when it's done or something..
(whenever that may be)
03/30/2003 (10:58 pm)
Nathan: grow up. if you don't like what i've got to say, just don't read the damn post.
Eric Risser:
thanks :)
Yea i'm starting to think about just splitting off my work as well.
But it's kinda sad, coz i liked the idea of contributing to the torque engine, and if i go in a completely different direction, i couldn't possibly submit my changes as a patch anymore.. (would be way too big, and changes too radicall)
Sigh.
Well maybe i'll share the code of the engine when it's done or something..
(whenever that may be)
#17
03/31/2003 (4:58 pm)
That's the spirit. Good luck.
#18
Given that, your best bet if you want to make a game is to take what's available now and run with it - the tech is always going to get better, but that's no reason to wait... just use the next rev on your next game :)
We're also going to try as we move forward to do a much better job of communicating our roadmap for the future of the Torque engine.
03/31/2003 (5:27 pm)
Just to add - we're busy here mapping out the future of the Torque technology, and we read with great interest all comments about where people would like to see Torque going. We took a large break on the engine side of things when we were working on getting the game and game publishing side of the business going, but for the forseeable future we're planning on ongoing upgrades to the engine. Given that, your best bet if you want to make a game is to take what's available now and run with it - the tech is always going to get better, but that's no reason to wait... just use the next rev on your next game :)
We're also going to try as we move forward to do a much better job of communicating our roadmap for the future of the Torque engine.
#19
An eye candy that would be wonderful to my game is stencil shadows and bump/gloss maps, since it's somewhat gothic themed... MMMM, "Tenebrae Torque" would be great!
03/31/2003 (5:29 pm)
Sander, if you choose a version to make your changes (HEAD, for example) and document them well, everybody here would be able to patch them over the version you chose, and many could apply it to other versions too. A programmer should be able to read the code and documentation of what you done, not just copy-paste, and apply it to his particular case.An eye candy that would be wonderful to my game is stencil shadows and bump/gloss maps, since it's somewhat gothic themed... MMMM, "Tenebrae Torque" would be great!
Employee Melv May
I wouldn't be annoyed that refactoring work is taking place, I would be pleased. If your script code is organised well, then you should have minimal work required to get it up and running on any new system that may come along. Grant you that there would be changes but unless you intend to write an epic, I'm sure you'd only have a week or two of changes to suffer.
Any future work that may take place is no reason to hinder current progress. Why should I buy a 3.06Ghz cpu when a 3.5Ghz one will be released in a couple of months? Well, it's because a 3.06Ghz is more than sufficient to do what I want it to.
I'm not ranting here mate, it's simply the way I see it.
- Melv.