<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-8174696933779683906</atom:id><lastBuildDate>Thu, 16 Feb 2012 09:01:11 +0000</lastBuildDate><category>XNA</category><title>XNADoomClone</title><description /><link>http://xnadoomclone.blogspot.com/</link><managingEditor>noreply@blogger.com (CoamIthra)</managingEditor><generator>Blogger</generator><openSearch:totalResults>23</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Xnadoomclone" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="xnadoomclone" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8174696933779683906.post-2880117111162490399</guid><pubDate>Sun, 27 Feb 2011 22:12:00 +0000</pubDate><atom:updated>2011-02-27T23:12:01.450+01:00</atom:updated><title>Cop-out post</title><description>Did a teensy bit of coding on that content manager stuff but it's not particularly fun and work's been kinda busy so not a lot happened the past few weeks.&lt;br /&gt;
&lt;br /&gt;
But here's a post anyway to show that I still care.&lt;br /&gt;
&lt;br /&gt;
So I was thinking about level design and how to put a unique spin on the game to keep it interesting and an idea popped into my head that I've got a hard time getting rid of.&lt;br /&gt;
&lt;br /&gt;
What if I made Gloom a FPS Roguelike?&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://lh4.googleusercontent.com/-bk6hVF8yI1g/TWrLvqtbTtI/AAAAAAAAAEo/xsaim_pnFHU/s1600/rogue-graphics.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="300" src="https://lh4.googleusercontent.com/-bk6hVF8yI1g/TWrLvqtbTtI/AAAAAAAAAEo/xsaim_pnFHU/s400/rogue-graphics.gif" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Rogue&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;Think about it! I think it would be pretty freakin' cool, and doable too!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8174696933779683906-2880117111162490399?l=xnadoomclone.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://xnadoomclone.blogspot.com/2011/02/cop-out-post.html</link><author>noreply@blogger.com (CoamIthra)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh4.googleusercontent.com/-bk6hVF8yI1g/TWrLvqtbTtI/AAAAAAAAAEo/xsaim_pnFHU/s72-c/rogue-graphics.gif" height="72" width="72" /><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8174696933779683906.post-4278168798575562619</guid><pubDate>Sun, 06 Feb 2011 17:33:00 +0000</pubDate><atom:updated>2011-02-06T18:33:52.170+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">XNA</category><title>Wrestling with the content manager</title><description>For the most part I think XNA is brilliantly designed. The Content Manager though... meh.&lt;br /&gt;
&lt;br /&gt;
To add a new type of content to a project you need to create a whole slew of classes across multiple projects with specific compiler instructions and links to each other. The whole thing is also very debug resistant - it's hard to put breakpoints in a content processor because it is run during compile time instead of runtime.&lt;br /&gt;
&lt;br /&gt;
I mean I guess it's not super hard, and the documentation is nice, but it's still a chore. Difficult to wrap my head around. I've avoided digging into the content manager so far&amp;nbsp;(even at work), but I'd like to do this right.&lt;br /&gt;
&lt;br /&gt;
The goal is to have a system where artists can just send me images with some extra information and the content manager automatically parses them into a spritesheet to use in the game.&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/__rqEtEJcmzI/TU7au-q5pSI/AAAAAAAAAEk/LGySjz9kO-4/s1600/SpriteRipper+2011-02-06.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/__rqEtEJcmzI/TU7au-q5pSI/AAAAAAAAAEk/LGySjz9kO-4/s400/SpriteRipper+2011-02-06.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;like this&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;div&gt;I can already do that, but it happens during the game itself (so the player is treated to a loading bar). With the content manager I could do it in advance and load the spritesheets directly into the game.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8174696933779683906-4278168798575562619?l=xnadoomclone.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://xnadoomclone.blogspot.com/2011/02/wrestling-with-content-manager.html</link><author>noreply@blogger.com (CoamIthra)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/__rqEtEJcmzI/TU7au-q5pSI/AAAAAAAAAEk/LGySjz9kO-4/s72-c/SpriteRipper+2011-02-06.png" height="72" width="72" /><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8174696933779683906.post-3053789702002212852</guid><pubDate>Sun, 23 Jan 2011 17:06:00 +0000</pubDate><atom:updated>2011-01-23T18:06:21.105+01:00</atom:updated><title>Sprites</title><description>&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/__rqEtEJcmzI/TTxbTsKL-2I/AAAAAAAAAEY/WXdno_C0lhk/s1600/SpriteRipper+2011-01-23.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="253" src="http://1.bp.blogspot.com/__rqEtEJcmzI/TTxbTsKL-2I/AAAAAAAAAEY/WXdno_C0lhk/s400/SpriteRipper+2011-01-23.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Where's Waldo?&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;I'll eventually need (someone) to make original sprites. For now though I will use the originals. This way I can get a headstart on programming the enemies. I think that if I get a nice playable demo to show to people it will be a lot easier to find interested artists.&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;You can find most of the Doom sprites online. Unfortunately they usually suck. They'll have no transparancy or the positioning information will be missing.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;So I had to man up and find out how to rip them out of the wad file. Luckily this isn't exactly treading new ground and the &lt;a href="http://doom.wikia.com/wiki/Entryway"&gt;Doom wiki&lt;/a&gt; was again able to help me out nicely.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;I've now got a whole list of sprites complete with the pixel offsets for properly aligning them. Next step is to compile those into fancy spreadsheets. We've got a nice tool for that at &lt;a href="http://www.youtube.com/watch?v=RMh6NA3rCNs"&gt;work&lt;/a&gt;, maybe I'll steal it ;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/__rqEtEJcmzI/TTxbUiYLpdI/AAAAAAAAAEc/dJl-soLDY0A/s1600/SpriteRipperOutput+2011-01-23.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="241" src="http://4.bp.blogspot.com/__rqEtEJcmzI/TTxbUiYLpdI/AAAAAAAAAEc/dJl-soLDY0A/s400/SpriteRipperOutput+2011-01-23.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Wanted: artist to draw +/- 1000 sprites for Doom clone :(&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8174696933779683906-3053789702002212852?l=xnadoomclone.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://xnadoomclone.blogspot.com/2011/01/sprites.html</link><author>noreply@blogger.com (CoamIthra)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/__rqEtEJcmzI/TTxbTsKL-2I/AAAAAAAAAEY/WXdno_C0lhk/s72-c/SpriteRipper+2011-01-23.png" height="72" width="72" /><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8174696933779683906.post-1244758274806844569</guid><pubDate>Mon, 10 Jan 2011 21:32:00 +0000</pubDate><atom:updated>2011-01-10T22:33:13.461+01:00</atom:updated><title>What's in a name?</title><description>Good news, everybody!&lt;br /&gt;
&lt;br /&gt;
As fellow L4D enthusiast and future level designer mr. Van Beuzekom has so conscientiously pointed out, the name Gloom has been used before. In fact, it is the monicker of a&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Gloom_(video_game)"&gt;1995 Amiga&lt;/a&gt; game, which also happens to be a Doom clone.&lt;br /&gt;
&lt;br /&gt;
Conflicting!&lt;br /&gt;
&lt;br /&gt;
However, having grown attached to the title, I decided to investigate. After a troubled journey through many dead links and wikipedia stubs, I ended up on the website of the &lt;a href="http://www.alphasoftware.org/history.html"&gt;developer of Gloom 3&lt;/a&gt;. So I asked if he was okay with me using the name. And here's what he said:&lt;br /&gt;
&lt;blockquote&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;i&gt;Im not sure if anyone would care really!&lt;/i&gt;&lt;/span&gt;&lt;/blockquote&gt;Hurrah, I guess!*&lt;br /&gt;
&lt;br /&gt;
So it is with great pride that I present the new logo for XNADoomClone:&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/__rqEtEJcmzI/TSt3_S47iSI/AAAAAAAAAEI/wvtPM1sDDwU/s1600/gloomlogomockup.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/__rqEtEJcmzI/TSt3_S47iSI/AAAAAAAAAEI/wvtPM1sDDwU/s1600/gloomlogomockup.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Beautiful, isn't it? I made it myself!&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;Thank you, thank you.&lt;br /&gt;
&lt;br /&gt;
I've also been sniffing around for some sprite and texture art. This investigation is ongoing.&lt;br /&gt;
&lt;br /&gt;
In other news: Christmas happened! And even though I haven't got nearly as much programming in as I had planned to, I did manage to squash some very annoying bugs. Observe:&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/__rqEtEJcmzI/TSt50KaVpOI/AAAAAAAAAEM/Lt9Xaq-yQrc/s1600/DoomClone+2011-01-10-1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="312" src="http://1.bp.blogspot.com/__rqEtEJcmzI/TSt50KaVpOI/AAAAAAAAAEM/Lt9Xaq-yQrc/s400/DoomClone+2011-01-10-1.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;prefix&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/__rqEtEJcmzI/TSt51cAgr_I/AAAAAAAAAEQ/Vci98KHB9NQ/s1600/DoomClone+2011-01-10-2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="312" src="http://1.bp.blogspot.com/__rqEtEJcmzI/TSt51cAgr_I/AAAAAAAAAEQ/Vci98KHB9NQ/s400/DoomClone+2011-01-10-2.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;postfix&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;Happy new year, everybody!&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;*Technically the then-publisher Guildhall UK has the rights, but since they seem long dead I feel due diligence has been exercised.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8174696933779683906-1244758274806844569?l=xnadoomclone.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://xnadoomclone.blogspot.com/2011/01/whats-in-name.html</link><author>noreply@blogger.com (CoamIthra)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/__rqEtEJcmzI/TSt3_S47iSI/AAAAAAAAAEI/wvtPM1sDDwU/s72-c/gloomlogomockup.png" height="72" width="72" /><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8174696933779683906.post-3808591050189596138</guid><pubDate>Mon, 06 Dec 2010 20:16:00 +0000</pubDate><atom:updated>2010-12-06T21:16:33.815+01:00</atom:updated><title>1000 Watt</title><description>&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/__rqEtEJcmzI/TP0-7vIbYzI/AAAAAAAAAEA/UeNwsrTkyH4/s1600/Cooler_Master_Silent_Pro_M_PSU_03.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/__rqEtEJcmzI/TP0-7vIbYzI/AAAAAAAAAEA/UeNwsrTkyH4/s400/Cooler_Master_Silent_Pro_M_PSU_03.jpg" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;That's right, bitches&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;After what can only be described as an&amp;nbsp;odyssey of disappointment and waste, the personal computer is finally operable (knock on wood). I have somehow been suckered into buying a power unit sporting twice the capacity that is required for my rig. The sound of fans desperately trying to keep this beast's temperature under control (a high pitched harmonic whiz&amp;nbsp;coupled with intermittent low hums) will surely please my flatmate.&lt;br /&gt;
&lt;br /&gt;
Absolutely no progress has been made coding-wise, but luckily my musical friend mr. Brannan has not been so apathetic. Feast your ears on these!&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Peter Brannan - Something Twisted&lt;/b&gt;&lt;br /&gt;
&lt;embed height="27" src="http://www.google.com/reader/ui/3523697345-audio-player.swf?audioUrl=http://coamithra.lamaars.nl/gloom/Something%20Twisted.mp3" type="application/x-shockwave-flash" width="320" wmode="transparent"&gt;&lt;/embed&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Peter Brannan - Detonator&lt;/b&gt;&lt;br /&gt;
&lt;embed height="27" src="http://www.google.com/reader/ui/3523697345-audio-player.swf?audioUrl=http://coamithra.lamaars.nl/gloom/detonator.mp3" type="application/x-shockwave-flash" width="320" wmode="transparent"&gt;&lt;/embed&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Peter Brannan - Speedy (All)&lt;/b&gt;&lt;br /&gt;
&lt;embed height="27" src="http://www.google.com/reader/ui/3523697345-audio-player.swf?audioUrl=http://coamithra.lamaars.nl/gloom/speedy_all.mp3" type="application/x-shockwave-flash" width="320" wmode="transparent"&gt;&lt;/embed&gt;&lt;br /&gt;
&lt;br /&gt;
Will this lull have destroyed all motivation, thus leading to the eventual downfall of the entire project or will regular updates continue as before? STAY TUNED!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8174696933779683906-3808591050189596138?l=xnadoomclone.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://xnadoomclone.blogspot.com/2010/12/1000-watt.html</link><author>noreply@blogger.com (CoamIthra)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/__rqEtEJcmzI/TP0-7vIbYzI/AAAAAAAAAEA/UeNwsrTkyH4/s72-c/Cooler_Master_Silent_Pro_M_PSU_03.jpg" height="72" width="72" /><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8174696933779683906.post-7609242584575579867</guid><pubDate>Tue, 09 Nov 2010 09:04:00 +0000</pubDate><atom:updated>2010-11-09T10:04:55.861+01:00</atom:updated><title>In lieu of an actual update</title><description>I liked this&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/__rqEtEJcmzI/TNkOSQVVjHI/AAAAAAAAAD4/lN5PkVWJbkc/s1600/BITmX.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" img="" src="http://2.bp.blogspot.com/__rqEtEJcmzI/TNkOSQVVjHI/AAAAAAAAAD4/lN5PkVWJbkc/s400/BITmX.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Meanwhile, technical difficulties are still in full effect.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8174696933779683906-7609242584575579867?l=xnadoomclone.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://xnadoomclone.blogspot.com/2010/11/in-lieu-of-actual-update.html</link><author>noreply@blogger.com (CoamIthra)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/__rqEtEJcmzI/TNkOSQVVjHI/AAAAAAAAAD4/lN5PkVWJbkc/s72-c/BITmX.jpg" height="72" width="72" /><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8174696933779683906.post-7832002531763896405</guid><pubDate>Sun, 31 Oct 2010 14:53:00 +0000</pubDate><atom:updated>2010-10-31T15:53:58.519+01:00</atom:updated><title>PC Borked</title><description>Development on Gloom has been temporarily put on hold as my PC is broken and will reside in the shop for a few weeks.&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/__rqEtEJcmzI/TM2CmSUwqRI/AAAAAAAAAD0/VaQozMjSeug/s1600/2010-10-24_15-45-18_812_Rotterdam.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="223" src="http://1.bp.blogspot.com/__rqEtEJcmzI/TM2CmSUwqRI/AAAAAAAAAD0/VaQozMjSeug/s400/2010-10-24_15-45-18_812_Rotterdam.jpg" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Also eating my free time: Codeglue's moved to a new office!&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;See you in November!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8174696933779683906-7832002531763896405?l=xnadoomclone.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://xnadoomclone.blogspot.com/2010/10/pc-borked.html</link><author>noreply@blogger.com (CoamIthra)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/__rqEtEJcmzI/TM2CmSUwqRI/AAAAAAAAAD0/VaQozMjSeug/s72-c/2010-10-24_15-45-18_812_Rotterdam.jpg" height="72" width="72" /><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8174696933779683906.post-9195395094800443377</guid><pubDate>Sun, 17 Oct 2010 22:09:00 +0000</pubDate><atom:updated>2010-10-18T00:09:58.079+02:00</atom:updated><title>Collision Detection</title><description>Small update for this weekend.&lt;br /&gt;
&lt;br /&gt;
I've put in some collision detection and have made a video of this. It also shows the new lighting, the WAD level loading and a bunch of glitches that still need to be ironed out.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;object height="405" width="500"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vhCkwqzr2rs?fs=1&amp;amp;hl=nl_NL&amp;amp;color1=0x5d1719&amp;amp;color2=0xcd311b&amp;amp;border=1"&gt;&lt;/p&gt;&lt;p&gt;&lt;/param&gt;&lt;/p&gt;&lt;p&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/p&gt;&lt;p&gt;&lt;/param&gt;&lt;/p&gt;&lt;p&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/p&gt;&lt;p&gt;&lt;/param&gt;&lt;/p&gt;&lt;p&gt;&lt;embed src="http://www.youtube.com/v/TKB0oeaD26I?fs=1&amp;amp;hl=nl_NL&amp;amp;color1=0x5d1719&amp;amp;color2=0xcd311b&amp;amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="405"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8174696933779683906-9195395094800443377?l=xnadoomclone.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://xnadoomclone.blogspot.com/2010/10/collision-detection.html</link><author>noreply@blogger.com (CoamIthra)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8174696933779683906.post-6396204731697798672</guid><pubDate>Sat, 09 Oct 2010 22:28:00 +0000</pubDate><atom:updated>2010-10-10T00:28:23.663+02:00</atom:updated><title>Lights</title><description>An important part of Doom is the lighting. Even without dynamic shadow volumes or per-pixel illumination, Doom's lighting gave the game tons of atmosphere.&lt;br /&gt;
&lt;br /&gt;
In my last post I called my lighting scheme "a bit flat", figuring that a few tweaks here and there would be enough to fix it up. Let's look at that screenshot again:&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/__rqEtEJcmzI/TKh_zI4esGI/AAAAAAAAADo/79uCr4oXd0c/s1600/DoomClone+2010-10-01.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="250" src="http://1.bp.blogspot.com/__rqEtEJcmzI/TKh_zI4esGI/AAAAAAAAADo/79uCr4oXd0c/s320/DoomClone+2010-10-01.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;map01 in Gloom&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div&gt;Not bad. But compare this to the same view in Doom:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/__rqEtEJcmzI/TLDcdfffmCI/AAAAAAAAADs/5b6BgEeSb-U/s1600/map01.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/__rqEtEJcmzI/TLDcdfffmCI/AAAAAAAAADs/5b6BgEeSb-U/s320/map01.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;map01 in Doom&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;Yikes! Just look at that contrast! You can really see the light growing progressively brighter on each step. In my game the difference is hardly&amp;nbsp;noticeable&amp;nbsp;(you can see it on the ceiling if you look closely).&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Unfortunately, while The Internet is more than happy to divulge exactly how the renderer in Doom works, the lighting algorithm seems to be a lot less exciting. So I went on an investigatory adventure past various blogs, lots of in-game testing, map editing, shader writing and even the Doom source code itself.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Now, while I'm still not completely sure how things work, or what&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;*dest = dc_colormap[dc_source[(frac&amp;gt;&amp;gt;FRACBITS)&amp;amp;127]] &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;means exactly, this is what I've gathered:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Each sector in Doom has a brightness value between 0 and 1. A brightness of 0 means it's black and a brightness of 1 means it's fully lit.&lt;/li&gt;
&lt;li&gt;&lt;i&gt;Actually&lt;/i&gt;, each sector has a brightness value between 0 and 2! Anything with a brightness of 1 or more is completely lit.&lt;/li&gt;
&lt;li&gt;If you move away from a sector, the brightness gradually decreases. The maximum distance modifies brightness by -1.&lt;/li&gt;
&lt;li&gt;So: sectors with a starting brightness value of more than 1 will never go completely dark, no matter how far you move away from them. A sector with an initial brightness of 2 &lt;i&gt;won't ever go dark at all!&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;How does this look in-game, you ask? Well, have a look:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/__rqEtEJcmzI/TLDn5sUMBzI/AAAAAAAAADw/hxbLKaThot4/s1600/map01betterlights.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="250" src="http://4.bp.blogspot.com/__rqEtEJcmzI/TLDn5sUMBzI/AAAAAAAAADw/hxbLKaThot4/s320/map01betterlights.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;nailed it!&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;Implementing this system meant that I had to chuck BasicEffect and write my own vertex and pixel shaders. Luckily XNA is great at providing templates and integrating shaders into the logic, so it wasn't as difficult as I had feared. Plus, in the end, we all learned something. And that's all that matters, right?&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8174696933779683906-6396204731697798672?l=xnadoomclone.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://xnadoomclone.blogspot.com/2010/10/lights.html</link><author>noreply@blogger.com (CoamIthra)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/__rqEtEJcmzI/TKh_zI4esGI/AAAAAAAAADo/79uCr4oXd0c/s72-c/DoomClone+2010-10-01.png" height="72" width="72" /><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8174696933779683906.post-5148498750158540159</guid><pubDate>Sun, 03 Oct 2010 14:02:00 +0000</pubDate><atom:updated>2010-10-03T16:02:33.940+02:00</atom:updated><title>Where is All the Data?</title><description>In my previous post I showed how the level editor can load &lt;a href="http://doom.wikia.com/wiki/Vertex"&gt;vertices &lt;/a&gt;and &lt;a href="http://doom.wikia.com/wiki/Lines"&gt;edges &lt;/a&gt;from the original Doom wadfiles. I´ve since completed the holy trinity of Doom map data by loading &lt;a href="http://doom.wikia.com/wiki/Sector"&gt;sectors&lt;/a&gt;!&lt;br /&gt;
&lt;br /&gt;
Sectors have proven to be the single most difficult thing in this game so far. I´ve already discussed my troubles dividing them into triangles, and that remains a problem area. To get the Doom levels working properly I had to expand my algorithm to account for sectors inside of other sectors, which included creating fake extra lines to connect them and treat them as a single polygon.&lt;br /&gt;
&lt;br /&gt;
I´ll probably do a separate blog post to describe the whole process of creating triangles out of sectors after (if?) I fix some last niggling issues. I also read an article by Carmack about how he did it for the iPhone port of Doom, and he just used a 3rd party library. What a hack!*&lt;br /&gt;
&lt;br /&gt;
Small issues aside, the level loading already works pretty well:&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/__rqEtEJcmzI/TKh_wE7kWwI/AAAAAAAAADk/8SDgSYSV-vE/s1600/DoomClone+2010-09-28.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="312" src="http://3.bp.blogspot.com/__rqEtEJcmzI/TKh_wE7kWwI/AAAAAAAAADk/8SDgSYSV-vE/s400/DoomClone+2010-09-28.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Top left: Gloom, Bottom right: Doom&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div&gt;What brightened my day when I tried this is that my assumptions turned out to be correct: the whole level renders super smooth, without any optimizations at all! I just brute force draw every wall and floor, regardless of whether it´s actually visible or not, and the game runs without a hitch.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;After all that I had to go all the way, so I spent some time fixing the lighting in my engine, found a set of original Doom textures online (they´re also in the wad file but stored in a weird way) and added those, as well as lighting information, to the level loader.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;I think the result is quite nice:&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/__rqEtEJcmzI/TKh_zI4esGI/AAAAAAAAADo/79uCr4oXd0c/s1600/DoomClone+2010-10-01.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="312" src="http://1.bp.blogspot.com/__rqEtEJcmzI/TKh_zI4esGI/AAAAAAAAADo/79uCr4oXd0c/s400/DoomClone+2010-10-01.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;MAP01: ENTRYWAY&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;It still needs a little bit of tweaking (the lighting is a bit flat, the textures aren´t offset correctly and there´s still some sector problems).&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;At this point, though, I think it would be a lot more interesting to get some collision and physics in there so we can actually walk around in this thing!&lt;br /&gt;
&lt;div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;*Carmack is not a hack&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8174696933779683906-5148498750158540159?l=xnadoomclone.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://xnadoomclone.blogspot.com/2010/10/where-is-all-data.html</link><author>noreply@blogger.com (CoamIthra)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/__rqEtEJcmzI/TKh_wE7kWwI/AAAAAAAAADk/8SDgSYSV-vE/s72-c/DoomClone+2010-09-28.png" height="72" width="72" /><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8174696933779683906.post-640574770801888613</guid><pubDate>Sat, 25 Sep 2010 20:57:00 +0000</pubDate><atom:updated>2010-09-25T22:57:34.322+02:00</atom:updated><title>Connect the dots</title><description>Can you guess what this is?&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/__rqEtEJcmzI/TJ5eEifsH1I/AAAAAAAAADY/o1tycxkf8Ig/s1600/DoomClone+2010-09-25-1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="382" src="http://4.bp.blogspot.com/__rqEtEJcmzI/TJ5eEifsH1I/AAAAAAAAADY/o1tycxkf8Ig/s400/DoomClone+2010-09-25-1.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;dots&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;How about now?&lt;div&gt;&lt;div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/__rqEtEJcmzI/TJ5em3VHvJI/AAAAAAAAADc/M20yQEaviiI/s1600/DoomClone+2010-09-25-2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="382" src="http://2.bp.blogspot.com/__rqEtEJcmzI/TJ5em3VHvJI/AAAAAAAAADc/M20yQEaviiI/s400/DoomClone+2010-09-25-2.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;connected dots&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;And if you're still unsure:&lt;/div&gt;&lt;div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/__rqEtEJcmzI/TJ5ev2WPIqI/AAAAAAAAADg/vXeuj1jaVsA/s1600/DoomClone+2010-09-25-3.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="300" src="http://2.bp.blogspot.com/__rqEtEJcmzI/TJ5ev2WPIqI/AAAAAAAAADg/vXeuj1jaVsA/s400/DoomClone+2010-09-25-3.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;and here's one we made earlier!&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;With special thanks to the excellent&amp;nbsp;&lt;a href="http://doom.wikia.com/wiki/WAD"&gt;Doom Wiki&lt;/a&gt;!&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8174696933779683906-640574770801888613?l=xnadoomclone.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://xnadoomclone.blogspot.com/2010/09/connect-dots.html</link><author>noreply@blogger.com (CoamIthra)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/__rqEtEJcmzI/TJ5eEifsH1I/AAAAAAAAADY/o1tycxkf8Ig/s72-c/DoomClone+2010-09-25-1.png" height="72" width="72" /><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8174696933779683906.post-1726360789920777186</guid><pubDate>Sat, 18 Sep 2010 16:57:00 +0000</pubDate><atom:updated>2010-09-20T22:17:13.509+02:00</atom:updated><title>Metal</title><description>&lt;i&gt;stealth edited on 19-9 with slightly newer song&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;and then stealth edited again on 20-9 with even newer song&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
No youtubes today, but instead an auditory preview. Musical mastermind Pete Brannan has graciously offered to write some original tracks for Gloom.&lt;br /&gt;
&lt;br /&gt;
A few years back Pete astounded me with a top notch soundtrack for&amp;nbsp;&lt;a href="http://evilaliens.lamaars.nl/"&gt;Revenge of the Evil Aliens&lt;/a&gt;*. I had decided to put that game up for sale which meant replacing all the music which consisted of (unlicensed) tracks of some of my favorite artists such as &lt;a href="http://www.youtube.com/watch?v=O6WSXf1R23E"&gt;UNKLE&lt;/a&gt;. I handed him the soundtrack&amp;nbsp;and said I wanted something that "sounds like this", not expecting much. Imagine my surprise when he came through with some great sounding tunes that have even been noted by reviewers as a high point of the game!&lt;br /&gt;
&lt;br /&gt;
But enough flattery, here's a first draft of what a Gloom song might sound like:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Peter Brannan - Metal1&lt;/b&gt;&lt;br /&gt;
&lt;embed height="27" src="http://www.google.com/reader/ui/3523697345-audio-player.swf?audioUrl=http://coamithra.lamaars.nl/gloom/metal1%202010-09-20.mp3" type="application/x-shockwave-flash" width="320" wmode="transparent"&gt;&lt;/embed&gt;&lt;br /&gt;
&lt;br /&gt;
And for reference of how a completed song sounds, here's the final level for Evil Aliens:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Peter Brannan - Revenge of the Evil Aliens (Stage 3)&lt;/b&gt;&lt;br /&gt;
&lt;embed height="27" src="http://www.google.com/reader/ui/3523697345-audio-player.swf?audioUrl=http://coamithra.lamaars.nl/gloom/evilaliensstage3(loop).mp3" type="application/x-shockwave-flash" width="320" wmode="transparent"&gt;&lt;/embed&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;*available now FREE on personal computer and CHEAP on xbox live indie games!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8174696933779683906-1726360789920777186?l=xnadoomclone.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://xnadoomclone.blogspot.com/2010/09/metal.html</link><author>noreply@blogger.com (CoamIthra)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8174696933779683906.post-6246412321652621278</guid><pubDate>Mon, 13 Sep 2010 21:14:00 +0000</pubDate><atom:updated>2010-09-13T23:14:45.830+02:00</atom:updated><title>Check out what I can do!</title><description>If you're not familiar with the limitations of the original Doom engine then the following might not impress you much, but check this out:&lt;br /&gt;
&lt;br /&gt;
&lt;object height="405" width="500"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vhCkwqzr2rs?fs=1&amp;amp;hl=nl_NL&amp;amp;color1=0x5d1719&amp;amp;color2=0xcd311b&amp;amp;border=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/vhCkwqzr2rs?fs=1&amp;amp;hl=nl_NL&amp;amp;color1=0x5d1719&amp;amp;color2=0xcd311b&amp;amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="405"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
Yeah&amp;nbsp;baby, rooms above rooms!&lt;br /&gt;
&lt;br /&gt;
Check out how wonky that looks in the editor:&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/__rqEtEJcmzI/TI6RcWyXBvI/AAAAAAAAADQ/_AcdrELEI7g/s1600/DoomClone+2010-09-13.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/__rqEtEJcmzI/TI6RcWyXBvI/AAAAAAAAADQ/_AcdrELEI7g/s320/DoomClone+2010-09-13.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Hax&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;I'm not sure if this trick will work once I put in collision detection and physics, but if it does I'm totally going to make a tower level!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8174696933779683906-6246412321652621278?l=xnadoomclone.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://xnadoomclone.blogspot.com/2010/09/check-out-what-i-can-do.html</link><author>noreply@blogger.com (CoamIthra)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/__rqEtEJcmzI/TI6RcWyXBvI/AAAAAAAAADQ/_AcdrELEI7g/s72-c/DoomClone+2010-09-13.png" height="72" width="72" /><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8174696933779683906.post-3632767472854169112</guid><pubDate>Mon, 06 Sep 2010 19:57:00 +0000</pubDate><atom:updated>2010-09-06T21:57:47.571+02:00</atom:updated><title>Gloom Does Undo</title><description>&lt;blockquote&gt;&lt;i&gt;&amp;nbsp;"Repeatedly adding and removing nodes, lines and sectors doesn´t look like much, so I won´t make a video out of it."&lt;/i&gt;&lt;/blockquote&gt;I lied.&lt;br /&gt;
&lt;br /&gt;
&lt;object height="405" width="500"&gt;&lt;param name="movie" value="http://www.youtube.com/v/w95nnruI-pk?fs=1&amp;amp;hl=nl_NL&amp;amp;color1=0x5d1719&amp;amp;color2=0xcd311b&amp;amp;border=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/w95nnruI-pk?fs=1&amp;amp;hl=nl_NL&amp;amp;color1=0x5d1719&amp;amp;color2=0xcd311b&amp;amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="405"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8174696933779683906-3632767472854169112?l=xnadoomclone.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://xnadoomclone.blogspot.com/2010/09/gloom-does-undo.html</link><author>noreply@blogger.com (CoamIthra)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8174696933779683906.post-1092595470723302067</guid><pubDate>Sat, 04 Sep 2010 16:09:00 +0000</pubDate><atom:updated>2010-09-04T18:09:19.900+02:00</atom:updated><title>Post holiday update</title><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/__rqEtEJcmzI/TIJmeiGeDeI/AAAAAAAAADI/LjTS64HlukU/s1600/2010-08-18_15-31-02_111.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/__rqEtEJcmzI/TIJmeiGeDeI/AAAAAAAAADI/LjTS64HlukU/s320/2010-08-18_15-31-02_111.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Gamescom 2010&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;Had a great couple of weeks of vacation, spent going to &lt;a href="http://www.gamescom-cologne.com/en/gamescom/home/index.php"&gt;Gamescom&lt;/a&gt;, &lt;a href="http://www.lowlands.nl/"&gt;Lowlands&lt;/a&gt;&amp;nbsp;and &lt;a href="http://www.youtube.com/watch?v=Bi4VO8TKMgg"&gt;Berlin&lt;/a&gt;,&amp;nbsp;and reading &lt;a href="http://silentbobspeaks.com/"&gt;Kevin Smith´s diary&lt;/a&gt; cover to cover.&lt;br /&gt;
&lt;br /&gt;
Unfortunately I didn´t get to do as much coding as I´d have liked to, but still managed to get a couple of days of solid work in.&lt;br /&gt;
&lt;br /&gt;
I noticed, especially after taking a short break from the project, that the code was getting messy. I was using the same classes in the game as in the editor, so stuff like 3D rendering was living confusingly alongside 2D editor drawing. I´d also put a lot of editor UI code directly in the classes that dealt with the actual editing, so they were busy changing the level and updating the screen at the same time, leading to more muddledness.&lt;br /&gt;
&lt;br /&gt;
So I cleaned up! I now have a nice layer between the level and the editor (aptly called EditableLevel) that exposes whatever data the editor needs to change but hides all of the hardcore engine stuff. While I was in there I also improved on a bunch of other stuff, among which a move to the new XNA 4 framework (potential winphone support yo!).&lt;br /&gt;
&lt;br /&gt;
I´m pretty happy with the results!&lt;br /&gt;
&lt;br /&gt;
Using the new architecture I´ve put an undo-list in place. Repeatedly adding and removing nodes, lines and sectors doesn´t look like much, so I won´t make a video out of it, but I assure you it´s pretty neat!&lt;br /&gt;
&lt;br /&gt;
In other news, I´ve asked the talented Pete Brannan (of Evil Aliens fame) if he´d be interested in doing the soundtrack and he´s into it! This guy´s great and I really hope we can make it work. If so, I´ll be sure to post some tune previews!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8174696933779683906-1092595470723302067?l=xnadoomclone.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://xnadoomclone.blogspot.com/2010/09/post-holiday-update.html</link><author>noreply@blogger.com (CoamIthra)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/__rqEtEJcmzI/TIJmeiGeDeI/AAAAAAAAADI/LjTS64HlukU/s72-c/2010-08-18_15-31-02_111.png" height="72" width="72" /><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8174696933779683906.post-6598259114535713634</guid><pubDate>Sat, 14 Aug 2010 12:53:00 +0000</pubDate><atom:updated>2010-08-14T14:53:28.996+02:00</atom:updated><title>Short update</title><description>Haven't had much time to work on XNADoom this week (Starcraft), but I did manage to get saving and loading working, so here's a video of how the level I made in the previous post looks in-game:&lt;br /&gt;
&lt;br /&gt;
&lt;object height="405" width="500"&gt;&lt;param name="movie" value="http://www.youtube.com/v/dYfCFDCEh9w?fs=1&amp;amp;hl=nl_NL&amp;amp;color1=0x5d1719&amp;amp;color2=0xcd311b&amp;amp;border=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/dYfCFDCEh9w?fs=1&amp;amp;hl=nl_NL&amp;amp;color1=0x5d1719&amp;amp;color2=0xcd311b&amp;amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="405"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
(soundtrack subject to change)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8174696933779683906-6598259114535713634?l=xnadoomclone.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://xnadoomclone.blogspot.com/2010/08/short-update.html</link><author>noreply@blogger.com (CoamIthra)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8174696933779683906.post-1508859342399001903</guid><pubDate>Sat, 14 Aug 2010 12:25:00 +0000</pubDate><atom:updated>2010-08-14T14:25:08.650+02:00</atom:updated><title>QuakeCon Steam Sale</title><description>Speaking of Doom...&lt;br /&gt;
&lt;br /&gt;
I'm a bit late with this, but Steam is offering all Doom related products with a 66% discount for Quakecon. I bought the Doom pack! Will need those wads to see if I can get my game to load original maps (wouldn't that be sweet!)&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://store.steampowered.com/sale/QuakeCon"&gt;http://store.steampowered.com/sale/QuakeCon&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8174696933779683906-1508859342399001903?l=xnadoomclone.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://xnadoomclone.blogspot.com/2010/08/quakecon-steam-sale.html</link><author>noreply@blogger.com (CoamIthra)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8174696933779683906.post-387096189246670747</guid><pubDate>Sun, 08 Aug 2010 10:11:00 +0000</pubDate><atom:updated>2010-08-08T12:11:20.817+02:00</atom:updated><title>Evolution of a level editor</title><description>I've been working on the level editor for a while now, here are some images of how it's evolved over time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/__rqEtEJcmzI/TF56cgACfMI/AAAAAAAAACQ/Wc5tQes_fKo/s1600/DoomClone+2010-07-17.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/__rqEtEJcmzI/TF56cgACfMI/AAAAAAAAACQ/Wc5tQes_fKo/s320/DoomClone+2010-07-17.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
The first version is just a visualizer. It shows the hardcoded standard level that I've been using for testing. I was pleasantly surprised that the .net drawing libraries have some nice built in ways to handle zooming and panning.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/__rqEtEJcmzI/TF56dx8DD5I/AAAAAAAAACY/JCx_3N5A1-4/s1600/DoomClone+2010-07-18.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/__rqEtEJcmzI/TF56dx8DD5I/AAAAAAAAACY/JCx_3N5A1-4/s320/DoomClone+2010-07-18.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Here I've added a status bar and a top-menu, and the ability to actually edit the level. It's shoddy as hell and doesn't actually save, but it looks better :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/__rqEtEJcmzI/TF56fQIY7eI/AAAAAAAAACg/QLPwzSi16Vw/s1600/DoomClone+2010-07-19.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/__rqEtEJcmzI/TF56fQIY7eI/AAAAAAAAACg/QLPwzSi16Vw/s320/DoomClone+2010-07-19.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
This is a pretty neat component, a&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/aa302326.aspx"&gt;property grid&lt;/a&gt;. It automatically fills itself with the properties of an object, so all I have to do is point it to the currently selected sector (room), line or node, and the user can set stuff like position, textures, or height. Fancy!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/__rqEtEJcmzI/TF56g5IqrTI/AAAAAAAAACo/pY9MLpgTxoA/s1600/DoomClone+2010-07-20.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/__rqEtEJcmzI/TF56g5IqrTI/AAAAAAAAACo/pY9MLpgTxoA/s320/DoomClone+2010-07-20.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Here we see an output panel added. There's also a lot of functionality upgrades going on under the hood. One of the trickier parts of making this editor was automatically constructing sectors. Basically you can create a room (like the orange one in the image)&amp;nbsp;by drawing lines. You then right-click inside the created shape to turn it into a sector. That last bit, detecting if you clicked inside some shape and finding it, is not trivial at all! I remember the Doom editor I used back in the day having a lot of trouble with this. Now I know why :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/__rqEtEJcmzI/TF56i4KteSI/AAAAAAAAACw/LsLR3ZCw5Gs/s1600/DoomClone+2010-07-25.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/__rqEtEJcmzI/TF56i4KteSI/AAAAAAAAACw/LsLR3ZCw5Gs/s320/DoomClone+2010-07-25.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: auto;"&gt;And here's a first attempt at an actual level. It's roughly based on the first map in Doom 1: the orange sector is a little lower than the rest of the room, and the four squares to the left make a staircase that goes up to a raised balcony.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: auto;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: auto;"&gt;Note how the orange sector has lines connecting it to the right wall, that's because I haven't figured out how to do sectors &lt;i&gt;inside&amp;nbsp;other sectors&lt;/i&gt; yet. That's going to screw up both the sector detection and the &lt;a href="http://xnadoomclone.blogspot.com/2010/07/triangulation.html"&gt;triangulation&lt;/a&gt;, so I'm postponing it for now.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: auto;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: auto;"&gt;Now to save this thing and run through it in 3D!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8174696933779683906-387096189246670747?l=xnadoomclone.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://xnadoomclone.blogspot.com/2010/08/evolution-of-level-editor.html</link><author>noreply@blogger.com (CoamIthra)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/__rqEtEJcmzI/TF56cgACfMI/AAAAAAAAACQ/Wc5tQes_fKo/s72-c/DoomClone+2010-07-17.png" height="72" width="72" /><thr:total>4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8174696933779683906.post-5912410486350301277</guid><pubDate>Sat, 31 Jul 2010 12:37:00 +0000</pubDate><atom:updated>2010-07-31T14:37:18.922+02:00</atom:updated><title>Walls II</title><description>Allow me to elaborate...&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/__rqEtEJcmzI/TFQVkzpHkAI/AAAAAAAAABw/fB_nUv2sZhs/s1600/squareroom.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/__rqEtEJcmzI/TFQVkzpHkAI/AAAAAAAAABw/fB_nUv2sZhs/s320/squareroom.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;A square room (top down view)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
Ok so this is a square room. It consists of four lines (walls). So in-game, we draw four quads (one is behind the camera so we can't see it):&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/__rqEtEJcmzI/TFQV6aYMAyI/AAAAAAAAAB4/3VRYy_rKfsY/s1600/squareroomindoom.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/__rqEtEJcmzI/TFQV6aYMAyI/AAAAAAAAAB4/3VRYy_rKfsY/s320/squareroomindoom.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Square room in Gloom: three walls are visible&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
Alright. So let's say we have two connected rooms:&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/__rqEtEJcmzI/TFQWKYNwFeI/AAAAAAAAACA/eNaNYG-Nac4/s1600/2squarerooms.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/__rqEtEJcmzI/TFQWKYNwFeI/AAAAAAAAACA/eNaNYG-Nac4/s320/2squarerooms.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Two rooms!&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
What we do now is we connect the rooms by cutting a hole in the far wall, based on the difference in ceiling- and floor heights between the two rooms.&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/__rqEtEJcmzI/TFQWM1KjG8I/AAAAAAAAACI/hr9AAezCMJs/s1600/2squareroomsindoom.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/__rqEtEJcmzI/TFQWM1KjG8I/AAAAAAAAACI/hr9AAezCMJs/s320/2squareroomsindoom.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Back wall now has an opening in it to connect the rooms&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;The interesting thing is that these two are the only possibilities: a wall, or a wall with a hole in the middle. Yet you can build very complex and interesting architectures using this system. Just look at the maps in Doom!&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8174696933779683906-5912410486350301277?l=xnadoomclone.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://xnadoomclone.blogspot.com/2010/07/walls-ii.html</link><author>noreply@blogger.com (CoamIthra)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/__rqEtEJcmzI/TFQVkzpHkAI/AAAAAAAAABw/fB_nUv2sZhs/s72-c/squareroom.png" height="72" width="72" /><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8174696933779683906.post-5366467137598040028</guid><pubDate>Sat, 31 Jul 2010 11:30:00 +0000</pubDate><atom:updated>2010-07-31T13:30:03.594+02:00</atom:updated><title>Walls</title><description>Here's what that previous scene looks like with walls (and a gun sprite) added in:&lt;br /&gt;
&lt;br /&gt;
&lt;object height="405" width="500"&gt;&lt;param name="movie" value="http://www.youtube.com/v/x0d_NvXUqno&amp;amp;hl=nl_NL&amp;amp;fs=1?color1=0x5d1719&amp;amp;color2=0xcd311b&amp;amp;border=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/x0d_NvXUqno&amp;amp;hl=nl_NL&amp;amp;fs=1?color1=0x5d1719&amp;amp;color2=0xcd311b&amp;amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="405"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
Almost like a 15 year old FPS! :)&lt;br /&gt;
&lt;br /&gt;
Like I said, walls are pretty easy to make. A Doom level is basically a top down line-drawing, where each line is a wall. So to generate the walls you just create squares from floor to ceiling at each line. If the line divides two rooms then you punch a hole in it (like the little window in the video).&lt;br /&gt;
&lt;br /&gt;
PS: Apparently Gloom is already a game, and it's a Doom clone as well. So I need a new name. Maybe "Mood"?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8174696933779683906-5366467137598040028?l=xnadoomclone.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://xnadoomclone.blogspot.com/2010/07/walls.html</link><author>noreply@blogger.com (CoamIthra)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8174696933779683906.post-7991873748136430385</guid><pubDate>Sun, 25 Jul 2010 16:19:00 +0000</pubDate><atom:updated>2010-08-08T12:17:32.676+02:00</atom:updated><title>Triangulation</title><description>&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://upload.wikimedia.org/wikipedia/commons/thumb/6/67/Polygon-ear.png/220px-Polygon-ear.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="222" src="http://upload.wikimedia.org/wikipedia/commons/thumb/6/67/Polygon-ear.png/220px-Polygon-ear.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;This could be a room in Doom!&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
Hit the first snag already. While the walls in Doom are ridiculously easy to create - they're just quads - the floors and ceilings of rooms can have many bizarre and arbitrary shapes.&lt;br /&gt;
&lt;br /&gt;
I'm not sure how Doom rendered its floors and ceilings. If you forget a wall the ceiling kind of "spills" out. My guess is they use some scanline tricks.&lt;br /&gt;
&lt;br /&gt;
Anyway, I'm not &lt;span class="Apple-style-span" style="font-family: inherit;"&gt;work&lt;/span&gt;ing on that low a level. All I do is send triangles to the GPU and let it do its magic. So that means I need to triangulate my floors. Which, apparently, is &lt;i&gt;super difficult&lt;/i&gt;.&lt;br /&gt;
&lt;blockquote&gt;&lt;i&gt;... Chazelle (1991) showed that an arbitrary simple polygon can be triangulated in O(n). However, according to Skiena (1997), "this algorithm is quite hopeless to implement."&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;
Quite hopeless indeed!&lt;br /&gt;
&lt;br /&gt;
So I started at the top of the chain with the hopeless algorithm and then moved my way down to less and less efficient ways until I hit the bottom with the "ear pruning" technique. It basically boils down to "pick a random corner and see if you can cut it off, otherwise pick a new one."&amp;nbsp;One of the online powerpoint presentations I found mockingly called it the "naive solution" before failing to properly explain another method involving trapezoids. :/&lt;br /&gt;
&lt;br /&gt;
Stuff that though! At least it works, check this out:&lt;br /&gt;
&lt;br /&gt;
&lt;object height="405" width="500"&gt;&lt;param name="movie" value="http://www.youtube.com/v/K_w1rheNyDw&amp;amp;hl=nl_NL&amp;amp;fs=1?color1=0x5d1719&amp;amp;color2=0xcd311b&amp;amp;border=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/K_w1rheNyDw&amp;amp;hl=nl_NL&amp;amp;fs=1?color1=0x5d1719&amp;amp;color2=0xcd311b&amp;amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="405"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
Oh and one cool thing about the Doom engine: because the floors are all perfectly level it's super easy to map a texture on them!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8174696933779683906-7991873748136430385?l=xnadoomclone.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://xnadoomclone.blogspot.com/2010/07/triangulation.html</link><author>noreply@blogger.com (CoamIthra)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8174696933779683906.post-6442197470671429599</guid><pubDate>Sun, 25 Jul 2010 15:13:00 +0000</pubDate><atom:updated>2010-07-25T17:13:51.937+02:00</atom:updated><title>Introduction</title><description>So. Doom.&lt;br /&gt;
&lt;br /&gt;
Doom's a great game. Not only was it a breathtaking graphical achievement at its time, the gameplay and design of Doom still hold up to this very day. Simple, yet surprisingly deep, like a modern day Shakespeare.&lt;br /&gt;
&lt;br /&gt;
Truly, Doom is the Citizen Kane of gaming.&lt;br /&gt;
&lt;br /&gt;
So yeah, I'm a fan. Played it to death. Used to make my own WADs for it. Revisited it on Xbox recently.&lt;br /&gt;
&lt;br /&gt;
Then one day I woke up and thought: I can &lt;i&gt;make&lt;/i&gt;&amp;nbsp;this game. And that's exactly what I plan to do.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;So why Doom, specifically?&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Because Doom is awesome. But also because Doom is a perfect fit for a single programmer hobby game. The game was designed to run on hardware from 20 years ago. To make it work, Carmack and co put a lot of smart simplifications into the game. Those same simplifications make the game a lot easier to code than modern first person shooters, while the current hardware allows me not to worry too much about optimizations.&lt;br /&gt;
&lt;br /&gt;
For instance:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Doom levels can be designed with a 2D top down view, no need to have a 3D editor or create exporters for Max/Maya.&lt;/li&gt;
&lt;li&gt;Walls are always perfectly upright. Floors are always perfectly level. This makes collision detection and physics super easy!&lt;/li&gt;
&lt;li&gt;Objects are sprites instead of 3D models. Sprites are way easier to find/make than animated models.&lt;/li&gt;
&lt;li&gt;Doom geometry is sparse when compared to modern 3D games. Modern GPU's can probably render an entire level without breaking a sweat, saving me the hassle of programming visibility culling.&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;This blog will catalogue my successes and failures. Although writing a blog about something is the best way to lose interest, let us hope that there will be plenty of both.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8174696933779683906-6442197470671429599?l=xnadoomclone.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://xnadoomclone.blogspot.com/2010/07/introduction.html</link><author>noreply@blogger.com (CoamIthra)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8174696933779683906.post-6690531605349833429</guid><pubDate>Sun, 25 Jul 2010 14:33:00 +0000</pubDate><atom:updated>2010-07-25T16:33:39.654+02:00</atom:updated><title>XNADoom teaser trailer</title><description>&lt;object height="405" width="500"&gt;&lt;param name="movie" value="http://www.youtube.com/v/0rrLPtKUj9Q&amp;amp;hl=nl_NL&amp;amp;fs=1?color1=0x5d1719&amp;amp;color2=0xcd311b&amp;amp;border=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/0rrLPtKUj9Q&amp;amp;hl=nl_NL&amp;amp;fs=1?color1=0x5d1719&amp;amp;color2=0xcd311b&amp;amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="405"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8174696933779683906-6690531605349833429?l=xnadoomclone.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://xnadoomclone.blogspot.com/2010/07/xnadoom-teaser-trailer.html</link><author>noreply@blogger.com (CoamIthra)</author><thr:total>0</thr:total></item></channel></rss>

