<?xml version="1.0" encoding="ISO-8859-1"?>
<rdf:RDF
	xmlns="http://purl.org/rss/1.0/"
	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel rdf:about="http://feeds.garagegames.com/rss/blogs/developer/110061/">
		<title>Blog for David Horn at GarageGames.com</title>
		<description>Blog feeds for Gamers and Developers in the GarageGames community.</description>
		<link>http://www.garagegames.com/</link>
		<image rdf:resource="http://www.garagegames.com/images/GarageGames_logo_small_w.gif" />
		<dc:date>2008-11-22T04:58:10+00:00</dc:date>
		<items>
			<rdf:Seq>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/110061/15614"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/110061/15187"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/110061/14751"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/110061/14416"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/110061/14262"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/110061/14120"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/110061/13966"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/110061/13938"/>
			</rdf:Seq>
		</items>
	</channel>
	<item rdf:about="http://www.garagegames.com/blogs/110061/15614">
		<dc:format>text/html</dc:format>
		<dc:date>2008-11-03T14:43:35+00:00</dc:date>
		<dc:creator>David Horn</dc:creator>
		<title>Homebrew Wrestling Official Demo</title>
		<link>http://www.garagegames.com/blogs/110061/15614</link>
		<description>Well, I've been successful enough that I wanted to put a demo out there for everyone to try. It's definitely been a learning experience, and really since this project is for educational purposes only, that's the point. I think it's fairly unique in terms of the types of games that can be created with TGE.&lt;br&gt;&lt;br&gt;Here is the link for the demo...&lt;br&gt;&lt;br&gt;&lt;a href='http://gamingring.com/news/?p=3346' target=_blank&gt;gamingring.com/news/?p=3346&lt;/a&gt;&lt;br&gt;&lt;br&gt;The game is exclusive to gaminging.com. The guys over there have been tremendous supporters of me and the project. Even back in the Macromedia Director (bleh) days.&lt;br&gt;&lt;br&gt;As you'll see on the site, the main things to get out of the demo are as follows...&lt;br&gt;&lt;br&gt;* Compatibility and performance with systems&lt;br&gt;&lt;br&gt;* How to create, skin and save ring mats and aprons.&lt;br&gt;&lt;br&gt;* How the Create-a-Wrestler will work. You can see that I'm obviously still working on moves. The total moveset is incredibly thin for now.&lt;br&gt;&lt;br&gt;* How to play the basic engine (what buttons do what). For assistance, please refer to the instructions.doc Word document included with the game. Also, I have created an online instructional video to get the basics down. &lt;br&gt;&lt;object width=&quot;320&quot; height=&quot;240&quot;&gt;
	&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/Gb6gvGi5830&quot;&gt;&lt;/param&gt;
	&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;
	&lt;embed src=&quot;http://www.youtube.com/v/Gb6gvGi5830&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; width=&quot;320&quot; height=&quot;240&quot;&gt;&lt;/embed&gt;
&lt;/object&gt;&lt;br&gt;&lt;br&gt;* Help find bugs. I have a hard time releasing anything because just when I'm ready to do so, I find another bug and I want to fix it before I release. So I'm sure that there are plenty to go around.&lt;br&gt;&lt;br&gt;* Release the code to the very geeky to see how I'm doing what.&lt;br&gt;&lt;br&gt;I've heard of people having problems playing and I'm wondering if it's just dealing with not unzipping the file correctly. One person posted...&lt;br&gt;&lt;br&gt;&lt;i&gt;&amp;quot;So I downloaded the HBW 3.0 tech demo. I extract, open it, it works all fine. Well, except for one thing. When I start the game, the window is minimized so that I can't click on the 'Continue'-button. The window is so small that I can't even click on the 'options'-button to change the window size! I can only get into the options-menu by moving the cursor carefully onto the window frame and click on a wing and prayer. And the most depressing thing, I can actually get into the options-menu, but when I want to change the window-size, It doesn't works! When I try to change it from half-screen to full-screen, it just changes back to half-screen immediately. &lt;br&gt;&lt;br&gt;Does anyone have an idea how I can fix this problem? (I'm using Windows XP, by the way)&amp;quot;&lt;/i&gt;&lt;br&gt;&lt;br&gt;Others have had no problems whatsoever.&lt;br&gt;&lt;br&gt;Anyhow, I wanted to give this demo out for everyone to try. The whole game is free so by all means look at the code and use anything you want to in your own projects.&lt;br&gt;&lt;br&gt;My one question is this...&lt;br&gt;&lt;br&gt;I want to utilize the camera shake function in torque. But I can't seem to get it to work with the 3rd person camera. I'm using the excellent &amp;quot;tracking camera&amp;quot; resource (&lt;a href='http://www.garagegames.com/index.php?sec=mg&amp;amp;mod=resource&amp;amp;page=view&amp;amp;qid=4720'&gt;www.garagegames.com/index.php?sec=mg&amp;amp;mod=resource&amp;amp;page=view&amp;amp;qid=4720&lt;/a&gt;).&lt;br&gt;&lt;br&gt;I've created a forum question, but so far no success...&lt;br&gt;&lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=80032'&gt;www.garagegames.com/mg/forums/result.thread.php?qt=80032&lt;/a&gt;&lt;br&gt;Any help would be greatly appreciated.&lt;br&gt;&lt;br&gt;So that's the latest.&lt;br&gt;Thanks! Have fun and God bless.</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/110061/15187">
		<dc:format>text/html</dc:format>
		<dc:date>2008-07-31T16:54:07+00:00</dc:date>
		<dc:creator>David Horn</dc:creator>
		<title>Homebrew Wrestling - gameplay video and pics</title>
		<link>http://www.garagegames.com/blogs/110061/15187</link>
		<description>Hello all,&lt;br&gt;Well I've been very happy with the progress of HBW thus far. Now that I have gotten all of the torque stuff worked out for the most part, I'm now tasked with actually making a fun game. The only problem I'm still having with torque is the fact that when I add lights, it DRAMATICALLY reduces the framerate. &lt;br&gt;&lt;br&gt;So the big stuff this time around is the coding of weapons and the Create-A-Wrestler (CAW) feature.&lt;br&gt;For the weapons, I started with a table. Seemed like the most difficult with the varying animations that I have to trigger for it. It was. The good thing is that I know how to trigger object animations as well as mount objects. So chairs, bats, ladders shouldn't be too much of a problem. Famous last words I know.&lt;br&gt;&lt;br&gt;The other big one is the CAW. I have separated this into 3 categories.&lt;br&gt;&lt;br&gt;Appearance&lt;br&gt;&lt;img src='http://www.homebrewwrestling.com/caw1.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;Moves&lt;br&gt;&lt;img src='http://www.homebrewwrestling.com/caw2.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;img src='http://www.homebrewwrestling.com/caw3.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;Attributes&lt;br&gt;&lt;img src='http://www.homebrewwrestling.com/caw4.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;In this game, it's more of a mod tool as far as appearance goes. The user must have a &amp;quot;skin&amp;quot; ready to be applied. Then they just need to pick hair styles, accessories, body shapes, etc.&lt;br&gt;&lt;br&gt;The moves work well, although unfortunately, the movelist in the dropdowns are currently pretty thin. Anyone want to animate moves for me? :)&lt;br&gt;&lt;br&gt;All of the info is written to and read by XML. It's really nice because everything is external. So far XML has been the way to go.&lt;br&gt;&lt;br&gt;I have also produced the first true gameplay video shown here:&lt;br&gt;&lt;br&gt;http://www.youtube.com/watch?v=G6KrXsQq1QQ&lt;br&gt;&lt;br&gt;Next up is the A.I. &lt;br&gt;&lt;br&gt;This is where I'll really be needing to tweak both the game mechanics as the tempo of the game.&lt;br&gt;&lt;br&gt;One question I have is this. Notice that around 2:40 of the video, the wrestler sets the table on fire. I have 3 different fires going on all set to certain nodes of the table. Is there any way to create a particle system that instead of having one node point, it accepts a line based on two points in space?&lt;br&gt;&lt;br&gt;That's it for now.&lt;br&gt;Enjoy and God bless!</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/110061/14751">
		<dc:format>text/html</dc:format>
		<dc:date>2008-05-19T14:19:40+00:00</dc:date>
		<dc:creator>David Horn</dc:creator>
		<title>Homebrew Wrestling - first gameplay video</title>
		<link>http://www.garagegames.com/blogs/110061/14751</link>
		<description>So now that I've gotten past the Torque-specific problems, I now have the daunting task of actually making a halfway-fun game. Right now, everything's working well.  I have a custom &amp;quot;animate&amp;quot; function that will allow me to pass such parameters as which animation to call, if the animation is to effect the position, if the wrestler should clear his focus for the duration, etc. The only thing that worries me from a Torque perspective right now is the limit to the number of animations. I have it cranked up according to several forum posts and tutorials, but the fact that I had to do that in the first place kinda scares me. I have almost 90 animations already and that's just scratching the surface.&lt;br&gt;&lt;br&gt;Almost all of the in-ring stuff is done. I just have some top-rope and submission stuff to do. Then, it's on to the outside antics... as well as starting to program the pinning and the A.I.&lt;br&gt;I'm kind of breaking the rules as far as optimization in the sense that almost all of my programming is being done via Torque script instead of C++. As this is a non-profit educational project, I'd like to leave it as &amp;quot;open-source&amp;quot; as possible. So that as I release it, anyone can go into the code, and see how things work. Or don't work :)&lt;br&gt;&lt;br&gt;I did notice the framerate dropping. I couldn't figure out what was causing it. I started (sadly) to delete my audience members and replacing them with just static shapes, but nothing helped. Then, just on a whim, I started to delete the lights. Bingo. The framerate went WAAAAY up. Smooth as silk. So I began to code back in the audience members (because of course I forgot to save an older version) and everything is still smooth. I just have less lights than before.&lt;br&gt;&lt;br&gt;I've also changed up the gameplay. So far I've been very concerned with the keyboard users. It was to the point where it was hindering the gameplay. Now, I don't really care. I'm concentrating on the Xbox 360 controller. It will still be fine on the keyboard, but there will be more keys needed. &lt;br&gt;So no tech-demo this time as things are just not really in a playable state. However, I do have the first gameplay video available here...&lt;br&gt;&lt;br&gt;&lt;a href='http://youtube.com/watch?v=4724uzZlhD4' target=_blank&gt;youtube.com/watch?v=4724uzZlhD4&lt;/a&gt;&lt;br&gt;&lt;br&gt;That's all for now.&lt;br&gt;Thanks and God bless!</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/110061/14416">
		<dc:format>text/html</dc:format>
		<dc:date>2008-03-10T14:07:22+00:00</dc:date>
		<dc:creator>David Horn</dc:creator>
		<title>HBW new demo, now we're getting somewhere</title>
		<link>http://www.garagegames.com/blogs/110061/14416</link>
		<description>Well things are starting to shape up a little.&lt;br&gt;&lt;br&gt;&lt;img src='http://www.homebrewwrestling.com/hbw11.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;I've had a couple issues, but thanks to the great members of this community, I was able to tweak the code enough to get a lot of wins this past month.&lt;br&gt;&lt;br&gt;One major one was the fact that Torque does not have any kind of animation-based movement. In other words when someone animates, it actually affects the position and rotation.&lt;br&gt;Enter getNodeTransform. The savior for HBW.&lt;br&gt;&lt;br&gt;&lt;a href='http://www.garagegames.com/mg/forums/result.thread.php?qt=24275'&gt;www.garagegames.com/mg/forums/result.thread.php?qt=24275&lt;/a&gt;&lt;br&gt;&lt;br&gt;What Ramen-sama has done is given the ability to get the transform of a particular node within a DTS. When I call my animate function, I pass a parameter called abm (animation-based movement). If that's set to 1, then when AniDone gets called (after any animation concludes), I get the transform of that node and then set the Transform of the AIPlayer to that and bingo, animation-based movement.&lt;br&gt;&lt;br&gt;&lt;img src='http://www.homebrewwrestling.com/hbw8.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;Now that's only done for position. Rotation is a little different. Rotation is set per move. I ran into some issues trying to set rotation due to the fact that the editor is in degrees and Torque is in radians.&lt;br&gt;So I created a function in script to rotate an object. Hopefully it's useful to some people.&lt;br&gt;&lt;br&gt;&lt;div class='codeblock'&gt;&lt;pre&gt;function rotateMe(%wrestid, %deg){&lt;br&gt;   %xfrm = %wrestid.getTransform();&lt;br&gt;   %lx = getword(%xfrm,0); // first, get the current transform values&lt;br&gt;   %ly = getword(%xfrm,1);&lt;br&gt;   %lz = getword(%xfrm,2);&lt;br&gt;   %rx = getword(%xfrm,3);&lt;br&gt;   %ry = getword(%xfrm,4);&lt;br&gt;   %rz = getword(%xfrm,5);&lt;br&gt;   %rd = getword(%xfrm,6);&lt;br&gt;   echo(%rz @ &amp;quot; &amp;quot; @ %rd);&lt;br&gt;   //convert to degrees&lt;br&gt;   %rd = mRadToDeg(%rd);&lt;br&gt;&lt;br&gt;   if (%rz &amp;lt; 0){%rd = 360 - %rd;}&lt;br&gt;&lt;br&gt;   //apply rotation&lt;br&gt;   %rd += %deg;&lt;br&gt;   if (%rd &amp;gt; 360){%rd -= 360;}&lt;br&gt;   %rz = 1;&lt;br&gt;   //convert to torque&lt;br&gt;   //echo(&amp;quot;here: &amp;quot; @ %rd);&lt;br&gt;   if (%rd &amp;gt; 239){&lt;br&gt;      %rz = -1;&lt;br&gt;      %rd = 360 - %rd;  &lt;br&gt;   }&lt;br&gt;   %rd = mDegToRad(%rd);&lt;br&gt;%wrestid.setTransform(%lx SPC %ly SPC %lz SPC %rx SPC %ry SPC %rz SPC %rd);&lt;br&gt;schedule(10,0,scaleme, %wrestid);&lt;br&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;%wrestid is the id of the object to be rotated.&lt;br&gt;%deg is the rotation in degrees that you want to rotate the object.&lt;br&gt;&lt;br&gt;I also was able to use the getNodeTransform to keep the wrestler within the ropes during a grapple move. I check the node and slide the wrestlers over. I still have to implement that on the &amp;quot;fallback&amp;quot; animation.&lt;br&gt;So here is the tech demo of the project thus far. We definitely have the start of a fighting engine.&lt;br&gt;&lt;br&gt;http://www.homebrewwrestling.com/HBWTech_3_9.zip&lt;br&gt;&lt;br&gt;&amp;quot;arrows&amp;quot; move you around, &amp;quot;a&amp;quot; performs a strike, holding &amp;quot;a&amp;quot; down performs a kick, &amp;quot;s&amp;quot; performs a grapple. Grappling normally allows you to use light moves. Grappling a dizzy opponent performs heavy grapple moves. I only have 2 moves so far.&lt;br&gt;&lt;br&gt;So to perform a bodyslam...&lt;br&gt;Grapple an opponent by moving towards him and hitting &amp;quot;s&amp;quot; on the keyboard. Move the player around if you want. Then hit &amp;quot;s&amp;quot; again to bodyslam him.&lt;br&gt;&lt;br&gt;&lt;img src='http://www.homebrewwrestling.com/hbw9.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;To perform a suplex...&lt;br&gt;Get the player dizzy by kicking him 1 time or striking him 3 times. Grapple him opponent by moving towards him and hitting &amp;quot;s&amp;quot; on the keyboard. Move the player around if you want. Then hit &amp;quot;s&amp;quot; again to suplex him.&lt;br&gt;&lt;br&gt;&lt;img src='http://www.homebrewwrestling.com/hbw10.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;Please have fun and any comments are appreciated.&lt;br&gt;God bless&lt;br&gt;...til next time</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/110061/14262">
		<dc:format>text/html</dc:format>
		<dc:date>2008-02-08T16:24:36+00:00</dc:date>
		<dc:creator>David Horn</dc:creator>
		<title>Homebrew Wrestling - 1 step forward, 5 back</title>
		<link>http://www.garagegames.com/blogs/110061/14262</link>
		<description>I'm getting closer and closer to realizing that making a non-first-person-shooter or racing game in Torque is more of an uphill battle than I really wanted it to be. I've made some major progress and have conquered some major milestones. However, I've run into a couple HUGE walls that may be unsalable unless I spend months and months of C++ study. Hopefully I'm overreacting.&lt;br&gt;&lt;br&gt;Let's start with the good. This addition of the HBW blog contains a Tech demo that hopefully some other people will be able to use. It's the character select screen. Right now, I have the wrestlers defined by XML documents. &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class='codeblock'&gt;&lt;pre&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; standalone=&amp;quot;no&amp;quot; ?&amp;gt;&lt;br&gt;&amp;lt;presets&amp;gt;&lt;br&gt;    &amp;lt;wrestler&amp;gt;&lt;br&gt;        &amp;lt;props name=&amp;quot;The Undertaker&amp;quot; bodyshape=&amp;quot;powertall_longhaira&amp;quot; id=&amp;quot;taker&amp;quot;/&amp;gt;&lt;br&gt;        &lt;br&gt;&lt;br&gt;    &amp;lt;/wrestler&amp;gt;&lt;br&gt;&amp;lt;/presets&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;So far, these documents define the id, name and bodyshape (dts). In the future I hope to define other things like the moves, the music, etc. So that when I implement the Create-A-Wrestler feature, I can have the final output be this xml file (along with the textures) so that people can easily share new wrestlers. The program dynamically searches for all xml docs in a particular folder and loads them into the drop down. Then, the program searches for all of the corresponding textures. So if you choose The Undertaker, all files starting with the id of &amp;quot;taker&amp;quot; will be loaded. Then if you want to add another texture/outfit later on down the line, simply drop a jpg that's name starts with &amp;quot;taker&amp;quot; and it will find it and load it. Neat, huh?&lt;br&gt;&lt;br&gt;&lt;img src='http://www.homebrewwrestling.com/hbw6.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;Once you select the 2 wrestlers, I load 2 AiPlayers and position them. Then I load a third dummy in there with a transparent skin. This dummy always stays between the 2 wrestlers and acts as the camera target. Setting the dummy's SetMoveDestination to the average of the x and y coordinates of the wrestlers; I can get some pretty smooth camera work.&lt;br&gt;&lt;br&gt;&lt;img src='http://www.homebrewwrestling.com/hbw7.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;Now the bad. Oh, the bad.&lt;br&gt;&lt;br&gt;I happily created animations for the walk, side, etc. of my AiPlayer wrestler. I learned how to use the arrow keys to move him about. I basically use more SetMoveDestination commands to move the AiPlayer. I can even use my Xbox 360 analog controller. Then I realized one thing. I HATE datablocks. Anyone who says they can give me a million reasons why making datablocks static is a good thing, I'll give them 2 million reasons why they aren't a good thing - at least for non-FPS games.&lt;br&gt;&lt;br&gt;Let's back up for a second. If you look at the code... by the way, as usual, since this is a hobby and non-profit, ALL of my code is available for free. Please find something that you can use for your game, and use it freely. You can download it here. &lt;br&gt;&lt;br&gt;&lt;a href='http://www.homebrewwrestling.com/HBWCharSelect.zip' target=_blank&gt;www.homebrewwrestling.com/HBWCharSelect.zip&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;I'm hoping that this is enough compensation for all the help I ask for :)&lt;br&gt;&lt;br&gt;If you look at the code, you'll notice that I have different datablocks for different types of players. One for normal/long hair, one for power/longhair and one for powertall/longhair. This is because I can't dynamically tell the Torque engine which dts to load in. If I want a tall fat bald guy, I have to make and entirely new datablock for that dts. I think that's ridiculous. I should be able to pass a dynamic file for the baseshape - or shapefile. Not sure what the difference between the baseshape and the shapefile is - seems redundant? I really wanted to use the hidemesh code, but it doesn't seem to work in 1.5.2?&lt;br&gt;That's fine - and really the least of my problems.&lt;br&gt;&lt;br&gt;The big problem is animation.&lt;br&gt;&lt;br&gt;Animation sequences are tied with a particular dts as defined in the datablocks. You can only have up to 127 (some say more with alteration in code) STATICALLY defined sequences/animations. These 2 facts are detrimental to my project. Let me explain.&lt;br&gt;&lt;br&gt;Let's say for example I want it to work like this: when you press the &amp;quot;s&amp;quot; key, Hulk Hogan does a bodyslam. In Torque, I add 2 sequences for the power/longhair datablock that define the bodyslam and the bodyslam receive animations. 3 problems...&lt;br&gt;&lt;br&gt;1 - if I bodyslam The Undertaker - who's datablock is powertall/longhair, he can't do it because he has no idea what a bodyslam is because it's not a sequence that is in his datablock. So I have to add the two bodyslam animations to his datablock. &lt;br&gt;&lt;br&gt;2 - Now when The Undertaker hits &amp;quot;s&amp;quot;, let's say his move is a piledriver. I can't define his &amp;quot;s&amp;quot; move as a piledriver because it's already defined as a bodyslam because of reason number 1&lt;br&gt;&lt;br&gt;3 - what happens when I create another wrestler that uses the same power/longhair dts model as hulk Hogan. But that wrestler happens to do a bear hug when I hit &amp;quot;s&amp;quot; - that's impossible because the power/longhair datablock already has a bodyslam for that sequence.&lt;br&gt;&lt;br&gt;So every wrestler's datablock would almost need to have every animation possible hard-coded into the sequences. I'll have hundreds.&lt;br&gt;&lt;br&gt;When I did this game originally in Macromedia Director and Shockwave, I dynamically searched for all of the moves (I kept them in a particular folder) and loaded all of the animations into the world. Then any wrestler I created would have access to perform any move they wanted to. In addition, they weren't static, so I could add new moves in at any time. If I have to program this functionality into the C++ engine, I'm going to cry.&lt;br&gt;&lt;br&gt;Another side-note weird thing is that when you choose Hulk Hogan as the wrestler, I added the functionality of hitting the &amp;quot;a&amp;quot; key to punch by using SetActionThread(&amp;quot;puncha&amp;quot;,false,false) however this won't work when he's moving??? And there is a 1 second pause after the animation is over before he starts into his idle animation again. Not sure what's causing those 2 problems.&lt;br&gt;&lt;br&gt;Can anyone help out with any of these issues? There's beer in it for anyone who can help me. Ok, maybe not. But there's a free game in it for you :)</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/110061/14120">
		<dc:format>text/html</dc:format>
		<dc:date>2008-01-08T21:04:37+00:00</dc:date>
		<dc:creator>David Horn</dc:creator>
		<title>Homebrew Wrestling Tech Demo</title>
		<link>http://www.garagegames.com/blogs/110061/14120</link>
		<description>Hello again!&lt;br&gt;&lt;br&gt;Well, today I'm very pleased to release my first torque-built tech demo of my game.&lt;br&gt;Several years ago on a website called gamingring.com, I released a very similar tech demo. It is basically the create-a-ring functionality.&lt;br&gt;Let me explain what is in the demo that was in the original.&lt;br&gt;&lt;br&gt;Basically, here is the options screen:&lt;br&gt;&lt;br&gt;&lt;img src='http://www.homebrewwrestling.com/hbw4.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;You'll notice that the user can change the ring mat, the apron, the rope colors, and the light colors.&lt;br&gt;There are several loaded presets for rings that wrestling fans are familiar with,  and some that they are not such as Steelers, Penguins (can you tell where I'm from?) and several holidays.&lt;br&gt;&lt;br&gt;You can then preview the scene and see the results as per the screenshot below.&lt;br&gt;&lt;br&gt;&lt;img src='http://www.homebrewwrestling.com/hbw5.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;Some new things that I have added based on the great (albeit poorly documented - sorry, it is) Torque capabilities.&lt;br&gt;&lt;br&gt;One is the ability to save a preset of your own. I used the XML console resource to save and load ring presets.  Another is the ability to view some of the ring animations.&lt;br&gt;&lt;br&gt;I have a cyclic animation for the apron cloth slightly moving. I faked cloth animation with bones. You can see the ropes bouncing via the buttons on top, and you can see what happens on impact. The ropes bounce and the apron moves. One thing I don't know if I can do is animate the mat. I chose to use a dif file to get the shadow. But I don't think you can have any kind of animation on dif files. I looked into the resources that add shadows to dts objects, but they produce weird shadows with the ropes.&lt;br&gt;&lt;br&gt;The main difference is that it's moddable. Modding is huge in the wrestling gamer community and it's something that I couldn't provide to the fans before. Now with Torque, modding can be a reality. And I'm glad. I really want to make a nice simple wrestling engine and have people create mods for it. &lt;br&gt;&lt;br&gt;To create a new mat:&lt;br&gt;Create a jpg file that is 512 in width and 512 in height. Feel free to use the mat.psd file in the HBWtechDemo\HBWtechDemo\game\data folder.&lt;br&gt;Name it mat. WHATEVERYOUWANT.jpg&lt;br&gt;Put it in the HBWtechDemo\HBWtechDemo\game\data\interiors&lt;br&gt;That should be it! Hopefully the next time you load the game, it will appear when you hit previous and next.&lt;br&gt;&lt;br&gt;To create a new apron:&lt;br&gt;Create a jpg file that is 512 in width and 512 in height.&lt;br&gt;Name it apronWHATEVERYOUWANT.jpg - it must start with the letters &amp;quot;apron&amp;quot;&lt;br&gt;Put it in HBWtechDemo\HBWtechDemo\game\data\shapes\ring&lt;br&gt;&lt;br&gt;There are a couple bugs - like when you constantly preview and preview, the spotlights get faster and faster. Not sure why. &lt;br&gt;&lt;br&gt;I have included the source code that I've written. Again, this is for fun and education only, so please take whatever elements you would like. This is my first distribution, so if I have distributed code or Torque engine parts that I shouldn't have, please let me know asap.&lt;br&gt;&lt;br&gt;I hope you enjoy! &lt;br&gt;&lt;br&gt;&lt;a href='http://www.homebrewwrestling.com/HBWtechDemo.zip' target=_blank&gt;www.homebrewwrestling.com/HBWtechDemo.zip&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Next up is the character selection and getting into the real meat of the program. I noticed that during playthread animations, if I happen to move a character over the x/y/z plane during the animation, the character snaps back to its original position. This will be a major problem and hopefully there is an option to allow the animation to change the Player's position.&lt;br&gt;&lt;br&gt;Thanks and God bless! Enjoy! Feedback is always welcome.</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/110061/13966">
		<dc:format>text/html</dc:format>
		<dc:date>2007-12-06T14:35:50+00:00</dc:date>
		<dc:creator>David Horn</dc:creator>
		<title>The start of the Arena</title>
		<link>http://www.garagegames.com/blogs/110061/13966</link>
		<description>OK, well I think I've got the makings of an arena.&lt;br&gt;&lt;br&gt;&lt;img src='http://www.homebrewwrestling.com/hbw1.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;img src='http://www.homebrewwrestling.com/hbw2.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;img src='http://www.homebrewwrestling.com/hbw3.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;It consists of an entrance way complete with smoke effects, a ring and a 3D crowd.&lt;br&gt;The ring, the mat and the carpet are actually the tops of .dif blocks so that shadows will easily be cast on to them. The entire structure is inside a dif as well to minimize the effects of the sun.&lt;br&gt;&lt;br&gt;The spotlights are volume lights controlled with script that rotates the light until it gets to a certain point, then switches direction&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class='codeblock'&gt;&lt;pre&gt;datablock StaticShapeData(SpotLightLarge)&lt;br&gt;{&lt;br&gt;   category = &amp;quot;Items&amp;quot;;&lt;br&gt;   shapeFile = &amp;quot;~/data/shapes/ring/spotlight.dts&amp;quot;;&lt;br&gt;};&lt;br&gt;   function SpotLightLarge::onAdd(%this,%obj){   &lt;br&gt;      // %obj is the object being added to the world   &lt;br&gt;      // with %this datablock.  Start up a thread on the   &lt;br&gt;      // new object.  Since the wave sequence is cyclic   &lt;br&gt;      // this animation will run continously.   &lt;br&gt;      %obj.playThread(0,&amp;quot;ambient&amp;quot;);&lt;br&gt;      }   &lt;br&gt;   function StaticShapeData::create(%block){   &lt;br&gt;      // The mission editor invokes this method when it   &lt;br&gt;      // wants to create an object of the given datablock   &lt;br&gt;      // type.  You only need one of these methods for any   &lt;br&gt;      // class/datablock type (in this case StaticShape).   &lt;br&gt;      %obj = new StaticShape()   &lt;br&gt;      {      &lt;br&gt;         dataBlock = %block;   &lt;br&gt;         };   &lt;br&gt;         return(%obj);&lt;br&gt;   }&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;While most of the crowd is TSStatic shapes, several members of the crowd - including the front row - are StaticShapes and have special animations. I've written a function where every so often (a rendom time plus 4 seconds), a random animation happens.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class='codeblock'&gt;&lt;pre&gt;   datablock TSShapeConstructor(audiencemember2Dts){   &lt;br&gt;      baseShape = &amp;quot;~/data/shapes/ring/audmember2.dts&amp;quot;;   &lt;br&gt;      sequence0 = &amp;quot;~/data/shapes/ring/audiencemember_clap.dsq clap&amp;quot;;&lt;br&gt;      sequence1 = &amp;quot;~/data/shapes/ring/yell.dsq yell&amp;quot;;&lt;br&gt;      sequence2 = &amp;quot;~/data/shapes/ring/standupa.dsq standupa&amp;quot;;&lt;br&gt;      sequence3 = &amp;quot;~/data/shapes/ring/standupb.dsq standupb&amp;quot;;&lt;br&gt;      sequence4 = &amp;quot;~/data/shapes/ring/ohno.dsq ohno&amp;quot;;&lt;br&gt;      sequence5 = &amp;quot;~/data/shapes/ring/lookl.dsq lookl&amp;quot;;&lt;br&gt;      sequence6 = &amp;quot;~/data/shapes/ring/lookr.dsq lookr&amp;quot;;&lt;br&gt;      sequence7 = &amp;quot;~/data/shapes/ring/highclap.dsq highclap&amp;quot;;&lt;br&gt;      sequence8 = &amp;quot;~/data/shapes/ring/comeon.dsq comeon&amp;quot;;&lt;br&gt;      sequence9 = &amp;quot;~/data/shapes/ring/amb.dsq amb&amp;quot;;&lt;br&gt;      };&lt;br&gt;   &lt;br&gt;&lt;br&gt;   datablock StaticShapeData(audiencemember2){   &lt;br&gt;      category = &amp;quot;Audience&amp;quot;;   &lt;br&gt;      shapeFile = &amp;quot;~/data/shapes/ring/audmember2.dts&amp;quot;;&lt;br&gt;      };   &lt;br&gt;   function audiencemember2::onEndSequence(%this,%obj){           &lt;br&gt;      &lt;br&gt;      %obj.playThread(0,&amp;quot;amb&amp;quot;);&lt;br&gt;      %r = ((getRandom(9) + 1) * 1000) + 3000;&lt;br&gt;      schedule(%r,0,animMe,%obj);&lt;br&gt;&lt;br&gt;      } &lt;br&gt;&lt;br&gt;   function StaticShapeData::create(%block){           &lt;br&gt;         %obj = new StaticShape()         &lt;br&gt;         {               &lt;br&gt;            dataBlock = %block;            &lt;br&gt;            };            &lt;br&gt;            return(%obj);   &lt;br&gt;         }&lt;br&gt;   function audiencemember2::onAdd(%this,%obj){   &lt;br&gt;      %obj.playThread(0,&amp;quot;amb&amp;quot;);&lt;br&gt;      %r = (getRandom(10) * 1000) + 5000;&lt;br&gt;      schedule(%r,0,animMe,%obj);&lt;br&gt;      }   &lt;br&gt;      &lt;br&gt;      &lt;br&gt;   function animMe(%this,%obj){&lt;br&gt;      %an = getRandom(8) + 1;&lt;br&gt;      echo(%an);&lt;br&gt;      switch (%an) &lt;br&gt;         {&lt;br&gt;         case 1:&lt;br&gt;            %this.playThread(0,&amp;quot;clap&amp;quot;);&lt;br&gt;&lt;br&gt;         case 2:&lt;br&gt;            %this.playThread(0,&amp;quot;yell&amp;quot;);&lt;br&gt;&lt;br&gt;         case 3:&lt;br&gt;            %this.playThread(0,&amp;quot;standupa&amp;quot;);&lt;br&gt;&lt;br&gt;         case 4:&lt;br&gt;            %this.playThread(0,&amp;quot;standupb&amp;quot;);&lt;br&gt;&lt;br&gt;         case 5:&lt;br&gt;            %this.playThread(0,&amp;quot;ohno&amp;quot;);&lt;br&gt;&lt;br&gt;         case 6:&lt;br&gt;            %this.playThread(0,&amp;quot;lookl&amp;quot;);&lt;br&gt;&lt;br&gt;         case 7:&lt;br&gt;            %this.playThread(0,&amp;quot;lookr&amp;quot;);&lt;br&gt;&lt;br&gt;         case 8:&lt;br&gt;            %this.playThread(0,&amp;quot;highclap&amp;quot;);&lt;br&gt;&lt;br&gt;         case 9:&lt;br&gt;            %this.playThread(0,&amp;quot;comeon&amp;quot;);&lt;br&gt;&lt;br&gt;         }&lt;br&gt;&lt;br&gt;      &lt;br&gt;   }&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;The only thing I don't like about this script is that the dts is hard-coded into the datablock. so I had to re-create this script for each different member of the audience&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class='codeblock'&gt;&lt;pre&gt;   datablock TSShapeConstructor(audiencemember3Dts){   &lt;br&gt;      baseShape = &amp;quot;~/data/shapes/ring/audmember3.dts&amp;quot;;   &lt;br&gt;      sequence0 = &amp;quot;~/data/shapes/ring/audiencemember_clap.dsq clap&amp;quot;;&lt;br&gt;      sequence1 = &amp;quot;~/data/shapes/ring/yell.dsq yell&amp;quot;;&lt;br&gt;      sequence2 = &amp;quot;~/data/shapes/ring/standupa.dsq standupa&amp;quot;;&lt;br&gt;      sequence3 = &amp;quot;~/data/shapes/ring/standupb.dsq standupb&amp;quot;;&lt;br&gt;      sequence4 = &amp;quot;~/data/shapes/ring/ohno.dsq ohno&amp;quot;;&lt;br&gt;      sequence5 = &amp;quot;~/data/shapes/ring/lookl.dsq lookl&amp;quot;;&lt;br&gt;      sequence6 = &amp;quot;~/data/shapes/ring/lookr.dsq lookr&amp;quot;;&lt;br&gt;      sequence7 = &amp;quot;~/data/shapes/ring/highclap.dsq highclap&amp;quot;;&lt;br&gt;      sequence8 = &amp;quot;~/data/shapes/ring/comeon.dsq comeon&amp;quot;;&lt;br&gt;      sequence9 = &amp;quot;~/data/shapes/ring/amc.dsq amc&amp;quot;;&lt;br&gt;      };&lt;br&gt;   &lt;br&gt;&lt;br&gt;   datablock StaticShapeData(audiencemember3){   &lt;br&gt;      category = &amp;quot;Audience&amp;quot;;   &lt;br&gt;      shapeFile = &amp;quot;~/data/shapes/ring/audmember3.dts&amp;quot;;&lt;br&gt;      };   &lt;br&gt;   function audiencemember3::onEndSequence(%this,%obj){           &lt;br&gt;      &lt;br&gt;      %obj.playThread(0,&amp;quot;amc&amp;quot;);&lt;br&gt;      %r = ((getRandom(9) + 1) * 1000) + 3000;&lt;br&gt;      schedule(%r,0,animMe,%obj);&lt;br&gt;&lt;br&gt;      } &lt;br&gt;&lt;br&gt;   function StaticShapeData::create(%block){           &lt;br&gt;         %obj = new StaticShape()         &lt;br&gt;         {               &lt;br&gt;            dataBlock = %block;            &lt;br&gt;            };            &lt;br&gt;            return(%obj);   &lt;br&gt;         }&lt;br&gt;   function audiencemember3::onAdd(%this,%obj){   &lt;br&gt;      %obj.playThread(0,&amp;quot;amc&amp;quot;);&lt;br&gt;      %r = (getRandom(10) * 1000) + 5000;&lt;br&gt;      schedule(%r,0,animMe,%obj);&lt;br&gt;      }   &lt;br&gt;      &lt;br&gt;      &lt;br&gt;   function animMe(%this,%obj){&lt;br&gt;      %an = getRandom(8) + 1;&lt;br&gt;      echo(%an);&lt;br&gt;      switch (%an) &lt;br&gt;         {&lt;br&gt;         case 1:&lt;br&gt;            %this.playThread(0,&amp;quot;clap&amp;quot;);&lt;br&gt;&lt;br&gt;         case 2:&lt;br&gt;            %this.playThread(0,&amp;quot;yell&amp;quot;);&lt;br&gt;&lt;br&gt;         case 3:&lt;br&gt;            %this.playThread(0,&amp;quot;standupa&amp;quot;);&lt;br&gt;&lt;br&gt;         case 4:&lt;br&gt;            %this.playThread(0,&amp;quot;standupb&amp;quot;);&lt;br&gt;&lt;br&gt;         case 5:&lt;br&gt;            %this.playThread(0,&amp;quot;ohno&amp;quot;);&lt;br&gt;&lt;br&gt;         case 6:&lt;br&gt;            %this.playThread(0,&amp;quot;lookl&amp;quot;);&lt;br&gt;&lt;br&gt;         case 7:&lt;br&gt;            %this.playThread(0,&amp;quot;lookr&amp;quot;);&lt;br&gt;&lt;br&gt;         case 8:&lt;br&gt;            %this.playThread(0,&amp;quot;highclap&amp;quot;);&lt;br&gt;&lt;br&gt;         case 9:&lt;br&gt;            %this.playThread(0,&amp;quot;comeon&amp;quot;);&lt;br&gt;&lt;br&gt;         }&lt;br&gt;&lt;br&gt;      &lt;br&gt;   }&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;As you can see, the only thing that changes is the number. I'm wondering if there's a more efficient way to do this?&lt;br&gt;&lt;br&gt;The next task is to make a user-based editor for the arena. In my previous game, the user could customize the ring apron, the rope color, and the color of the lights. I want to let users &amp;quot;mod&amp;quot; this game as much as possible - at least from a texture perspective. That way, if they want the (copyright) WWE logo on the apron, they can make a texture for that and load it in. Looks like I'll be researching the setSkin function?Hopefully it works on .dif files as well as dts??&lt;br&gt;&lt;br&gt;So next up... &amp;quot;the customize your arena&amp;quot; feature. I'll be researching:&lt;br&gt;1. swapping textures&lt;br&gt;2. the ins and outs of gui&lt;br&gt;3. being able to set global variables and the reference those variables in the mission scripts&lt;br&gt;4. file i/o - for searching through textures - and incorporating that into the gui</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/110061/13938">
		<dc:format>text/html</dc:format>
		<dc:date>2007-12-02T19:59:39+00:00</dc:date>
		<dc:creator>David Horn</dc:creator>
		<title>Homebrew Wrestling intro</title>
		<link>http://www.garagegames.com/blogs/110061/13938</link>
		<description>Hello,&lt;br&gt;My name is Dave Horn. I'm the owner of a Web and Mulimedia production company.&lt;br&gt;&lt;br&gt;This is the first in a series of blogs that will act as a diary of my project.&lt;br&gt;&lt;br&gt;The project is called Homebew Wrestling. It is an indy wrestling game. I already have created a version of the game using what I was familiar with... a program called Macromedia Director MX 2004. After a successful launch of the game, I have decided to re-program the entire game in Torque. Director has not been updated in almost 4 years - and wont be in the foreseeable future. It's really limiting me in performance and technology.&lt;br&gt;&lt;br&gt;Here is info on the game:&lt;br&gt;http://www.homebrewwrestling.com&lt;br&gt;http://gamingring.com/homebrew/&lt;br&gt;http://youtube.com/watch?v=wCyhh2cPDWo&lt;br&gt;http://youtube.com/watch?v=PXhVD2ICpe4&lt;br&gt;&lt;br&gt;As you can see, all of the logic, programming, ai, etc. has been programmed. So really I'm just looking to translate it into something that is much more robust.&lt;br&gt;&lt;br&gt;Enter Torque.&lt;br&gt;&lt;br&gt;My first impressions.&lt;br&gt;Before, I had to manually program things like collision, turning and facing, determining whether or not to use walk, strafe, etc. Now I see that Torque offers all of this. I've gone through the basic tutorials and so far so good. I've already created an arena (pics to come) with animated light, moving volumetric lights etc. And I'm having a blast.&lt;br&gt;&lt;br&gt;now comes the thing I've feared - and right away i'm having problems.&lt;br&gt;Homebrew Wrestling is not a first-person shooter. It's a sports/fighting game.&lt;br&gt;I've read many, including Edward Maurina, who say &amp;quot;Torque isn't just for first-person shooters.&amp;quot; So far, I don't believe it. Many of the functions in the player class do me absolutely no good. In fact, I'm almost wondering if all of my wrestlers should be aiplayers.&lt;br&gt;&lt;br&gt;Right now I'm really struggling. I want to simply have a model on the screen, then tell it to perform an animation. Easier said than done. I'm starting with an audience member. I make it a StaticShape, and try to animate it by using the playthread. No luck. I'm definitely out of my comfort level right now.&lt;br&gt;&lt;br&gt;Several concerns right now...&lt;br&gt;1. all tutorials are making fps or 3rd person adventure games - makes research tough&lt;br&gt;2. will I be able to dynamically load different dts shapes but still create a &amp;quot;wrestler&amp;quot; object overseeing the shape - in other words, separate the object model from the rest of the logic.&lt;br&gt;3. animatic shapes scares me. Will I be able to have a &amp;quot;bodyslam&amp;quot; animation and be able to assign that to any number of on-screen wrestlers? right now, it seems to have be named something like &amp;quot;hulkhugan_bodyslam.dsq&amp;quot; instead of just &amp;quot;bodyslam.dsq&amp;quot; and therefore i would have to copy and rename all animations?&lt;br&gt;&lt;br&gt;overwhelming&lt;br&gt;til next time</description>
	</item>
</rdf:RDF>
