<?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/32782/">
		<title>Blog for Stefan Lundmark 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-21T10:13:43+00:00</dc:date>
		<items>
			<rdf:Seq>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/32782/13181"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/32782/11396"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/32782/11086"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/32782/8345"/>
			</rdf:Seq>
		</items>
	</channel>
	<item rdf:about="http://www.garagegames.com/blogs/32782/13181">
		<dc:format>text/html</dc:format>
		<dc:date>2007-07-03T22:12:41+00:00</dc:date>
		<dc:creator>Stefan Lundmark</dc:creator>
		<title>Improved Max2Dts Exporter</title>
		<link>http://www.garagegames.com/blogs/32782/13181</link>
		<description>&lt;img src='http://www.innercircledev.net/exporter.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;Improved Max2Dts Exporter&lt;/b&gt;&lt;br&gt;I'm working on a (unofficial) new version of Max2Dts which has some improvements over the older exporter. This one is very different from the Dark Industries exporters in that it does not supply you with any additional tools, it's just the old exporter but more stable and easier to work with.&lt;br&gt;&lt;br&gt;&lt;b&gt;Download&lt;/b&gt;&lt;br&gt;As of today (10th of July 2007) the improved exporter is no longer available for download. There has been far too many downloads of it compared to the feedback and we're just going to keep it internally instead of supporting a community version.&lt;br&gt;&lt;br&gt;It's impossible and totally out of our ability to test it ourselves if we're going to support community needed functionallity, rather than the functionallity we need ourselves, and so this is the path that is going to be taken.&lt;br&gt;&lt;br&gt;Thanks Tim Heldna for an honest try.&lt;br&gt;&lt;br&gt;&lt;b&gt;Features:&lt;/b&gt;&lt;br&gt;* Exceptionally faster, especially when exporting sequences.&lt;br&gt;* Less prone to crashes.&lt;br&gt;* Support for exporting skinned Editable Poly/Patch meshes.&lt;br&gt;* Detail levels should work again in Max7. Needs more testing.&lt;br&gt;* More user-friendly UI's.&lt;br&gt;&lt;br&gt;&lt;b&gt;What I'm looking at next:&lt;/b&gt;&lt;br&gt;* Billboard crashes.&lt;br&gt;* Blend references crashing when set to anything else than the first frame.&lt;br&gt;* Even more sanity checking.&lt;br&gt;&lt;br&gt;&lt;b&gt;Support&lt;/b&gt;&lt;br&gt;As my limited testing only can show as much, I've reached a point where I need testers to be able to nail more bugs. If you think you can help out with testing this beast, please download the exporter above and use it. If you run into any issues, you can send me a message and I'll take a look at it. There are still a ton of bugs that I haven't reproduced or that I know of yet, and if we can work together then this might turn into something even more useful.&lt;br&gt;&lt;br&gt;Cheers!</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/32782/11396">
		<dc:format>text/html</dc:format>
		<dc:date>2006-10-09T18:37:00+00:00</dc:date>
		<dc:creator>Stefan Lundmark</dc:creator>
		<title>Torque and modifications</title>
		<link>http://www.garagegames.com/blogs/32782/11396</link>
		<description>I purchased Torque back in 2004. At that time, I had no clue it would change my life. This is not a fanboy blog praising all of Torque, but an honest opinion of someone that, 2 years ago, had no programming experience whatsoever. I have always had problems with math and left school with quite bad grades.&lt;br&gt;&lt;br&gt;Still, it worked out just fine for me. I hear many experienced programmers saying Torque is a mess and hard to learn, and I can not help but wonder how much time they have spent with it until they dismissed it.&lt;br&gt;&lt;br&gt;Now, I'm going to talk about some of the modifications I have made recently, and to some degree: why I made them.&lt;br&gt;&lt;br&gt;&lt;img src='http://www.fmod.org/fmodsplashex.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;a href='http://www.fmod.org/' target=_blank&gt;FMOD&lt;/a&gt;&lt;br&gt;&lt;br&gt;I very recently implemented this into Torque and replaced OpenAL completely. As our game has a very focus on sounds, we felt it was needed. I'm currently playing around with LowPass filters. FMOD has so far been wonderful to code with, and reminds me about Torque alot. &lt;br&gt;&lt;br&gt;I felt that the OpenAL implementation had a long way to go before it can be considered useful and I did not find its structure easy to understand so I did not bother to rewrite it.&lt;br&gt;&lt;br&gt;&lt;img src='http://www.innercircledev.net/garagegames/blog/screenshot01.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;b&gt;ShapeBaseImage &amp;amp; a new MuzzleFlash class&lt;/b&gt;&lt;br&gt;&lt;br&gt;This one was a tough nut to crack. We have alot of fast fireing machine guns in our game, and ShapeBaseImage does not seem to have been designed with that in mind. It is great for equipment though so we ended up creating a seperate class - we can call it weaponImage for the sake of this plan.&lt;br&gt;&lt;br&gt;There are too many changes to name them all here, but the key ones are:&lt;br&gt;&lt;br&gt;&lt;b&gt;[*]&lt;/b&gt; Seperate 1st/3rd person images, much like HL2's system with one worldShape and a viewShape (different shape files, not to be confused with LOD).&lt;br&gt;&lt;b&gt;[*]&lt;/b&gt; Multiple threads, so you can play more than one thread at once.&lt;br&gt;&lt;b&gt;[*]&lt;/b&gt; The viewShape is static to the viewer, but moves side-to-side when looking around, and back/forward when looking up/down. There is also a seperate thread for move animations - again very much similiar to HL2's system.&lt;br&gt;&lt;b&gt;[*]&lt;/b&gt; A callback into shapeBase which (in simple terms) creates a hitbox to the shapeBase object (and not to the image since it does not tick) if isCollidable is set to true in the image datablock. This way you can interact with the image.&lt;br&gt;&lt;br&gt;I also designed a seperate client-only muzzleFlash class, that is built up by one single plane that changes texture depending on the direction of the viewer and the eyeVector. No need for complex shapes there. Big thanks to &lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=5416'&gt;Melv May&lt;/a&gt;'s documentation about rendering objects!&lt;br&gt;&lt;br&gt;&lt;img src='http://www.innercircledev.net/garagegames/blog/screenshot02.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;b&gt;A new simple flying vehicle class, based on ShapeBase.&lt;/b&gt;&lt;br&gt;&lt;br&gt;This is the one that took most of my time away during June-August. I had a simple flying vehicle class using clippedPolyList, and simplePolyList from the &lt;a href='http://www.garagegames.com/pg/product/view.php?id=53'&gt;TankPack&lt;/a&gt; (which was &lt;b&gt;VERY&lt;/b&gt; useful in understanding how collisions are handled on player-like shapes) but I ended up not using it because the physics were too simple, even for our arcade-like needs.&lt;br&gt;&lt;br&gt;&lt;a href='http://www.garagegames.com/my/home/view.profile.php?qid=4553'&gt;Martin Schultz&lt;/a&gt; and I discussed a little bit about flying vehicle issues by email and this awoke my interest in the subject again. So I redesigned the class and ended up with what I have now: A pretty simple flyer, yet that behaves as you would expect a flyer to. It does not have a rigid body, though - but is even lighter on CPU than the player itself.&lt;br&gt;&lt;br&gt;&lt;b&gt;Conclusion&lt;/b&gt;&lt;br&gt;&lt;br&gt;I've got a few more major modifications that I have made, but time is running out and I think the above already illustrates my final point: &lt;i&gt;ANYONE&lt;/i&gt; can learn this stuff (Torque :P) and go far, given sufficent time and dedication!&lt;br&gt;&lt;br&gt;Thanks!</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/32782/11086">
		<dc:format>text/html</dc:format>
		<dc:date>2006-08-14T10:23:56+00:00</dc:date>
		<dc:creator>Stefan Lundmark</dc:creator>
		<title>Thunderstorm, luck, and being alive.</title>
		<link>http://www.garagegames.com/blogs/32782/11086</link>
		<description>This morning, I woke up by a nearby thunderstorm. Knowing our area gets hit by the lightning pretty often, I went upstairs to turn off all the electronics.&lt;br&gt;&lt;br&gt;I could see a bright flash, and then I heard a very loud sound that I just cannot describe. Like one of those plasma-beam sounds you hear in movies. So I went outside to take a look and this is what I see.&lt;br&gt;&lt;br&gt;&lt;b&gt;09:30&lt;/b&gt;&lt;br&gt;&lt;img src='http://www.innercircledev.net/DSC00170.JPG'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;Turns out our neighbors house is on fire. I called SOS, then ran in yelling without finding anyone inside. Apparantly both Lukas &amp;amp; Anna were at work. After another neighbor came by, we tried to feed water to the spot, but electricity got cut. The heat was overwhelming and it got difficult to breath even remotly distant from the fire. After a while, a barrel of diesel exploded and we (the neighbors) decided to back off.&lt;br&gt;&lt;br&gt;&lt;b&gt;09:32&lt;/b&gt;&lt;br&gt;&lt;img src='http://www.innercircledev.net/DSC00171.JPG'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;After 30 minutes, the fire department arrived and needless to say, there was nothing they could do except to make sure the fire didnt spread to other buildings nearby.&lt;br&gt;&lt;br&gt;&lt;b&gt;10:15&lt;/b&gt;&lt;br&gt;&lt;img src='http://www.innercircledev.net/DSC00172.JPG'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;Still - after 3 hours I am still shocked, and Im trying to get productive again. But I cant get this event out of my head and I havent even been able to get anything done that makes sense today.&lt;br&gt;&lt;br&gt;I am disheartened to see those guys lose their house that they worked so much on, and it disturbs me that it could had been our house that was on fire.&lt;br&gt;&lt;br&gt;Luck is a strong word.&lt;br&gt;&lt;br&gt;&lt;b&gt;11:20&lt;/b&gt;&lt;br&gt;&lt;img src='http://www.innercircledev.net/DSC00173.JPG'  alt=&quot;&quot;&gt;</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/32782/8345">
		<dc:format>text/html</dc:format>
		<dc:date>2005-07-26T20:48:22+00:00</dc:date>
		<dc:creator>Stefan Lundmark</dc:creator>
		<title>Tuesday Jul 26 20:48</title>
		<link>http://www.garagegames.com/blogs/32782/8345</link>
		<description>Authentication for MMO games, AutoUpdater and general progress.&lt;br /&gt;&lt;br /&gt;&lt;img src='http://www.innercircledev.net/teaser.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;Sup guys.&lt;br&gt;&lt;br&gt;Been working with my team again. Haven't been feeling very healthy (menthally) the last few months so work on games had to be put on the backburner. The last two weeks have been calm though, and I felt I could put some time on working with the team again.&lt;br&gt;&lt;br&gt;&lt;b&gt;Authentication for MMO games&lt;/b&gt;&lt;br&gt;&lt;br&gt;One of the many things I haven't worked alot with was Authentication. So I had to start from somewhere. Taking a look at how different games do it and how it works in Torque was interesting, but didn't yield alot for me.&lt;br&gt;&lt;br&gt;After alot of reading and fiddling around, I concluded that the best method to use would be a Challenge-based authentication scheme.&lt;br&gt;This is how it works in theory:&lt;br&gt;&lt;br&gt;- When the account is created, the client sends a scrambled password to the server which is stored.&lt;br&gt;- When a client tries to log in, the server will send a challenge to the client which is different at each logon.&lt;br&gt;- This challenge is combined with the clientside password, and then hashed into a MD5 checksum.&lt;br&gt;- The checksum is sent to the server, and compared to the serverside hash that is calculated the same way.&lt;br&gt;- If both hashes are identical, proceed. If not, boot the client.&lt;br&gt;&lt;br&gt;Pretty simple, yet effective enough for our needs. The problem here is database security, as the password is kept in a scrambled state. Given enough time, someone could figure out the scrambler and get the passwords in cleartext.&lt;br&gt;&lt;br&gt;This is however, alot more secure than sending the cleartext password at each logon (as in a Secret Exchange Authentication scheme). I will most likely improve this in the future.&lt;br&gt;&lt;br&gt;&lt;b&gt;AutoUpdater&lt;/b&gt;&lt;br&gt;&lt;br&gt;This was a pain for me to code, as it turned out to be more difficult than what I first imagined. I also learned alot. :)&lt;br&gt;Apparantly, the HTTP 1.0 protocol doesn't support Pipelining, and without that feature.. streaming of small files would be rather slow.&lt;br&gt;I solved it by rewriting much of the functions used by TCPObj, and it works really well.&lt;br&gt;&lt;br&gt;This is how I done it:&lt;br&gt;&lt;br&gt;- The server has a copy of the most recent client. Uncompressed.&lt;br&gt;- It runs a CRC-check on all the clientfiles, and returns an array to the client with CRC values as well as path/filename and size.&lt;br&gt;- The client then compares these values to the received ones, and if they differ.. they are added to a list.&lt;br&gt;- When the list is completed, the client starts to download the files. &lt;br&gt;&lt;br&gt;What I wanted here, was to code an implementation that only downloaded the differing bytes instead of the whole file, and compressing these before sending. But that turned out to be more than I could chew. I'll probably go on and implement something like it after the current implementation is fully tested.&lt;br&gt;&lt;br&gt;&lt;img src='http://www.innercircledev.net/patcher.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;Other than that&lt;/b&gt;&lt;br&gt;&lt;br&gt;The Project is starting to get moving again, and that makes me happy.&lt;br&gt;TSE is so much fun to muck around with, and it only gets better! I miss how you could modify each mission fast and on the fly in TGE, but hopefully something similiar to the old TGE terrain blender is on it's way in to Atlas, as that's my only gripe right now. It's incredibly time-consuming and hindering having to use a huge texture for each terrainblock.&lt;br&gt;&lt;br&gt;I attended a big LAN here in Sweden recently called Dreamhack (~5000 people with computers, people from Intel/Nvidia/Dice etc) and showed off our Project a bit. We had alot of feedback and questions and most of the people were very impressed by TSE.. that was great.&lt;br&gt;&lt;br&gt;&lt;img src='http://www.innercircledev.net/dreamhack.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;That's all for me right now. See you later.</description>
	</item>
</rdf:RDF>
