<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6036274817632121673</id><updated>2011-10-14T14:33:49.896-07:00</updated><category term='interface'/><category term='green'/><category term='Game Mechanics'/><category term='formats'/><category term='Ultima Online'/><category term='Progress Reports'/><category term='Diablo'/><category term='World of Warcraft'/><category term='programming'/><title type='text'>Massive Scrawlings</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://massivescrawlings.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://massivescrawlings.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>ZaneDubya</name><uri>http://www.blogger.com/profile/09035781298270389062</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>22</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6036274817632121673.post-1232433121195174798</id><published>2008-11-12T10:58:00.000-08:00</published><updated>2008-11-12T11:07:51.862-08:00</updated><title type='text'>Insurmountable bugs</title><content type='html'>Creating these chat bubbles has made it clear that my 3D rendering engine is imperfect: there are occasional pixel allignment issues that cause single horizontal lines of pixels to disappear. I am sure that this is an issue caused by my projection and identity matrixes, which I created by trial and error. Fixing these issues will require the work of someone who actually understands 3D projections. Since I'm the only person working on the engine at present... this is really frustrating. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Another issue that has cropped up is the issue of overdraw: currently, the engine renders about 3-4x more geometry than is visible. Solving this problem will require an understanding of 3D rendering and fustrum culling, which are, again, skills that I don't have.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I need to consider my options: do I want to continue working on the engine in my own haphazard way, or do I want to spend a week or more cleaning up and commenting all the code so that I can share the code with other developers.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Send me an e-mail if you understand 3D rendering, and would like to help.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6036274817632121673-1232433121195174798?l=massivescrawlings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://massivescrawlings.blogspot.com/feeds/1232433121195174798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6036274817632121673&amp;postID=1232433121195174798' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/1232433121195174798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/1232433121195174798'/><link rel='alternate' type='text/html' href='http://massivescrawlings.blogspot.com/2008/11/insurmountable-bugs.html' title='Insurmountable bugs'/><author><name>ZaneDubya</name><uri>http://www.blogger.com/profile/09035781298270389062</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6036274817632121673.post-5781937221415396428</id><published>2008-11-11T15:23:00.001-08:00</published><updated>2008-11-11T15:23:57.981-08:00</updated><title type='text'>The first NPC in the game...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_my9FloKBmos/SRoUBvK22HI/AAAAAAAAAH4/gejaR9pt8Zg/s1600-h/ue1111.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 184px; height: 160px;" src="http://1.bp.blogspot.com/_my9FloKBmos/SRoUBvK22HI/AAAAAAAAAH4/gejaR9pt8Zg/s200/ue1111.jpg" alt="" id="BLOGGER_PHOTO_ID_5267544734237644914" border="0" /&gt;&lt;/a&gt;... is an unfriendly skeleton.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6036274817632121673-5781937221415396428?l=massivescrawlings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://massivescrawlings.blogspot.com/feeds/5781937221415396428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6036274817632121673&amp;postID=5781937221415396428' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/5781937221415396428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/5781937221415396428'/><link rel='alternate' type='text/html' href='http://massivescrawlings.blogspot.com/2008/11/first-npc-in-game.html' title='The first NPC in the game...'/><author><name>ZaneDubya</name><uri>http://www.blogger.com/profile/09035781298270389062</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_my9FloKBmos/SRoUBvK22HI/AAAAAAAAAH4/gejaR9pt8Zg/s72-c/ue1111.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6036274817632121673.post-7906673875002201710</id><published>2008-11-09T17:28:00.000-08:00</published><updated>2008-11-10T07:21:37.388-08:00</updated><title type='text'>A week later...</title><content type='html'>I've made a lot of changes in the past week, but at the same time, I'm struggling to find time to work on this engine.&lt;div&gt;Everything in the game at this point is hueable. Skin, hair (players have hair - how cool is that?), every weapon or object.&lt;/div&gt;&lt;div&gt;Preliminary NPC code is complete. The next big step is to start scripting them to respond to player input.&lt;/div&gt;&lt;div&gt;But - bad news - I've started working on my Thesis, and I'm taking over as station manager of the campus radio station. So, as I wrote above, it's getting harder and harder to find time to work on a project that might end up just a waste of time.&lt;/div&gt;&lt;div&gt;I'd really like to open source this engine. Clean it up, give it to someone, watch it grow, watch it thrive.&lt;/div&gt;&lt;div&gt;But I'd have to clean it up first. Right now, the engine is something like the crawlspace under an old house: everything is dusty and musty and pipes lead every which way and some are empty and have been for months and others are only temporary but God help you if you try to remove them without fixing the jury-rigged solution that is in place in the wiring four feet in the other direction.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6036274817632121673-7906673875002201710?l=massivescrawlings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://massivescrawlings.blogspot.com/feeds/7906673875002201710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6036274817632121673&amp;postID=7906673875002201710' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/7906673875002201710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/7906673875002201710'/><link rel='alternate' type='text/html' href='http://massivescrawlings.blogspot.com/2008/11/week-later.html' title='A week later...'/><author><name>ZaneDubya</name><uri>http://www.blogger.com/profile/09035781298270389062</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6036274817632121673.post-1083070820936314106</id><published>2008-11-02T11:34:00.001-08:00</published><updated>2008-11-02T14:33:10.013-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Progress Reports'/><title type='text'>Progress report: 11/02</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_my9FloKBmos/SQ4pz_5AG6I/AAAAAAAAAHo/1Q7xLYfJRo4/s1600-h/ue-1002b.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 190px;" src="http://4.bp.blogspot.com/_my9FloKBmos/SQ4pz_5AG6I/AAAAAAAAAHo/1Q7xLYfJRo4/s200/ue-1002b.jpg" alt="" id="BLOGGER_PHOTO_ID_5264190987743271842" border="0" /&gt;&lt;/a&gt;I'm now able to color objects in the world. Here's an example of a Player in colorful gear (the player himself is still albino, but that should be fixable).&lt;br /&gt;&lt;br /&gt;I spent a good deal of time trying to fix overdraw today, but to no avail. I really do not have a good grasp on 3D concepts, which means that when I try to implement marginally complex concepts such as frustum culling, all I end up doing is wasting my time. I think I'm going to stick to working on the basic engine from here on out.&lt;br /&gt;&lt;br /&gt;This overdraw problem needs to be addressed in the future. Just not by me. I pulled back the camera just to see how much is being overdrawn. This is the result:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_my9FloKBmos/SQ4A9fqxI6I/AAAAAAAAAHg/DpiMMbq2VhA/s1600-h/ue-1002a.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: left; cursor: pointer; width: 200px; height: 156px;" src="http://3.bp.blogspot.com/_my9FloKBmos/SQ4A9fqxI6I/AAAAAAAAAHg/DpiMMbq2VhA/s200/ue-1002a.jpg" alt="" id="BLOGGER_PHOTO_ID_5264146070915589026" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6036274817632121673-1083070820936314106?l=massivescrawlings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://massivescrawlings.blogspot.com/feeds/1083070820936314106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6036274817632121673&amp;postID=1083070820936314106' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/1083070820936314106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/1083070820936314106'/><link rel='alternate' type='text/html' href='http://massivescrawlings.blogspot.com/2008/11/overdraw.html' title='Progress report: 11/02'/><author><name>ZaneDubya</name><uri>http://www.blogger.com/profile/09035781298270389062</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_my9FloKBmos/SQ4pz_5AG6I/AAAAAAAAAHo/1Q7xLYfJRo4/s72-c/ue-1002b.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6036274817632121673.post-3393684859481701962</id><published>2008-11-01T11:39:00.000-07:00</published><updated>2008-11-02T10:58:37.320-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Progress Reports'/><title type='text'>Progress report: 11/1</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_my9FloKBmos/SQiRx7VKWCI/AAAAAAAAAHY/xBhF7yOb25k/s1600-h/ue-1029a.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 160px;" src="http://4.bp.blogspot.com/_my9FloKBmos/SQiRx7VKWCI/AAAAAAAAAHY/xBhF7yOb25k/s200/ue-1029a.jpg" alt="" id="BLOGGER_PHOTO_ID_5262616451508492322" border="0" /&gt;&lt;/a&gt;I've been working harder on updating the game than updating this blog. I've made a lot of changes and additions.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;When a player walks inside a building, the roof disappears.&lt;/li&gt;&lt;li&gt;Units other than Players now exist in the world.&lt;/li&gt;&lt;li&gt;When you mouse over an item, or a NPC, or anything else, the mouse cursor changes to reflect a default interaction with that object.&lt;/li&gt;&lt;li&gt;Units (a class of objects that includes Players) now draw shadows beneath them, so it's obvious that they are standing on the ground.&lt;/li&gt;&lt;li&gt;When you are preparing to drop an item on the ground, an item 'shadow' appears in the world where the item will be dropped.&lt;/li&gt;&lt;/ul&gt;I also have done a ton of back-end programming, setting up flags for NPCs and mobiles, etc. I also nailed down mouse interaction so that it's absolutely perfect. Unfortunately, this has cost me a good deal of fps (I'm down to about 70% of what I reported earlier). My goal with this engine is to make it run at good speed on just about any computer out there, so this is a little disheartening.&lt;br /&gt;&lt;br /&gt;I have a cell-bio test coming up on Monday, so I need to study for that. Today, I'm only going to work on one thing: implementing a visibility culling test so I can reduce the number of objects I'm drawing per frame. I anticipate that this will net me a 1.5x speedup, or possibly more.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6036274817632121673-3393684859481701962?l=massivescrawlings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://massivescrawlings.blogspot.com/feeds/3393684859481701962/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6036274817632121673&amp;postID=3393684859481701962' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/3393684859481701962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/3393684859481701962'/><link rel='alternate' type='text/html' href='http://massivescrawlings.blogspot.com/2008/11/progress-report-111.html' title='Progress report: 11/1'/><author><name>ZaneDubya</name><uri>http://www.blogger.com/profile/09035781298270389062</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_my9FloKBmos/SQiRx7VKWCI/AAAAAAAAAHY/xBhF7yOb25k/s72-c/ue-1029a.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6036274817632121673.post-4937906858078487150</id><published>2008-10-28T14:13:00.000-07:00</published><updated>2008-10-28T16:49:03.192-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Progress Reports'/><title type='text'>Progress report: 10/28</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_my9FloKBmos/SQeWE510NXI/AAAAAAAAAHI/RREJppAESVw/s1600-h/ue-1028a.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 160px; height: 192px;" src="http://1.bp.blogspot.com/_my9FloKBmos/SQeWE510NXI/AAAAAAAAAHI/RREJppAESVw/s200/ue-1028a.jpg" alt="" id="BLOGGER_PHOTO_ID_5262339700595897714" border="0" /&gt;&lt;/a&gt;Player can now drop objects to the ground, and pick them up as well. Initially there were a few problems with updating the inventory GUI when items were picked up, and an occasional issue where a player would go to pick up one item but end up with something else altogether in their inventory, but I think I've fixed those bugs.&lt;br /&gt;&lt;br /&gt;I would like to be able to highlight objects that the mouse cursor is over. I'm not sure how I'll do that - whether it be by rendering that object brighter or darker when the mouse cursor is over it, or with an outline. Perhaps I'll boot up UO or D2 and see how they did it.&lt;br /&gt;&lt;br /&gt;I've also implemented a context-sensitive menu for the GUI. The menu doesn't have a real purpose yet, but I'll probably find a use for it in the future.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_my9FloKBmos/SQekmcE663I/AAAAAAAAAHQ/p-XFssd9FXw/s1600-h/ue-1028b.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: left; cursor: pointer; width: 200px; height: 157px;" src="http://1.bp.blogspot.com/_my9FloKBmos/SQekmcE663I/AAAAAAAAAHQ/p-XFssd9FXw/s200/ue-1028b.jpg" alt="" id="BLOGGER_PHOTO_ID_5262355669884529522" border="0" /&gt;&lt;/a&gt;My next milestone is to have NPCs in the world, be able to interact with them (as quest givers, merchants, or gossipers, for example), and then I'll be working on chatting in game.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;A few statistics for the project:&lt;/span&gt;&lt;br /&gt;Lines of code (client only): 9,225&lt;br /&gt;Size of the client: 496kb&lt;br /&gt;Disk space taken up by resources (textures, maps, databases): 113mb&lt;br /&gt;FPS*: 350&lt;br /&gt;&lt;br /&gt;* The client currently runs at 640x480. This benchmark is done in an area of moderate detail, with a few hundred objects on screen. My development machine is a 2ghz P4m, ATI mobility Radeon X300.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6036274817632121673-4937906858078487150?l=massivescrawlings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://massivescrawlings.blogspot.com/feeds/4937906858078487150/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6036274817632121673&amp;postID=4937906858078487150' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/4937906858078487150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/4937906858078487150'/><link rel='alternate' type='text/html' href='http://massivescrawlings.blogspot.com/2008/10/progress-report-1028.html' title='Progress report: 10/28'/><author><name>ZaneDubya</name><uri>http://www.blogger.com/profile/09035781298270389062</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_my9FloKBmos/SQeWE510NXI/AAAAAAAAAHI/RREJppAESVw/s72-c/ue-1028a.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6036274817632121673.post-5936935263189782203</id><published>2008-10-27T15:38:00.000-07:00</published><updated>2008-10-27T23:19:01.491-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Progress Reports'/><category scheme='http://www.blogger.com/atom/ns#' term='Ultima Online'/><title type='text'>Progress report: 10/27</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_my9FloKBmos/SQZYQ6E1MyI/AAAAAAAAAHA/5q2E8TI4GPM/s1600-h/ue-1027a.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 112px; height: 176px;" src="http://1.bp.blogspot.com/_my9FloKBmos/SQZYQ6E1MyI/AAAAAAAAAHA/5q2E8TI4GPM/s200/ue-1027a.jpg" alt="" id="BLOGGER_PHOTO_ID_5261990262119674658" border="0" /&gt;&lt;/a&gt;Yesterday, I fixed the offset values for equipment graphics. Player equipment now displays almost perfectly while moving. It's not absolutely, 100% perfect, but I think that the graphic artifacts that remain are the problem of Ultima Online's art. The only way to fix this problem will be to implement an original art set... but this isn't feasible at the moment.&lt;br /&gt;&lt;br /&gt;Today, I made it possible to have items display when dropped on the ground. Next, I'll work on picking up and dropping items.&lt;br /&gt;&lt;br /&gt;My next major milestone will be NPC interaction and chatting. Although there will be merchants, skill trainers, and innkeepers (among others), not all NPCs will have something important to do. Those that do not will either say a canned response (possibly with a variety of canned responses based on the player's deeds and appearance), or have a simple dialogue tree.&lt;br /&gt;&lt;br /&gt;I am excited about the personalized storytelling the supposedly will be a focus of Bioware's newly announced &lt;a href="http://pc.ign.com/objects/816/816935.html"&gt;Star Wars MMORPG&lt;/a&gt;. Here's a quote from the IGN article about the same:&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;blockquote&gt;The problem with most MMOs, even those that have large story arcs for their characters, is that they try to apply a single story to a wide range of classes and attitudes. In designing content that works equally well for both saints and scoundrels, many MMOs are left with rather generic stories where the only real roleplaying is whatever the player projects onto the action. &lt;p&gt;The solution is to give each class its own story arc. So your class story will start right away with you being introduced to your class, not based solely on the mechanics of gameplay, but in terms of what motivates your particular class and how you should start thinking about your opportunities.&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;This is really intriguing - I absolutely believe that the future of MMO's will be hinged on this personalized storyline business. Writers, after all, are cheap.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6036274817632121673-5936935263189782203?l=massivescrawlings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://massivescrawlings.blogspot.com/feeds/5936935263189782203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6036274817632121673&amp;postID=5936935263189782203' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/5936935263189782203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/5936935263189782203'/><link rel='alternate' type='text/html' href='http://massivescrawlings.blogspot.com/2008/10/progress-report-1027.html' title='Progress report: 10/27'/><author><name>ZaneDubya</name><uri>http://www.blogger.com/profile/09035781298270389062</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_my9FloKBmos/SQZYQ6E1MyI/AAAAAAAAAHA/5q2E8TI4GPM/s72-c/ue-1027a.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6036274817632121673.post-1654993461887812031</id><published>2008-10-21T00:00:00.000-07:00</published><updated>2008-10-21T00:00:16.409-07:00</updated><title type='text'>Success!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_my9FloKBmos/SP17fQZYNaI/AAAAAAAAAG4/_Y6rsJu06sQ/s1600-h/ue-1020c.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_my9FloKBmos/SP17fQZYNaI/AAAAAAAAAG4/_Y6rsJu06sQ/s200/ue-1020c.jpg" alt="" id="BLOGGER_PHOTO_ID_5259495716746180002" border="0" /&gt;&lt;/a&gt;As long as a player is standing still, all the equipment that player is wearing is rendered correctly. I'm still having some issues with equipment jumping around on the y-axis when a player moves, but I'm sure that I can sort that out with an hour of debugging.&lt;br /&gt;&lt;br /&gt;I also need to work out the correct draw order (hair sprites always draw above the head but below the hat. Depending on the angle, swords will draw in front of the body, or behind the body). This will probably take me an afternoon to perfect, and I think I'm going to put that on the backburner while I work on more exciting additions to the engine.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;So, what's next?&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;As soon as I get equipment rendering perfectly, I'm going to work on interacting with objects on the map: openable and lockable doors, clocks that tell the time, candles that a player can light, and chairs that the player can sit in. A player that owns an object will be able to pick that object up and place it again in the world. Objects with more than one action will display a Sims-like interaction menu. Some objects will have a preferences panel accessible from this interaction menu (for example, a clock will have the option to change its time zone). Not all objects will have a preferences panel.&lt;br /&gt;&lt;br /&gt;The clock in &lt;span style="font-style: italic;"&gt;this &lt;/span&gt;time zone just struck midnight. It's time to go to bed. G'night. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6036274817632121673-1654993461887812031?l=massivescrawlings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://massivescrawlings.blogspot.com/feeds/1654993461887812031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6036274817632121673&amp;postID=1654993461887812031' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/1654993461887812031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/1654993461887812031'/><link rel='alternate' type='text/html' href='http://massivescrawlings.blogspot.com/2008/10/success.html' title='Success!'/><author><name>ZaneDubya</name><uri>http://www.blogger.com/profile/09035781298270389062</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_my9FloKBmos/SP17fQZYNaI/AAAAAAAAAG4/_Y6rsJu06sQ/s72-c/ue-1020c.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6036274817632121673.post-4871415121252384683</id><published>2008-10-20T17:30:00.000-07:00</published><updated>2008-10-20T17:33:27.212-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Progress Reports'/><category scheme='http://www.blogger.com/atom/ns#' term='interface'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Progress report: 10/20</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_my9FloKBmos/SP0i0cmVwPI/AAAAAAAAAGg/VUXtWd6FfEQ/s1600-h/ue-1020a.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_my9FloKBmos/SP0i0cmVwPI/AAAAAAAAAGg/VUXtWd6FfEQ/s200/ue-1020a.jpg" alt="" id="BLOGGER_PHOTO_ID_5259398224264151282" border="0" /&gt;&lt;/a&gt;On Mondays, I have a three hour break between a course in hard science and a course in soft science. Today I spent that break working on essential item routines.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3:10&lt;/span&gt; Players can now pick up items from their inventory, and organize items in their backpack.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4:03&lt;/span&gt; Players can now equip items to equipment slots. I haven't yet tied in the equip slot restrictions from the new database (see yesterday's entry), so you can currently wear pants on your head. I am not entirely convinced that this 'bug' is not actually a 'feature' in disguise.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4:48&lt;/span&gt; Equip slot restrictions are now implemented. You can no longer wear a bag over your head.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_my9FloKBmos/SP0i5Yaw-GI/AAAAAAAAAGo/_V1El5JzheQ/s1600-h/ue-1020b.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_my9FloKBmos/SP0i5Yaw-GI/AAAAAAAAAGo/_V1El5JzheQ/s200/ue-1020b.jpg" alt="" id="BLOGGER_PHOTO_ID_5259398309041207394" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;5:26 &lt;/span&gt;Four minutes before my next class begins, I put it all together: Items that are equipped on a player's paper doll now show up on the player's character in the world!&lt;br /&gt;&lt;br /&gt;There's just one small problem: equipped item are being drawn &lt;span style="font-style: italic;"&gt;behind&lt;/span&gt; the base player graphic. So players are still naked, but at least they have a 'halo' of clothing around them.&lt;br /&gt;&lt;br /&gt;I have yet to implement bags as an extension of a player's inventory. The engine's framework absolutely supports bags, but since I've spent a good deal of time getting the basic inventory  working, I'd rather move on to something new. I'll implement bags when I'm at a point where I need additional storage space in my inventory to continue with development.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6036274817632121673-4871415121252384683?l=massivescrawlings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://massivescrawlings.blogspot.com/feeds/4871415121252384683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6036274817632121673&amp;postID=4871415121252384683' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/4871415121252384683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/4871415121252384683'/><link rel='alternate' type='text/html' href='http://massivescrawlings.blogspot.com/2008/10/progress-report-1021.html' title='Progress report: 10/20'/><author><name>ZaneDubya</name><uri>http://www.blogger.com/profile/09035781298270389062</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_my9FloKBmos/SP0i0cmVwPI/AAAAAAAAAGg/VUXtWd6FfEQ/s72-c/ue-1020a.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6036274817632121673.post-6438551229221532095</id><published>2008-10-19T02:22:00.000-07:00</published><updated>2008-10-20T16:54:53.612-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Progress Reports'/><category scheme='http://www.blogger.com/atom/ns#' term='interface'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Progress report: 10/19</title><content type='html'>When it comes to programming, my biggest stumbling block has always been &lt;span style="font-style: italic;"&gt;content&lt;/span&gt;. I am capable of designing formats for the databases, textures, and data that drive the engine. However, the thought of actually having to create that content - whether it is maps, graphics, or database entries - is absolutely unnerving.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_my9FloKBmos/SPxSLelpDUI/AAAAAAAAAGY/cnS6wTK7c7M/s1600-h/ue-1020.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_my9FloKBmos/SPxSLelpDUI/AAAAAAAAAGY/cnS6wTK7c7M/s200/ue-1020.jpg" alt="" id="BLOGGER_PHOTO_ID_5259168822004878658" border="0" /&gt;&lt;/a&gt;To a certain extent, I can manage this problem by temporarily 'borrowing' content from other games. Over the years I've borrowed content from Ultima Online, Diablo I &amp;amp; II, and World of Warcraft amongst others. But in order to work on the items, I had to create an entirely new database of item attributes.&lt;br /&gt;&lt;br /&gt;The database has about 100 different attributes for each item, and it took me 4 hours to design, implement, and fill the database with some placeholder data. I spent another hour coding an engine class that interfaced with the database and pulled data from it as necessary. However, I was unable to force myself to sit down and put this minimal database together until early this morning (again, unable to get back to sleep).&lt;br /&gt;&lt;br /&gt;Once I had the database together, things started coming together quickly: I programmed a simple inventory panel and had the items display as an icon. Next, I'll be working on equipping items.&lt;br /&gt;&lt;br /&gt;The art for this inventory/paper doll interface panel comes from the same old project as the statistics panel. Like everything else, it's just a placeholder.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6036274817632121673-6438551229221532095?l=massivescrawlings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://massivescrawlings.blogspot.com/feeds/6438551229221532095/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6036274817632121673&amp;postID=6438551229221532095' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/6438551229221532095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/6438551229221532095'/><link rel='alternate' type='text/html' href='http://massivescrawlings.blogspot.com/2008/10/progress-report-1020.html' title='Progress report: 10/19'/><author><name>ZaneDubya</name><uri>http://www.blogger.com/profile/09035781298270389062</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_my9FloKBmos/SPxSLelpDUI/AAAAAAAAAGY/cnS6wTK7c7M/s72-c/ue-1020.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6036274817632121673.post-8181583295473879471</id><published>2008-10-14T18:15:00.000-07:00</published><updated>2008-10-14T23:27:35.037-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Progress Reports'/><category scheme='http://www.blogger.com/atom/ns#' term='interface'/><title type='text'>Progress report: 10/14</title><content type='html'>In between bouts of studying for an upcoming microbiology exam, I coded up a prototype for a character statistics interface panel. The background graphic for this panel was made by a friend of mine, for a project that I abandoned a few years back. The graphic is not exactly what I'm looking for, but it's close enough for a placeholder.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_my9FloKBmos/SPVXKrwRWDI/AAAAAAAAAGI/8hbn54_wNKI/s1600-h/undead1014.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: right; cursor: pointer;" src="http://3.bp.blogspot.com/_my9FloKBmos/SPVXKrwRWDI/AAAAAAAAAGI/8hbn54_wNKI/s200/undead1014.jpg" alt="" id="BLOGGER_PHOTO_ID_5257203981080418354" border="0" /&gt;&lt;/a&gt;The font is Arial Narrow, and &lt;span style="font-style: italic;"&gt;ugly&lt;/span&gt;. But again, this is just a placeholder. I'm trying to quickly prototype out the user interface so I can get back to working on game mechanics. I'll un-ugly everything when I'm getting ready to release, if I ever get that far.&lt;br /&gt;&lt;br /&gt;I'm going to work on items next. Specifically, I want to be able to have items in my inventory, be able to drop and pick up items, equip items, and see my equipped items both in a paper doll interface and in the world. I would be working on that right now...&lt;br /&gt;&lt;br /&gt;... but really, I should be getting back to that microbiology exam.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6036274817632121673-8181583295473879471?l=massivescrawlings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://massivescrawlings.blogspot.com/feeds/8181583295473879471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6036274817632121673&amp;postID=8181583295473879471' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/8181583295473879471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/8181583295473879471'/><link rel='alternate' type='text/html' href='http://massivescrawlings.blogspot.com/2008/10/progress-report-1014.html' title='Progress report: 10/14'/><author><name>ZaneDubya</name><uri>http://www.blogger.com/profile/09035781298270389062</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_my9FloKBmos/SPVXKrwRWDI/AAAAAAAAAGI/8hbn54_wNKI/s72-c/undead1014.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6036274817632121673.post-7799689468952625913</id><published>2008-10-13T07:21:00.000-07:00</published><updated>2008-10-14T23:27:47.579-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Progress Reports'/><category scheme='http://www.blogger.com/atom/ns#' term='Diablo'/><category scheme='http://www.blogger.com/atom/ns#' term='World of Warcraft'/><category scheme='http://www.blogger.com/atom/ns#' term='Ultima Online'/><category scheme='http://www.blogger.com/atom/ns#' term='interface'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Progress report: 10/13</title><content type='html'>After spending an hour trying to get back to sleep, I gave up and made my way to the computer. Three hours later, I'd evicted a lot of bugs.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_my9FloKBmos/SPPEiK8FamI/AAAAAAAAAFY/JGoBmlt7obc/s1600-h/undead1013.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://3.bp.blogspot.com/_my9FloKBmos/SPPEiK8FamI/AAAAAAAAAFY/JGoBmlt7obc/s200/undead1013.jpg" alt="" id="BLOGGER_PHOTO_ID_5256761281402464866" border="0" /&gt;&lt;/a&gt;I also rewrote the movement and blocking routines. Movement is tile-based, but I drew inspiration from Diablo II with the way that actors can move between tiles: you have to be on a tile as long as you are stationary, but movement is freeform while moving between tiles. I changed the blocking routines and gave actors a very rudimentary pathfinding engine with a 1-tile radius. Thus actors no longer get 'stuck' on 1-tile blocking objects like trees, lampposts, and tombstones.&lt;br /&gt;&lt;br /&gt;I sped up the way that tiles from the map are loaded into memory, and the way that the tiles and objects are displayed. The engine is rediculously fast right now: I  can render a screen with a 1000 objects at 240fps. There is doubtless even more room for optimization, but I'm not going to spend any more time on drawing optimization until I get more of the engine written.&lt;br /&gt;&lt;br /&gt;Now I'm considering how best to implement the GUI. Since I'm very likely to rewrite this portion of the game multiple times, I think that the best tactic right now would be to quickly throw an interface together that features statistics and inventory, and then work on equipping items, picking items up from the ground and from containers and putting them down again.&lt;br /&gt;&lt;br /&gt;This last paragraph highlights one of my goals for the game: I'm not setting out to program a WoW clone. I want to program a game that has the 'living world' appeal that UO attempted to have. So items, monsters, player dwellings, and NPCs will be persistant. Drop a sword in a field, come back in fifteen minutes, and that sword will still be there (of course, there will have to be a limit to this, or the world will quickly become a garbage heap).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6036274817632121673-7799689468952625913?l=massivescrawlings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://massivescrawlings.blogspot.com/feeds/7799689468952625913/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6036274817632121673&amp;postID=7799689468952625913' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/7799689468952625913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/7799689468952625913'/><link rel='alternate' type='text/html' href='http://massivescrawlings.blogspot.com/2008/10/progress-report-1013.html' title='Progress report: 10/13'/><author><name>ZaneDubya</name><uri>http://www.blogger.com/profile/09035781298270389062</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_my9FloKBmos/SPPEiK8FamI/AAAAAAAAAFY/JGoBmlt7obc/s72-c/undead1013.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6036274817632121673.post-9110299663473917064</id><published>2008-10-12T17:18:00.000-07:00</published><updated>2008-10-14T22:16:27.299-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='green'/><title type='text'>Back in the saddle.</title><content type='html'>I pick up these projects and drop them on a regular basis. Now I'm back working on this mmorpg engine.&lt;br /&gt;&lt;br /&gt;I wrote an incredible mouse picker routine the other day. And I'm perfecting movement.&lt;br /&gt;&lt;br /&gt;The vistas and graphics are gorgeous, in their own 2D way. I'm going to start working on content for this world now, so that I have something new to play with.&lt;br /&gt;&lt;br /&gt;I figure there must be thousands of people throughout the united states working on projects like these. I imagine mine must be just another indie project... though I guess mine is farther along than many.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6036274817632121673-9110299663473917064?l=massivescrawlings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://massivescrawlings.blogspot.com/feeds/9110299663473917064/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6036274817632121673&amp;postID=9110299663473917064' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/9110299663473917064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/9110299663473917064'/><link rel='alternate' type='text/html' href='http://massivescrawlings.blogspot.com/2008/10/back-in-saddle.html' title='Back in the saddle.'/><author><name>ZaneDubya</name><uri>http://www.blogger.com/profile/09035781298270389062</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6036274817632121673.post-574548877966043743</id><published>2008-05-23T00:40:00.000-07:00</published><updated>2008-10-13T15:37:01.879-07:00</updated><title type='text'>From the bottom up.</title><content type='html'>I imagine that the world is made of lego bricks, organized into small blocks of content. Maps are divided into 'cells', cells into 'tiles', which can have objects and actors on them.&lt;br /&gt;&lt;br /&gt;A big part of determining how the client and server will interact is determining what is the smallest 'block' of content that can be displayed by the client, and what is the smallest object that can be manipulated by the server. I've put a ton of thought into this over the last day, and I've come to a final decision on this issue:&lt;br /&gt;&lt;br /&gt;The smallest object in the game will be a landscape tile, which can be either a single textured tile that a player can walk on, or a piece of an object that is only one tile wide. Examples of these tiles could be: a small patch of grass, a chair, or a large stone brick in a wall. Landscape tiles are represented by a single graphic texture, and data giving them values for sound, 3D 'height', and flags noting whether the tile blocks line of sight, light, walking, etc.&lt;br /&gt;&lt;br /&gt;Landscape tiles are combined into groups in two ways. For the textured ground that makes up much of the world, they are combined into 8x8 cells and these cells aggregated into entire maps. They can also be combined in a totally different fashion, into static objects. A static object could be a wall made up of fifty stone bricks, or again, a single chair (using just one landscape tile). Static objects are the smallest thing that a player can interact with or that the server can manipulate.&lt;br /&gt;&lt;br /&gt;You would think that this is a simple revelation, but it took me two hours of planning to figure all this out (along with the file formats for these two kinds of data).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6036274817632121673-574548877966043743?l=massivescrawlings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://massivescrawlings.blogspot.com/feeds/574548877966043743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6036274817632121673&amp;postID=574548877966043743' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/574548877966043743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/574548877966043743'/><link rel='alternate' type='text/html' href='http://massivescrawlings.blogspot.com/2008/05/from-bottom-up.html' title='From the bottom up.'/><author><name>ZaneDubya</name><uri>http://www.blogger.com/profile/09035781298270389062</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6036274817632121673.post-4824622404173641359</id><published>2008-05-21T01:19:00.000-07:00</published><updated>2008-10-14T22:38:10.537-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>The "Undead" engine</title><content type='html'>These past two days have seen me resurrect and transplant a lot of code from previous attempts at making an MMO engine into this current attempt. I'm tempted to call it the "undead" engine, just for kicks.&lt;br /&gt;&lt;br /&gt;There are the two big things I want to see done before I start work on anything more complicated:&lt;br /&gt;1. Intense clean-up of all code currently in the engine, on a line-by-line basis.&lt;br /&gt;-&gt; a. Renaming of all classes, routines, and variables to fit a consistant and clear coding style.&lt;br /&gt;-&gt; b. Add comments throughout to better explain each routine.&lt;br /&gt;2. Implementation of file formats&lt;br /&gt;-&gt; a. Either recoding existing content (graphics, mostly) to new format, or&lt;br /&gt;-&gt; b. Add code that allows engine to load both new resources and old resources as needed.&lt;br /&gt;&lt;br /&gt;Once these two things are done, I'll pick something fun to work on. I might even implement a mapmaker.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6036274817632121673-4824622404173641359?l=massivescrawlings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://massivescrawlings.blogspot.com/feeds/4824622404173641359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6036274817632121673&amp;postID=4824622404173641359' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/4824622404173641359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/4824622404173641359'/><link rel='alternate' type='text/html' href='http://massivescrawlings.blogspot.com/2008/05/undead-engine.html' title='The &quot;Undead&quot; engine'/><author><name>ZaneDubya</name><uri>http://www.blogger.com/profile/09035781298270389062</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6036274817632121673.post-5284190658210294279</id><published>2008-05-20T22:39:00.000-07:00</published><updated>2008-10-14T22:35:24.838-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='World of Warcraft'/><category scheme='http://www.blogger.com/atom/ns#' term='Ultima Online'/><category scheme='http://www.blogger.com/atom/ns#' term='Game Mechanics'/><title type='text'>The lay of the land</title><content type='html'>I'm going to take a moment and talk about MMOG theorycraft. Specifically, I'm going to talk about how different types of play are seperated by the game I'm working on, how players will be encouraged to play together, and how leveling will affect in the game world.&lt;br /&gt;&lt;br /&gt;There will be three different parts of the world: the PvE space, the Instance space, and the PvP space. Each space will feature a different take on the core ruleset, with regards to the effect of a character's level on that character's statistics.&lt;br /&gt;&lt;br /&gt;The PvE space will be the largest of the three. I imagine this space to be very similar to WoW, which has the best PvE experience that I know of. The world will be broken up into hand-built zones, with points of interest to explore, quests used to level up characters, and so on. Most character progression will happen in this space, as players level up and improve their gear. The PvE world will be soloable from level one to the level cap.&lt;br /&gt;&lt;br /&gt;Scattered throughout the PvE world will be Instance encounters. These will be dungeons, haunted castles, desecrated temples, and so on. The best equipment will be found in instances, but going dungeon-crawling will not be essential to playing through the PvE world.&lt;br /&gt;&lt;br /&gt;Each instance will have a reccomended level range. Characters below this level range will be underpowered relative to the instance, but characters above the level range will be temporarily de-leveled to match the instance's difficulty level. So a level 50 Knight in a level 20 instance will find that his hp, mana, skills, and equipment will be only somewhat better than they were back at level 20. Helpful players will still be able to walk newbies through dungeons, but these dungeon runs will never be tedious.&lt;br /&gt;&lt;br /&gt;Seperated from the PvE space, perhaps on another continent, will be the PvP world. Here you'll find faction based warfare in an open world. These factions will vie for territorial control via sieges and PvP combat. Characters in this world will be leveled up so that their base statistics are all the same, although higher level characters will have more skills and spells to use. Better equipment will also affect statistics in noticable ways. Generally, a level 50 Knight will be able to wipe the floor will a level 20 Knight (who has been leveled up so that his base statistics are the same as the first knight), but the level 50 Knight might not be able to challenge two leveled-up characters at once.&lt;br /&gt;&lt;br /&gt;If there are missions in the PvP world, they will be randomly generated based on the current faction situation, and will force interaction with other PvP factions. For example, a smuggler-class character could take a smuggling job from a city belonging to his home faction, sneak into enemy territory wearing a disguise to fool enemy players and NPC's, and then transfer goods in the enemy capitol. Some missions will accrue points for a player's faction, affecting the ability of their enemy to maintain a hold on a zone. Other missions will revolve around monetary rewards and component-gathering for crafting-class characters.&lt;br /&gt;&lt;br /&gt;I imagine that the world will grow over time, as (a) higher level tiers are introduced and (b) the player base expands. New continents of PvE zones will be introduced. However, the original PvP zone will remain small and constant.&lt;br /&gt;&lt;br /&gt;At the same time, new instances will be introduced. Gearing up for the highest-level instances will be a major endeavor, but most of the instances will be doable by pick-up-groups.&lt;br /&gt;&lt;br /&gt;I have to give a shout-out to Abaleino's blog, &lt;a href="http://www.cesspit.net/"&gt;The Cesspit&lt;/a&gt;. His blog is one of the more interesting when it comes to MMO theorycraft, and I've modeled the style and structure of the servers after his concepts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6036274817632121673-5284190658210294279?l=massivescrawlings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://massivescrawlings.blogspot.com/feeds/5284190658210294279/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6036274817632121673&amp;postID=5284190658210294279' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/5284190658210294279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/5284190658210294279'/><link rel='alternate' type='text/html' href='http://massivescrawlings.blogspot.com/2008/05/games-style-pvp-v-pve-leveling-world.html' title='The lay of the land'/><author><name>ZaneDubya</name><uri>http://www.blogger.com/profile/09035781298270389062</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6036274817632121673.post-5702308920679384655</id><published>2008-05-20T22:12:00.001-07:00</published><updated>2008-10-14T23:27:24.285-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Progress Reports'/><title type='text'>Progress Report 5/20</title><content type='html'>The game is now isometric. I'm using Ultima Online's old-style graphics for now. There are some clipping artifacts that weren't there in the rect-based sprite system.&lt;br /&gt;You can walk around in game. Movement is jerky and tile-based, but I'm hoping to have D2-style movement implemented sooner rather than later.&lt;br /&gt;&lt;br /&gt;There is no server yet. Right now, all I'm doing is working on the client. I'm thinking I'll 'emulate' a server backend on the clientside, which will allow me to simulate serverside databases without having to write network packet structure just yet. Since the server will be running the same scripting language as the client, I'll be able to simply move over the scripts with very little changes once I'm ready to take the game online.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6036274817632121673-5702308920679384655?l=massivescrawlings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://massivescrawlings.blogspot.com/feeds/5702308920679384655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6036274817632121673&amp;postID=5702308920679384655' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/5702308920679384655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/5702308920679384655'/><link rel='alternate' type='text/html' href='http://massivescrawlings.blogspot.com/2008/05/blog-post.html' title='Progress Report 5/20'/><author><name>ZaneDubya</name><uri>http://www.blogger.com/profile/09035781298270389062</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6036274817632121673.post-7681718165623651129</id><published>2008-05-08T23:17:00.000-07:00</published><updated>2008-10-15T09:38:39.568-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='formats'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Simplicity</title><content type='html'>I'd love to be able to craft a fully 3D mmo. I really would. But the fact of the matter is that making something as complicated as an online game is already far beyond my skills. Adding 3D stuff into the mix, then, is really pushing it. So I decided at the very beginning of this project that I would keep things as simple as possible. Everything in the game is 2D at this point: terrain, objects, mobiles, etc.&lt;br /&gt;&lt;br /&gt;Now, in the future, I'd love to see this game have 3D characters, at least. But that's for the future. Right now, everything is sprites. Similarly, in the file format for terrain I have set aside large chunks of data to be used for altitude - but right now these values are ignored.&lt;br /&gt;&lt;br /&gt;Today I finished up the file formats for objects in the game world. 'objects' in this sense means everything in the game that isn't a mobile or terrain: trees are objects, doors are objects, walls are objects, and so on. These things can have interactability (server side scripting only) but are stationary.&lt;br /&gt;&lt;br /&gt;I also finished a nice, simple file format for graphics: they can be 24bit RGB or 8bit paletted, as raw data or lle-encoded, and with or without an 8bit alpha map. I've pretty much covered all my bases with these three choices. I would have liked to include possibilities of texture compression, ala DXTn or JPEG, but I really don't have the time to learn cosine whatchamacallit transformations. So there.&lt;br /&gt;&lt;br /&gt;I touched up the text rendering engine today. Fonts look event better. Without screenshots, it's pointless to talk about it, really.&lt;br /&gt;&lt;br /&gt;I worked on the UI specification today. I've decided I'm going to make a UI system that is similar to wow's - but again, keeping it simple. All the scripts will be written in VBS.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6036274817632121673-7681718165623651129?l=massivescrawlings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://massivescrawlings.blogspot.com/feeds/7681718165623651129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6036274817632121673&amp;postID=7681718165623651129' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/7681718165623651129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/7681718165623651129'/><link rel='alternate' type='text/html' href='http://massivescrawlings.blogspot.com/2008/05/simplicity.html' title='Simplicity'/><author><name>ZaneDubya</name><uri>http://www.blogger.com/profile/09035781298270389062</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6036274817632121673.post-2006617977129631712</id><published>2008-05-01T23:27:00.001-07:00</published><updated>2008-05-01T23:29:10.197-07:00</updated><title type='text'>Gorgeous text is a neccesity.</title><content type='html'>In the interest of simplicity, I used to use purely bitmap fonts in my applications. But no longer: now my engine can use any ttf font out there. Dynamically loaded. Life is good.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6036274817632121673-2006617977129631712?l=massivescrawlings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://massivescrawlings.blogspot.com/feeds/2006617977129631712/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6036274817632121673&amp;postID=2006617977129631712' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/2006617977129631712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/2006617977129631712'/><link rel='alternate' type='text/html' href='http://massivescrawlings.blogspot.com/2008/05/gorgeous-text-is-neccesity.html' title='Gorgeous text is a neccesity.'/><author><name>ZaneDubya</name><uri>http://www.blogger.com/profile/09035781298270389062</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6036274817632121673.post-3626062350369898726</id><published>2008-04-23T20:15:00.000-07:00</published><updated>2008-10-15T09:38:14.395-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='formats'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>If geography is prose, maps are iconography.</title><content type='html'>The first thing to get set up for the game is a mapping system. I've designed a bunch of these for gba style games - I know how to set it up. This time, I take serious cues from Ultima Online's format, with other attributes heavily cribbed from World of Warcraft's format.&lt;br /&gt;&lt;br /&gt;Everything in the file is chunked. Originally, in every map I've ever done where the tiles are laid out in cells (Everything since my amazing Diablo 2 demo - maybe the coolest thing I've ever made - which was in 2005), the cells were the same size and had the exact same data. As my games progressed, I moved more and more data out of the maps until I had just a raw list of cells.&lt;br /&gt;&lt;br /&gt;But now I'm moving more data into the maps in chunks of data, where each chunk is big enough to hold enough data to stand out from its neighbors, but the neighbors don't have any problem being simple and therefore small in data size.&lt;br /&gt;&lt;br /&gt;I'm even consider moving unmovable objects into the map. I'm sure you can see why. Actually, this makes a lot of sense. Why bother being able to change it in external scripts? Actually, hell no, this makes it way easier to encrypt maps. Amazing.&lt;br /&gt;&lt;br /&gt;Well, I'm going to go update the map format. Wish me luck.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6036274817632121673-3626062350369898726?l=massivescrawlings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://massivescrawlings.blogspot.com/feeds/3626062350369898726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6036274817632121673&amp;postID=3626062350369898726' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/3626062350369898726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/3626062350369898726'/><link rel='alternate' type='text/html' href='http://massivescrawlings.blogspot.com/2008/04/if-geography-is-prose-maps-are.html' title='If geography is prose, maps are iconography.'/><author><name>ZaneDubya</name><uri>http://www.blogger.com/profile/09035781298270389062</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6036274817632121673.post-7262272454274942073</id><published>2008-04-23T19:57:00.000-07:00</published><updated>2008-10-15T09:37:51.444-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='green'/><title type='text'>Why do we play?</title><content type='html'>I play at my own game: I want to write an MMO. I've wanted to do just that since I played Diablo 1, maybe 2. I knew that it would be wonderful to have that kind of gameplay in a massive sphere. But that was 10 years ago - since then I've learned how to program in a language perhaps not suited to my ambitions, and I've never gotten any farther than rudimentary online packetry and similarly spare scripting. Glorious. But not what I came for.&lt;br /&gt;&lt;br /&gt;I've rewritten the graphics engine to be faster than ever. I'm implementing excellent map formats - maybe a tileengine will be in the near future. But for right now, I'm not very fscking far along.&lt;br /&gt;&lt;br /&gt;I'll probably forget about this space as soon as I post this, and never finish this project - like all of the ones that came before it. But maybe, just maybe, I'll see a little life here in the future. I hope you'll check back - give me a week or two to come around. I'll see the light.&lt;br /&gt;&lt;br /&gt;This is why I play massively multiplayer online games. Because I want to make one myself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6036274817632121673-7262272454274942073?l=massivescrawlings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://massivescrawlings.blogspot.com/feeds/7262272454274942073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6036274817632121673&amp;postID=7262272454274942073' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/7262272454274942073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/7262272454274942073'/><link rel='alternate' type='text/html' href='http://massivescrawlings.blogspot.com/2008/04/why-do-we-play.html' title='Why do we play?'/><author><name>ZaneDubya</name><uri>http://www.blogger.com/profile/09035781298270389062</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6036274817632121673.post-4305826162004307365</id><published>2007-11-02T18:50:00.000-07:00</published><updated>2008-11-02T18:51:33.281-08:00</updated><title type='text'></title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_my9FloKBmos/SQ5nBvrcniI/AAAAAAAAAHw/esBCQsAJ63o/s1600-h/ue-1002c.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 143px;" src="http://3.bp.blogspot.com/_my9FloKBmos/SQ5nBvrcniI/AAAAAAAAAHw/esBCQsAJ63o/s200/ue-1002c.jpg" alt="" id="BLOGGER_PHOTO_ID_5264258294118915618" border="0" /&gt;&lt;/a&gt;This is temporary...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6036274817632121673-4305826162004307365?l=massivescrawlings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://massivescrawlings.blogspot.com/feeds/4305826162004307365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6036274817632121673&amp;postID=4305826162004307365' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/4305826162004307365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6036274817632121673/posts/default/4305826162004307365'/><link rel='alternate' type='text/html' href='http://massivescrawlings.blogspot.com/2007/11/this-is-temporary.html' title=''/><author><name>ZaneDubya</name><uri>http://www.blogger.com/profile/09035781298270389062</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_my9FloKBmos/SQ5nBvrcniI/AAAAAAAAAHw/esBCQsAJ63o/s72-c/ue-1002c.jpg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
