Announcement

Collapse
No announcement yet.

Project to add more map formats to Quake

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • ChaosEsqueEd
    replied
    Wanted formats:
    1. Unreal 1997/ Unreal Tournament 1999: This format is a nice BSP format: the maps are not high poly, but they are well made and fun. C++ code has been found that could be studied and used after re-wrighting the ideas in darkplaces. A difficult task beyond our reach sourceforge.net/p/chaosesqueanthology/tickets/2/
    2. GoldenEye007 Remake format: Source/VBSP: We would like to play the new golden eye maps that depict Soviet Russia (and now Putin's Russia). These glorify Russia as an extreme superpower with simply faded and meloncholy glory. We would like the bask in the light of the red star, again. sourceforge.net/p/chaosesqueanthology/tickets/5/
    3. DesignIt3d! Format (1995): This is a fun format which captured our heart when you could go to the store and buy great software that didn't phone home and was yours. An innovative time destroyed by the internet, opensource, and idealogues that don't believe you own anything. No one makes just good software anymore that is honest and fun. Because 1) there is no money in it; and 2) even if you do it for free (opensource) you get kicked in the face and kicked out: some womn/etc is more important that actual work you did. Russia just learned this. *
      https://winworldpc.com/product/design-it-3-d/10
    4. PlanetSide2 Format : Might be nice to run around in planetside2 maps. Yes the engine can handle it, chaosesque generates bigger city maps
    5. Native BZFlag Format from 2003/2008 etc: the old BZFlag format is a nice format to program text-editor-made maps in. Would be nice to support it.
    6. PhantastyStarOnline Format: So the FistOfTheNorthStar can be completed
    7. MM3d format: So the anime girls can be displayed (this isn't a map format tho... but there could be a mode where one uses them as a map, scaling them 48 times or so)
    8. SimCity2000 format: This would be a psudo format: IE load the numbers of the tiles into an array: one for the tiles themselves, another 128x128x array for the heightmap, another for the underground, and maybe another for water or foliage, however it's done. Found some lua code that does it. ChaosEsqueAnthology allready has alot of building models and tiles (with interiors) that can be used for this. The reason it hasn't been attempted in QuakeC yet is 1) runtimeencoding 2)we ran out of globals.(every "blablabla" is a global, makes coding ... not as carefree as it used to be before we ran out. Even the number 1, 2, 3, 4 etc is a global in QuakeC: so when we compare against a new number we waste another global. There are ways around this. IE setting to a number we allready "have" then after than +1 on the variable. The simcity2k format uses things like "128EX" or so to tell you what is in the tile. So you have to parse all that. And we've simply run out of strings we can save in the QC code.

    Leave a comment:


  • ChaosEsqueEd
    replied
    Completed vs Wanted formats:
    Wolfenstine Enemy Territory This is the first addition our illustrious TEAM completed. This format was rejected from Darkplaces 10, 15, 20? years ago when asked. Reason being "Too easy, we could do it in 2 seconds". The challenges here were multifaceted: the BSP number is the same as Quake3ArenaOnlineWithAdvertisements(Quake3Live). Just as Quake3 is an extended Quake1 BSP map format, the Wolfenstine Enemy Territory format is an extended Quake3 format. It took about a month of continuous C hacking to get it working nice. There were various pitfalls. The first one was the self-referential shader additions. Others were the in-bsp-header fog information, and then some other data types and such; some of which were seemingly unused in most maps but you had to deal with them. It was wonderful once everything got working and wasn't crashing any more. This opened up 600, maybe 1000 maps to ChaosEsque Anthology. Not that anyone cares. But we do. Beyond the engine: alot of QuakeC work had to be done to get these maps working fairly well.
    Quake3Live (online advertisement one) This was added right after Wolfenstine Enemy Territory BSP: it turns out these maps always come with a Quake3Live specific file: which could be used to know if you were loading a Q3live format bsp.
    TrueCombat:Elite This is a Wolfenstine Enemy Territory format, but additional quakeC had to be added and also in the engine more shader work as they do things differently shaderwise than Wolfenstine:Enemy Territory
    Obj as Map Here we extended the obj code so you could use any arbitrary OBJ as a map in it's own right. Or so we though. We found out that each application and game has a different "Idea" of what an Obj is. the extension .obj_from_mc is what is used here
    MineTest Obj Export (.obj_from_mc) We had to somewhat parse the texture names for this format, and scale (by default) to 48 or so. This matches the minectf conversion. This format also works for minecr*ft. We supply opensource textures and shaders for minetest exports. The maps we've exported work. They're fun. Alot of QuakeC had to be done to attept to place good spawn points when none were detected.
    BZflag Obj Export (.obj_from_bz) BZFlag had it's own idea of what an obj file was. It was not something that was understandable to DarkPlaces. Took days to find something that brought happiness to what BZFlag thought was an obj file.

    Leave a comment:


  • ChaosEsqueEd
    replied

    Model_brush.c is the main file where new map and model formats are parsed: https://sourceforge.net/p/chaosesque.../model_brush.c
    An example one is void Mod_OBJ_Load on line 7562. Which loads the triangle data for an obj file (loads the vertex and then the face data).
    It would be nice to load the .unr map type too. These usually contain much less triangle data than any object file: but they are and were high quality maps and were fun.

    Then a line is added in Model_shared.c to let the engine know that format is now parsable and what subroutine to use: https://sourceforge.net/p/chaosesque...model_shared.c

    An example of this is in Mod_LoadModel, the on line 575 if (!strcasecmp(FS_FileExtension(mod->name), "obj")) Mod_OBJ_Load(mod, buf, bufend); . Which tells the engine if the file extension is .obj to execute Mod_OBJ_Load.
    There are also .h files for both to add the headers of any new subroutine or global variable used.
    There is C++ code to load .unr files here: https://sourceforge.net/p/chaosesque...source.tar.bz2

    But our engine is C.

    Leave a comment:


  • ChaosEsqueEd
    replied
    We posted various things we found out about the model formats here:
    * sourceforge.net/p/chaosesqueanthology/discussion/general/thread/72c4ff80c1/
    *

    Leave a comment:


  • ChaosEsqueEd
    replied
    Model_brush.c is the main file where new map and model formats are parsed: (example: * sourceforge.net/p/chaosesqueanthology/code-t3d_attempt_engine/ci/master/tree/model_brush.c )

    We bought over some of the VBSP attempt stuff Cloudwalk did for darkplaces some years ago, but he never finished:
    * sourceforge.net/p/chaosesqueanthology/tickets/5/attachment/darkplaces_workingon_mar_02_2024_t3dfuncatendof__m odel_brush_c_vbspcarryoverattempt_SOURCEONLY.zip
    These efforts can be browsed here: https://sourceforge.net/p/chaosesque...i/master/tree/
    and the t3d investigation here: https://sourceforge.net/p/chaosesque...i/master/tree/

    Leave a comment:


  • ChaosEsqueEd
    replied
    We researched abit these map formats and found some opensource code in other languages that deals with them; C++, lua. And we uploaded that code here and example maps. If anyone could help ... that would be cool:
    * sourceforge.net/p/chaosesqueanthology/tickets/5/ (Please help: VBSP loading )
    * sourceforge.net/p/chaosesqueanthology/tickets/2/ (Unreal map format wanted)


    For Unreal loading the best resource seems to be this:
    https://github.com/assimp/assimp/blo...realLoader.cpp (BSD license)
    For VBSP it seems to be this:
    https://github.com/fte-team/fteqw/bl...hl2/mod_vbsp.c
    (pointed out by mastersrp )

    If these could be ported over, that would be cool.
    I know no one reads these posts.

    Any other map formats would be cool too.

    Leave a comment:


  • ChaosEsqueEd
    started a topic Project to add more map formats to Quake

    Project to add more map formats to Quake

    Dear Quake _FANATIC_ (that is: You are INSANE for QUAKE!!!!!!!!!!!!)

    Please accept this invitation to take your C programming skills (or ANY programming skills, or just any skills, or money skills if you have them (so as to purchase an outside programmer perhaps from Eastern Europe for their skills as an artist)) and donate these skills to be sacrificed on the alter of Quake.

    As we enter WW3 (and yes that was a nuclear explosion in Toropets, Tver oblast of Russia, of around 15 kilotons, on the night of sep-17/18 2024): a question arises
    >What is the best use of my time?
    >Should I use months of my time to implement more map formats for quake?

    We wish to maliciously convince you that before you skin is burned away by an atom bomb or even a two or three stage strategic warhead; that you should take your forshortened remaining time and give it, for free, to us. In the furthurance of more map formats for Quake

    It's the opensource way.

    Now some years ago we implemented the Wolfenstine Enemy Territory map and shader format in our copy of the Darkplaces RIP OFF of Quake (known as a fork, but Darkplaces pretends it's some stand alone engine these days); our work was rejected by Darkplaces because we have beliefs that the Darkplaces people do not like.

    But they'll be dead in WW3 too so who cares what they think
    And we didn't submit our changes: they just told us on IRC that they would never accept anything we did because of our beliefs.
    Remeber when Opensource was all about the code and not about belief?

    I do.
    Xonotic is the same: threw multiple people out because of belief.
    These opensource projects are becoming enemies.
    And we will have to pay them back.

    Remeber: They take from you for free: years of your life.
    Then they kick you out while keeping your work.
    Violating the agreement you made earlier which was freedom-of-speech show-us-the-code only-merit-matters.
    If you didn't have that you wouldn't have worked for freeeeee.
    So there is an implicit agreement there and everyone knew it.

    They have violated it.
    Linus has.
    Darkplaces has.
    Xonotic has.

    And they should remember: the most costly price is free.
    You can throw out a paid employee as you wish. He usually won't fight you.
    But no one will forget when you accept their work for free, under the banner of freedom-of-speech, merit, and show-us-the-code .
    (Your going to f____ d__.)

Working...
X