Drakan Remake by YanGez93 [Project abandoned]

Anything to do with Drakan level editing and modifications, post it here! Also this is the place to tell us about your new levels and get player feedback.
HeckFluff
Whelp
Posts: 24
Joined: Sat Oct 14, 2017 12:47 am
Location: England

Re: Drakan Remake by YanGez93

Post by HeckFluff »

I big fan of Drakan: Order of the Flame OST. I think music should be also remastered. I read in some topics it is possible to extract samples/midi from original music files
Yes. The music can be extracted from the music.rrc file and played in DirectMusic Producer. There are SGT and DLS files, but no filenames.

Image

Morell
Dragon
Posts: 68
Joined: Sat May 11, 2013 7:15 am
Location: Czech Republic
Contact:

Re: Drakan Remake by YanGez93

Post by Morell »

If you can convert sgt files, there are few I would love converted into mp3 or any normal format...

HeckFluff
Whelp
Posts: 24
Joined: Sat Oct 14, 2017 12:47 am
Location: England

Re: Drakan Remake by YanGez93

Post by HeckFluff »

You can go to https://answers.microsoft.com/en-us/win ... 40c29a61c4 and click on the DropBox link at the bottom to get DirectMusic Producer.

The SGT and DLS files are stored in concatenated form in Music.rrc. With a simple hex editor (like Hexplorer or something more modern), set column width to 14, and you can see the offsets and sizes of each file at the bottom of Music.rrc. Each directory entry starts with "01 04". SGT files start with "RIFF ... DMSG" and DLS files start with "RIFF ... DLS". Simply do a binary copy for each file into a new file with the correct extension.

To make things easier, I do have a C++ program to extract the offsets and sizes. Here's a list of file offsets and sizes in Music.rrc:
  • 01 04 0001 0000 @12 78906 bytes
  • 01 04 0002 0000 @78918 79590 bytes
  • 01 04 0003 0000 @158508 139454 bytes
  • 01 04 0004 0000 @297962 27220 bytes
  • 01 04 0005 0000 @325182 58584 bytes
  • 01 04 0006 0000 @383766 130468 bytes
  • 01 04 0007 0000 @514234 104450 bytes
  • 01 04 0008 0000 @618684 83908 bytes
  • 01 04 0009 0000 @702592 92628 bytes
  • 01 04 000a 0000 @795220 66716 bytes
  • 01 04 000b 0000 @861936 58584 bytes
  • 01 04 0100 0000 @920520 495082 bytes
  • 01 04 0101 0000 @1415602 567910 bytes
  • 01 04 0102 0000 @1983512 568202 bytes
  • 01 04 0103 0000 @2551714 414154 bytes
  • 01 04 0104 0000 @2965868 608672 bytes
  • 01 04 0105 0000 @3574540 825212 bytes
  • 01 04 0106 0000 @4399752 709954 bytes
  • 01 04 0107 0000 @5109706 975396 bytes
  • 01 04 0108 0000 @6085102 907136 bytes
  • 01 04 0109 0000 @6992238 1165210 bytes
  • 01 04 010a 0000 @8157448 608672 bytes
This assumes that your Music.rrc is the same as mine.

The easier way to open the SGT files in DirectMusic Producer is to start the program and then drag an SGT file into the workspace. This will automatically create a new project. It will then prompt you for required DLS files.

You can then follow https://social.technet.microsoft.com/wi ... o_WAV_file to record to WAV.

User avatar
yangez93
Dragon
Posts: 103
Joined: Wed Apr 05, 2017 9:10 am
Location: Poland
Contact:

Re: Drakan Remake by YanGez93

Post by yangez93 »

Thank you very much for you help HeckFluff and Morell.

I extract whole file Music.rrc. It was just a little bit complicated but I did :)

http://www19.zippyshare.com/v/rIk2dOoV/file.html


It can be useful who would like to make some convertions/remixes :)

HeckFluff
Whelp
Posts: 24
Joined: Sat Oct 14, 2017 12:47 am
Location: England

Re: Drakan Remake by YanGez93

Post by HeckFluff »

How will the music fit into the project? Ideally, you would be using DirectMusic directly, but I suppose that might be a bit difficult with Unity. Alternatively, it would be possible to write your own version of DirectMusic (or use Wine's version?) that would also work on Linux. Microsoft has even documented the file format at https://msdn.microsoft.com/en-us/librar ... 07157.aspx. And plus, I expect that all needed instrument sounds are stored in the DLS files. The only other place that instrument sounds could come from is the default Microsoft Synthesizer.

If you're going to be worried about legal stuff, the safest option will be to have this remake load and play music from an existing Music.rrc, if it exists. Or is this remake intended to be usable without an existing Drakan installation?

If an existing Drakan installation is required, the file format of Music.rrc is the same as the file format of all other Drakan content files. You could very easily extract all models, animations, textures, sounds (voices!), and entity properties. You don't even need to do anything technical to extract the animations. The editor can display a dump window containing the node transforms for each frame of them.

And, I've looked into navigation. It seems Drakan AI simply does a check for visible waypoints within a certain distance. No navmesh or navgrid.

User avatar
Arokhs Twin
Site Admin
Posts: 1295
Joined: Wed Jul 18, 2001 9:36 pm
Location: United Kingdom
Contact:

Re: Drakan Remake by YanGez93

Post by Arokhs Twin »

HeckFluff wrote: Sat Oct 28, 2017 5:05 pm
If you're going to be worried about legal stuff, the safest option will be to have this remake load and play music from an existing Music.rrc, if it exists. Or is this remake intended to be usable without an existing Drakan installation?

If an existing Drakan installation is required, the file format of Music.rrc is the same as the file format of all other Drakan content files. You could very easily extract all models, animations, textures, sounds (voices!), and entity properties. You don't even need to do anything technical to extract the animations. The editor can display a dump window containing the node transforms for each frame of them.
I agree on this one. Sony owns the copyrights to the Drakan franchise and although I doubt they would care that someone is making a remake for free I think they would not be happy about this being a standalone game free or not. It would be best to make the remake only work if a copy of the original game is installed. I had to get permission to be able to host files although this was from Surreal Software not Sony as when the site was launched Sony didn't yet own the rights to it. In the 10 years or so since then no-one from Sony has batted an eyelid that this site exists and hosts files from the game but I understand some now defunct fan sites fell foul of their lawyers in the past.

Several youtube channels hosting music and other content from both OOTF and TAG have been 'terminated due to legal reasons' as I had these in my favorites. One only had Drakan stuff on it so my only guess is someone reported it for copyright violations. Even one that showed past multiplayer matches got shut down for reasons unknown.

Like I say they probably won't care as it's not like they are loosing game sales; it's more like an IP theft issue but even then it's an old game and it's not likely we will see another game based in the Drakan universe. If it were me though I'd be cautious and make the game only work if you own the original.
By fire and by blood I join with thee in the Order of the Flame!
Webmaster of Arokh's Lair

HeckFluff
Whelp
Posts: 24
Joined: Sat Oct 14, 2017 12:47 am
Location: England

Re: Drakan Remake by YanGez93

Post by HeckFluff »

This is a similar situation to OpenMW's. See https://wiki.openmw.org/index.php?title=Bethesda_Emails. They take the route of loading the original game's files at runtime.

Of course, for Drakan, this would create a problem where it would be impossible for the remake to reach a wider audience beyond the few copies of the game on sale, unless the remake uses completely new assets for everything (which means goodbye to Arokh's voice). Even so, there might still be IP issues.

A compromise might be possible. If the remake can load Drakan's original files, then that will also mean that it can load the same kind of files, but with remastered assets (which would also be known as "mods"). This will ensure that even if remastered assets were somehow not legally OK, the remake could still run with the original assets.

User avatar
yangez93
Dragon
Posts: 103
Joined: Wed Apr 05, 2017 9:10 am
Location: Poland
Contact:

Re: Drakan Remake by YanGez93

Post by yangez93 »

For this moment remake use nearly about 95% of new assets completely different than original Drakan I am talking about trees, terrains,rocks, player movement,input manager,gamemanager, animations,sky etc. Only some models are extracted from original models(even these extracted models could have diffrent textures, bump maping). In this remake I'll try to make new models from scratch or just to use free assets.

In copyrights matter, we can just change a little bit title for example "Draken" or name it completly difrrent. I saw some titles of movies titled "Drakan"(So they can use it:) ) But you know, OOTF is from 1999 and TAG from 2002, games are little bit outdated so I doubt that Sony will make some procedings againts this remake and I showed you only screens and some gameplays video. There isn't even*.exe file ;). To be cautious before I'll upload executable file I will change names of levels,main characters etc.

It'll be nice to upload at least demo of Wartok Canyons with flying Arokh, evil dragons and Wartoks as Arokhs Twin wrote.

It's pleasure that you express your opinions,tips, post link with models, thank you for this. Making as one man army is difficult ;) My plan is to make all levels with free assets:NPC (maybe some orks), triggers that switches from one level to another.

HeckFluff
Whelp
Posts: 24
Joined: Sat Oct 14, 2017 12:47 am
Location: England

Re: Drakan Remake by YanGez93

Post by HeckFluff »

Yes. Being the artist and programmer will take a while.

Also, there might not be a need to completely throw away the original names of everything. They could be put into a separate mod of some sort that would be enabled by default or separately downloaded, and easy to remove in case of trouble. Or course, if you use the original files directly, this wouldn't be necessary.

The name of the project is bike shedding. It's just an internal codename until you've got something to release. "OpenDrakan", "OpenOOTF", or "OpenArokh" would be obvious, but of course, IP/Trademark/whatever issues. I haven't got much idea about the legal stuff, except to just play it safe. "OpenOOTF" should be safe though. Subtitles would make it less obsure and more Googleable: "OpenOOTF: A Drakan Remake".

I'm still not sure if the project is going smoothly, or being held up by a lack of art assets. If it is, I could probably fix that with some directly extracted assets that you could use for placeholders.

A Drakan remake would be fun to do, but I'm already doing an engine reimplementation for a different game, which I would definitely not be able to complete in my lifetime if I had to do the art too. And then there's I Of The Dragon because of its clunky controls (this one is kind of funny: they actually used XOR encryption on the assets).

Want to know something else you might be interested in? There was another Unity game being made with dragons in it. /Was/. The developer has since disappeared. See the tumbleweeds at https://drakconianproject.wordpress.com/, old videos at https://www.youtube.com/channel/UCBUpWA ... BUw/videos, and the Unity thread at https://forum.unity.com/threads/dragon- ... ct.448306/.

If you think this project has any reasonable chance of completion, maybe you could post this to the various dragon related sub-reddits (there's like 3 or 4 of them for some reason). That "drakconianproject" above was also posted there. Depending on how important this is, though, wait until it's reasonably complete so that it doesn't get shot down by unusually observant lawyers. Maybe wait until you've got that demo working? Preferably when it's well-tested and noob-proof.

User avatar
yangez93
Dragon
Posts: 103
Joined: Wed Apr 05, 2017 9:10 am
Location: Poland
Contact:

Re: Drakan Remake by YanGez93

Post by yangez93 »

Thank you very much for you post HeckFluff.

You gave me idea to name it properly so we can avoid some IP issues :) "OpenOOTF: A Drakan Remake" sounds promising.

Project actually advance slowly but it keeps advance ;) As you said, it'll be neccessary to write to developers of dragon games made in Unity or other engines to ask for some help with assets,scripts,animations and AI matter. Thank you also for links, videos of this dragon game looks great and can fit perfectly to Drakan Remake.

I have created so far with my calculations:

Ruined Village (20%):
  • InnerTavern(40%)
  • Heron's Tomb(20%)
Wartok Canyons (10%)
  • Flame Sword cave(30%)
Islands(15%)
  • Goblin Base(0%)
Grimstone mines(5%)
Alwarren(5%)
Rift Crystal(5%)
Islands night(0%)
Succubus lair(0%)
Vulcano World(5%)
Rift World(0%)

The most needed features:
NPC models, Wartoks, Trolls, Dragons,Combat system,AI, walkpath, enemy detection,dragon flying animation, bones, Arokh model, dragon weapons, fireballs, Rynn model, animation,swimming and above all health system

As always, some screenshots ;)
Image
Image

Image
Image
Image
Image
Image

Image
Image
Image

Metaldrgn
Whelp
Posts: 21
Joined: Sat Sep 17, 2016 2:53 pm

Re: Drakan Remake by YanGez93

Post by Metaldrgn »

If this was being done with the Unreal Engine 4 I could help, but I don't care for Unity. If you ever decide to switch over I can try and lend a hand. I'm still fairly swamped with projects/work for roughly another year, but I've been learning on that engine and everything I read about those 2, UE4 is just better/more efficient to work with. Everything you need as far as I know is easier to do in it.

I've also been learning and using Zbrush which is a 3d modeler. Maybe later sometime I can help with some of the models/textures. I'm not just learning the program, but anatomy because I want to model some dragons. Dragons the way I want them to look.

User avatar
yangez93
Dragon
Posts: 103
Joined: Wed Apr 05, 2017 9:10 am
Location: Poland
Contact:

Re: Drakan Remake by YanGez93

Post by yangez93 »

If this was being done with the Unreal Engine 4 I could help, but I don't care for Unity. If you ever decide to switch over I can try and lend a hand. I'm still fairly swamped with projects/work for roughly another year, but I've been learning on that engine and everything I read about those 2, UE4 is just better/more efficient to work with. Everything you need as far as I know is easier to do in it.

I've also been learning and using Zbrush which is a 3d modeler. Maybe later sometime I can help with some of the models/textures. I'm not just learning the program, but anatomy because I want to model some dragons. Dragons the way I want them to look.
Who knows, maybe in near future there will be implementation Drakan Remake in Unreal Engine ;) But for me personally it doesn't matter which Graphics Engine has to do with, both Unity and Unreal Engine are comparable. You can make incredible games in Unity, you have everything you need(animator,lighting, skyboxes, occlusion culling, interface, cutscenes,terrain, mesh collider etc.). I can be helpfull when you send to me some models when you done in Zbrush, maybe Rynn with ponytail :D

I'll try to make all levels with all static objects from Drakan, made in Blender/3D Editor or just from free assets. It can be playable just by walk point to point and end game ;D(BTW. what a easy game it will be :D ) I mention it before, Drakan OOTF was easy game, authors even released patch with higher difficulty.You remember also in OOTF it was very uncomfortable to use magic crystal, especially when you haven't enough space or fight using Mourn Bringer(bloody sword) just by hitting enemies you health increase, for me powerfull weapon so you don't have to use health potions(very easy).Rynn also hasn't wide variety when we talk about animation(just by clicking fire she always do the same animation), even when she is good in acrobatics she isn't able to use that in combat.

I got impressed when Shelim released mod Drakan 10th Anniversary when he rewrite source file Drakan from DirectX 8 to DirectX 9 and added some motion blur, postprocessing effects, bump maping and I found that he even made some Dragon games, now these effects can be easily implemented in Unity. I've seen huge number of comments that fans would like someone to do remake of Drakan. So there is chance that someone can play this, make walkthrough videos and promote this remake ;)

And next matter, what about expand whole Drakan world? Some levels are very short for example Rift World(last level), this level was very disappointing for many Drakan fans, for me as well, Runeblade wasn't very usefull.Nice to make next caves/labirynths after defeating a boss so Rynn finds Delon or something like that. Arokh's Lair was also short, some traps and that's all -> And she get the dragon in easy way. Adding next caves in Wartok Canyons. When there wasn't much Wakthrough videos in internet, i got lost in caves, labirynth and quests, so thats why i love Drakan ;) Or maybe add some underwater world? Some ancient ruins, underwater quests. I'll leave this to our good Storytellers ;)

I was thinking also about respawn NPCs, when Arokh flew through whole Wartok Canyons there aren't any NPCs left, so little bit boring ;) Of course I am not fan of games based on gaining experience points,skills(like Skyrim) that means->you better because you killed 1000 spiders in cave. Better when Rynn will have better strenght after accomplish a level.

So, if you have some ideas, please write ;)

HeckFluff
Whelp
Posts: 24
Joined: Sat Oct 14, 2017 12:47 am
Location: England

Re: Drakan Remake by YanGez93

Post by HeckFluff »

The most needed features:
NPC models, Wartoks, Trolls, Dragons,Combat system,AI, walkpath, enemy detection,dragon flying animation, bones, Arokh model, dragon weapons, fireballs, Rynn model, animation,swimming and above all health system
drakconianproject's dragon is probably https://www.infinitypbr.com/?pack=dragon, but I don't know if it would fit into the world of Drakan, artistically speaking.

Anyway, I've now extracted all assets from all files. This includes:
  • Sounds as WAVs
  • Models as text and COLLADAs, for import into Blender
  • Animations as text
  • Textures as PNGs
  • Class instances/Objects (these importantly define the Rynn and Arohk characters)
  • dragon.rfl class dump
  • Action sequences (one of them defines Arohk's awakening)
  • Level layers as text (includes heighmap, triangle division, triangle walkability, texture coords, lighting config)
  • Level entities as text
This means I've now got Arohk with the original bones and textures:
Image
As well as Rynn and all the other NPCs.

For combat/AI/navigation, you probably won't need AAA-level sophistication. You can peek into Drakan's way of doing things by looking at NPC settings:
Image
Combat detection would probably come down to raycasting through the physics engine. If you want to be fancy, raycast to each body part. If you really don't want things to get in the way of fire, use a sphere cast (fat rays). This should be O(n) overall because NPCs typically don't fight eachother. If you do allow free-for-all battles, you'll hit O(n^2) time complexity, which is when it would be better to have each NPC maintain a small list of nearby enemies, to limit that quadratic complexity, which is what UT3 does. This is more likely to happen in large multiplayer battles filled with bots.

Note that you could raycast against only static geometry to speed things up, and then do a final check for friendly fire. To speed things up even more, use a room-portal system to see which rooms an NPC can see. Another method you could use is to enumerate all triangles on a navmesh that the NPC can see and then see who else is standing on them. What's more is that you can stagger all this throughout multiple frames (check X NPCs/second).

For aiming non-instant projectiles, though, you'll need a bit of math to calculate the required angles. And, you might decide to allow NPCs to aim projectiles at moving enemies behind walls/cliffs. I think UT3 does something like this. This might make those ballistas a bit more fun (to have this make sense in-universe, you could have distant NPCs actually signal to ballistas in some way).

For a navigation mesh, doesn't Unity come with an out-of-the-box system? Remember that some NPCs in Drakan are unusually large and their radius will need to be taken into account during path finding. Maybe you'll have two navmeshes. Or, you may want a navigation grid instead. Navgrids typically use repeated raycasts to get around, as far as I know, which might be better for large NPCs.

If you don't use Unity's or somebody else's navigation system, you probably have to implement your own path smoothing algorithm. One way is to raycast ahead, and another way is to use the path funnelling algorithm. For non-zero actor radius, you'll need to use circle tangents around the corners, if the navigation mesh assumes a smaller radius. Raycasting ahead is linear at best and cubic at worst in the number of triangles, and path funnelling is always linear time. Note that raycasting can be done on the navmesh itself, without involving the physics engine.

Oh, and what's more is that spiders have their special ceiling navigation, which is unusual in games. You can also see something like this in Halo CE, where those flood things just seem to wander around the geometry however they feel like. I suspect Halo CE implemented this by using the level geometry itself as a navmesh. I don't know how Drakan has done this. The level editor lacks a 3rd dimension. Maybe it uses waypoints, or maybe it's all predefined, or maybe it also uses level geometry.

If you want to be fancy you could have an in-game navigation editor like https://developer.valvesoftware.com/wik ... ion_Meshes. For bonus points, implement an algorithm to form a navigation mesh from a point cloud. This would allow you to create a navmesh or navvolume by simply walking around. Might want to play with voxels, or maybe let https://github.com/recastnavigation/recastnavigation do it all for you.

You might also want to implement "fleeing" for NPCs, because, afterall, Rynn is a power to be feared on lower difficulties. The A* pathfinding algorithm should be capable of doing this by letting the distance heuristic be the negative distance from the threat, or something like that. See https://gamedev.stackexchange.com/quest ... or-fleeing. You'll need to stop the algorithm at some arbitrary point (number of iterations and/or distance). An additional tactic would be to use hand-placed cover markers with that in-game navigation editor you just created.

For navigation performance, don't let NPCs forget their path unless they really have to. A path only becomes invalid if they stray off it or the navmesh was modified at a nearby location. One performance optimisation is to remove the start of the path instead of recalculating the path if the NPC moves to the next triangle. Another optimisation, for tracking the closest triangle, is to follow the adjacency links, instead of doing a full spatial query each frame. The optimisation for long-range pathfinding, if NPCs will ever want to, is to partition the navigation graph into strongly-connected components, and then do hierarchical A*.

You'll also need nav-volumes for flight path finding. For exterior locations, though, you could instead use heightmaps created by raycasting down from the sky, which is what Skyrim uses (or maybe they start with a sea-level heightmap and add objects to it). To make both of these methods easier, shrink the volumes, or dilate the heightmap by an NPC's radius. You would then only need to calculate paths for a flying point.

Importantly, Arohk needs some way to know where he can land, because how else can he defy Rynn's orders? Both nav-volumes and dilated heightmaps would probably work for this. You might also need a way to find the closest reachable point, rather than a boolean "can you get here?" query. For comparison, when Skyrim wants to land a dragon, it either uses one of the artist-placed landing spots, or it searches for the closest point on the navmesh that can contain a circle, and then maybe it checks the heightmap.

For really fancy navigation, use RVOs, such as http://gamma.cs.unc.edu/HRVO/. This will allow NPCs to intelligently avoid eachother if they're wandering around. Oh, and it just so happens that I really like "increased spawns" for these types of games, for the extra fun factor. So, RVO might be useful if you go down that route. And, for extra fun on high difficulty levels, apply a heavy dose of avoidance steering so that NPCs can avoid Arohk's projectiles of doom.

For a "health system", what you could do is have a number that indicates health as a fraction of some bigger value. Maybe what you meant was a dismemberment system. Drakan specifies dismemberable limbs by defining "cap polygons" for nodes that happen to be animation channels. I assume then that the model splits with duplicated cap polygons and skeletal bones.
I was thinking also about respawn NPCs, when Arokh flew through whole Wartok Canyons there aren't any NPCs left, so little bit boring ;) Of course I am not fan of games based on gaining experience points,skills(like Skyrim) that means->you better because you killed 1000 spiders in cave. Better when Rynn will have better strenght after accomplish a level.
An alternative to this is to simply have more enemies, to the point where every part of the game feels like a clusterfuck, without continuous spawning. This kind of crazy stuff makes Fallout 3 and Skyrim liable to crashing, unfortunately, which is also the downside, because this will stress-test your engine and player controls. You'll also need more sources of health to compensate, or maybe Arohk comes with some physical and/or magical armour, or maybe Arohk and Rynn can be "reincarnated" after a delay in some way as long as they don't both get killed (which probably blows a hole through the lore and would imply that they no longer share health).

About the Mourn Bringer, I tend to think it was meant to make things easier, at least against NPCs that don't use the same weapon. This could be compensated for by allowing only members of the Dark Union to have access to its full power, which would otherwise be half as effective, for example. Or maybe Arohk should be unhappy in some way if she uses such a weapon.

Morell
Dragon
Posts: 68
Joined: Sat May 11, 2013 7:15 am
Location: Czech Republic
Contact:

Re: Drakan Remake by YanGez93

Post by Morell »

Wow, that is hell of the work. :D I offered original dragon textures, just in dds foile format, but graphicaly the same. But this all, I never really had ability to dive so deep into knowledge about files. All I can say is: great job!
Alsdo I would love the models and textures for Blender import. (also with the import script if some special needed) 3D ripper 3Dscreens are freagmented and I can never rebuild with them perfect original shape from Drakan. (and I have sense for perfection a bit) Could it be possible for share, please? Would help me greatly for papercrafting.

HeckFluff
Whelp
Posts: 24
Joined: Sat Oct 14, 2017 12:47 am
Location: England

Re: Drakan Remake by YanGez93

Post by HeckFluff »

Here's the executables and partial source code:
DrakanSRSC.7z
(221 KiB) Downloaded 4841 times
If you don't mind running executables from strangers, copy the contents of the bin directory to where dragon.rfl is, and then run "DrakanSRSC_Release_x64.exe" from the command line, in its directory, to catch any error messages. This probably won't work, though, as my code is littered with assertions, and will probably find something it doesn't like, but I provide this anyway on the off chance it does work first time. Also, you'll probably need the latest Visual C++ 2017 runtime: https://support.microsoft.com/en-gb/hel ... -downloads. If you don't like running executables from strangers, use a VM. It might even work in Wine.

If it does work, the output will be created in a "Drakan Dump" directory. You'll need about 1GB of free space and you must have write permissions to the directory. It will take a while to finish because of the number of PNGs it creates.

The input is all "adb", "mod", "odb", "sdb", "txd", "ssd", and "lvl" files that have an associated "db" file. But, I know that "lvl" files don't need a "db" file, because they store their own dependency information, and this case currently isn't handled.

Output COLLADA "dae" files can be imported into Blender, but texture transparency is only partially handled. You'll need to check the Influence Alpha checkbox in the texture sidebar. For further improved look, change the shading model to "Smooth".

IDs in output files are not remapped, except for textures in the COLLADA files, so cross-database IDs have an unusable top 16-bits unless you do your own remapping.

The provided source code cannot be compiled, because it depends on a library of utility code that I won't share, but you can at least glean the file format from it.

Notable quirks:
  • The Level Editor has a buggy animation output window. The translation Z component is the same as the X component.
  • "Drakan Dump\Common\System\System [root]\Texture5208.png" has a corrupt alpha channel. This can be seen in the Level Editor by viewing the "rynn plate (m)318" model.
  • Texture animations are loosely defined. Models just store the ID of the first texture. Further textures in the animation are marked as "Next Frame" and come immediately after the previous frame in the TXD file. Only the first texture defines the frame rate.
  • Model polygons can be either triangles or quads.
  • Physics geometry? There isn't any. The engine probably uses model geometry for static entities and spheres for moving entities.
Finally, this extractor allows anybody to reimplement Drakan without any artistic skill, assuming sufficient technical prowess. And then with a modern reimplementation, these assets can be incrementally replaced over time with better looking variants.

Technical reverse engineering note: You can use https://docs.microsoft.com/en-us/sysint ... ds/procmon to see how the Level Editor deserialises the files. It does a ReadFile for each little bit of data.

EDIT: And I forgot to mention, because I've determined the file format for levels, this will allow for automated modding, like increasing the number of enemies everywhere, or removing health potions, or whatever.

Post Reply