<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.0.1" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: Torque Game Builder</title>
	<link>http://www.sirlin.net/archive/torque-game-builder/</link>
	<description>A game designer's eye view of things</description>
	<pubDate>Tue, 07 Oct 2008 09:24:13 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.1</generator>

	<item>
		<title>by: Angel</title>
		<link>http://www.sirlin.net/archive/torque-game-builder/#comment-52370</link>
		<pubDate>Sat, 02 Jun 2007 00:15:00 +0000</pubDate>
		<guid>http://www.sirlin.net/archive/torque-game-builder/#comment-52370</guid>
					<description>JustOwnin:  share the wealth!  What's the secret of the universe?</description>
		<content:encoded><![CDATA[<p>JustOwnin:  share the wealth!  What&#8217;s the secret of the universe?
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: ricefrog</title>
		<link>http://www.sirlin.net/archive/torque-game-builder/#comment-51261</link>
		<pubDate>Mon, 21 May 2007 13:25:01 +0000</pubDate>
		<guid>http://www.sirlin.net/archive/torque-game-builder/#comment-51261</guid>
					<description>I'll probably have to take back that warning above...  I grabbed the beta of the Torque X version of TGB (TGBX).  So far I've just been reading the docs, but it seems really cool.  It's already a world of difference between that and the Tribes 2 hacking.</description>
		<content:encoded><![CDATA[<p>I&#8217;ll probably have to take back that warning above&#8230;  I grabbed the beta of the Torque X version of TGB (TGBX).  So far I&#8217;ve just been reading the docs, but it seems really cool.  It&#8217;s already a world of difference between that and the Tribes 2 hacking.
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: ricefrog</title>
		<link>http://www.sirlin.net/archive/torque-game-builder/#comment-50000</link>
		<pubDate>Wed, 09 May 2007 14:59:19 +0000</pubDate>
		<guid>http://www.sirlin.net/archive/torque-game-builder/#comment-50000</guid>
					<description>TGB sounds pretty interesting, maybe I'll fool around with it next time I'm bored in front of a PC.  I understand the license is really cheap, but can you download it for free before paying, just to play around?

If you're considering learning programming with TGB as your medium, I have to issue a warning:

Watch out with &quot;easy&quot; scripting languages.

I haven't used the 2D TGB, but for years I was a Tribes 2 junkie, so I have used TorqueScript in their 3D game engine.  I'm a professional (non-game) developer, and I did a few hobby projects.

I found that with the 3D Toque scripting, it was very easy to accomplish something the script designers expected you to want to accomplish, but that it could be pretty tough to step outside their predictions.  I imagine this is probably true of most game scripting because those scripts are inherently running on top of a hard-coded engine.

Maybe this is too much developer detail, but if you want a taste of what I mean, you can read on...

I created a modified version of the Deathmatch gametype, partly inspired by some of your discussions about the enforceability requirement for game rules -- ie no unwritten &quot;house rules.&quot;  (This is available at ricefrog.webhop.org, the readme file talks about the house rules it seeks to eliminate.  If anybody wanted to see the code you could just rename the .vl2 file to .zip and then unzip it.)

I also fooled around with bot combat AI and created a single-player &quot;survivor&quot; gametype as a testbed for the new AI enemies.

Anyway, back to the point that it's very easy to do things they expect you to do, and tough to do those things they don't expect...

For example, it was generally accepted that flash grenades should not be allowed in the deathmatch type in Tribes 2, because a player could ruin everyone's day by spending all his time jumping into the middle of big fights and spamming flashes everywhere.  Here's how easy it was to completely remove flash grenades from the game:

$InvBanList[FrogDM, &quot;FlashGrenade&quot;] = 1;

They have a global variable called $InvBanList just WAITING for you to disallow stuff.  Great!  But good thing they saw my need coming...

What happens when they don't?

Tribes 2 combat was heavily about movement, and during my AI experiments, I was struggling with a way to reconcile the multiple, often conflicting, demands for movement.  I eventually settled on an idea of stepping over a set of needs (ie chase/flee, weave side-to-side perpendicular to people shooting at you, avoid an incoming projectile, etc) and have each of these needs add a vector to a &quot;wish list&quot;.  This wish list of vectors would then be summed up and the bot would run, jump, or fire its jetpack to move in the resulting direction.

This would be pretty cool, because a bot might come tearing at you to get into a close-range attack, but it would simultaneously be weaving side-to-side as you tried to fire on it, and then it would leap out of the way as you fired at it.

Sadly, the &quot;list of vectors&quot; part was a problem, because after I created a class to represent a vector, I discovered that, as far as I could see, there was no list class that I could put them in.  No List!!?  I had to code one myself, which wasn't THAT bad, but it would have been ugly for someone just learning programming.

Far worse, I discovered that analyzing projectiles was something that the designers never expected me to do.  There was no way to walk over a list of projectiles to evaluate them for dodging logic.  I can't remember exactly the details, but I did some all-nighter hardcore investigating and I found that you could access a list of &quot;stuff&quot; that included far more than projectiles.  And using certain properties of the &quot;stuff&quot; in this list, you could weed some of them out as definitely not being projectiles.  And I think that some of the projectiles were not even in the list for some reason.

But in the end, there was absolutely no way to uniquely identify an incoming mortar shell from other, much more innocent stuff.

It was a huge disappointment to me, but I couldn't find a way around it.

So in the end I was left with bots that would run for their lives when you shined the targetting lazer on them, but might not get out of the way of a plasma blast.

And even to get them that far would have been hell on earth for somebody who wasn't experienced in debugging code and exploring APIs.


My point is that when you're working with these scripting systems, you rely heavily on examples and documentation, and they make things look easy.  But the second you step off the beaten path you're rolling the dice.  You might find an easy or slick answer just waiting for you to pluck it, but then you might say &quot;ok, now for the easy part&quot; only to find that when you thought was simple is actually not even possible, because nobody ever thought you might want to do it.

Discovering what can and can't be done in that way can be extremely frustrating, and I imagine it would be far more so if you're just learning about how to debug code.

I don't want to discourage you because I think MY life would improve if Sirlin Games was a one-man game-cranking machine, but I'm just saying that if you do settle in to learn to program on a game-scripting platform, bring your lunch pail and your hard hat and be ready to work past some frustration.


Disclaimer: Please note that I'm not an expert in Torque stuff, and I undestand that TGB and TGE are two different products, and that Tribes 2 is an old-school ancestor and the new stuff is probably much better and far more general.</description>
		<content:encoded><![CDATA[<p>TGB sounds pretty interesting, maybe I&#8217;ll fool around with it next time I&#8217;m bored in front of a PC.  I understand the license is really cheap, but can you download it for free before paying, just to play around?</p>
<p>If you&#8217;re considering learning programming with TGB as your medium, I have to issue a warning:</p>
<p>Watch out with &#8220;easy&#8221; scripting languages.</p>
<p>I haven&#8217;t used the 2D TGB, but for years I was a Tribes 2 junkie, so I have used TorqueScript in their 3D game engine.  I&#8217;m a professional (non-game) developer, and I did a few hobby projects.</p>
<p>I found that with the 3D Toque scripting, it was very easy to accomplish something the script designers expected you to want to accomplish, but that it could be pretty tough to step outside their predictions.  I imagine this is probably true of most game scripting because those scripts are inherently running on top of a hard-coded engine.</p>
<p>Maybe this is too much developer detail, but if you want a taste of what I mean, you can read on&#8230;</p>
<p>I created a modified version of the Deathmatch gametype, partly inspired by some of your discussions about the enforceability requirement for game rules &#8212; ie no unwritten &#8220;house rules.&#8221;  (This is available at ricefrog.webhop.org, the readme file talks about the house rules it seeks to eliminate.  If anybody wanted to see the code you could just rename the .vl2 file to .zip and then unzip it.)</p>
<p>I also fooled around with bot combat AI and created a single-player &#8220;survivor&#8221; gametype as a testbed for the new AI enemies.</p>
<p>Anyway, back to the point that it&#8217;s very easy to do things they expect you to do, and tough to do those things they don&#8217;t expect&#8230;</p>
<p>For example, it was generally accepted that flash grenades should not be allowed in the deathmatch type in Tribes 2, because a player could ruin everyone&#8217;s day by spending all his time jumping into the middle of big fights and spamming flashes everywhere.  Here&#8217;s how easy it was to completely remove flash grenades from the game:</p>
<p>$InvBanList[FrogDM, &#8220;FlashGrenade&#8221;] = 1;</p>
<p>They have a global variable called $InvBanList just WAITING for you to disallow stuff.  Great!  But good thing they saw my need coming&#8230;</p>
<p>What happens when they don&#8217;t?</p>
<p>Tribes 2 combat was heavily about movement, and during my AI experiments, I was struggling with a way to reconcile the multiple, often conflicting, demands for movement.  I eventually settled on an idea of stepping over a set of needs (ie chase/flee, weave side-to-side perpendicular to people shooting at you, avoid an incoming projectile, etc) and have each of these needs add a vector to a &#8220;wish list&#8221;.  This wish list of vectors would then be summed up and the bot would run, jump, or fire its jetpack to move in the resulting direction.</p>
<p>This would be pretty cool, because a bot might come tearing at you to get into a close-range attack, but it would simultaneously be weaving side-to-side as you tried to fire on it, and then it would leap out of the way as you fired at it.</p>
<p>Sadly, the &#8220;list of vectors&#8221; part was a problem, because after I created a class to represent a vector, I discovered that, as far as I could see, there was no list class that I could put them in.  No List!!?  I had to code one myself, which wasn&#8217;t THAT bad, but it would have been ugly for someone just learning programming.</p>
<p>Far worse, I discovered that analyzing projectiles was something that the designers never expected me to do.  There was no way to walk over a list of projectiles to evaluate them for dodging logic.  I can&#8217;t remember exactly the details, but I did some all-nighter hardcore investigating and I found that you could access a list of &#8220;stuff&#8221; that included far more than projectiles.  And using certain properties of the &#8220;stuff&#8221; in this list, you could weed some of them out as definitely not being projectiles.  And I think that some of the projectiles were not even in the list for some reason.</p>
<p>But in the end, there was absolutely no way to uniquely identify an incoming mortar shell from other, much more innocent stuff.</p>
<p>It was a huge disappointment to me, but I couldn&#8217;t find a way around it.</p>
<p>So in the end I was left with bots that would run for their lives when you shined the targetting lazer on them, but might not get out of the way of a plasma blast.</p>
<p>And even to get them that far would have been hell on earth for somebody who wasn&#8217;t experienced in debugging code and exploring APIs.</p>
<p>My point is that when you&#8217;re working with these scripting systems, you rely heavily on examples and documentation, and they make things look easy.  But the second you step off the beaten path you&#8217;re rolling the dice.  You might find an easy or slick answer just waiting for you to pluck it, but then you might say &#8220;ok, now for the easy part&#8221; only to find that when you thought was simple is actually not even possible, because nobody ever thought you might want to do it.</p>
<p>Discovering what can and can&#8217;t be done in that way can be extremely frustrating, and I imagine it would be far more so if you&#8217;re just learning about how to debug code.</p>
<p>I don&#8217;t want to discourage you because I think MY life would improve if Sirlin Games was a one-man game-cranking machine, but I&#8217;m just saying that if you do settle in to learn to program on a game-scripting platform, bring your lunch pail and your hard hat and be ready to work past some frustration.</p>
<p>Disclaimer: Please note that I&#8217;m not an expert in Torque stuff, and I undestand that TGB and TGE are two different products, and that Tribes 2 is an old-school ancestor and the new stuff is probably much better and far more general.
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Matt Langley</title>
		<link>http://www.sirlin.net/archive/torque-game-builder/#comment-45042</link>
		<pubDate>Mon, 02 Apr 2007 22:49:20 +0000</pubDate>
		<guid>http://www.sirlin.net/archive/torque-game-builder/#comment-45042</guid>
					<description>Great Blog and great comment discussions.

If you every have any issues or need any help be sure to visit the TGB private forums... we have a lot of active community members and some of us at GG like to scan the forums and help out when we have some time :)  Glad you enjoy the engine and also please post any feedback and/or suggestions on the forums to, we are always trying to make it better.

Matthew Langley
Lead Documentation Engineer
GarageGames</description>
		<content:encoded><![CDATA[<p>Great Blog and great comment discussions.</p>
<p>If you every have any issues or need any help be sure to visit the TGB private forums&#8230; we have a lot of active community members and some of us at GG like to scan the forums and help out when we have some time :)  Glad you enjoy the engine and also please post any feedback and/or suggestions on the forums to, we are always trying to make it better.</p>
<p>Matthew Langley<br />
Lead Documentation Engineer<br />
GarageGames
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Forty</title>
		<link>http://www.sirlin.net/archive/torque-game-builder/#comment-44334</link>
		<pubDate>Thu, 29 Mar 2007 19:46:39 +0000</pubDate>
		<guid>http://www.sirlin.net/archive/torque-game-builder/#comment-44334</guid>
					<description>Thanks for the response -- and the interesting blogs.</description>
		<content:encoded><![CDATA[<p>Thanks for the response &#8212; and the interesting blogs.
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Sirlin</title>
		<link>http://www.sirlin.net/archive/torque-game-builder/#comment-44323</link>
		<pubDate>Thu, 29 Mar 2007 18:24:31 +0000</pubDate>
		<guid>http://www.sirlin.net/archive/torque-game-builder/#comment-44323</guid>
					<description>Forty, I was a designer on Death Jr. 1 (PSP) and a producer on Capcom Classics 1, remixed, 2, and Sega Genesis Collection. I also did whatever &quot;design&quot; was needed on those things, such writing the game &quot;tips,&quot; desiging button config, overall layout of the collections, the tutorial videos, the Quiz and Dragons remake (wrote hundreds of new questions), and things of that nature.

Additionally, I have worked on numerous design proposals to get Backbone new contracts. Some of them we did get, and the best ones never got their shot because of various business issues that cut things short (mostly about who really turned out to have rights to this or that, or about management randomly changing at other companies in the middle of things). Anyway, I can't talk about any of that, but if I did, I would definitely be on the &quot;front page of the internet&quot; for one day. I'll bite my tongue though.

--Sirlin</description>
		<content:encoded><![CDATA[<p>Forty, I was a designer on Death Jr. 1 (PSP) and a producer on Capcom Classics 1, remixed, 2, and Sega Genesis Collection. I also did whatever &#8220;design&#8221; was needed on those things, such writing the game &#8220;tips,&#8221; desiging button config, overall layout of the collections, the tutorial videos, the Quiz and Dragons remake (wrote hundreds of new questions), and things of that nature.</p>
<p>Additionally, I have worked on numerous design proposals to get Backbone new contracts. Some of them we did get, and the best ones never got their shot because of various business issues that cut things short (mostly about who really turned out to have rights to this or that, or about management randomly changing at other companies in the middle of things). Anyway, I can&#8217;t talk about any of that, but if I did, I would definitely be on the &#8220;front page of the internet&#8221; for one day. I&#8217;ll bite my tongue though.</p>
<p>&#8211;Sirlin
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Forty</title>
		<link>http://www.sirlin.net/archive/torque-game-builder/#comment-44313</link>
		<pubDate>Thu, 29 Mar 2007 17:10:41 +0000</pubDate>
		<guid>http://www.sirlin.net/archive/torque-game-builder/#comment-44313</guid>
					<description>&quot;And I’m personally not even classified as a designer there(ha!) because it’s thought that I don’t “play ball” with the right people in management.&quot;

From this article, you're obviously not a coder/software developer, and apparently not a designer.  What is it that you do then?  Besides show people how to kick ass at SF2T, anyway.</description>
		<content:encoded><![CDATA[<p>&#8220;And I’m personally not even classified as a designer there(ha!) because it’s thought that I don’t “play ball” with the right people in management.&#8221;</p>
<p>From this article, you&#8217;re obviously not a coder/software developer, and apparently not a designer.  What is it that you do then?  Besides show people how to kick ass at SF2T, anyway.
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Rufus</title>
		<link>http://www.sirlin.net/archive/torque-game-builder/#comment-44289</link>
		<pubDate>Thu, 29 Mar 2007 14:46:41 +0000</pubDate>
		<guid>http://www.sirlin.net/archive/torque-game-builder/#comment-44289</guid>
					<description>For peer to peer or proof of concept, it can't be that hard to stick a custom card database into mindless automaton or some other generic card engine.  The hard part of things like this is probably going to be:
Ease of use
Game rules enforcement
Security and dealing with money</description>
		<content:encoded><![CDATA[<p>For peer to peer or proof of concept, it can&#8217;t be that hard to stick a custom card database into mindless automaton or some other generic card engine.  The hard part of things like this is probably going to be:<br />
Ease of use<br />
Game rules enforcement<br />
Security and dealing with money
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: James M</title>
		<link>http://www.sirlin.net/archive/torque-game-builder/#comment-44230</link>
		<pubDate>Thu, 29 Mar 2007 07:39:07 +0000</pubDate>
		<guid>http://www.sirlin.net/archive/torque-game-builder/#comment-44230</guid>
					<description>Choice of back end is not going to be trivial unless this is a peer to peer game. My project is client-server so the server really does most of the work. (All the game state tracking and such)

If you are doing it peer to peer the server doesn't matter much but then you have to deal with security and other issues like that.</description>
		<content:encoded><![CDATA[<p>Choice of back end is not going to be trivial unless this is a peer to peer game. My project is client-server so the server really does most of the work. (All the game state tracking and such)</p>
<p>If you are doing it peer to peer the server doesn&#8217;t matter much but then you have to deal with security and other issues like that.
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Sirlin</title>
		<link>http://www.sirlin.net/archive/torque-game-builder/#comment-44212</link>
		<pubDate>Thu, 29 Mar 2007 04:55:40 +0000</pubDate>
		<guid>http://www.sirlin.net/archive/torque-game-builder/#comment-44212</guid>
					<description>Margalis: My goal is not a demo or proof of concept, but an actual online card game. I already have proof of concept that the game is fun and works after playtests with physical cards. I actually have a series of 3 card games planned. The first one is very far along and has lots of testing. The second has only a bit of testing, but shows promise. All the design data is not yet in place, but getting there. The third game is the most ambitious and has had a few tests with physical cards, but I'm delaying development there until the first two games are more in place.

Anyway, the efforts to make an online version are currently entirely centered around the first game, called Yomi: Fighting Card Game. The client is being written in TGB (by a programmer, not by me), and the backend (matchmaking, accounts, records, payment system) was planned to be in python, then in ruby, and now perhaps in python after all. That should be an indication that the backend has no progressed much, lol. Unfortunately, neither has the game client, but this is not at all due to lack of skill of the programmer involved. It's entirely due to his day job going into overdrive, leaving him with very little free time. There's an ironic statement on time vs. skill in there somewhere.

It's actually been 5 months since I first started working with these two programmers on the online version. I guess that's somewhat embarrassing that we don't have much worth showing yet.

--Sirlin</description>
		<content:encoded><![CDATA[<p>Margalis: My goal is not a demo or proof of concept, but an actual online card game. I already have proof of concept that the game is fun and works after playtests with physical cards. I actually have a series of 3 card games planned. The first one is very far along and has lots of testing. The second has only a bit of testing, but shows promise. All the design data is not yet in place, but getting there. The third game is the most ambitious and has had a few tests with physical cards, but I&#8217;m delaying development there until the first two games are more in place.</p>
<p>Anyway, the efforts to make an online version are currently entirely centered around the first game, called Yomi: Fighting Card Game. The client is being written in TGB (by a programmer, not by me), and the backend (matchmaking, accounts, records, payment system) was planned to be in python, then in ruby, and now perhaps in python after all. That should be an indication that the backend has no progressed much, lol. Unfortunately, neither has the game client, but this is not at all due to lack of skill of the programmer involved. It&#8217;s entirely due to his day job going into overdrive, leaving him with very little free time. There&#8217;s an ironic statement on time vs. skill in there somewhere.</p>
<p>It&#8217;s actually been 5 months since I first started working with these two programmers on the online version. I guess that&#8217;s somewhat embarrassing that we don&#8217;t have much worth showing yet.</p>
<p>&#8211;Sirlin
</p>
]]></content:encoded>
				</item>
</channel>
</rss>
