ETlaunch

Community Forums/Showcase/ETlaunch

Krischan(Posted 2015) [#1]
My new project is a Launcher for the old, free game Return to Castle Wolfenstein: Enemy Territory (2003) which is still the best multiplayer egoshooter game I know. One could think it is dead but there are current projects ongoing like the superb ET: Legacy which is a fully compatible 2.60b Client and Server with purified code base, but still has some nasty bugs. But i'm watching this project.

I'm currently working on a Special Edition of the standard W:ET 2.60 game which includes a fully configured NoQuarter 1.2.9 + OmniBot 0.85 environment. I'm able to play together with up to 63 bots like in the good old times with real humans like the Marketgarden Map on the jolt.co.uk servers, ahh the good old times. It's not the same but it really makes fun. What has it to do with Blitzbasic?

Well, starting with a single Batch file to launch multiplayer maps I was very disappointed with its handling and started to code a very simple launcher in Blitzmax+MaxGUI. And now, after two weeks with no sunshine it has grown to a larger project including miniB3D and full of features I wanted to include.

The new launcher called "ETlaunch" is capable of

- parsing a separate maps collection folder with hundreds of custom maps
- read the map information and briefing from the arena files
- nice GUI with new designed, bloody Campaign map, Levelshot and Commandmap
- show the location on the Campaing map
- show the time limit of the map
- comfortable list selection
- filter maps by 20 (!) categories - want to invade a beach? no problem
- database with manual preset filter categories for over 200 maps
- displays if the map is being supported by the current Omnibot version
- rendered preview of the selected map
- rendered preview of spawn locations, objectives, cabinets and tank/truck splines
- select resolution / graphics mode
- select number of Bots to play with
- included (!) etkey generator
- and of course: launch the map!

The launcher copies a single PK3 map from your map collection repository in the etmain folder to keep the PK3 data low there (to have only one custom map there prevents the evil MAX_GAMESTATE_CHARS exceeded error when playing with 63 bots on maps with many entities), launches the game with the NQ+OB mods and deletes the file again from the etmain folder. Simple but effective.

Screenshot:


I wrote it mainly for myself but I think it became so good that I should share it with all, the source could be interesting too as it is a fully documented Blitzmax+MaxGUI+miniB3D project with some miniB3D/OpenGL hacks I had to find out. It works quite good but I have to cleanup some messy code first and include a Config file handling to customize the interface before I'll release a final 1.0 version, ideally together with my Special Edition. The goal is that everything needed is put in a single ZIP file and you just copy the large (300MB) PAK0.PK3 from the original game in the etmain folder and everything runs fine even from a USB stick.

But I still have some problems with the BSP preview renderer and could need some help here. I'm able to parse the mesh geometry and the model geometry (Type 1 and 3) but I'm stuck with the curved bezier patches (Type 2). I've separated the Loader in a demo you can play with. I've included a C source which is able to parse and convert a BSP to a VRML file but I don't understand it. Perhaps somebody here can spend some time and complete my source. It's not important but it's not complete without curved surfaces :-(

The function where the curved surfaces should be processed is the method "Q3BSP_AssembleModel()". There is a Select...End Select section with the types 1+3. Included is the original Goldrush map from ET but feel free to experiment with all other BSPs from Quake 3, RTCW and ET - they should work fine.

Screenshot ETloader: the famous Goldrush map of ET in X-Ray style


Here's the download for the ETloader: ETloader.zip

Use mouse buttons to speed up and switch between 3 render modes. Keys 1-9 zoom. Additional, here is the source of the loader:



stayne(Posted 2015) [#2]
This is cool...but Christian maybe you could make a game? You have an amazing talent. I don't understand why you are not working on a game.


Krischan(Posted 2015) [#3]
I would like to create a game but either I'm always too busy with other work or I want to work further on my game project in my vacation like in the past two weeks (which is still in design/research stage which is a boring stage of a game project as you don't see any progress) and then - well you see here how a tiny "disappointment solution" grows and grows and then I can't stop working on it until it is really good.

And it is not even finished after two weeks and I've been working on it every single minute I could free. It takes an enormous amount of time to create a whole game, this is only a small app. My game design document has only 5 pages right now, and that's only a rough survey.


wmaass(Posted 2015) [#4]
Hey I lived in Wurzburg for a time!


Krischan(Posted 2015) [#5]
:-) But "Würzburg Radar" is here at the wrong position, it should be slightly above the "B" of "Bavaria". But that's the level designer's fault - it only shows how exact my position algorithm works ;-)


stayne(Posted 2015) [#6]
I lived in Bitburg 1995-2000. K-town was fun!


Hezkore(Posted 2015) [#7]
Hey nice work!
But what's really exciting here is the BSP loading.
I've been on here whining about no good way to make levels, and here you've got BSP map loading working.
So many questions...
Do you think you'll ever complete this?
Why not make the BSP loading an open-source module?

I've managed to get texture loading working.
And fixed a few random bugs and typos.
It's also been converted into SuperStrict code.



Is there a reason that texture names don't have a file extension?
Seems like a waste of time having to guess if it's a TGA, PNG or JPG.

Thanks for sharing anyways!
Really interesting stuff.


Krischan(Posted 2015) [#8]
Yes, I'll complete this. Currently I'm adding maps to my local database and finetune the textures of the Special Edition, the ETlaunch application itself is finished and works like expected (excluding the curved surfaces, see my initial post). But anyway, here is a sneak preview demo, just fill the maps folder with your PK3 collection of Q3/RTCW/ET maps (or just copy the pak0.pk3 of ET there) and you can see alle the maps in Xray style as long as the BSP name inside the PK3 matches the PK3 file name! Launching doesn't make sense in this preview without my NQ+Omnibot Special Edition installation which is not finished yet and too large to upload for a preview:

ETlaunch_preview.zip

Start "ETlaunch.exe"
RMB on filters resets filters
RMB in BSP preview style switches render modes
SPACE stops/starts autorotation
click on star or double click on mapname on the right side would start the game

And if you're interested in a complete "Superstrict" BSP parsing Type, here is my extended BSP loader which I've created a year ago for my own RPG level test based on a map built with NETradiant. It has some additions regarding the entities but you can modify it for your own needs very easy. This one has full texture/lightmap support including DOT3 normal maps (beware: external lightmap support only!) and I only rewrote and deleted some parts for my ET BSP map preview loader. The demo there comes with full source.

And for BSP it is important to check which file extension a texture has as you never know in Q3/RTCW/ET maps if it is TGA or JPG extension (the extension is never stored in the BSP as it could be a shader, too). If you use your own level format/parsing you can skip this if they are all TGA, JPG or PNG.




Hezkore(Posted 2015) [#9]
Seems like there are some missing functions in the last BSP loader.
Like HardLight() GetR() CombineARGB LoadTexturePixmap() etc.

UPDATE: Found them in the ORCS demo.


Krischan(Posted 2015) [#10]
Yes, I only copied it from the ORCS demo, these are only filters for my own lightmap postprocessing. Did you solve the processing of curved surfaces in your own work? If yes please share it :-) By the way, here is a technical information about how to render BSP maps and the BSP format:

Rendering Quake 3 Maps
Unofficial Quake 3 Map Specs


Hezkore(Posted 2015) [#11]
Sadly I'm no good with 3D in general.
But I'm trying to make a clean demo (from ORCS source) showing the problem, which I'll pass along to a friend of mine who I think might be able to help.
I'll of course share whatever comes out of this.


Hezkore(Posted 2015) [#12]
The ORCS source seems to be different in a few ways to the other BSP loader.
With the ETlauncher one I could for example load huge levels without much problems, but I keep getting "Maximum Vertices reached! Stopping Program!" with the ORCS one.
Infact only 1 out of the 15 or so custom maps I've tried has worked.
While all 15 worked with the ETlauncher BSP loader.

UPDATE: I've managed to get it working.