Posted
by
timothy
on Saturday January 15, 2011 @03:15PM
from the every-big-distro-could-have-a-fps dept.

Kevin Fishburne writes "According to WtF Dragon at Ultima Aiera, 'The long and short: Arkane Studios have released what is probably going to be the final patch for their Ultima Underworld-inspired game (which, indeed, they tried to license as the third entry in that series), Arx Fatalis. They have also released the source code for the game. That's right, the complete source of Arx Fatalis is available for download.' The readme notes that the original game installation is required in order to play the compiled game, as the data files are certainly still copyrighted. Linux is in need of a good FPS dungeon crawler, though the code will need a hell of a lot of cleanup as it's a VC8/9 project and uses DirectX (ugh...)."

Now maybe MS fanboys expect their APIs to do everything for them but some people are actually serious about programming and do not want bloatware.

Oh, yeah how did it hurt them?Well how are they going to port to PS3? iPhone? iPad? Linux? OSX ?

Valve had to rewrite alot of the Source engine for their OSX port because they made the poor decision to use DirectX for it; I hope they learn from that lesson; thoughI don't hold much hope for greedy people like them.

Do any of you people have any idea what an HINSTANCE is, anyway? As someone who has written code on both Win32 and free Unix-type OSes I find this all very odd. Would I criticize you for using some mundane typedef like (picking one at random) pthread_t? Of course not.

It's a Windows game written in C or C++. I expect there to be Windows-specific code. Is that really that evil? How do you expect them to accomplish their goals if they don't use some things that are specific to the platform they're targeting.

From a software engineering perspective the right way would be to isolate that platform-specific code to a clean set of modules. But let's be honest - the cleanest code is not always what gets shipped. How many GTK+ or Qt apps on Linux break the abstraction by calling directly into Xlib? I'm not sure about these days, but when I last developed for the platform the answer was "a lot".

I think a bunch of you guys need to grow up, or take a deep breath or something. Stop being so judgmental. These guys are kind enough to give you the code, and all you can say is it's not written with your favorite set of libraries.

Games like Doom, Quake, Wolfenstein 3D and the like are crediting with innovating and pushing 3D engines. People always seem to forget Ultima Underworld. Ultima Underworld shipped a full year before Doom, ran on lesser hardware, and had a more advanced engine.

It really is a shame these two games aren't very playable on modern systems and have been forgotten in the mists of time.

I'd kill to see the GPL Arx Fatalis engine used to remake Ultima Underworld I and II.

Ultima Underworld shipped a full year before Doom, ran on lesser hardware, and had a more advanced engine.

"More advanced engine" is debatable. It had nice things like 3D objects and the ability to look up and down, but the maps were tile-based (where Doom allowed arbitrary geometry in a 2D plane), and the draw distance was very limited (where Doom could render right up to the limit of the screen resolution).

Even what I believe was the last iteration of the Underworld engine, in System Shock, was still fundamentally tile-based and only had very limited support for non-orthogonal walls, though it was again very advanced in other ways (dynamic lighting, rather good physics for the era, and unusual support for high resolution graphics).