{"id":484,"date":"2011-12-25T00:53:00","date_gmt":"2011-12-24T23:53:00","guid":{"rendered":"http:\/\/drmccoy.de\/gobsmacked\/?p=484"},"modified":"2013-06-11T19:10:19","modified_gmt":"2013-06-11T17:10:19","slug":"yearly-update-part-ii-eos","status":"publish","type":"post","link":"https:\/\/drmccoy.de\/gobsmacked\/?p=484","title":{"rendered":"Yearly Update, Part II: eos"},"content":{"rendered":"<p>[<strong>Minor Update<\/strong>: Because of name clashes, eos has been renamed to xoreos.]<\/p>\n<p>[<strong>Major<\/strong> <strong>Update<\/strong>: <a href=\"http:\/\/drmccoy.de\/gobsmacked\/?p=530\">xoreos needs your help!<\/a>]<\/p>\n<p>As promised in my <a href=\"http:\/\/drmccoy.de\/gobsmacked\/?p=433\">last post<\/a>, I will now talk about eos.<\/p>\n<p>&#8220;What is eos?&#8221;, I hear you ask. Well, in short, it&#8217;s an open source project I started to portably reimplement <a href=\"https:\/\/en.wikipedia.org\/wiki\/BioWare\">BioWare<\/a>&#8216;s 3D engines, starting with <a href=\"http:\/\/www.mobygames.com\/game\/neverwinter-nights\">Neverwinter Night<\/a>&#8216;s Aurora engine. Quite a daring task, and one I can&#8217;t begin to hope to finish on my own, especially since I&#8217;m not really that versed in all that 3D stuff. But working on it is fun and scratches an itch, and maybe more people will join me in that particular quest some day.<\/p>\n<p><!--more--><\/p>\n<p>Here&#8217;s a quick rundown on the current state of eos:<\/p>\n<h4><span style=\"text-decoration: underline;\">General<\/span><\/h4>\n<p>Working:<\/p>\n<ul>\n<li>&#8220;Engine&#8221; framework<\/li>\n<li>Global configuration subsystem<\/li>\n<li>Debug console with readline-like abilities<\/li>\n<li>Reading classes for a shockful of BioWare file formats, including archives, images, <a href=\"https:\/\/github.com\/DrMcCoy\/eos\/blob\/master\/doc\/specs\/bioware\/GFF_Format.pdf?raw=true\">GFF<\/a> formats<\/li>\n<li>Resource manager<\/li>\n<li>Basic manager classes for 3D graphics and sound<\/li>\n<li>Playing of <a href=\"https:\/\/en.wikipedia.org\/wiki\/Bink_Video\">Bink<\/a> videos (decoder courtesy of the <a href=\"http:\/\/ffmpeg.org\/\">FFmpeg<\/a> project)<\/li>\n<li><a href=\"http:\/\/wiki.multimedia.cx\/index.php?title=XMV\">XMV<\/a> demuxer (<a href=\"https:\/\/github.com\/FFmpeg\/FFmpeg\/blob\/master\/libavformat\/xmv.c\">which we then reworked to fit into FFmpeg<\/a>)<\/li>\n<\/ul>\n<p>Missing:<\/p>\n<ul>\n<li>Animation subsystem<\/li>\n<li>3D positional audio<\/li>\n<li>WMV p-frames<\/li>\n<\/ul>\n<h4><span style=\"text-decoration: underline;\">Neverwinter Nights<\/span><\/h4>\n<p>Working:<\/p>\n<ul>\n<li>Partially working main menu<\/li>\n<li>Loading of modules and areas, including placeables and creatures<\/li>\n<li>Moving around in areas<\/li>\n<li>Interacting with doors<\/li>\n<li>Talking to NPCs<\/li>\n<li>Script execution<\/li>\n<\/ul>\n<p>Missing:<\/p>\n<ul>\n<li>Area lighting<\/li>\n<li>Most script functions<\/li>\n<li>Proper &#8220;segmented&#8221; models (each body part a separate model)<\/li>\n<li>PC, walking, combat, inventory, journal<\/li>\n<li>Script triggers<\/li>\n<\/ul>\n<p><center><iframe loading=\"lazy\" src=\"http:\/\/www.youtube.com\/embed\/WaRfBsZVO3Y\" height=\"315\" width=\"420\" frameborder=\"0\"><\/iframe><\/center><\/p>\n<h4><span style=\"text-decoration: underline;\">Knights of the Old Republic (1 + 2)<\/span><\/h4>\n<p>Working:<\/p>\n<ul>\n<li>Very stubby main menu<\/li>\n<li>Loading of areas, including placeables and creatures<\/li>\n<li>Moving around in areas<\/li>\n<li>Unswizzling Xbox textures<\/li>\n<\/ul>\n<p>Missing:<\/p>\n<ul>\n<li>Interacting with objects, dialogs<\/li>\n<li>Scripts<\/li>\n<li>PC, walking, combat, inventory, journal<\/li>\n<li>Area lighting<\/li>\n<li>Proper materials, including metallic reflections<\/li>\n<\/ul>\n<p><center><iframe loading=\"lazy\" src=\"http:\/\/www.youtube.com\/embed\/rawkCx9apHg\" height=\"315\" width=\"420\" frameborder=\"0\"><\/iframe><\/center><\/p>\n<h4><span style=\"text-decoration: underline;\">Jade Empire<\/span><\/h4>\n<p>Menu loading works partially, everything else is still missing.<\/p>\n<h4><span style=\"text-decoration: underline;\">Neverwinter Nights 2<\/span><\/h4>\n<p>Model loading works partially, everything else is still missing.<\/p>\n<h4><span style=\"text-decoration: underline;\">The Witcher<\/span><\/h4>\n<p>Model loading works partially, everything else is still missing.<\/p>\n<h4><span style=\"text-decoration: underline;\">Dragon Age: Origins<\/span><\/h4>\n<p>Texture loading works, everything else is still missing.<\/p>\n<h4><span style=\"text-decoration: underline;\">Sonic Chronicles: The Dark Brotherhood<\/span><\/h4>\n<p>HERF archive reading and texture loading works, everything else is missing.<\/p>\n<h4><span style=\"text-decoration: underline;\">Dragon Age 2<\/span><\/h4>\n<p>A potential target, but made difficult due to the changed archive format which doesn&#8217;t include file names anymore, only their hashes.<\/p>\n<p>&nbsp;<\/p>\n<p>As can be seen, the current focus is mostly on Neverwinter Nights and Knights of the Old Republic, but even there, a lot is still missing and the games are of course far from being actually playable. I am mostly working alone on that project, with help from <a href=\"http:\/\/clone2727.blogspot.com\/\">clone2727<\/a>; chances of eos ever becoming usable are next to none this way.<\/p>\n<p>If anyone out there is interested in helping, this would increase said chances and we&#8217;d be overjoyed. I&#8217;m especially looking for someone with actual OpenGL experience who could probably completely rewrite my graphics code to be far more effective. Of course, there&#8217;s a lot of other places that need capable hands. <a href=\"https:\/\/gist.github.com\/128249998dc9d4b8414d\">A quick and dirty TODO I&#8217;ve written a while ago can be found here<\/a>. <a href=\"https:\/\/github.com\/DrMcCoy\/xoreos\">The project itself is located on github, here<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[Minor Update: Because of name clashes, eos has been renamed to xoreos.] [Major Update: xoreos needs your help!] As promised in my last post, I will now talk about eos. &#8220;What is eos?&#8221;, I hear you ask. Well, in short, it&#8217;s an open source project I started to portably reimplement BioWare&#8216;s 3D engines, starting with [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[42,56],"tags":[54,43,44,53,67,52,49,50,51,46,47,48,55,45],"_links":{"self":[{"href":"https:\/\/drmccoy.de\/gobsmacked\/index.php?rest_route=\/wp\/v2\/posts\/484"}],"collection":[{"href":"https:\/\/drmccoy.de\/gobsmacked\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/drmccoy.de\/gobsmacked\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/drmccoy.de\/gobsmacked\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/drmccoy.de\/gobsmacked\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=484"}],"version-history":[{"count":26,"href":"https:\/\/drmccoy.de\/gobsmacked\/index.php?rest_route=\/wp\/v2\/posts\/484\/revisions"}],"predecessor-version":[{"id":506,"href":"https:\/\/drmccoy.de\/gobsmacked\/index.php?rest_route=\/wp\/v2\/posts\/484\/revisions\/506"}],"wp:attachment":[{"href":"https:\/\/drmccoy.de\/gobsmacked\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=484"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/drmccoy.de\/gobsmacked\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=484"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/drmccoy.de\/gobsmacked\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=484"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}