{"id":890,"date":"2007-01-23T12:00:48","date_gmt":"2007-01-23T17:00:48","guid":{"rendered":"http:\/\/www.shamusyoung.com\/twentysidedtale\/?p=890"},"modified":"2007-01-23T11:44:08","modified_gmt":"2007-01-23T16:44:08","slug":"outcast-something-different","status":"publish","type":"post","link":"https:\/\/www.shamusyoung.com\/twentysidedtale\/?p=890","title":{"rendered":"Outcast: Something Different"},"content":{"rendered":"<p><a href=\"http:\/\/gazonk.org\/~eloj\/\">Eloj<\/a> had this to say in the <a href=\"http:\/\/www.shamusyoung.com\/twentysidedtale\/?p=882#comment-39963\">Neverwinter Nights Nitpick post<\/a>:<\/p>\n<div class=\"quote\">I think that, somewhat ironically, we might be seeing engines going back to &#8220;software&#8221; renderers. CPU core numbers are creeping up, and raytracing for instance can be rather easily parallelized (well&#8230;). <\/p>\n<p>The only &#8220;problem&#8221; is the enormous inertia built into the industry when it comes to knowledge and technology (do you think nVidia and AMD\/ATI would like to see their precious IP and know-how going down the drain?) about polygonial engines. All this stuff with shadows and &#8220;dumb&#8221; lightning models is because of the polygon based (or maybe rather &#8220;raster based&#8221;) roots of current 3D tech, that all goes away if you change the basics. Raytracing gives perfect shadows, and as good lighting as you can spend cycles on, every time.<\/p><\/div>\n<p>I thought I&#8217;d mention a game where this did happen &#8211; where a developer just ignored all current 3d trends and struck out on their own.  <a href=\"http:\/\/www.outcast-thegame.com\/\">Outcast<\/a> came out in 1999, so the game is about eight years old now.  Keep that in mind when looking at the screenshots below.  <\/p>\n<p><!--more--><br \/>\nThe game uses voxels for rendering instead of polygons.  (Actually, I think it uses voxels for scenery, and polygons for characters.)  Voxels are sort of a strange technology that never really caught on.  Voxels are really, really good at making nice, round terrain that doesn&#8217;t have the pixelization or tiling you get with <a href=\"?p=141\">polygon-based terrain<\/a>.  However, voxels kind of suck for making square objects or things with hard edges.  <\/p>\n<p>If you look at the screenshot below, you&#8217;ll see a lot of what I&#8217;m talking about.  The line of grey jaggies to the left of the main character (the guy in the orange shirt) is the top of a set of stairs.  This hard, square edge looks like terrible from this angle.  This is the drawback of using voxels.<\/p>\n<p><table width='512'  cellpadding='0' cellspacing='0' border='0' align='center'><tr><td><img src='https:\/\/www.shamusyoung.com\/twentysidedtale\/images\/outcast_effects.jpg' class='insetimage' width='512' alt='outcast_effects.jpg' title='outcast_effects.jpg'\/><\/td><\/tr><\/table><\/p>\n<p>The game was software-only &#8211; it couldn&#8217;t make use of a 3d card. It didn&#8217;t have the advantages of 3d acceleration, but it didn&#8217;t have any of the limitations, either. This means that a lot of the rendering effects in the game were well ahead of their time. It had normal-mapping &#8211; then called bump-mapping &#8211; which takes a flat textured surface and alters the way light strikes it to make it look like it is &#8220;bumpy&#8221;. <\/p>\n<p>You can see how the folds of clothing really look like creased surfaces and not like a flat texture with areas of light and dark on it.  The folds of clothing on the different characters all agree on which way the light source is aiming.  Without bump \/ normal mapping, different characters (or different parts of the same character) will all be doing their own thing, each one suggesting that the light is coming from a different direction.  The result is the the eye stops falling for the faux-bumpyness and recognizes them all as flat surfaces.<\/p>\n<p>Note also that your character casts a real shadow, instead of just projecting a blob of circular darkness onto the ground at his feet, which is how other games were doing shadows in 1999.<\/p>\n<p>It had depth-of-field, which <em>even today<\/em> is one of those features that is usually only available for people with high-end graphics hardware.  I forgot to enable it for this screenshot, but the effect is a bit subtle.  It just made stuff in the distance look blurry.  This is great for simulating the way movies look (stuff in the foreground is sharp, stuff in the background is out of focus) as well as covering the voxel jaggies on buildings in the distance.<\/p>\n<p><table width='512'  cellpadding='0' cellspacing='0' border='0' align='center'><tr><td><img src='https:\/\/www.shamusyoung.com\/twentysidedtale\/images\/outcast_cutter.jpg' class='insetimage' width='512' alt='outcast_cutter.jpg' title='outcast_cutter.jpg'\/><\/td><\/tr><\/table><\/p>\n<p>The game had other breakthroughs as well, such as expansive outdoor areas without walls or load screens.  <\/p>\n<p><table width='512'  cellpadding='0' cellspacing='0' border='0' align='center'><tr><td><img src='https:\/\/www.shamusyoung.com\/twentysidedtale\/images\/outcast_water.jpg' class='insetimage' width='512' alt='outcast_water.jpg' title='outcast_water.jpg'\/><\/td><\/tr><\/table><\/p>\n<p>It had bump-mapped water with environment mapping, which even today looks fantastic.  <\/p>\n<p>The fact that the game depended on the CPU for rendering meant that it was very fill-rate sensitive. The screenshots you see here are taken from the game in the super-extra-high resolution of 512&#215;384, which is as high as it will go. In 1999, that was about the size of &#8220;low resolution mode&#8221; in other games, and today most games <em>can&#8217;t<\/em> go that low. Still, I&#8217;ve always believed that making <em>better<\/em> pixels is more important than making <em>more<\/em> pixels.<\/p>\n<p>Quite an interesting game, technology-wise.  I never saw anything else like it, and indeed a lot of the effects &#8211; like bump-mapping on characters &#8211; I didn&#8217;t see again until <a href=\"?p=270\">Thief 3<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Eloj had this to say in the Neverwinter Nights Nitpick post: I think that, somewhat ironically, we might be seeing engines going back to &#8220;software&#8221; renderers. CPU core numbers are creeping up, and raytracing for instance can be rather easily parallelized (well&#8230;). The only &#8220;problem&#8221; is the enormous inertia built into the industry when it [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-890","post","type-post","status-publish","format-standard","hentry","category-reviews"],"_links":{"self":[{"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=\/wp\/v2\/posts\/890","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=890"}],"version-history":[{"count":0,"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=\/wp\/v2\/posts\/890\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=890"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=890"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.shamusyoung.com\/twentysidedtale\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=890"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}