<?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/40118/">
		<title>Blog for Rob Terrell 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-20T00:01:09+00:00</dc:date>
		<items>
			<rdf:Seq>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/40118/15248"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/40118/12683"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/40118/11926"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/40118/11900"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/40118/11880"/>
			</rdf:Seq>
		</items>
	</channel>
	<item rdf:about="http://www.garagegames.com/blogs/40118/15248">
		<dc:format>text/html</dc:format>
		<dc:date>2008-08-09T15:50:28+00:00</dc:date>
		<dc:creator>Rob Terrell</dc:creator>
		<title>iPhone games!</title>
		<link>http://www.garagegames.com/blogs/40118/15248</link>
		<description>Hey everyone... I've been gone from the GG community for some time now. Sorry about that, I had some good reasons. First, we had another baby. Even if you're the guy and can't actually contribute to the birthing process, it tends to soak up all your free time.&lt;br&gt;&lt;br&gt;Then, last year I got hooked on Unity. I started doing plugins for the Unity system. That was a fun year. No disrespect to TGE, and I don't mean to start a flamewar, but for me, Unity was great. I also did a jailbreak game for the iPhone.&lt;br&gt;&lt;br&gt;This year, it's all about iPhone games. I've got a game in the App Store now:&lt;br&gt;&lt;br&gt;&lt;img src='http://iphonesumo.com/SumoScreenshot2.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;a href='http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=282776489&amp;amp;mt=8' target=_blank&gt;phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=282776489&amp;amp;mt=8&lt;/a&gt;&lt;br&gt;&lt;br&gt;And after seeing the news about TGE and TGB being ported to the iPhone, I thought it was time to check back in over here. I've been working on GL ES code and I was just thinking to myself, it would be great to NOT have to write a whole engine myself.&lt;br&gt;&lt;br&gt;Now having completed a 2D game, I can't imagine using TGB. CoreAnimation and CALayers makes animating 2D so easy, I don't think there's much of a need for TGB for iPhone games, unless you're porting one title to multiple platforms, in which case, godsend. &lt;br&gt;&lt;br&gt;But for 3D, I want me some TGE. Who can I bug about getting into the beta program?</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/40118/12683">
		<dc:format>text/html</dc:format>
		<dc:date>2007-04-08T02:38:47+00:00</dc:date>
		<dc:creator>Rob Terrell</dc:creator>
		<title>TGWii Code</title>
		<link>http://www.garagegames.com/blogs/40118/12683</link>
		<description>TGWii code! My apologies to anyone who was waiting for this. My original plan was to make a resource that was complete (i.e. support the nunchuck) and more abstracted (i.e. so Windows code could be easily added). However, other stuff in life forced their way up the priority queue, and it's taken me this long to get free and think about this again. I just sent my code to Vinh Tran, who's been kicking ass on the Windows Wiimote side. I've asked Vinh to work together on a cross-platform resource. &lt;br&gt;&lt;br&gt;And, in case I disappear for three months again, I'm posting the code I've got so far.&lt;br&gt;&lt;br&gt;This is based on code from the DarwinRemote project (on sourceforge). They did all the hard stuff; I just bolted it onto Torque. It's not imported into the project as a framework. I was mucking around inside some of the DarwinRemote code to fix a scaling bug they had, and it was simpler to just import it all and trace through their code.&lt;br&gt;&lt;br&gt;I'd like to abstract the engine-level interfaces to the point where the code for each platform's wii controller implementation can be in a single file, for each platform's target. Perfectly obvious, right, but I didn't make it work that way from the get-go.&lt;br&gt;&lt;br&gt;In macCarbInput.cc I added a call to my wiiMote_kickstart() in Input::Init(). wiimote_kickstart() sets up the cocoa stuff (basically, it allocates an autorelease pool for cocoa objects) and starts the bluetooth device discovery. It would probably make more sense to enable this via script. This is to support Cocoa objects from Carbon, because the DarwinRemote code is Cocoa, and TGE is Carbon. (Mac OS X has two APIs -- Cocoa is Objective-C and Carbon is C/C++). &lt;br&gt;&lt;br&gt;There's a callback from the bluetooth stack when data is received; when that happens, I call into a function I added to macCarbEvents.cc:&lt;br&gt;&lt;br&gt;	void _OnWiiData(float mdx, float mdy, bool aBtnDown, bool aBtnUp, bool bBtn)&lt;br&gt;&lt;br&gt;The X and Y values are posted to the Game's event queue. The A button is mapped to KEY_BUTTON2 and the b button is mapped to KEY_BUTTON0. Up and Down events for the A button are fired into the queue separately; for the B button, a down and then an up is queued automatically. (This is because, if the first method is used for a button, that button can't be used for walking; if the second method is used, that button can't be used for firing.) &lt;br&gt;&lt;br&gt;It probably makes sense to map the coordinates to Joystick events, but the Joystick functions are noops in the Mac code, and I would need to understand the Windows input code better before I could try to make that work.&lt;br&gt;&lt;br&gt;I'm not sure what should be exposed to scripts. I do have a function for rumble exposed to scripting:&lt;br&gt;&lt;br&gt;	extern wiimote_rumble ( double l );&lt;br&gt;&lt;br&gt;In my TGWii demo, when the player takes damage, he gets a rumble.&lt;br&gt;&lt;br&gt;The code is here: &lt;a href='http://robterrell.com/Wiimote.zip' target=_blank&gt;robterrell.com/Wiimote.zip&lt;/a&gt;&lt;br&gt;&lt;br&gt;I guess that's it. Keep an eye out for any progress from Vinh or myself.</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/40118/11926">
		<dc:format>text/html</dc:format>
		<dc:date>2006-12-21T02:12:47+00:00</dc:date>
		<dc:creator>Rob Terrell</dc:creator>
		<title>Wii Remote Beta Binary</title>
		<link>http://www.garagegames.com/blogs/40118/11926</link>
		<description>The Wii remote code is getting close... close enough to give you something to play with, at least! I call it &amp;quot;TGWii&amp;quot;. Here's my clever icon:&lt;br&gt;&lt;br&gt;&lt;img src='&amp;quot;http://stinkbot.com/TGWii_icon.png&amp;quot;'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;I've packaged up a (mostly stock) TGE binary with starter.fps and the &amp;quot;killer kork&amp;quot; resource. I'm hoping a few people will give it a try and let me know how well it works / what kind of bugs they find. Download the huge binary &lt;a href='&amp;quot;http://stinkbot.com/TGWii.zip&amp;quot;' target=_blank&gt;from here&lt;/a&gt; (41 MB, Mac OSX only) if you're interested. Obviously you'll need a Mac with bluetooth support and a Wii remote. &lt;br&gt;&lt;br&gt;I'm very curious about discovery rates -- how many times you have to press the sync button to get connected. That's something I'd like to improve.&lt;br&gt;&lt;br&gt;&lt;br&gt;New stuff:&lt;br&gt;&lt;br&gt;- Rumble support&lt;br&gt;- Exposed Wiimote functions to TorqueScript (i.e. wiiRumble() ) &lt;br&gt;- Calls TorqueScript handlers on certain Wiimote events (i.e. onWiiDisconnect() )&lt;br&gt;- Reordering of initialization stuff, to hopefully improve odds of turning on the IR mode (not 100% for me yet)&lt;br&gt;&lt;br&gt;Notes:&lt;br&gt;&lt;br&gt;1. Mac only for now. I have started refactoring the code to make it simple to port, but I haven't done any porting work yet.&lt;br&gt;&lt;br&gt;2. When the app starts, press the red sync button. If the connection is successfully made, the Wiimote will give a short (.2 sec) rumble. If the rumble goes on and on, hit the red sync button again. You can also press the &amp;quot;1&amp;quot; and &amp;quot;2&amp;quot; buttons simultaneously, but sometimes I get better luck with the red button for IR mode.&lt;br&gt;&lt;br&gt;3. It defaults to tilt sensor mode, so if you don't have an IR bar, you can still give it a try. If you do have an IR bar, press &amp;quot;2&amp;quot; on the remote to turn IR mode on.&lt;br&gt;&lt;br&gt;4. Press &amp;quot;A&amp;quot; to move forward. Press &amp;quot;B&amp;quot; to fire. &amp;quot;B&amp;quot; maps to mouse1, so you can also use it to click on GUI buttons.</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/40118/11900">
		<dc:format>text/html</dc:format>
		<dc:date>2006-12-18T02:49:11+00:00</dc:date>
		<dc:creator>Rob Terrell</dc:creator>
		<title>Wii Remote + IR Sensor Bar</title>
		<link>http://www.garagegames.com/blogs/40118/11900</link>
		<description>The Wiimote is really working well in TGE now. Here's a shot of it controlling the default demo mission, with the &amp;quot;killer kork&amp;quot; resource added in to make it interesting. I mapped the Wiimote &amp;quot;A&amp;quot; button to move forward, and the &amp;quot;B&amp;quot; trigger button to fire.&lt;br&gt;&lt;br&gt;&lt;img src='http://stinkbot.com/TGWii+IR.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;Here's the screen capture video. &lt;a href='http://www.youtube.com/watch?v=YW7Jvp8Z81I' target=_blank&gt;YouTube link&lt;/a&gt; for the bandwidth conscious, and &lt;a href='&amp;quot;http://stinkbot.com/Wiimote+IR.mov&amp;quot;' target=_blank&gt;QuickTime&lt;/a&gt; for those who don't care what my ISP thinks about me. &lt;br&gt;&lt;br&gt;To make this work, I put together a homemade sensor bar with under $10 of parts from Radio Shack and crap lying around the room:&lt;br&gt;&lt;br&gt;&lt;img src='http://stinkbot.com/TGWiiSensorBar.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;If you want to make your own, I run through the how-to (basically, LEDs, wires, batteries) on &lt;a href='&amp;quot;http://robterrell.com/archives/13&amp;quot;' target=_blank&gt;my personal blog&lt;/a&gt;. &lt;br&gt;&lt;br&gt;The &amp;quot;sensor bar&amp;quot; isn't actually a sensor -- it provides an absolute point of reference. Without the sensor bar, the Wii remote can only detect the controller's tilt along three axes. (If you looked closely at my earlier video, you'll see that, to control the game, I was tilting the controller each time I wanted to go left or right.) This works and is fun, but it makes aiming very hard. &lt;br&gt;&lt;br&gt;So, with a sensor bar above the screen, we can actually get absolute X and Y values. The controller gives us a floating point value between 1.0 and -1.0 that we translate into an on-screen coordinate. Point to a spot on the screen, and the mouse pointer jumps to it.&lt;br&gt;&lt;br&gt;Also, a change from before. I mapped the &amp;quot;A&amp;quot; button to mouse button 3, and the &amp;quot;B&amp;quot; trigger button to mouse button 4. This way the Wii buttons can be more independently mapped from your mouse controls.&lt;br&gt;&lt;br&gt;So next, I think, is to automatically switch to accelerometer mode when the IR link is down (i.e. the controller has moved too close to the LEDs, or too far to one side, and can't see both). Also, there's a way to run in a single-LED mode, which would probably be good enough for this use. That would let me get closer to the screen (in the video you see me back off).&lt;br&gt;&lt;br&gt;I've also added rumble support, but I need to expose that to scripting. Maybe later tonight. &lt;br&gt;&lt;br&gt;I will try to clean this up and make a resource. If anyone is interested in a binary release, let me know in the comments.</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/40118/11880">
		<dc:format>text/html</dc:format>
		<dc:date>2006-12-15T04:37:45+00:00</dc:date>
		<dc:creator>Rob Terrell</dc:creator>
		<title>Wii Remote Control in TGE is Working</title>
		<link>http://www.garagegames.com/blogs/40118/11880</link>
		<description>Hey, I've finally got something to blog about. So yeah, I got a Wii. You know, it's for the kids! It's not for me, honest, honey! &lt;br&gt;&lt;br&gt;I was talking to a co-worker about the Wii, and we came up with a great idea for a Wii game. But, how to protoype such a thing?&lt;br&gt;&lt;br&gt;When I got the Wii, I also got some extra controllers. One of those was for me. After following the progress of folks &lt;a href='http://www.ch0p.com/wiiki/index.php?title=Wiimote#IR_Sensor' target=_blank&gt;reverse-engineering&lt;/a&gt; and &lt;a href='http://sourceforge.net/projects/darwiin-remote/' target=_blank&gt;coding for the Wii remote&lt;/a&gt; I decided to try to hack some Wii remote support into TGE. You know, for the kids.&lt;br&gt;&lt;br&gt;So far: it's working! And it's fun. Take a look at &lt;a href='http://www.youtube.com/watch?v=o-5mlzf9KxQ' target=_blank&gt;www.youtube.com/watch?v=o-5mlzf9KxQ&lt;/a&gt;&lt;br&gt; or a high-quality &lt;a href='http://stinkbot.com/TGWii.mov' target=_blank&gt;the screen capture&lt;/a&gt; movie (9 MB QuickTime). Ignore the dead-tired looking dweeb in the corner (he's actually having fun, that's how he shows it) and focus on the Wii remote in his hand. You can also see some of the console debugging in the background.&lt;br&gt;&lt;br&gt;&lt;img src='http://stinkbot.com/TGWii.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;I don't have the left-right control as fine as I'd like it, but it's just a matter of fooling with it. &lt;br&gt;&lt;br&gt;Edit: added YouTube video link.&lt;br&gt;&lt;br&gt;See, I'm serious about TGE. Now, finally, for the love of god, won't someone let me join the Constructor beta?</description>
	</item>
</rdf:RDF>
