<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>2 Cents on MMOs &#187; Tech</title>
	<atom:link href="http://pennymo.com/category/tech/feed/" rel="self" type="application/rss+xml" />
	<link>http://pennymo.com</link>
	<description>My random musings about the gaming industry</description>
	<lastBuildDate>Sun, 29 Aug 2010 20:56:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Getting Rid of Antimalware Doctor</title>
		<link>http://pennymo.com/2010/08/29/getting-rid-of-antimalware-doctor/</link>
		<comments>http://pennymo.com/2010/08/29/getting-rid-of-antimalware-doctor/#comments</comments>
		<pubDate>Sun, 29 Aug 2010 20:56:36 +0000</pubDate>
		<dc:creator>Noir</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[getting rid of malware doctor]]></category>
		<category><![CDATA[howto fix malware]]></category>
		<category><![CDATA[removing malware doctor]]></category>
		<category><![CDATA[removing spyware]]></category>

		<guid isPermaLink="false">http://pennymo.com/?p=229</guid>
		<description><![CDATA[Malware authors are guilty of racketeering
Ya know, I am normally a person who very much lives by the golden rule, live and let live, easy going. But something happened to me recently that made me want to go find someone, kidnap them and create a video as a warning to anyone else that would create [...]]]></description>
			<content:encoded><![CDATA[<h1>Malware authors are guilty of racketeering</h1>
<p>Ya know, I am normally a person who very much lives by the golden rule, live and let live, easy going. But something happened to me recently that made me want to go find someone, kidnap them and create a video as a warning to anyone else that would create the insidious type of extortion that is the self installing, self propagating &#8220;anti spyware&#8221; maleware.</p>
<p>(actually I have a very good idea of what I wanted to do, but it was so graphically violent I was afraid I&#8217;d get a visit from the FBI the day after posting it)</p>
<p>This blog entry is in two parts:</p>
<p>The Second part details (in great detail) how to get rid of malware that installs itself onto your computer, by hand. This is not a Terse how to, but provides more detail on to what kinds of things to look for and how. Also an attempt to document a specific technique that can be used on any type of software. If this is what you are interested scroll down to &#8220;How To&#8221;.</p>
<p>First is a personal reasoning of why malicious malware authors are guilty of organized blackmail, extortion, racketeering, trespassing, and another number of other offenses, and should be prosecuted with all the zeal and resources as any other organized crime. What they do is no different from a gang shaking down locals for protection money.</p>
<p>What act am I talking about? A tracking cookie was hijacked and used to install a program called &#8220;Antimalware Doctor&#8221; on one of the windows vista systems in my house. I lost several hours of my life removing this, this, abomination, from my system. Fortunately for me, this type of thing has happened before in my house. Usually to one of my kids who would pick up something from one of the free game websites (I tracked one back to newgrounds.com once, before they implemented security changes, now newgrounds is one of the safest places to play free games).</p>
<p>This is a type of malware that installs itself, and tries to disguise itself as windows defender, and other legitimate anti virus software.</p>
<p>In this case it installed a trey icon that popped up messages saying the system is infected.</p>
<p>This particular version, &#8220;Antimalware Doctor&#8221; is particularly nasty, it manages to insert iself as a legimit virus scanner (in this case I think it was using a debugging feature).</p>
<p>After a few minuites of operation, &#8220;Antimalware Doctor&#8221; Starts flagging _every_ process as potentially infected, preventing any new process from starting. It also seemed to detect when taskmgr.exe or regedit.exe where executed. I discovered that if askmgr.exe or regedit.exe was the first thing I ran (or put it in the start menu) then &#8220;Antimalware Doctor&#8221; couldn&#8217;t prevent them from executing. But anything else launched after that would fail to execute. (admittedly, I did not try running them from the command prompt, so the mechanism could have been to intercept windows explorer)</p>
<p>Another thing this nasty bugger did to the system was set up a system wide proxy so that Internet Explorer, Firefox, Chrome, and any other browser could not get to the internet. The proxy actually directed all internet traffic to go through 127.0.0.1 (For those of you who have never seen this before, this is an internal address of your own computer) Malware doctor created a web page on the local system that read &#8220;this page is infected&#8221;. A hapless user get&#8217;s this page NO MATTER WHERE they go. www.google.com and www.microsoft.com came up as infected.</p>
<p>One more bit of text before I get to the good stuff. Who ever wrote this nasty thing, and those who have written it&#8217;s brethren. Let it be known that the authors, and distributors of this thing are committing <a title="extortion" href="http://www.answers.com/topic/extortion" target="_blank">extortion </a>and <a title="BlackMail" href="http://www.answers.com/topic/blackmail" target="_blank">blackmail</a>. In the truest sense of their definitions.</p>
<p>I submit to you one of the legal definitions of extortion and blackmail:</p>
<blockquote><p>The obtaining of property from another induced by wrongful use of actual  or threatened force, violence, or fear, or under color of official  right.</p></blockquote>
<blockquote><p>The crime involving a threat for purposes of compelling a person to do  an act against his or her will, or for purposes of taking the person&#8217;s  money or property.</p></blockquote>
<p>The goal of &#8220;Antimalware Doctor&#8221; is to get you to go to a website and pay money to get rid of it. Simple as that. They did something to me, I didn&#8217;t want done, and they will keep doing it to me. Part of what they are doing is demanding money from me, another thing they are doing is preventing me from earning a living by effectively rendering the tools of my trade inoperable until I pay a fee. (I am hoping that some attorney general will take up a class action case and go after these racketeers). Yes I honestly believe the authors of &#8220;Malware Doctor&#8221; are guilty of crimes that are covered under the US <a href="http://en.wikipedia.org/wiki/Racketeer_Influenced_and_Corrupt_Organizations_Act">RICO</a> act. I would greatly enjoy discussing this with any organization willing to peruse legal action against the authors of &#8220;Antimalware Doctor&#8221;.</p>
<p>I felt like someone broke into my house, filled it with boxes, then demanded I pay a moving company. without even promising to take the boxes away.</p>
<p>Barring legal action, If you find yourself infected with &#8220;Antimalware Doctor&#8221; here are the steps I used to get rid of it. Although this process, and registry entries are for &#8220;Antimalware Doctor&#8221; this technique should work for most forms of malware.</p>
<h1>How To</h1>
<p>(author&#8217;s note: I was not able to use &#8220;<a href="http://www.revouninstaller.com/">revo-uninstaller</a>&#8221; because it was not on this particular system. I suspect revo&#8217;s <a href="http://www.revouninstaller.com/revo_uninstaller_uninstall_features.html">&#8220;hunter&#8221; mode</a> would have been able to nuke this guy. I have a lot of respect for the authors of <a href="http://www.revouninstaller.com/">Revo Uninstaller</a> and highly recommend it to anyone who does software development, plays a lot of games, or does casual experimentation on a system. Disclaimer: I do not know the authors of Revo, I have never worked with them (to the best of my knowledge). But if I ever did meet them I&#8217;d like to buy them a beer)</p>
<p>In general the procedure I use is:</p>
<h3>#1 find the executables in the file system and turn off all permissions</h3>
<h3>#2 rename the executable, and the directories they are in</h3>
<h3>#3 Boot the system into &#8220;safe mode&#8221;</h3>
<p>(At this point it might be easier just restoring the system to the last &#8220;Save Point&#8221;, but sometimes that does not work)</p>
<h3>#4 search for the executables in the registry and document GUIDs and other keywords</h3>
<h3>#5 search the registry for those GUIDs and other keywords, and remove them</h3>
<h3>#6 Finally, delete the registry entries for the executables, and the executables themselves.</h3>
<h3>#7 Fix the bogus &#8220;Proxy&#8221; settings</h3>
<h2>#1 Find the executable</h2>
<p>Ctrl+alt+delete and launch task manager.</p>
<p>(Also note, you need local administrative privileges to do most of this work)</p>
<p>Normal applications will appear under the &#8220;applications&#8221; tab. You will not find it there, you need to go to processes, and enable viewing of all processes.</p>
<p>All malware I have encountered use random or obscure executable names. For Antimalware Doctor, the executables did not have a description, a sure sine of something you don&#8217;t want running.</p>
<p>In this case the executable names are</p>
<pre>newsecureapp70700.exe
</pre>
<p>and</p>
<pre>vwmpqicshdw.exe</pre>
<p>First, be aware that new versions of windows allow you to control the permissions an executable has.</p>
<p>How here is a handy trick. In windows task manager right click on the executable name. You should see &#8220;open file location&#8221; on the top. click that.</p>
<p>A file browser window will open containing the offending files.</p>
<p>your next goal is to find any executable or extension and remove all of it&#8217;s permissions.</p>
<p>There may be several executables and .dll files. Antimalware Doctorput it&#8217;s own .dlls and executables in a directory by itself, so they where easy to find. In this case you want to change the permissions on everything in the directory.</p>
<p>Some malware will put there executables in a system directory alongside a bunch of important operating system files. In that case you need to be really careful what you change, rename and delete.</p>
<p>when you right clicked on the executable (in windows task manager) an selected &#8220;Open file location&#8221; the executable should be selected in the file browser.</p>
<p>Right click on the offending executable.</p>
<p>select &#8220;Properties&#8221; (last menu item on the bottom)</p>
<p>(also note the title of the window will have the executable&#8217;s name, quickly double check you are changing the properties for the right executable)</p>
<p>Click on the &#8220;Security&#8221; Tab at the top of the properties window</p>
<p>There are two &#8220;panes&#8221; in this window. The top pane has a list of groups and users, the bottom pane has the permissions.</p>
<p>Your goal is set ALL permissions for ALL users to Deny</p>
<p>First you will need to click the Edit button, and click Continue in the popup (Vista, windows 7 may be different)</p>
<p>Click on a Group name in the top pane, and click deny for all the permissions in the lower pane.</p>
<p>Repeat for every user and group. There are likely just 3: &#8220;SYSTEM&#8221; &#8220;Administrators&#8221; and &#8220;Users&#8221;</p>
<p>Click &#8220;Apply&#8221;</p>
<p>Verify that all permissions are set to deny for each group before hitting OK.</p>
<p>(Note, the first time I did this, it appeared that Antimalware Doctordetected the attempted change when I hit &#8220;OK&#8221;, and undid my change.  But apparently &#8220;apply&#8221; uses some other  mechanism. )</p>
<p>Repeate this process for anything that looks like an executable (.exe) or executable extension (.DLL). Also you might want to remove permissions from all the other files as well. some of them are data required for the malware to detect when it&#8217;s process has been killed, and re-spawn itself. If it can not read the file (Because read permission has been removed) it has a hard time coming back after it&#8217;s processes have been terminated.</p>
<h2>#2 rename the executable, and the directories they are in</h2>
<p>your goal in this step is to prevent the malware from being able to start the next time windows starts.</p>
<p>In my case it was</p>
<pre>C:\Users\Dad\AppData\Roaming\21E71E594E5225D3E6D0124C5B60BFE6\newsecureapp70700.exe
</pre>
<p>After changing permissions I renamed the executable file, every file in the directory. Do this ONLY if the malware is in a directory by itself, if it is in a system directory (somewhere under \windows, just try to rename the executable)</p>
<p>and most importantly</p>
<p>RENAME THE DIRECTORY.</p>
<p>(ONLY if the malware is in a directory all by itself)</p>
<p>If the malware is in a system directory you can try to move the executable to another directory (but that likely will fail)</p>
<p>You might not be able to rename the executable (Because it is running)</p>
<p>Why rename rather than just deleting it?<br />
Well, smart malware authors will not only be able to detect when a malware processes is terminated, but also detect, and prevent deletion of the executable and it&#8217;s directory. This is typically done when the malware discovers it can&#8217;t read or write files in it&#8217;s home directory. If you delete those files, it knows someone is trying to shut it down.</p>
<p>If you just rename the directory it is in, all it&#8217;s files are still available to it. Until you reboot.</p>
<p>When you reboot, there is an entry in the system registry that will try to start the malware, and since the name of the directory has changed, the system will not be able to find the files, and it won&#8217;t be able to execute.</p>
<h2>#3 Boot the system into &#8220;safe mode&#8221;</h2>
<p>Your goal in this step is to boot into an OS mode that will allow you to remove the malware.</p>
<p>restart windows, repeatedly hit F8 before you see the windows logo (sometimes after you see the bios messages, sometimes just during that black time before the windows logo)</p>
<p>A menu will appear allowing you to select which mode to boot the OS.</p>
<p>Select &#8220;Safe mode&#8221;</p>
<p>I do not recommend &#8220;Safe mode with networking&#8221;, as it might give the malware access to the internet and re-seed itself on your  PC.</p>
<p>At this point you may be able to get rid of the malware simply by restoring the system to it&#8217;s last save point. This did not work for me. So I had to troll through the registry.</p>
<h2>#4 search for the executables in the registry and document GUIDs and other keywords</h2>
<p>First, standard disclaimer. The registry is where the OS and All programs store important configuration information. These steps describe a process akin to doing neuro surgery on your system. change or delete the wrong thing, and the system will never be the same.</p>
<p>open the registry editor (from a command prompt or the start menu&#8217;s search bar) by typing regedit.</p>
<p>I strongly suggest making a backup of the registry before proceeding. (with &#8220;computer&#8221; selected, select file-&gt;export and save the registry to a .reg file somewhere)</p>
<p>First thing, search for &#8220;Antimalware Doctor&#8221; in the registry.</p>
<p>This particular malware actually set registry entries in the system to make it look like it was legitimately installed. There was even an entry &#8220;Antimalware Doctor&#8221; in the installed programs control panel. DO NOT BE FOOLED. it is _very_ easy to add entries here, if you know how. you just need to know how to add some specific data in the system registry.</p>
<p>So, first thing I did was search for &#8220;Antimalware Doctor&#8221; and found a wealth of information.</p>
<p>Specificlly I found the following in the registry</p>
<pre>[HKEY_USERS\S-1-5-21-1662259190-1271292992-2768786752-1000\Software\Antimalware Doctor Inc\Antimalware Doctor]
"datarl1"="KRoAGVdOQwQVExEwGhdaBhw="
"datarl2"="KRoAGVdOQwEIAQglBAZaBhw="
"datarlA"="KRoAGVdOQwQVExEwGhdaBhw="
"install_time"="8/25/2010 5:06:54 PM"
"database_version"="259"
"virus_signatures"="60817"
"affid"="7070010002"
"coid"="21E71E594E5225D3E6D0124C5B60BFE6"
"nsaftscann"="2"
"nsa"="5"
"nsaftscanunp"="2"
"updids"="ciod225,"
"LastScan"="8/26/2010 5:18:15 PM"
"nsstupn"="1"
"nsstupunp"="1"
"nssettlf"="1"
"nsstupsn"="1"
"nsstupsunp"="1"
</pre>
<p>Note: the &#8220;coid&#8221; this looks like a GUID (Genuinely Unique ID). also the number 7070010002&#8243; is similar to the executable name. Also &#8220;updids&#8221; is &#8220;Ciod225&#8243; these all look like they might be references to other entries in the registry.</p>
<p>You will eventually delete this entry, but ONLY after finding everything else.</p>
<p>At this point you might want to look under the registry entries that control what programs start when the OS starts.</p>
<pre>HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
</pre>
<p>Once you remove the malware&#8217;s entries in above 4 run keys, theoretically it should start up when you reboot. But, likely it has other ways to start up if not started by the system (such as getting started through the browser proxy re-direct)</p>
<h2>#5 search the registry for those GUIDs and other keywords, and remove them</h2>
<p>Any program in windows depends on the registry. So a malware author is simply not going to put all it&#8217;s vital bits of information where it is easy to find.</p>
<p>at this point search the registry and find references to the executable, and to the other IDs. for Malware doctor I found several, and here they are.</p>
<pre>[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\App Management\ARPCache\Antimalware Doctor]</pre>
<pre>
<pre>Under the registry entry:</pre>
<p>[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]</pre>
<p>I found these two entries:</p>
<pre>"C:\\Users\\Dad\\AppData\\Roaming\\21E71E594E5225D3E6D0124C5B60BFE6\\newsecureapp70700.exe"="WIN95"</pre>
<pre>"C:\\Users\\Dad\\AppData\\Roaming\\21E71E594E5225D3E6D0124C5B60BFE6\\upd_debug.exe"="WIN95 DISABLETHEMES DISABLEDWM"</pre>
<p>And, remember when I mentioned that it was easy to add entries to the list of software installed on your system? This is all that had to be done to get antimalware doctor to look like a legit program on your system. Technically all you need is the registry key, and the entry &#8220;DisplayName&#8221;, and that will create a bogus entry that will show up as an un-uninstallable software package.</p>
<pre>[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall\Antimalware Doctor]
"DisplayIcon"="C:\\Users\\Dad\\AppData\\Roaming\\21E71E594E5225D3E6D0124C5B60BFE6\\newsecureapp70700.exe,0"
"DisplayName"="Antimalware Doctor"
"UninstallString"="C:\\Users\\Dad\\AppData\\Roaming\\21E71E594E5225D3E6D0124C5B60BFE6\\newsecureapp70700.exe /uninstall"
"InstallLocation"="C:\\Users\\Dad\\AppData\\Roaming\\21E71E594E5225D3E6D0124C5B60BFE6\\"
"NoModify"=dword:00000001
"NoRepair"=dword:00000001</pre>
<p>Note: if you try to actually run the uninstaller, all you get is an internet explorer window open to the &#8220;purchase product&#8221; page for &#8220;antimalware doctor&#8221; this registry entry tells us that the executable file newsecureapp70700.exe actually pops up internet explorer.</p>
<p>Also I found a bunch of bogus entries under one of the run keys</p>
<pre>[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
"wamcenxros.exe"="\"C:\\Users\\Dad\\AppData\\Local\\Temp\\wamcenxros.exe\""
"aomcnxerws.exe"="\"C:\\Users\\Dad\\AppData\\Local\\Temp\\aomcnxerws.exe\""
"haw389r7uifhdfigdhudf"="C:\\Users\\Dad\\AppData\\Local\\Temp\\zgwqduyts.exe"
"Rbifuvupoqoxevu"="rundll32.exe \"C:\\Users\\Dad\\AppData\\Local\\cprfech.dll\",Startup"
"newsecureapp70700.exe"="C:\\Users\\Dad\\AppData\\Roaming\\21E71E594E5225D3E6D0124C5B60BFE6\\newsecureapp70700.exe"
"hsfio38fiosfh398rfisjhkdsfd"="C:\\Users\\Dad\\AppData\\Local\\Temp\\services.exe"
"trawgd327uhf838jdfdsfdfds"="C:\\Users\\Dad\\AppData\\Local\\Temp\\drweb.exe"
"lhmerppl"="C:\\Users\\Dad\\AppData\\Local\\fflolomif\\vwmpqicshdw.exe
"Whabivanomozo"="rundll32.exe \"C:\\Users\\Dad\\AppData\\Local\\apogufutufumulig.dll\",Startup"
</pre>
<p>This almost made me think I had more than one creepy thing going on&#8230;</p>
<p>either way, you can see that modern malware is not simply one component, but a carefully crafted set of components. All designed with one purpose, prevent you from removing them, and directing you to a website for extortion of funds.</p>
<p>Also I found some bogus entries under the windows reg key:</p>
<pre>[HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\Shell\MuiCache]
</pre>
<p>Entries under that key usually refer to programs that lie under the /windows or /program files directories. But I found:</p>
<pre>"C:\\Users\\Dad\\AppData\\Roaming\\21E71E594E5225D3E6D0124C5B60BFE6\\newsecureapp70700.exe"="newsecureapp70700"
"C:\\Users\\Dad\\AppData\\Local\\fflolomif\\vwmpqicshdw.exe"="vwmpqicshdw"</pre>
<h2>#6 Finally, delete the registry entries for the executables, and the executables themselves.</h2>
<p>Brief step. I took note of the OIDs and file names of the registry entries I found. Whenever I found a registry entry for the malware I saved that key off to a file.</p>
<p>You might thing this would be a never ending process, but it turns out there where only a few keywords used repeatedly</p>
<pre>vwmpqicshdw
21E71E594E5225D3E6D0124C5B60BFE6
newsecureapp70700
Antimalware Doctor</pre>
<p>I removed all registry entries with those keywords. Then finally went and removed the following Directories</p>
<pre>C:\Users\Dad\AppData\Local\fflolomif\
C:\Users\Dad\AppData\Roaming\21E71E594E5225D3E6D0124C5B60BFE6\</pre>
<h2>#7 Fix the bogus &#8220;Proxy&#8221; settings</h2>
<p>Malware Doctor did something extra Nasty. They set up a bogus proxy, so that every network request would be redirected through an IP address they could control. In this case, that IP address was your own PC. There are two ways to fix this, through the Internet settings control panel, or through the registry. Most people can figure it out through the control panel. But if you are comfortable with editing the registry. you just have to know which reg entry to tweak:</p>
<pre>HKEY_CURRENT_CONFIG\Software\Microsoft\windows\CurrentVersion\Internet Settings</pre>
<p>simply set the value of &#8220;proxy enable&#8221; to 0 (zero) (right click on the word &#8220;Proxy Enable&#8221; and select &#8220;modify&#8221; set the value to 0 and click OK.</p>
<p>Note: if you are reading this looking for electronic forensic information on this malware, you might find the following interesting, from the arp cache in the registry:</p>
<pre>[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\App Management\ARPCache\Antimalware Doctor]
"SlowInfoCache"=hex:28,02,00,00,01,00,00,00,00,a0,13,00,00,00,00,00,00,00,00,\
 00,00,00,00,00,00,00,00,00,43,00,3a,00,5c,00,55,00,73,00,65,00,72,00,73,00,\
 5c,00,44,00,61,00,64,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,\
 00,52,00,6f,00,61,00,6d,00,69,00,6e,00,67,00,5c,00,32,00,31,00,45,00,37,00,\
 31,00,45,00,35,00,39,00,34,00,45,00,35,00,32,00,32,00,35,00,44,00,33,00,45,\
 00,36,00,44,00,30,00,31,00,32,00,34,00,43,00,35,00,42,00,36,00,30,00,42,00,\
 46,00,45,00,36,00,5c,00,6e,00,65,00,77,00,73,00,65,00,63,00,75,00,72,00,65,\
 00,61,00,70,00,70,00,37,00,30,00,37,00,30,00,30,00,2e,00,65,00,78,00,65,00,\
 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
 00,00,00,00,00,00,00,00
"Changed"=dword:00000000

I suspect there is lots of juicy information on the route this malware took to get to my PC. If I knew how to decode the arp cache.
</pre>
<p><a href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fpennymo.com%2F2010%2F08%2F29%2Fgetting-rid-of-antimalware-doctor%2F&amp;linkname=Getting%20Rid%20of%20Antimalware%20Doctor" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fpennymo.com%2F2010%2F08%2F29%2Fgetting-rid-of-antimalware-doctor%2F&amp;linkname=Getting%20Rid%20of%20Antimalware%20Doctor" title="Delicious" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fpennymo.com%2F2010%2F08%2F29%2Fgetting-rid-of-antimalware-doctor%2F&amp;linkname=Getting%20Rid%20of%20Antimalware%20Doctor" title="Reddit" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/reddit.png" width="16" height="16" alt="Reddit"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fpennymo.com%2F2010%2F08%2F29%2Fgetting-rid-of-antimalware-doctor%2F&amp;linkname=Getting%20Rid%20of%20Antimalware%20Doctor" title="Twitter" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fpennymo.com%2F2010%2F08%2F29%2Fgetting-rid-of-antimalware-doctor%2F&amp;linkname=Getting%20Rid%20of%20Antimalware%20Doctor" title="Slashdot" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fpennymo.com%2F2010%2F08%2F29%2Fgetting-rid-of-antimalware-doctor%2F&amp;linkname=Getting%20Rid%20of%20Antimalware%20Doctor" title="Digg" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fpennymo.com%2F2010%2F08%2F29%2Fgetting-rid-of-antimalware-doctor%2F&amp;linkname=Getting%20Rid%20of%20Antimalware%20Doctor" title="Facebook" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/blogger_post?linkurl=http%3A%2F%2Fpennymo.com%2F2010%2F08%2F29%2Fgetting-rid-of-antimalware-doctor%2F&amp;linkname=Getting%20Rid%20of%20Antimalware%20Doctor" title="Blogger Post" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/blogger.png" width="16" height="16" alt="Blogger Post"/></a> <a href="http://www.addtoany.com/add_to/stumbleupon?linkurl=http%3A%2F%2Fpennymo.com%2F2010%2F08%2F29%2Fgetting-rid-of-antimalware-doctor%2F&amp;linkname=Getting%20Rid%20of%20Antimalware%20Doctor" title="StumbleUpon" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/stumbleupon.png" width="16" height="16" alt="StumbleUpon"/></a> <a href="http://www.addtoany.com/add_to/yahoo_bookmarks?linkurl=http%3A%2F%2Fpennymo.com%2F2010%2F08%2F29%2Fgetting-rid-of-antimalware-doctor%2F&amp;linkname=Getting%20Rid%20of%20Antimalware%20Doctor" title="Yahoo Bookmarks" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/yahoo.png" width="16" height="16" alt="Yahoo Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/myspace?linkurl=http%3A%2F%2Fpennymo.com%2F2010%2F08%2F29%2Fgetting-rid-of-antimalware-doctor%2F&amp;linkname=Getting%20Rid%20of%20Antimalware%20Doctor" title="MySpace" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/myspace.png" width="16" height="16" alt="MySpace"/></a> <a href="http://www.addtoany.com/add_to/windows_live_favorites?linkurl=http%3A%2F%2Fpennymo.com%2F2010%2F08%2F29%2Fgetting-rid-of-antimalware-doctor%2F&amp;linkname=Getting%20Rid%20of%20Antimalware%20Doctor" title="Windows Live Favorites" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/live.png" width="16" height="16" alt="Windows Live Favorites"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fpennymo.com%2F2010%2F08%2F29%2Fgetting-rid-of-antimalware-doctor%2F&amp;linkname=Getting%20Rid%20of%20Antimalware%20Doctor"><img src="http://pennymo.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://pennymo.com/2010/08/29/getting-rid-of-antimalware-doctor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unity 3D and Web Pages Article 1: Represent</title>
		<link>http://pennymo.com/2010/07/17/unity-3d-and-web-pages-article-1-represent/</link>
		<comments>http://pennymo.com/2010/07/17/unity-3d-and-web-pages-article-1-represent/#comments</comments>
		<pubDate>Sat, 17 Jul 2010 20:04:05 +0000</pubDate>
		<dc:creator>Noir</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Production]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Application.ExternalCall]]></category>
		<category><![CDATA[document.getElementByID]]></category>
		<category><![CDATA[Game Programming]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Unity 3D]]></category>

		<guid isPermaLink="false">http://pennymo.com/?p=211</guid>
		<description><![CDATA[So what is the use of a web plugin if you can&#8217;t actually control what&#8217;s going on in the plugin from the web page it is part of? This is the first of a small series of articles on integration between the Unity 3D plugin and the web page it sits in.
Background
After a long, day [...]]]></description>
			<content:encoded><![CDATA[<p>So what is the use of a web plugin if you can&#8217;t actually control what&#8217;s going on in the plugin from the web page it is part of? This is the first of a small series of articles on integration between the Unity 3D plugin and the web page it sits in.</p>
<div id="Click Me" class="wp-caption alignnone" style="width: 58px"><a rel="shadowbox" href="http://pennymo.com/Aqueme" title="Aqueme"><img title="Aqueme" src="http://pennymo.com/Aqueme/PlayPlace.ico" alt="Click Me" width="48" height="48" /></a><p class="wp-caption-text">Click Me</p></div>
<h2>Background</h2>
<p>After a long, day job induced, hiatus from Unity 3D, I wanted to put my first unity project to bed before moving onto my next project (a facebook unity integration). After much clean up and fuss it stabilized and has bee posted to <a title="Aqueme game" rel="shadowbox" href="http://pennymo.com/Aqueme/" target="_blank">it&#8217;s own web page</a>. I wanted the game to look clean, which meant I wanted the following:</p>
<ul>
<li>The player&#8217;s score should be displayed in the web page, not within the unity client</li>
<li>Starting a new game should be done from buttons on the web page</li>
<li>Controlling the &#8220;view&#8221; (rotation &amp; zoom)</li>
</ul>
<p>So this meant that I needed to post data from Unity to the web page, and call functions within unity from the web page.</p>
<h2>Putting out</h2>
<p>The first thing to do was figure out how to get player&#8217;s score to be displayed on the web page itself. This turned out to be fairly simple. You need 2 basic things</p>
<ul>
<li>A function defined in the web page for Unity to call</li>
<li>use the &#8220;Application.ExternalCall&#8221; function from within your unity projects</li>
</ul>
<p>Well, you also need to know how to change text in a web page, which it turns out to be pretty simple.</p>
<h3>Changing IDentities</h3>
<p>Some fantasy series I once read used a plot device whereby if you knew a things name you could control it. Well, in the web, if you give a thing a name, you can do all sorts of strange and wonderful things to it.</p>
<p>In the web page, giving something a name, is done by using the id tag. The official definition of ID is found <a title="w3 html definition of ID" href="http://www.w3.org/TR/html401/struct/global.html#adef-id" target="_blank">here.</a></p>
<p>This may be best explined in an example. In my game page I have a &#8220;Red player score&#8221; and a &#8220;Blue player score&#8221;. In the web page I highlight each score by bolding it.</p>
<pre style="padding-left: 30px;">&lt;b id="RPSScoreTxt"&gt;Blue Player Score&lt;/b&gt;</pre>
<p>Just a rule in the fantasy land that is HTML, if you know the name of something you can completely change it. Everything in an HTML page is an object, or more specifically, and html page is represented programmatically within the web browser as an object hierarchy, or <a title="document document" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-1590626201" target="_blank">Document Object Model </a>(DOM for short).</p>
<p>When the page loads (remember this detail)  the text &#8220;Blue Player Score&#8221; will be displayed in it&#8217;s location within the page.</p>
<p>if you know an object&#8217;s name you can get a handle to that object within the DOM. Once you have the handle to an object you can  fiddle with the attributes and data attached to that object.</p>
<h3>Will it come when I call it?</h3>
<p>Having an element with a named ID allows you to get a reference to that object within scripts. Within javascript the object &#8220;document&#8221; represents the web page within the javascript is running. <a title="DOM core definition" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html" target="_blank">getElementByID </a>is a function attached to the document object.</p>
<h3>What is all powerful in a name?</h3>
<p>The next trick is know what to change.</p>
<p>In HTML there is an attribute to every object that is nearly all powerful. The <a title="MS's docuemtation on innerHTML" href="http://msdn.microsoft.com/en-us/library/ms533897%28VS.85%29.aspx" target="_blank">innerHTML </a>attribute allows you to modify or replace the contents of an object. In this the inner HTML of is just some text. (But I did an experiment where unity replaced a simple text entry with an entire table).</p>
<pre style="padding-left: 30px;">function SetRPScore(arg){
 document.getElementById('RPSScoreTxt').innerHTML = ' ' + arg;
 }</pre>
<p>So, if you make the call</p>
<pre style="padding-left: 30px;">SetRPScore("i did i bla bla");</pre>
<p>The text &#8220;Blue Player Score&#8221; would be changed to &#8221; i did i bla bla&#8221;</p>
<p>Remember the above function needs to be defined within &lt;script&gt; &lt;/script&gt; block.</p>
<pre style="padding-left: 30px;">&lt;script language="javascript1.1" type="text/javascript"&gt;</pre>
<pre style="padding-left: 30px;">
<pre style="padding-left: 30px;">function SetRPScore(arg){
 document.getElementById('RPSScoreTxt').innerHTML = ' ' + arg;
 }</pre>
<p>&lt;/script&gt;</pre>
<h2>That was the hard part</h2>
<p>now you have an object with a name you can use to get a handle to. You have a way to change that object, you have a function that takes an argument. The only thing you need to know is the Application.ExternalCall.  That function takes 2 parameters, the name of the function, and a parameter to pass to the function.</p>
<pre>Application.ExternalCall("SetRPScore", 22 );</pre>
<h3>Bottom line (of code)</h3>
<p>so if you want your unity game to make a change, such as set score, in the web page just do the following</p>
<ul>
<li>In your HTML page, give a chunk of text (or anything else) an ID</li>
<li>Create a function(again in your html plage) that changes the innerHTML of that ID</li>
<li>Call that function from within your unity plug-in via Application.ExternalCall</li>
</ul>
<p>And that&#8217;s how it is done. To see the full details look at the source of my <a title="My Game" rel="shadowbox" href="http://pennymo.com/Aqueme/index.html" target="_blank">Aqueme </a>game</p>
<p>Come back later and read my next segment, which go through the more terror prone activity of making a call into the unity plugin from the web page.</p>
<p><a href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fpennymo.com%2F2010%2F07%2F17%2Funity-3d-and-web-pages-article-1-represent%2F&amp;linkname=Unity%203D%20and%20Web%20Pages%20Article%201%3A%20Represent" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fpennymo.com%2F2010%2F07%2F17%2Funity-3d-and-web-pages-article-1-represent%2F&amp;linkname=Unity%203D%20and%20Web%20Pages%20Article%201%3A%20Represent" title="Delicious" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fpennymo.com%2F2010%2F07%2F17%2Funity-3d-and-web-pages-article-1-represent%2F&amp;linkname=Unity%203D%20and%20Web%20Pages%20Article%201%3A%20Represent" title="Reddit" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/reddit.png" width="16" height="16" alt="Reddit"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fpennymo.com%2F2010%2F07%2F17%2Funity-3d-and-web-pages-article-1-represent%2F&amp;linkname=Unity%203D%20and%20Web%20Pages%20Article%201%3A%20Represent" title="Twitter" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fpennymo.com%2F2010%2F07%2F17%2Funity-3d-and-web-pages-article-1-represent%2F&amp;linkname=Unity%203D%20and%20Web%20Pages%20Article%201%3A%20Represent" title="Slashdot" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fpennymo.com%2F2010%2F07%2F17%2Funity-3d-and-web-pages-article-1-represent%2F&amp;linkname=Unity%203D%20and%20Web%20Pages%20Article%201%3A%20Represent" title="Digg" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fpennymo.com%2F2010%2F07%2F17%2Funity-3d-and-web-pages-article-1-represent%2F&amp;linkname=Unity%203D%20and%20Web%20Pages%20Article%201%3A%20Represent" title="Facebook" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/blogger_post?linkurl=http%3A%2F%2Fpennymo.com%2F2010%2F07%2F17%2Funity-3d-and-web-pages-article-1-represent%2F&amp;linkname=Unity%203D%20and%20Web%20Pages%20Article%201%3A%20Represent" title="Blogger Post" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/blogger.png" width="16" height="16" alt="Blogger Post"/></a> <a href="http://www.addtoany.com/add_to/stumbleupon?linkurl=http%3A%2F%2Fpennymo.com%2F2010%2F07%2F17%2Funity-3d-and-web-pages-article-1-represent%2F&amp;linkname=Unity%203D%20and%20Web%20Pages%20Article%201%3A%20Represent" title="StumbleUpon" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/stumbleupon.png" width="16" height="16" alt="StumbleUpon"/></a> <a href="http://www.addtoany.com/add_to/yahoo_bookmarks?linkurl=http%3A%2F%2Fpennymo.com%2F2010%2F07%2F17%2Funity-3d-and-web-pages-article-1-represent%2F&amp;linkname=Unity%203D%20and%20Web%20Pages%20Article%201%3A%20Represent" title="Yahoo Bookmarks" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/yahoo.png" width="16" height="16" alt="Yahoo Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/myspace?linkurl=http%3A%2F%2Fpennymo.com%2F2010%2F07%2F17%2Funity-3d-and-web-pages-article-1-represent%2F&amp;linkname=Unity%203D%20and%20Web%20Pages%20Article%201%3A%20Represent" title="MySpace" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/myspace.png" width="16" height="16" alt="MySpace"/></a> <a href="http://www.addtoany.com/add_to/windows_live_favorites?linkurl=http%3A%2F%2Fpennymo.com%2F2010%2F07%2F17%2Funity-3d-and-web-pages-article-1-represent%2F&amp;linkname=Unity%203D%20and%20Web%20Pages%20Article%201%3A%20Represent" title="Windows Live Favorites" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/live.png" width="16" height="16" alt="Windows Live Favorites"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fpennymo.com%2F2010%2F07%2F17%2Funity-3d-and-web-pages-article-1-represent%2F&amp;linkname=Unity%203D%20and%20Web%20Pages%20Article%201%3A%20Represent"><img src="http://pennymo.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://pennymo.com/2010/07/17/unity-3d-and-web-pages-article-1-represent/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>XML and Unity3D</title>
		<link>http://pennymo.com/2009/11/21/xml-and-unity-3d/</link>
		<comments>http://pennymo.com/2009/11/21/xml-and-unity-3d/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 01:46:36 +0000</pubDate>
		<dc:creator>Noir</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Unity3D game development]]></category>

		<guid isPermaLink="false">http://pennymo.com/?p=182</guid>
		<description><![CDATA[I needed to be able to save game state, and I wanted to communicate back and forth with websites, and I needed the files to be human readable, and I needed it to be easy [I have been told I am very needy]. The best thing for me to do was to figure out how [...]]]></description>
			<content:encoded><![CDATA[<p>I needed to be able to save game state, and I wanted to communicate back and forth with websites, and I needed the files to be human readable, and I needed it to be easy [I have been told I am very needy]. The best thing for me to do was to figure out how to read, and write, XML inside Unity3D. It&#8217;s a web plugin right? it should support XML processing, and the DOM model right? Well, yes, yes it does.</p>
<h1>How does Unity3D do XML?</h1>
<p>Well, Unity3D uses the Mono implementation of the .net XML processor. Honestly I didn&#8217;t really want to know this, I just wanted to process XML. [did I mention that I am both needy AND demanding?].</p>
<p>In Unity3D (for 2.5 and 2.6 at least) it turns out that XML is best processed through C#.</p>
<p>What you need to do</p>
<ul>
<li>Write file open functions in C#</li>
<li>Write XML read and write functions in C#</li>
<li>write a function to read  the XML and process the results</li>
<li>write a function to write game data in XML</li>
<li>Optional: Read and write lists</li>
</ul>
<p>The instructions are a bit confusing, you may just want to Skip them and, just read source code: <a href="http://pennymo.com/wp-content/uploads/2009/11/RnWXML.cs">Read and Write XML from Unity3D</a>.</p>
<h2>Calling C# from JavaScript in Unity3D</h2>
<p>My project is coded in JavaScript, because it is the most productive. But, even though calling the .net functions can be done from JavaScript, it is still a bit of a mystery.  Processing XML is most natural through C#. So now I will have a project that uses both C# and JavaScript.</p>
<h2>Fiddly bit of Unity3D magic</h2>
<p>The first thing you have to know is that the C# files have to be &#8220;built&#8221; first, so the class names can be known to the JavaScript compiler.  The Unity3D documentation mentions that files in the Plugins or Editor folders get built before JavaScript.</p>
<ol>
<li>Create a C# file, place it in the Plugins directory</li>
</ol>
<p>I&#8217;ll cover how to call the C# stuff from JavaScript later.</p>
<h2>Stuff you need to include for C# into Unity3D</h2>
<pre>using UnityEngine;
using System.Collections.Generic;
using System.Xml;
using System.Xml.Serialization;
using System.IO;
using System.Text;</pre>
<p>Unfortunately this (currently) causes a cascade of includes, and you will notice the size of your plugin BLOAT bigtime.</p>
<h2>Opening the file</h2>
<p>It turns out that you will want to open your save file one way for read, and another way for write.</p>
<p>Most of the howtos on the web show reading and writing an XML file by opening a Stream. I found it is MUCH easier to open a stream to write, and open a &#8220;TextReader&#8221; for read.</p>
<p>but first, your C# class needs to be defined:</p>
<pre>public class GameXML : MonoBehaviour
{
 string _FileLocation,_FileName;
 StreamWriter _writer;
 TextReader _reader;</pre>
<p>Then you can open the file. I created one function for read and another for write.</p>
<pre style="padding-left: 30px;">public void OpenSaveFileForWrite()
 {
 FileInfo t = new FileInfo(_FileLocation+"\\"+ _FileName);
 if(!t.Exists)
 {
 _writer = t.CreateText();
 }
 else
 {
 t.Delete();
 _writer = t.CreateText();
 }
 }

 public void OpenSaveFileForRead()
 {
 FileInfo t = new FileInfo(_FileLocation+"\\"+ _FileName);
 if(t.Exists)
 {
 _reader = t.OpenText();
 }
 else
 {
 Debug.Log("SaveFile NotFound");
 }
 }</pre>
<p>Yeah Ok, so I am not taking time to figure out indenting. You can check out formatted code in the included sourcecode.</p>
<h2>Using Unity3D to write XML, it really is just two function calls</h2>
<p>Well, you need a class that describes your games&#8217; save data, but once you have that, all you need to do is turn it into a single text string (Serialization) then write the file out. Also once the data has been serialized, it can be written out using debug routines or printf or whatever, it&#8217;s just a big text string.</p>
<pre>public void WriteGameDataAndTurnSequence(GameSaveGame SGDat )
 {
 string _data = SerializeGame(SGDat);
 Debug.Log("Game Sequence looks like:" + _data); 

 _writer.Write(_data);
 }</pre>
<p>That&#8217;s it&#8230;Well sort of. The GameSaveGame class needs a little esplination. The function above is called from JavaScript. You can pass a reference to a class back and forth between JavaScript and C#. As long as that class has all the data you need then your good. BUT the tricky bit is building a class structure that describes all the data you need. For most games you&#8217;ll have structured data and lists that need to be read and written. This can get a little messy.</p>
<h1>Templates, and sequences classes, Oh My</h1>
<p>Your Serialize function will serialize ONE instance of a class. So in order to read and write complex data, you need to create a russian doll set of class constructs. Lists of class elements held by a &#8220;top level&#8221; class.</p>
<p>Ok, this gets messy. I want to write out a list of turns. the .net serialization can serialize a templated List. This is powerful, it means I can write out a list of arbitrary structure.What you need to know is that you will likely want to define 3 classes:</p>
<p>That One class can contain a Sequence(and tons and tons of other stuff). The Sequence is a class that contains a list of class instances. Your sequence is essentially defined as  a List&lt;ListElementClass&gt;. The Class definition the Sequence, actually sequences is the class definition that holds your actual game data.</p>
<p>Confused? I sure was.</p>
<p>Bottom line, create 3 class definitions in your C# file.</p>
<ol>
<li>One &#8220;top level&#8221; class that defines the top level structure of your game</li>
<li>One (or more) &#8220;Sequence&#8221; classes that hold lists of data</li>
<li>One &#8220;List Element&#8221; class that describes the data in each list element</li>
</ol>
<h3>Top Level</h3>
<p>So my &#8220;top level&#8221; class just needs to really define two members, one for &#8220;settings&#8221; and one for the game&#8217;s turn list.</p>
<pre>public class GameSaveGame
{
 public GameData GameSettings;
 public GameSequence Turns;

 public GameSaveGame()
 {
 GameSettings = new GameData();
 Turns = new GameGameSequence();
 }

 public GameSaveGame(GameData pData, GameSequence pGS)
 {
 GameSettings = pData;
 Turns = pGS;
 }
}</pre>
<h3>Sequence</h3>
<p>my Sequence  GameSequence class so that it would be easy to add elements and stuff like that.</p>
<pre>public class GameSequence
{
 public List&lt;TurnData&gt; TurnList = new List&lt;TurnData&gt;();
 private int Sequence = 0; 

 public GameSequence () { }</pre>
<p>Thee are more convenience functions in the source code, but you get the Idea. Finally, the sequence is a sequence of &#8220;TurnData&#8221; structures. The &#8220;TurnData&#8221; class actually describes what a turn is.</p>
<h3>List Element</h3>
<p>Finally, the inner most nugget. A simple class that describes the data in each turn.</p>
<pre>public class TurnData
{
 public TurnData (){ Unconditional = false; SequenceNum = 0;}
 public TurnData ( int x, int y, int z, int PID, bool cond, int seq)
 {
 X = x;
 Y = y;
 Z = z;
 PlayerID = PID;
 Unconditional = cond;
 SequenceNum = seq;
 }</pre>
<h1>Reading XML with Unity3D</h1>
<p>Reading is just as easy as writing, but I recommend using a different type of stream to read and parse the XML. Extracting XML into game data is just two steps</p>
<ol>
<li>Open the file for read</li>
<li>De-serialize</li>
</ol>
<h2>Open the file for read&#8230;.</h2>
<pre>public void OpenSaveFileForRead()
 {
 FileInfo t = new FileInfo(_FileLocation+"\\"+ _FileName);
 if(t.Exists)
 {
 _reader = t.OpenText();
 }
 else
 {
 Debug.Log("SaveFile NotFound");
 }
 }</pre>
<h2>Reading XML with Unity3D: a little magic</h2>
<p>Here we actually &#8220;do something with XML&#8221;. XmlSerializer is the function that parses the formatted xml data and fills in all those classes you defined.</p>
<pre>GameSaveGame DeserializeGame(TextReader file)
 {
 XmlSerializer xdsg = new XmlSerializer(typeof(GameSaveGame));
 GameSaveGame newGame;
 newGame = (GameSaveGame)xdsg.Deserialize(_reader);
 _reader.Close();
 return newGame;
 }</pre>
<h1>within Unity3D Calling C# from JavaScript</h1>
<p>So, one last thing. How to call the C# functions from Javascript.</p>
<ol>
<li>Declare a variable using the name of the C# file (becomes the class name)</li>
<li>Get the instance of that class</li>
<li>Fill a data structure with your game save data</li>
<li>call your unity3D save/load function</li>
</ol>
<p>It looks something like this</p>
<pre>private var SaveLogic : RnWXML; // note I put my CSharp files in the Plugins directory
SaveLogic = GameRootClass.GetComponent(RnWXML);
var NewGame : SaveGame = SaveLogic.ReadSaveGame(); // the SaveGame class is defined in SaveLogic C#</pre>
<p>I hope this help someone. There are a lot of twiddly bits of magic that need to be strung together in order to read and write XML. What I have NOT done yet is read and write XML from a URL, which will mean opening up a stream reader and writer to an HTTP connection.</p>
<p>That will be interesting, facebook might be a good source of XML&#8230;.<br />
<!-- For more information on installing this code, visit:http://blog.evri.com/index.php/widget-wordpress/ --></p>
<div id="evri-widget-launcher-blogger" style="width:">
<a href="http://www.evri.com/" title="Get content recommendations from Evri">Content recommendations from <em>Evri </em></a>
</div>
<p><script charset="utf-8" src="http://www.evri.com:80/widget/javascripts/ZeroDestruction.1.js" type="text/javascript"></script><br />
<script charset="utf-8" type="text/javascript">
Evri.$(window).ready(function(){
Evri.API.Environment.articleInIframe = true;
Evri.Widget.ZeroDestruction.initWithURL(window.location.href).renderIn("#evri-widget-launcher-blogger");
});
</script></p>
<p>And if you missed the source code link at the beginning of this post: <a href="http://pennymo.com/wp-content/uploads/2009/11/RnWXML.cs">Read and Write XML from Unity</a></p>
<p><a href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F11%2F21%2Fxml-and-unity-3d%2F&amp;linkname=XML%20and%20Unity3D" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F11%2F21%2Fxml-and-unity-3d%2F&amp;linkname=XML%20and%20Unity3D" title="Delicious" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F11%2F21%2Fxml-and-unity-3d%2F&amp;linkname=XML%20and%20Unity3D" title="Reddit" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/reddit.png" width="16" height="16" alt="Reddit"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F11%2F21%2Fxml-and-unity-3d%2F&amp;linkname=XML%20and%20Unity3D" title="Twitter" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F11%2F21%2Fxml-and-unity-3d%2F&amp;linkname=XML%20and%20Unity3D" title="Slashdot" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F11%2F21%2Fxml-and-unity-3d%2F&amp;linkname=XML%20and%20Unity3D" title="Digg" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F11%2F21%2Fxml-and-unity-3d%2F&amp;linkname=XML%20and%20Unity3D" title="Facebook" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/blogger_post?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F11%2F21%2Fxml-and-unity-3d%2F&amp;linkname=XML%20and%20Unity3D" title="Blogger Post" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/blogger.png" width="16" height="16" alt="Blogger Post"/></a> <a href="http://www.addtoany.com/add_to/stumbleupon?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F11%2F21%2Fxml-and-unity-3d%2F&amp;linkname=XML%20and%20Unity3D" title="StumbleUpon" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/stumbleupon.png" width="16" height="16" alt="StumbleUpon"/></a> <a href="http://www.addtoany.com/add_to/yahoo_bookmarks?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F11%2F21%2Fxml-and-unity-3d%2F&amp;linkname=XML%20and%20Unity3D" title="Yahoo Bookmarks" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/yahoo.png" width="16" height="16" alt="Yahoo Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/myspace?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F11%2F21%2Fxml-and-unity-3d%2F&amp;linkname=XML%20and%20Unity3D" title="MySpace" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/myspace.png" width="16" height="16" alt="MySpace"/></a> <a href="http://www.addtoany.com/add_to/windows_live_favorites?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F11%2F21%2Fxml-and-unity-3d%2F&amp;linkname=XML%20and%20Unity3D" title="Windows Live Favorites" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/live.png" width="16" height="16" alt="Windows Live Favorites"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F11%2F21%2Fxml-and-unity-3d%2F&amp;linkname=XML%20and%20Unity3D"><img src="http://pennymo.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://pennymo.com/2009/11/21/xml-and-unity-3d/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>They grow up to be so big</title>
		<link>http://pennymo.com/2009/09/11/they-grow-up-to-be-so-big/</link>
		<comments>http://pennymo.com/2009/09/11/they-grow-up-to-be-so-big/#comments</comments>
		<pubDate>Sat, 12 Sep 2009 01:59:58 +0000</pubDate>
		<dc:creator>Noir</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Unity3D game development]]></category>

		<guid isPermaLink="false">http://pennymo.com/?p=157</guid>
		<description><![CDATA[Having objects just &#8220;appear&#8221; may be cool on stage, but in a game, it&#8217;s kinda lame. I needed my game objects to &#8220;grow&#8221; into place so they would catch the players eye.
How to do that in Unity3d? well the unity 3d web forums gave me a hint.
Bottom line is to use the Coroutine function yeild, [...]]]></description>
			<content:encoded><![CDATA[<p>Having objects just &#8220;appear&#8221; may be cool on stage, but in a game, it&#8217;s kinda lame. I needed my game objects to &#8220;grow&#8221; into place so they would catch the players eye.</p>
<p>How to do that in Unity3d? well the <a href="http://forum.unity3d.com/viewtopic.php?t=31892">unity 3d web forums</a> gave me a hint.</p>
<p>Bottom line is to use the Coroutine function yeild, and the Lerp function off of Vector3D.</p>
<p>what I do is instantiate an object from a prefab, then call a function called growObj.</p>
<p>Here is my GrowObj function (NOTE: I leave off the type of the first parameter so it could be called with any object that contains a .transform member)</p>
<pre>
/* groObj function, grow an object fom nothing  to some destination size over a period of time
    go is an object to grow
    toScale is the destination scale preferably the object's original local scale
*/
function growObj( go, toScale: Vector3)
{
	var i = 0.0;
	var rate = 1.0 / GrowTime;
	var StartScale = Vector3.zero;
	while ( i &lt;= 1.0)
	{
		i += Time.deltaTime * rate;
		go.transform.localScale = Vector3.Lerp(StartScale, toScale, i);
		yield;
	}
}</pre>
<div>And another trickey bit. If you are creating a bunch of objects in a loop, like I create a grid of objects, you can grow them one at a time by yielding to the groObj function, or you can have them all grow in at once simply by calling grow Obj;</div>
<div>example of having objects &#8220;grow&#8221; into the scene one at a time (prefab is a variable in your script, and you have dragged and dropped a prefab onto that script)</div>
<h3>Objects grow one at a time</h3>
<pre>	 for (var z = zStart ; z &lt; zEnd; z++ ){
	    var pos = Vector3 (0, 0, z) * 4;
	    var clone;
	    clone = Instantiate(prefab, pos, Quaternion.identity);
	    var DestScale : Vector3 = clone.transform.localScale; // capture the original size of the object
	    yield growObj(clone,DestScale);
	}</pre>
<h3>all objects appear and grow together</h3>
<pre>	 for (var z = zStart ; z &lt; zEnd; z++ ){
	    var pos = Vector3 (0, 0, z) * 4;
	    var clone;
	    clone = Instantiate(prefab, pos, Quaternion.identity);
	    var DestScale : Vector3 = clone.transform.localScale; // capture the original size of the object
	    growObj(clone,DestScale);
	}</pre>
<p>Yup the only difference in the two loops is the yield statement in front of growObj.</p>
<p>That&#8217;s all for now. I hope to make a &#8220;bubble&#8221; grow function some time, where the object will overshoot destination scale once, then undershoot the destination scale once</p>
<p><a href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F11%2Fthey-grow-up-to-be-so-big%2F&amp;linkname=They%20grow%20up%20to%20be%20so%20big" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F11%2Fthey-grow-up-to-be-so-big%2F&amp;linkname=They%20grow%20up%20to%20be%20so%20big" title="Delicious" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F11%2Fthey-grow-up-to-be-so-big%2F&amp;linkname=They%20grow%20up%20to%20be%20so%20big" title="Reddit" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/reddit.png" width="16" height="16" alt="Reddit"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F11%2Fthey-grow-up-to-be-so-big%2F&amp;linkname=They%20grow%20up%20to%20be%20so%20big" title="Twitter" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F11%2Fthey-grow-up-to-be-so-big%2F&amp;linkname=They%20grow%20up%20to%20be%20so%20big" title="Slashdot" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F11%2Fthey-grow-up-to-be-so-big%2F&amp;linkname=They%20grow%20up%20to%20be%20so%20big" title="Digg" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F11%2Fthey-grow-up-to-be-so-big%2F&amp;linkname=They%20grow%20up%20to%20be%20so%20big" title="Facebook" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/blogger_post?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F11%2Fthey-grow-up-to-be-so-big%2F&amp;linkname=They%20grow%20up%20to%20be%20so%20big" title="Blogger Post" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/blogger.png" width="16" height="16" alt="Blogger Post"/></a> <a href="http://www.addtoany.com/add_to/stumbleupon?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F11%2Fthey-grow-up-to-be-so-big%2F&amp;linkname=They%20grow%20up%20to%20be%20so%20big" title="StumbleUpon" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/stumbleupon.png" width="16" height="16" alt="StumbleUpon"/></a> <a href="http://www.addtoany.com/add_to/yahoo_bookmarks?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F11%2Fthey-grow-up-to-be-so-big%2F&amp;linkname=They%20grow%20up%20to%20be%20so%20big" title="Yahoo Bookmarks" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/yahoo.png" width="16" height="16" alt="Yahoo Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/myspace?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F11%2Fthey-grow-up-to-be-so-big%2F&amp;linkname=They%20grow%20up%20to%20be%20so%20big" title="MySpace" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/myspace.png" width="16" height="16" alt="MySpace"/></a> <a href="http://www.addtoany.com/add_to/windows_live_favorites?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F11%2Fthey-grow-up-to-be-so-big%2F&amp;linkname=They%20grow%20up%20to%20be%20so%20big" title="Windows Live Favorites" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/live.png" width="16" height="16" alt="Windows Live Favorites"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F11%2Fthey-grow-up-to-be-so-big%2F&amp;linkname=They%20grow%20up%20to%20be%20so%20big"><img src="http://pennymo.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://pennymo.com/2009/09/11/they-grow-up-to-be-so-big/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Prototype Milestone: Fully playable version</title>
		<link>http://pennymo.com/2009/09/08/prototype-milestone-fully-playable-version/</link>
		<comments>http://pennymo.com/2009/09/08/prototype-milestone-fully-playable-version/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 07:31:01 +0000</pubDate>
		<dc:creator>Noir</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[prtotype code]]></category>

		<guid isPermaLink="false">http://pennymo.com/?p=128</guid>
		<description><![CDATA[First fully functional free to play game developed using Unity 3D
it's like wood schulpting with a chainsaw, at night, in a dark room with only one window.]]></description>
			<content:encoded><![CDATA[<h1>IT WORKS!</h1>
<p>What we have here on tis page was developed in 14 evenings (non consecutive), 2 maby 3 hours a night. It is a simple turn based 3d board game, very similar to &#8220;Go&#8221; or &#8220;Reversi&#8221;. In this version you play against a computer AI (a really dumb one). I plan on posting a dev blog showing how the game progressed at the end of each evening, with code snips, but honestly I&#8217;d rather work on the last few milestones, like get save games, network play, and facebook integration all completed.</p>
<h2>Unity3D is a developers dream</h2>
<p>From the perspective of an experienced software engineer, this is one very powerful tool. The power comes from how producetive any individual can be, how &#8220;open&#8221; it is, in supporting lots of different media. Personally I have to give a big hats off to the scripting reference. Every function has at least one example. As an old unix hack who grew up on the original BSD &#8220;man&#8221; pages, code snippits are like O2, without them you can&#8217;t breathe, having lots of them makes you giddy and energized.</p>
<h2>But you can&#8217;t say enough about the community.</h2>
<p>Unity developers blog, they youtube, they twitter, they IRC. Specificlly Will Goldstone, and his video tutorials at <a href="www.learnmesilly.com">learnmesilly.com</a>.</p>
<h2>Give it a whirl:</h2>
<address>click the pic</address>
<p><a rel="shadowbox" href="http://pennymo.com/wp-content/uploads/2009/09/AqIS4x4x4.html" title="Aqueme In Space"><img class="alignnone size-full wp-image-107" title="Aqueme In Space" src="http://pennymo.com/wp-content/uploads/2009/09/AQIS.jpg" alt="Aqueme In Space prototype" /></a></p>
<p><strong>To Play</strong>:<br />
<strong>Goal</strong>: &#8220;AQueme-ulate&#8221; as many purple cubes as you can. While the red cube player does the same.</p>
<h3><strong>How</strong>:</h3>
<ul>
<li>You can &#8220;take&#8221; red cubes and turn then purple by &#8220;trapping&#8221; them between two of your purple cubes.</li>
<li>Simply click a green blob to turn cubes purple (and place a new purple cube in the grid).  The green blobs show you places where you can &#8220;trap&#8221; red cubes. Any red cubes trapped by that new purple cube, in any direction, will turn purple.</li>
<li>The red player (A really simple computer AI) will then take his turn. You will briefly see his moves, then it will be your turn again.</li>
<li>The game starts with 8 cubes placed in the center of a floating play field. Purple player gets to start.</li>
</ul>
<h3><strong>Notes</strong>:</h3>
<ul>
<li><em>This</em> play field is a 4 by 4 by 4 grid. (the playfield can be as big as I want, bigger boards are really boring)</li>
<li>The game is over when one of the players can no longer move.</li>
<li>You can rotate the grid using the A S D W keys, the arrow keys and by holding down the right mouse button</li>
<li>you can zoom in and out using the Z X keys, or the mouse wheel.</li>
<li>There is an extra thing you can do in the game, it is a bit of an easter egg. Take a good look above the game grid. No, the button on the table does not do a thing.</li>
<li>For some reason this particular build will crash google when ran chrome on Vista</li>
</ul>
<p><strong>Credits</strong>:</p>
<ul>
<li>All programming, original art, and production by Talon</li>
<li>Non original art thanks to the Unity3D dev team</li>
<li>Sound design: Dugan Dolbier</li>
</ul>
<h2 style="font-size: 1.5em;">But not all is roses</h2>
<p>One thing I will say, as much as I enjoy using Unity3d, <strong>geeze </strong>it needs a debugger. 90% of the content in this game is generated on the fly from 3 or 4 base objects. Placing the orbs for the user to click on uses a very rudimentary  variant of the A* algorithm in 3 space (did I say <em>Very</em> rudimentary). I blew 3 evenings (that&#8217;s just about 20% of dev time for you producers out there keeping track)  just in debugging, finding things that would have taken a few min with a normal debugger.</p>
<p>There are lots of tricks you can do in Unity to use the editor as a debugger, but there is still no call stack viewer, runtime object browser, breakpoint setter etc. etc. Unity 3D does have a debug class that lets you print out stuff and set breakpoints, but as I had to explaine to  my wife:</p>
<blockquote><p>it&#8217;s like wood schulpting,</p>
<p>only with a chainsaw,</p>
<p>at night,</p>
<p>in a dark room,</p>
<p>with only one window.</p>
<p>But you are wearing safety glasses,</p>
<p>and thick leather gloves</p>
<p>and a facemask, helmet,</p>
<p>nice comfie Dr. Martin&#8217;s workboots</p>
<p>but  the safety glasses are yellow tinted</p></blockquote>
<p>So Hopefully the mono team, and/or the unity team will provide us all with some good debugging tools (gotta run on windows and MAC not just linux), or let us use the free MS Dev Studio tools or something like that.</p>
<p>I feel OK complaining about a tool I&#8217;ve been using for free, because I&#8217;m sold. I&#8217;m buying my copy tomorrow morning, and Hey, I still have 15 days left on my trial.</p>
]]></content:encoded>
			<wfw:commentRss>http://pennymo.com/2009/09/08/prototype-milestone-fully-playable-version/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Putting Unity 3D content into WordPress: Futile attempts</title>
		<link>http://pennymo.com/2009/09/04/putting-unity-3d-content-into-wordpress-part-2/</link>
		<comments>http://pennymo.com/2009/09/04/putting-unity-3d-content-into-wordpress-part-2/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 20:08:46 +0000</pubDate>
		<dc:creator>Noir</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Production]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Unity3D game development]]></category>

		<guid isPermaLink="false">http://pennymo.com/?p=93</guid>
		<description><![CDATA[I like using Media Library in Word Press.
When you build a project in Unity3d, select the web build, and pick a seporate folder for unity to put the output file into.
In Wordpress, in Site Admin, click the media link, and upload new media, browse to directory you told unity to dump the files. Select and [...]]]></description>
			<content:encoded><![CDATA[<p>I like using Media Library in Word Press.</p>
<p>When you build a project in Unity3d, select the web build, and pick a seporate folder for unity to put the output file into.</p>
<p>In Wordpress, in Site Admin, click the media link, and upload new media, browse to directory you told unity to dump the files. Select and upload the &#8220;.unity3d&#8221; file</p>
<p>When you downloaded the Wordpress plugin from the Unity support site there is a readme file. That readme file contains examples on the tags you need to place in your blog posts.</p>
<p>here are the instructions from the readme.txt file that comes with the plugin</p>
<blockquote>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 114px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">=== Usage Instructions ===</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 114px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">With the plugin installed and activated as part of your WordPress blog you can start embedding Unity Web Player content in your posts. Embedding content within your post is done by using a simple tag structure:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 114px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">
<p><em>Please view the full post to see the Unity content.</em></p>
</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 114px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">The outer tag declares the existence of Unity Web Player content, the name/value pairs you provide then determine what content is displayed and how. There is only one required parameter, the src URL for the content to be displayed, all other parameters are optional and if not provided default values will be used instead.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 114px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">When adding any of the optional parameters please note that the order you list them is not important. Simply provide each parameter in name=&#8221;value&#8221; format, there should be no spaces before or after the equals sign and the value provided should always be wrapped in double-quotes (the &#8221; character). Additionally you need to separate each of the name/value pairs with an empty space. For example, here is a tag set where the src, height and width are all specified:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 114px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">
<p><em>Please view the full post to see the Unity content.</em></p>
</div>
<blockquote><p>=== Usage Instructions ===</p></blockquote>
<blockquote><p>With the plugin installed and activated as part of your WordPress blog you can start embedding Unity Web Player content in your posts. Embedding content within your post is done by using a simple tag structure:</p></blockquote>
<blockquote><p>\[WP_UnityObject src="http://www.yourdomain.com/yourfile.unity3d" \/\]</p></blockquote>
<blockquote><p>The outer tag declares the existence of Unity Web Player content, the name/value pairs you provide then determine what content is displayed and how. There is only one required parameter, the src URL for the content to be displayed, all other parameters are optional and if not provided default values will be used instead.</p></blockquote>
<blockquote><p>When adding any of the optional parameters please note that the order you list them is not important. Simply provide each parameter in name=&#8221;value&#8221; format, there should be no spaces before or after the equals sign and the value provided should always be wrapped in double-quotes (the &#8221; character). Additionally you need to separate each of the name/value pairs with an empty space.</p></blockquote>
<p>When you upload content into the WordPress Media library, it will give you the URL to your content.</p></blockquote>
<p>Soo&#8230;. let&#8217;s see how it works</p>
<p><em>Please view the full post to see the Unity content.</em></p>
<p></span></span></p>
<p><span style="font-family: 'Lucida Grande'; line-height: normal; font-size: 12px; white-space: pre; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"><span style="font-family: Georgia; white-space: normal; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; font-size: 13px; line-height: 19px;">Did it work? </span></span></p>
<p>Well, unfortunately more often than not you&#8217;ll get an error downloading the file.<br />
Reading the developer&#8217;s  <a href="http://blogs.unity3d.com/2009/05/12/the-unity-blogs-are-now-web-player-enabled/comment-page-1/#comment-4153">unity 3d blog</a> it seems some people have had success others may be having the same problem as here.</p>
<p><a href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F04%2Fputting-unity-3d-content-into-wordpress-part-2%2F&amp;linkname=Putting%20Unity%203D%20content%20into%20WordPress%3A%20Futile%20attempts" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F04%2Fputting-unity-3d-content-into-wordpress-part-2%2F&amp;linkname=Putting%20Unity%203D%20content%20into%20WordPress%3A%20Futile%20attempts" title="Delicious" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F04%2Fputting-unity-3d-content-into-wordpress-part-2%2F&amp;linkname=Putting%20Unity%203D%20content%20into%20WordPress%3A%20Futile%20attempts" title="Reddit" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/reddit.png" width="16" height="16" alt="Reddit"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F04%2Fputting-unity-3d-content-into-wordpress-part-2%2F&amp;linkname=Putting%20Unity%203D%20content%20into%20WordPress%3A%20Futile%20attempts" title="Twitter" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F04%2Fputting-unity-3d-content-into-wordpress-part-2%2F&amp;linkname=Putting%20Unity%203D%20content%20into%20WordPress%3A%20Futile%20attempts" title="Slashdot" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F04%2Fputting-unity-3d-content-into-wordpress-part-2%2F&amp;linkname=Putting%20Unity%203D%20content%20into%20WordPress%3A%20Futile%20attempts" title="Digg" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F04%2Fputting-unity-3d-content-into-wordpress-part-2%2F&amp;linkname=Putting%20Unity%203D%20content%20into%20WordPress%3A%20Futile%20attempts" title="Facebook" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/blogger_post?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F04%2Fputting-unity-3d-content-into-wordpress-part-2%2F&amp;linkname=Putting%20Unity%203D%20content%20into%20WordPress%3A%20Futile%20attempts" title="Blogger Post" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/blogger.png" width="16" height="16" alt="Blogger Post"/></a> <a href="http://www.addtoany.com/add_to/stumbleupon?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F04%2Fputting-unity-3d-content-into-wordpress-part-2%2F&amp;linkname=Putting%20Unity%203D%20content%20into%20WordPress%3A%20Futile%20attempts" title="StumbleUpon" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/stumbleupon.png" width="16" height="16" alt="StumbleUpon"/></a> <a href="http://www.addtoany.com/add_to/yahoo_bookmarks?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F04%2Fputting-unity-3d-content-into-wordpress-part-2%2F&amp;linkname=Putting%20Unity%203D%20content%20into%20WordPress%3A%20Futile%20attempts" title="Yahoo Bookmarks" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/yahoo.png" width="16" height="16" alt="Yahoo Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/myspace?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F04%2Fputting-unity-3d-content-into-wordpress-part-2%2F&amp;linkname=Putting%20Unity%203D%20content%20into%20WordPress%3A%20Futile%20attempts" title="MySpace" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/myspace.png" width="16" height="16" alt="MySpace"/></a> <a href="http://www.addtoany.com/add_to/windows_live_favorites?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F04%2Fputting-unity-3d-content-into-wordpress-part-2%2F&amp;linkname=Putting%20Unity%203D%20content%20into%20WordPress%3A%20Futile%20attempts" title="Windows Live Favorites" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/live.png" width="16" height="16" alt="Windows Live Favorites"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F04%2Fputting-unity-3d-content-into-wordpress-part-2%2F&amp;linkname=Putting%20Unity%203D%20content%20into%20WordPress%3A%20Futile%20attempts"><img src="http://pennymo.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://pennymo.com/2009/09/04/putting-unity-3d-content-into-wordpress-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Putting Unity3D Content into Wordpress blog, part 1</title>
		<link>http://pennymo.com/2009/09/04/putting-unity3d-content-into-wordpress-blog-part-1/</link>
		<comments>http://pennymo.com/2009/09/04/putting-unity3d-content-into-wordpress-blog-part-1/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 19:32:02 +0000</pubDate>
		<dc:creator>Noir</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Production]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Unity3D wordpress]]></category>

		<guid isPermaLink="false">http://pennymo.com/?p=89</guid>
		<description><![CDATA[Where to find, and how to install the Unity3d WordPress plugin]]></description>
			<content:encoded><![CDATA[<p>What would be really cool is if Word Press supported Unity3d as an embedded media type. If I had even a clue how to add imbeded media types into wordpress, I think I couldhack together support for Unity. But alas that is way too much work to contemplate on a friday.</p>
<p>Well, here is one way to do it. The Devs at Unity3D created a word press plugin.</p>
<p>Unfortunately you can&#8217;t just download the plugin and installit straight away. You have to unpack the file you get from <a href="http://unity3d.com/support/resources/assets/unity-wordpress-blog-plugin">Here</a>, then unzip that file locally, then re zip the WP_UnityObject directory.</p>
<p>Once you have done that, you need to upload and install the plugin into your wordpress siet. That&#8217;s fairly easy.</p>
<p>Enter WordPress site admin, like you normally would to add a new post.  Open the &#8220;Appearance&#8221; options if not already open, then click on the &#8220;Plugins&#8221; link</p>
<p>Click the &#8220;Add New&#8221; link that just appeared</p>
<p>now click on the &#8220;Upload&#8221; link that is at the top of the &#8220;Install Plugins&#8221; page that just loaded.</p>
<p>A new page is loaded, on that page will be a &#8220;Choose File&#8221; button. Click it</p>
<p>A windows file browser window will come up, go forth and find the zip file you created from above, click OK.</p>
<p>Then back at the &#8220;Install Plugin&#8221; click Install Now</p>
<p>You _should_ see a new page come up with happy messages about the plugin being installed.</p>
<p>Then click the &#8220;activate plugin&#8221; link</p>
<p>And there you are.</p>
<p>NOTE: if things get hozed up. you&#8217;ll need to go into the WordPress directory and delete the plugin directory and files, and start over.</p>
<p>For me, I&#8217;m hosting at GoDaddy. You log into to the hosting manager site. Got to file manager, browse around to where you installed word press, find the directory titled &#8220;wp_content&#8221; It will have the &#8220;plugins&#8221; directory in it.  If installing the plugin fails, you&#8217;ll need to go into the plugins directory and delete the &#8220;WP_Unityobject&#8221; directory, and everyting in it.</p>
<p>That is the Theory anyway. In part 2 we find out that it does not work&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://pennymo.com/2009/09/04/putting-unity3d-content-into-wordpress-blog-part-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>A venture into Unity 3D</title>
		<link>http://pennymo.com/2009/09/04/a-venture-into-unity-3d/</link>
		<comments>http://pennymo.com/2009/09/04/a-venture-into-unity-3d/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 18:37:21 +0000</pubDate>
		<dc:creator>Noir</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Production]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Unity3D game development]]></category>

		<guid isPermaLink="false">http://pennymo.com/?p=86</guid>
		<description><![CDATA[I have had Unity 3D for 15 days now. I have to say I am a complete convert.
Sure it has it&#8217;s bugs, and problems like any software, but they are few and far between.
One huge advantage Unity has is the sheer number of blogs and posts and information for developers. I have to say Will [...]]]></description>
			<content:encoded><![CDATA[<p>I have had Unity 3D for 15 days now. I have to say I am a complete convert.</p>
<p>Sure it has it&#8217;s bugs, and problems like any software, but they are few and far between.</p>
<p>One huge advantage Unity has is the sheer number of blogs and posts and information for developers. I have to say <a href="http://www.willgoldstone.com/">Will Goldstone&#8217;s</a> posts at <a href="http://www.learnmesilly.com/">LearnMeSilly.com</a> are some of the best &#8220;Zero to Hero&#8221; tutorials I have ever seen. He is writing a book about Unity I hope he is able to make a comfortable living doing what he has been doing. I know the unity community owes him a lot.</p>
<p>I was able to learn everything I needed to know about Unity in 3 days to start development on a game. What was amazing to me, is that I started this project with a sketch and a plan. and after 15 days. I had a playable game that acutally looked a lot like my sketch.</p>
<p>Part was because Unity is so easy to use, and in my mind that makes it powerful, but also in part due to the sheer amount of content that can be absorbed and used by unity.</p>
<p>But now I need to figure out how to get a unity build to display in a wordpress post. Stay Tuned</p>
<p><a href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F04%2Fa-venture-into-unity-3d%2F&amp;linkname=A%20venture%20into%20Unity%203D" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F04%2Fa-venture-into-unity-3d%2F&amp;linkname=A%20venture%20into%20Unity%203D" title="Delicious" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F04%2Fa-venture-into-unity-3d%2F&amp;linkname=A%20venture%20into%20Unity%203D" title="Reddit" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/reddit.png" width="16" height="16" alt="Reddit"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F04%2Fa-venture-into-unity-3d%2F&amp;linkname=A%20venture%20into%20Unity%203D" title="Twitter" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F04%2Fa-venture-into-unity-3d%2F&amp;linkname=A%20venture%20into%20Unity%203D" title="Slashdot" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F04%2Fa-venture-into-unity-3d%2F&amp;linkname=A%20venture%20into%20Unity%203D" title="Digg" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F04%2Fa-venture-into-unity-3d%2F&amp;linkname=A%20venture%20into%20Unity%203D" title="Facebook" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/blogger_post?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F04%2Fa-venture-into-unity-3d%2F&amp;linkname=A%20venture%20into%20Unity%203D" title="Blogger Post" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/blogger.png" width="16" height="16" alt="Blogger Post"/></a> <a href="http://www.addtoany.com/add_to/stumbleupon?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F04%2Fa-venture-into-unity-3d%2F&amp;linkname=A%20venture%20into%20Unity%203D" title="StumbleUpon" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/stumbleupon.png" width="16" height="16" alt="StumbleUpon"/></a> <a href="http://www.addtoany.com/add_to/yahoo_bookmarks?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F04%2Fa-venture-into-unity-3d%2F&amp;linkname=A%20venture%20into%20Unity%203D" title="Yahoo Bookmarks" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/yahoo.png" width="16" height="16" alt="Yahoo Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/myspace?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F04%2Fa-venture-into-unity-3d%2F&amp;linkname=A%20venture%20into%20Unity%203D" title="MySpace" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/myspace.png" width="16" height="16" alt="MySpace"/></a> <a href="http://www.addtoany.com/add_to/windows_live_favorites?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F04%2Fa-venture-into-unity-3d%2F&amp;linkname=A%20venture%20into%20Unity%203D" title="Windows Live Favorites" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/live.png" width="16" height="16" alt="Windows Live Favorites"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F09%2F04%2Fa-venture-into-unity-3d%2F&amp;linkname=A%20venture%20into%20Unity%203D"><img src="http://pennymo.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://pennymo.com/2009/09/04/a-venture-into-unity-3d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unity 3D DOES support Collada</title>
		<link>http://pennymo.com/2009/09/03/unity-3d-does-support-collada/</link>
		<comments>http://pennymo.com/2009/09/03/unity-3d-does-support-collada/#comments</comments>
		<pubDate>Thu, 03 Sep 2009 16:51:19 +0000</pubDate>
		<dc:creator>Noir</dc:creator>
				<category><![CDATA[Production]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Unity3d collada]]></category>

		<guid isPermaLink="false">http://pennymo.com/?p=83</guid>
		<description><![CDATA[You can use spore and sketch up models in your Unity 3D projects.]]></description>
			<content:encoded><![CDATA[<p>They don&#8217;t advertise it, and the importer is not well documented, but Unity 3d DOES support the import of collada models. So you can use google sketchup to make Unity 3d models.</p>
<p>Also, you can import SPORE models into Unity 3D. Well i should say _most_ spore models.</p>
]]></content:encoded>
			<wfw:commentRss>http://pennymo.com/2009/09/03/unity-3d-does-support-collada/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Importing Spore&#8217;s Collada models into Blender on a windows Vista machine</title>
		<link>http://pennymo.com/2009/08/17/importing-spores-collada-models-into-blender-on-a-windows-vista-machine/</link>
		<comments>http://pennymo.com/2009/08/17/importing-spores-collada-models-into-blender-on-a-windows-vista-machine/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 18:15:17 +0000</pubDate>
		<dc:creator>Noir</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Spore Collada blender unity 3d]]></category>

		<guid isPermaLink="false">http://pennymo.com/?p=37</guid>
		<description><![CDATA[Patch 5 of Spore allows you to export your spore creatures as collada models and Blender 2.49 has a collada importer, but out of the box, it does not quite work with the spore models.
Also, Vista puts files in strange places. I have been playing around with blender, and the spore models.
Here is a brief tutorial [...]]]></description>
			<content:encoded><![CDATA[<p>Patch 5 of Spore allows you to export your spore creatures as collada models and Blender 2.49 has a collada importer, but out of the box, it does not quite work with the spore models.</p>
<p>Also, Vista puts files in strange places. I have been playing around with blender, and the spore models.</p>
<p>Here is a brief tutorial on how to get spore models into blender 2.4</p>
<p>(NOTE: this should all change when blender 2.5 comes out)</p>
<p>First check out the spore forum, there are at least 2 threads that cover exporting spore creatures. Specificlly check out the <a title="instructions, import into blender" href="http://forum.spore.com/jforum/posts/list/38779.page">original instructions</a> for more background.</p>
<p>The method I used does not require the autodesk file converter. To do this I use an updated version of the collada 1.4 importer for blender posted by A spore forum user &#8221;caveman76&#8243;. Here is how I got it all to work.</p>
<p>First follow these instructions on <a href="http://forum.spore.com/jforum/posts/list/285/37155.page">replacing the blender collada importer</a>. I suggest just downloading the .py file</p>
<p>If you are trying to do this on a window vista machine, you might want to navagate to the following directory beforehand:</p>
<pre>C:\Users\&lt;USER&gt;\AppData\Roaming\Blender Foundation\Blender\.blender\scripts\bpymodules\colladaImEx</pre>
<p>&lt;USER&gt; _should_ just be the name of the user you are currently logged in as. In some cases it may be the name of the user blender was installed under, but you need to figure out where that directory is before starting off. Also I got this am running using python 2.6. I installed ti on my vista machine when I installed blender. Phython 2.6 got installed in c:\Python26</p>
<h2>Here goes:</h2>
<ul>
<li>If you have blender running, exit blender (all instances)</li>
<li>download caveman79s the fixed collada import python script (Eochaid1701&#8217;s instructions at the head of this thread).</li>
</ul>
<p>I navigated to</p>
<pre> C:\Users\&lt;USER&gt;\AppData\Roaming\Blender Foundation\Blender\.blender\scripts\bpymodules\colladaImEx</pre>
<ul>
<li>Then rename translator.py to translator.py.orig</li>
<li>Rrename (DON&#8221;T FORGET THIS) translator.pyc to translator.pyc.orig</li>
<li>Then copy the fixed translator.py you downloaded into</li>
<pre>C:\Users\&lt;USER&gt;\AppData\Roaming\Blender Foundation\Blender\.blender\scripts\bpymodules\colladaImEx</pre>
</ul>
<blockquote><p>(no I didn&#8217;t bother trying to compile the new translator.py by hand)</p></blockquote>
<blockquote><p>If you have&#8217;nt already exported a creature or two. Run spore, get into the creature creator.Export a creature(from the creature creator, shift+coltrol+C, then type &#8220;colladaexport&#8221;,accept the EULA, and you are done. There are lots of detailed instructions elsewhere on the net)</p></blockquote>
<ul>
<li>Next, Fire up blender</li>
<li>Select and delete the default cube (right click the cube, hit delete or x)</li>
<li>Import your model: file-&gt;import-&gt;COLLADA 1.4(.dae)</li>
<li>Pick a model to import: click the &#8220;&#8230;&#8221; button and navagate to the spore creatures directory.</li>
</ul>
<blockquote><p>for me, under vista, the spore models are</p>
<pre> C:\Users\&lt;USER&gt;\Documents\My Spore Creations\Creatures</pre>
</blockquote>
<ul>
<li>click the &#8220;import and close&#8221; button, be patient some models take a little bit to import.</li>
<li>You should now see your model in blender.</li>
<li>Switch your view to &#8220;textured&#8221;</li>
<li>right clicked on an &#8220;armature&#8221; (blender&#8217;s name for bones)</li>
<li>then blender let me switch to &#8220;Pose Mode&#8221;</li>
</ul>
<h2>and &#8220;poof&#8221; there you are..</h2>
<p>In blender 2.6 with this importer the bones are not attached to the mesh. The following is from the <a href="http://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro/Advanced_Tutorials/Advanced_Animation/Guided_tour/Mesh/Amodif">blender wiki book</a></p>
<blockquote><p>Blender now has a Modifier stack (Editbutton, F9KEY). As such, we should use it over existing methods to pair mesh and armature, as the modifier stack is optimised and simple to use. Note: You don&#8217;t need to parent the mesh to the Armature anymore. The only case you could need to do this would be animating the Armature object itself. Then the mesh should also follow the armature. In this case select mesh, then armature, and do CTRL-PKEY &#8211;&gt; Object.</p></blockquote>
<p>If you do not parent the bones and the mesh, watch out when selecting and moving the model, it&#8217;s real easy to accidentially move the model away  from the bones.</p>
<p>At this point you should be able to do all sorts of things with your spore model. To get a good render, or animations  you&#8217;ll need to add lights and do all sorts of things withyour model. There are lots of tutorials on how to use blender on the net.</p>
<p>Enjoy, I hope people find this useful</p>
<p><a href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F08%2F17%2Fimporting-spores-collada-models-into-blender-on-a-windows-vista-machine%2F&amp;linkname=Importing%20Spore%26%238217%3Bs%20Collada%20models%20into%20Blender%20on%20a%20windows%20Vista%20machine" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F08%2F17%2Fimporting-spores-collada-models-into-blender-on-a-windows-vista-machine%2F&amp;linkname=Importing%20Spore%26%238217%3Bs%20Collada%20models%20into%20Blender%20on%20a%20windows%20Vista%20machine" title="Delicious" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F08%2F17%2Fimporting-spores-collada-models-into-blender-on-a-windows-vista-machine%2F&amp;linkname=Importing%20Spore%26%238217%3Bs%20Collada%20models%20into%20Blender%20on%20a%20windows%20Vista%20machine" title="Reddit" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/reddit.png" width="16" height="16" alt="Reddit"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F08%2F17%2Fimporting-spores-collada-models-into-blender-on-a-windows-vista-machine%2F&amp;linkname=Importing%20Spore%26%238217%3Bs%20Collada%20models%20into%20Blender%20on%20a%20windows%20Vista%20machine" title="Twitter" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F08%2F17%2Fimporting-spores-collada-models-into-blender-on-a-windows-vista-machine%2F&amp;linkname=Importing%20Spore%26%238217%3Bs%20Collada%20models%20into%20Blender%20on%20a%20windows%20Vista%20machine" title="Slashdot" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F08%2F17%2Fimporting-spores-collada-models-into-blender-on-a-windows-vista-machine%2F&amp;linkname=Importing%20Spore%26%238217%3Bs%20Collada%20models%20into%20Blender%20on%20a%20windows%20Vista%20machine" title="Digg" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F08%2F17%2Fimporting-spores-collada-models-into-blender-on-a-windows-vista-machine%2F&amp;linkname=Importing%20Spore%26%238217%3Bs%20Collada%20models%20into%20Blender%20on%20a%20windows%20Vista%20machine" title="Facebook" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/blogger_post?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F08%2F17%2Fimporting-spores-collada-models-into-blender-on-a-windows-vista-machine%2F&amp;linkname=Importing%20Spore%26%238217%3Bs%20Collada%20models%20into%20Blender%20on%20a%20windows%20Vista%20machine" title="Blogger Post" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/blogger.png" width="16" height="16" alt="Blogger Post"/></a> <a href="http://www.addtoany.com/add_to/stumbleupon?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F08%2F17%2Fimporting-spores-collada-models-into-blender-on-a-windows-vista-machine%2F&amp;linkname=Importing%20Spore%26%238217%3Bs%20Collada%20models%20into%20Blender%20on%20a%20windows%20Vista%20machine" title="StumbleUpon" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/stumbleupon.png" width="16" height="16" alt="StumbleUpon"/></a> <a href="http://www.addtoany.com/add_to/yahoo_bookmarks?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F08%2F17%2Fimporting-spores-collada-models-into-blender-on-a-windows-vista-machine%2F&amp;linkname=Importing%20Spore%26%238217%3Bs%20Collada%20models%20into%20Blender%20on%20a%20windows%20Vista%20machine" title="Yahoo Bookmarks" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/yahoo.png" width="16" height="16" alt="Yahoo Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/myspace?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F08%2F17%2Fimporting-spores-collada-models-into-blender-on-a-windows-vista-machine%2F&amp;linkname=Importing%20Spore%26%238217%3Bs%20Collada%20models%20into%20Blender%20on%20a%20windows%20Vista%20machine" title="MySpace" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/myspace.png" width="16" height="16" alt="MySpace"/></a> <a href="http://www.addtoany.com/add_to/windows_live_favorites?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F08%2F17%2Fimporting-spores-collada-models-into-blender-on-a-windows-vista-machine%2F&amp;linkname=Importing%20Spore%26%238217%3Bs%20Collada%20models%20into%20Blender%20on%20a%20windows%20Vista%20machine" title="Windows Live Favorites" rel="nofollow" target="_blank"><img src="http://pennymo.com/wp-content/plugins/add-to-any/icons/live.png" width="16" height="16" alt="Windows Live Favorites"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fpennymo.com%2F2009%2F08%2F17%2Fimporting-spores-collada-models-into-blender-on-a-windows-vista-machine%2F&amp;linkname=Importing%20Spore%26%238217%3Bs%20Collada%20models%20into%20Blender%20on%20a%20windows%20Vista%20machine"><img src="http://pennymo.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://pennymo.com/2009/08/17/importing-spores-collada-models-into-blender-on-a-windows-vista-machine/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
