3 weeks with Torque
by David Welsh · in Torque Game Engine · 06/28/2005 (9:14 pm) · 16 replies
This is just my little story of how I've progressed from total Torque newbie to a knowledgeable Torque user. And why I've stopped using Torque alltogether.
On june 11th I downloaded Torque and for the first time in my life got to see what a comercial quality game SDK looked like. I was impressed to say the least. And still am.
Within the first few hours I was altering the terrain, and adjusting the sky and water. Within a few days I was building DIF interiors in Cartshop and placeing them in fps.starter. By the end of the first week I had a solid knowledge of particle systems and even had some nice background music playing when fps.starter started up.
Next came making skyboxes with terragen. And finally, I took the plunge into DTS objects. After a few stumbles here and there, I got my milkshape and maya objects to work in fps.starter with proper collision detection.
Everything seemed easy. So, my next step was obviously to give animation a go. I quickly learned that there was much more involved with making animation work than just creating a DTS with baked in animation and placing it into the fps.starter demo. I had to now get very involved with the script.
In doing so I decided to trace fps.starter from beginning to end. Talk about a test of patience! Not since my early days of programming in Qbasic and gwbasic had I seen such "spagetti-like" code. And that was 13 years ago! I've long since become very accustomed to C++ and it's very structured style and can't help but hate torque's scripting language and the way it scatters functions and datablocks across multiple files making it very frustrating to see just how the program is working.
Over the course of a couple days I had completely traced the fps.starter script from beginning to end and had gained alot of knowledge of how the script worked and alot of the ins and outs of the engine. I also recieved my copy of "3D game programming All in one" during this time and it helped alot toward understanding the subtle pros and cons of scripting in torque.
After doing this I stepped back from it all and looked at torque as a whole. I was both impressed and overwelmed with what was possible with this SDK. I then fired up visual C++ and started looking at the engine code. It was at this time that I realized that Torque is massive. Far more than any one person can handle on their own. It would require a team to create a game worth playing with torque and with this realization I reluctantly dissmissed my notions of single handedly creating a game with torque. The best I could hope to do alone was just alter fps.starter by putting in custom DIF's and DTS's and a few other changes but it would still be GG's fps.starter underneath it all.
So, after it all, I've opted to go back to tweaking a text compression program that I created a few years ago and put Torque on the back burner. Torque is an awesome engine. It's the best $100 dollars I've spent in a while. But allas, it's a bit more than I can chew for now. I do look forward to developing a game in the future with it, but not before finding a team of like minded people that live in the raleigh area willing to take on the challenge. :)
Till then...
On june 11th I downloaded Torque and for the first time in my life got to see what a comercial quality game SDK looked like. I was impressed to say the least. And still am.
Within the first few hours I was altering the terrain, and adjusting the sky and water. Within a few days I was building DIF interiors in Cartshop and placeing them in fps.starter. By the end of the first week I had a solid knowledge of particle systems and even had some nice background music playing when fps.starter started up.
Next came making skyboxes with terragen. And finally, I took the plunge into DTS objects. After a few stumbles here and there, I got my milkshape and maya objects to work in fps.starter with proper collision detection.
Everything seemed easy. So, my next step was obviously to give animation a go. I quickly learned that there was much more involved with making animation work than just creating a DTS with baked in animation and placing it into the fps.starter demo. I had to now get very involved with the script.
In doing so I decided to trace fps.starter from beginning to end. Talk about a test of patience! Not since my early days of programming in Qbasic and gwbasic had I seen such "spagetti-like" code. And that was 13 years ago! I've long since become very accustomed to C++ and it's very structured style and can't help but hate torque's scripting language and the way it scatters functions and datablocks across multiple files making it very frustrating to see just how the program is working.
Over the course of a couple days I had completely traced the fps.starter script from beginning to end and had gained alot of knowledge of how the script worked and alot of the ins and outs of the engine. I also recieved my copy of "3D game programming All in one" during this time and it helped alot toward understanding the subtle pros and cons of scripting in torque.
After doing this I stepped back from it all and looked at torque as a whole. I was both impressed and overwelmed with what was possible with this SDK. I then fired up visual C++ and started looking at the engine code. It was at this time that I realized that Torque is massive. Far more than any one person can handle on their own. It would require a team to create a game worth playing with torque and with this realization I reluctantly dissmissed my notions of single handedly creating a game with torque. The best I could hope to do alone was just alter fps.starter by putting in custom DIF's and DTS's and a few other changes but it would still be GG's fps.starter underneath it all.
So, after it all, I've opted to go back to tweaking a text compression program that I created a few years ago and put Torque on the back burner. Torque is an awesome engine. It's the best $100 dollars I've spent in a while. But allas, it's a bit more than I can chew for now. I do look forward to developing a game in the future with it, but not before finding a team of like minded people that live in the raleigh area willing to take on the challenge. :)
Till then...
About the author
#2
06/28/2005 (10:42 pm)
I have a similar sentiment about single-handedly tackling a game project. I also happen to live in Winston-Salem. Its not exactly the Raleigh area but still pretty close. I am definitely a torque newbie (despite having an indie license since oct 2004, shame on me) but I am steadily improving. If you are looking for someone to to a project with (now or in the future) let me know.
#3
I'm also still a newbie after 16 months of constant activity with the engine, you learn new stuff each day.. I just have to switch into one of the files in the engine that handles networking/ghosting and I feel like a 1-day newbie again :) But look at now and when you started out in October, you will realise that you're learning alot.
Interesting post btw David.
06/29/2005 (1:33 am)
Matthew,I'm also still a newbie after 16 months of constant activity with the engine, you learn new stuff each day.. I just have to switch into one of the files in the engine that handles networking/ghosting and I feel like a 1-day newbie again :) But look at now and when you started out in October, you will realise that you're learning alot.
Interesting post btw David.
#4
The main difficulty is that, first of all, you have to understand how TGE works. And that's hard. Much more because the documentation is... well... in most cases, just a list of methods and properties. See detailManager: http://www.garagegames.com/docs/tge/engine/classDetailManager.php
(I hope I am totally lost and that there really exists a proper document explaining how all that works)
If you want total control of what you are doing, don't use TGE, unless you want to spend a few months trying to master its own code. Look for another kind of engine, where you can create your own code structure.
Don't take me wrong, I love TGE. But we have to accept certain aspects of it. It's not a religion, but a Game Engine.
06/29/2005 (4:06 am)
The thing with TGE's C++ code is that you have to addapt your idea to it. Everthing is totally structured to create a networked FPS game. That's great if that's what you need. The main difficulty is that, first of all, you have to understand how TGE works. And that's hard. Much more because the documentation is... well... in most cases, just a list of methods and properties. See detailManager: http://www.garagegames.com/docs/tge/engine/classDetailManager.php
(I hope I am totally lost and that there really exists a proper document explaining how all that works)
If you want total control of what you are doing, don't use TGE, unless you want to spend a few months trying to master its own code. Look for another kind of engine, where you can create your own code structure.
Don't take me wrong, I love TGE. But we have to accept certain aspects of it. It's not a religion, but a Game Engine.
#5
I have hit that 80% mark with my game... Almost ALL of the coding is finished. The coding that is left requires art...
1 of those months has been doing a major Player overhaul under contract (which is how I got my art) ... So ya, in 2 months I managed to get my entire game coded up... Now, my game doesn't really resemble starter.fps... It's a 3rd person action / adventure game featuring some very unusual (and in some cases almost never before tried) features, such as geometric fur and the most advanced rig you'll ever see for my character... I also coded up 9 different types of AI bots.
I'm not bragging here... Just trying to tell you that it is possible. You have to push yourself hard...
If you can code and do art you are in a very good position. Given 9 months (and artistic ability) I could have done the game on my own.
06/29/2005 (4:49 am)
I have been using TGE for about 3 months. I am a programmer with no artistic ability at all. I have hit that 80% mark with my game... Almost ALL of the coding is finished. The coding that is left requires art...
1 of those months has been doing a major Player overhaul under contract (which is how I got my art) ... So ya, in 2 months I managed to get my entire game coded up... Now, my game doesn't really resemble starter.fps... It's a 3rd person action / adventure game featuring some very unusual (and in some cases almost never before tried) features, such as geometric fur and the most advanced rig you'll ever see for my character... I also coded up 9 different types of AI bots.
I'm not bragging here... Just trying to tell you that it is possible. You have to push yourself hard...
If you can code and do art you are in a very good position. Given 9 months (and artistic ability) I could have done the game on my own.
#6
is you project all in a top secret status ... or do you have some picture/movie/site...
If it is all top secret... that's fine too :)
06/29/2005 (7:13 am)
Hi Chris,is you project all in a top secret status ... or do you have some picture/movie/site...
If it is all top secret... that's fine too :)
#7
It is called Basic Bob: Island of Misfits... I have a .plan that I posted about it to get my artist. The link is: www.garagegames.com/blogs/47988/7707
Hopefully the DSSOTD goes up soon, as it shows the work much better... Heck even in the last 4 days I have managed to make leaps and bounds of progress.
06/29/2005 (7:35 am)
It was top secret until a few days ago... I posted up a Development ss of the day, but it hasnt went up yet... I thought it would go up yesterday or today... but alas it hasn't.. I am next in the queue. It is called Basic Bob: Island of Misfits... I have a .plan that I posted about it to get my artist. The link is: www.garagegames.com/blogs/47988/7707
Hopefully the DSSOTD goes up soon, as it shows the work much better... Heck even in the last 4 days I have managed to make leaps and bounds of progress.
#9
07/07/2005 (6:17 am)
David, that's really interesting! You've done a lot more in 3 weeks than most people have in years. Sad you're leaving Torque alone for a while, but I think it's a wise decision...for right now.
#10
I definitely see where you're coming from. The scripts that make up the starter.fps base are pretty hideous, and whilst it works for TGE, TorqueScript's handling of namespaces, etc, makes it pretty awkward to work with at times.
I've been working with Torque for nearly 6 months, about half of which has been spent just learning the engine and how it does things, and half of it getting accustomed to the various editors and art pipeline. Despite not being the most complicated codebase I've worked with, it is the most difficult to understand, and the most under-documented.
It is possible to make progress, however daunting the engine may be. I'm in the prototyping phase of my project at the moment, and in the last two days I've built an AI and interaction system based up the RPGDialog and Factions resources, and an environment system with time-based events using the GameManager resource, and day/night cycles using the Celestials resource. Applying the Synapse Lighting Pack, and using Tim Aste's content packs gives me a really solid base for putting together a game.
Taking apart the AIPlayer.cs script has helped a lot (despite the fact the that 'out of the box' the AIPlayer::Fire() function has a bug in it that causes TGE to crash and lock the system), and I've now got two teams of bots that perform different events based on a daily schedule, attacking each other under certain conditions, and interacting with the player. With a quick scoring system, and a few different weapon types, I could put together several scenario-based game types in a matter of a few more days.
Once I've got the basis for this gameplay, I can tweak and adjust the pace and feel, and start to add in art assets to develop the feel further. Sound and music resources abound across the internet, and in only a couple of weeks I've got a strong basis for a game, working entirely alone.
Yes, TGE is daunting, but the biggest hurdle isn't the engine, it's your own motivation and determination to tackle the task. Once you start seeing tangible results of your use of TGE, your enthusiasm will help carry you through. :)
07/07/2005 (8:27 am)
Hey David,I definitely see where you're coming from. The scripts that make up the starter.fps base are pretty hideous, and whilst it works for TGE, TorqueScript's handling of namespaces, etc, makes it pretty awkward to work with at times.
I've been working with Torque for nearly 6 months, about half of which has been spent just learning the engine and how it does things, and half of it getting accustomed to the various editors and art pipeline. Despite not being the most complicated codebase I've worked with, it is the most difficult to understand, and the most under-documented.
It is possible to make progress, however daunting the engine may be. I'm in the prototyping phase of my project at the moment, and in the last two days I've built an AI and interaction system based up the RPGDialog and Factions resources, and an environment system with time-based events using the GameManager resource, and day/night cycles using the Celestials resource. Applying the Synapse Lighting Pack, and using Tim Aste's content packs gives me a really solid base for putting together a game.
Taking apart the AIPlayer.cs script has helped a lot (despite the fact the that 'out of the box' the AIPlayer::Fire() function has a bug in it that causes TGE to crash and lock the system), and I've now got two teams of bots that perform different events based on a daily schedule, attacking each other under certain conditions, and interacting with the player. With a quick scoring system, and a few different weapon types, I could put together several scenario-based game types in a matter of a few more days.
Once I've got the basis for this gameplay, I can tweak and adjust the pace and feel, and start to add in art assets to develop the feel further. Sound and music resources abound across the internet, and in only a couple of weeks I've got a strong basis for a game, working entirely alone.
Yes, TGE is daunting, but the biggest hurdle isn't the engine, it's your own motivation and determination to tackle the task. Once you start seeing tangible results of your use of TGE, your enthusiasm will help carry you through. :)
#11
I hate to say that, but i think you a gamedeveloper wannabe.
There a lot of possibilites to make game for only one person, pick a right project. Is it so big problem for you to find people that want to make game?
Post some volounter oportunity on forum. My friend posted a message on local site, in job offering. A lot of people sended resumes, they know that it will be free ot payd work.
Sebastian right, one of the best and easyest way to learn TGE, is to implement resources that you think will be some sort of featuring for your project.
07/07/2005 (9:51 am)
DavidI hate to say that, but i think you a gamedeveloper wannabe.
There a lot of possibilites to make game for only one person, pick a right project. Is it so big problem for you to find people that want to make game?
Post some volounter oportunity on forum. My friend posted a message on local site, in job offering. A lot of people sended resumes, they know that it will be free ot payd work.
Sebastian right, one of the best and easyest way to learn TGE, is to implement resources that you think will be some sort of featuring for your project.
#12
I've been in Torque for 13 months now and while it is massive, looking at smaller functions is the way to go. As for making a great game in Torque, game development follows the same rules as any project:
Good
Quick
Cheap
Pick two.
You can create a good, cheap game but it will take a long time. If you want a quick game, cheap then by definition, it won't be good. It all depends on what is important. Personally, I'm using good and cheap, so I'll see you in a few years :)
Thanks.
07/07/2005 (10:03 am)
Greetings,I've been in Torque for 13 months now and while it is massive, looking at smaller functions is the way to go. As for making a great game in Torque, game development follows the same rules as any project:
Good
Quick
Cheap
Pick two.
You can create a good, cheap game but it will take a long time. If you want a quick game, cheap then by definition, it won't be good. It all depends on what is important. Personally, I'm using good and cheap, so I'll see you in a few years :)
Thanks.
#13
David
Do you realy want to throw in garbage bin three weeks of work and inspiration.
Get some articles from www.stevepaulina.com and www.dexterity.com they will help you.
07/07/2005 (10:03 am)
PS:David
Do you realy want to throw in garbage bin three weeks of work and inspiration.
Get some articles from www.stevepaulina.com and www.dexterity.com they will help you.
#16
Also have 2 weeks vacation before starting to really tackle TGE this last week. First was to get TGE to be managed by KDevelop. I did not follow the usual route of many TGE noobs, by altering the game content, then scripting to be followed by engine alterations. I decided to tackle certain issues that would affect all my products that I would be production. That is separating the editors into separate clients. Have 2 or more TGE applications running at the same time on a PC. Ryan Mick, has been very helpfull in achieving the 1st goal. Still busy with the 2nd one.
Having no decent DIF editors for Linux, also lead me away from the usual first temp of TGE noobs. Though GG is working on a solution that will run on Linux too. Can't wait for it to be released.
In the mean time I continue to tackle scripting and engine alternations until I can start creating content.
I tried other game engines, yet fail to produce anything that was working, struggled to understand the engine structure. With TGE I already have made changes that are working, beginning to understand how the engine work, learning how to alter the engine source code and scripting technique, which I failed to do with other engines.
So bite the bullet and get going in using TGE (soom TSE). :)
07/09/2005 (11:00 am)
Well a real noob too! Bought my indie license on the 1st of June 2005. I was totally impressed with TGe in that it compiled 1st time on Linux without error. Also discovered how huge TGE is and realized I going to have to do some serious work to alter the engine to achieve one of my goal. It was amazing how supportive the community and the employees of GG really are, in guiding one onto the correct path.Also have 2 weeks vacation before starting to really tackle TGE this last week. First was to get TGE to be managed by KDevelop. I did not follow the usual route of many TGE noobs, by altering the game content, then scripting to be followed by engine alterations. I decided to tackle certain issues that would affect all my products that I would be production. That is separating the editors into separate clients. Have 2 or more TGE applications running at the same time on a PC. Ryan Mick, has been very helpfull in achieving the 1st goal. Still busy with the 2nd one.
Having no decent DIF editors for Linux, also lead me away from the usual first temp of TGE noobs. Though GG is working on a solution that will run on Linux too. Can't wait for it to be released.
In the mean time I continue to tackle scripting and engine alternations until I can start creating content.
I tried other game engines, yet fail to produce anything that was working, struggled to understand the engine structure. With TGE I already have made changes that are working, beginning to understand how the engine work, learning how to alter the engine source code and scripting technique, which I failed to do with other engines.
So bite the bullet and get going in using TGE (soom TSE). :)
Torque Owner Alex Rice
Default Studio Name
Whether or not a 1 person can really create a game, seems to me really not a matter of how well torque is architected or how huge the codebase is, but it's a matter of desire, perseverence, and inspiration, tears, etc. The huge codebase is a good thing. The huge codebase represents engine components and features you can l e v e r a g e. You don't need to undestand every line of C++ code. Probably nobody here understands every line either. Here is anecdote:
I used to program in CLIPS (C Language Integrated Production System) a rule-based production system for building expert, AI and control systems. When discussing an application problem with the CLIPS author I admitted sheepishly that I had not gotten around to reading all the source code yet. CLIPS is written in beautiful, portable, meticulous C code. A few hundred thousand lines worth. He laughed and said "I hope not, and I don't recommend it. Don't you have anything better to be doing?" Same idea with Torque. Leverage it those lines of code, don't worry over them.
One other note: it may be that what you perceive to be spagetti in torquescript may actually be 2 very intentional things:
1. event driven design where the players, physics, AI all interact and fire off events. Therefore there are lots of different "entry points" into the script code.
2. Torque is Client-Server to the bone. Many things are split up into client code and server code. And I guess it is necessarily duplicated things here and there.