Hello. I'm new to the forum (but not new to Irrlicht).
It turns out that I'm very deep into an Irrlicht-related project. Since this IS the official Irrlicht forum, I thought I'd share it with you guys.
I love some of the old retro's, one of which is Hexen II (most likely my favorite).
I decided about two weeks ago to rewrite its rendering code for Irrlicht. After days and days of banging my head, I finally have some worthy results.
Currently, it has no menus and no GUI. As for rendering everything else, it converts the data to Irrlicht-compatible formats.
Quake 1 MDL to Quake 2 MD2.
Quake 1 BSP to OBJ and MTL files.
Textures to uncompressed DDS files (see below).
I'm currently using a version of the Irrlicht engine with DDS support compiled in, but only if they're uncompressed. That's for legal reasons. (And because it's simpler, at the cost of using more space.)
Also keep in mind that the game only does conversions when it detects files are missing. Wouldn't want it to rewrite the data every launch.
As you can see, it's not anywhere near done. It also has an annoying sheep that you can hear across the map.
Plans:
-Improve lighting (make it modern).
-Splitscreen multiplayer.
I was going to post a video, but the post editor says that urls are turned off. Let me know if there's no rule against it, and I'll share.
EDIT:
http://www.youtube.com/watch?v=reOLS6L7uBw
Hexen II + Irrlicht
Hexen II + Irrlicht
Last edited by Adolif4 on Mon May 06, 2013 3:28 pm, edited 3 times in total.
-
- Admin
- Posts: 14143
- Joined: Wed Apr 19, 2006 9:20 pm
- Location: Oldenburg(Oldb), Germany
- Contact:
Re: Hexen II + Irrlicht
There are no rules against links, you only have to have more than one post before you can add links (to prevent easy spamming).
Why did you convert the meshes? Irrlicht supports both bsp and mdl, or do you use a very old Irrlicht version?
Why did you convert the meshes? Irrlicht supports both bsp and mdl, or do you use a very old Irrlicht version?
Re: Hexen II + Irrlicht
It's likely these formats are older versions - irrlicht's bsp is for q3 and mdl for half-life, I don't think either is able to load earlier versions of these.
edit: HL was actually a fork of Q1, I remembered wrong. So the MDL loader probably would work, or there might be some customization by either Valve or Id.
edit: HL was actually a fork of Q1, I remembered wrong. So the MDL loader probably would work, or there might be some customization by either Valve or Id.
Re: Hexen II + Irrlicht
@hybrid
Very well. Link added. Edit: I use 1.8.
@hendu
Correct (the edited part). MDL is (almost) exactly the same as MD2. Unfortunately, Irrlicht can't seem to load the MDL models without assuming they're Half-Life models and failing. The differences between MDL and MD2 include:
-Vertices can have two sets of UVs/STs
-Triangles are split into two categories: "backfaces" and "frontfaces."
Width-wise, backface triangles use the second half of the texture, and frontfaces use the first. I had trouble getting this to work with the converter at first, so the converter has a quick and dirty hack to solve the issue. It duplicates the vertices and makes backface triangles reference the duplicates.
In addition, Raven added a special version of the MDL format for Hexen II. The code supports them too.
As for BSP, I couldn't seem to produce valid Quake 3 BSPs from the Quake 1 BSPs due to lack of important information. So it dumps the vertex, face, and texture reference data to the wavefront format.
Very well. Link added. Edit: I use 1.8.
@hendu
Correct (the edited part). MDL is (almost) exactly the same as MD2. Unfortunately, Irrlicht can't seem to load the MDL models without assuming they're Half-Life models and failing. The differences between MDL and MD2 include:
-Vertices can have two sets of UVs/STs
-Triangles are split into two categories: "backfaces" and "frontfaces."
Width-wise, backface triangles use the second half of the texture, and frontfaces use the first. I had trouble getting this to work with the converter at first, so the converter has a quick and dirty hack to solve the issue. It duplicates the vertices and makes backface triangles reference the duplicates.
In addition, Raven added a special version of the MDL format for Hexen II. The code supports them too.
As for BSP, I couldn't seem to produce valid Quake 3 BSPs from the Quake 1 BSPs due to lack of important information. So it dumps the vertex, face, and texture reference data to the wavefront format.
-
- Admin
- Posts: 14143
- Joined: Wed Apr 19, 2006 9:20 pm
- Location: Oldenburg(Oldb), Germany
- Contact:
Re: Hexen II + Irrlicht
Ah, thanks for the info.
Re: Hexen II + Irrlicht
It trunk from svn you can use compressed dds textures, without any problems and special compilation flags.
Library helping with network requests, tasks management, logger etc in desktop and mobile apps: https://github.com/GrupaPracuj/hermes
Re: Hexen II + Irrlicht
Yes, but there's a patent on the compression method. I just want to play it safe.
Re: Hexen II + Irrlicht
In trunk we use patent-free method. Only decompression mechanism is covered by patent, thats why in trunk we use native dds formats without software decompression (GPU decode it inside). In v1.8 and older Irrlicht versions we didn't have support for compressed textures, thats why we had to use decompression mechanism for DDS textures, but this method wasn't patent free. In trunk you can switch from patent free solution (with fully compressed textures support) to old non-free (patent) version (without compressed textures support - compressed textures are converted to uncompressed) if you enable "_IRR_COMPILE_WITH_DDS_DECODER_LOADER_" flag in IrrCompileConfig.h (this flag is default disabled).
It looks like currently you use non-free (patent) solution, so if you want to use dds textures safely just switch to trunk and leave "_IRR_COMPILE_WITH_DDS_DECODER_LOADER_" flag disabled.
It looks like currently you use non-free (patent) solution, so if you want to use dds textures safely just switch to trunk and leave "_IRR_COMPILE_WITH_DDS_DECODER_LOADER_" flag disabled.
Library helping with network requests, tasks management, logger etc in desktop and mobile apps: https://github.com/GrupaPracuj/hermes