Jump to content

Jedi Academy turned 20 this year! We celebrated in a ton of different ways: mod contest, server event, podcast, etc. Thank you to all who have been a part of this game for the last two decades. Check out the anniversary content!

Read more

Welcome to JKHub

This community is dedicated to the games Star Wars: Jedi Outcast (2002) and Jedi Academy (2003). We host over 3,000 mods created by passionate fans around the world, and thousands of threads of people showcasing their works in progress and asking for assistance. From mods to art to troubleshooting help, we probably have it. If we don't, request or contribute!

Get started

This game turned 20 years old this year, and it is still one of the greatest Star Wars games of all time. If you're new or returning from a long hiatus, here are the basics of getting started with Star Wars Jedi Knight Jedi Academy in 2023.

Read more

Setting up NetRadiant Custom for JKA


mjt

Download a release from Garux GitHub:

https://github.com/Garux/netradiant-custom/releases
 

Spoiler

this stuff is included in recent builds of netradiant-custom https://github.com/Garux/netradiant-custom/blob/readme_files/unverified_gamepacks.7z

 

And the gamepack contents from:

https://icculus.org/gtkradiant/downloads/1.5/gamepacks/ja-example-maps-2005-01-16.tar.gz

Extract the .tar.gz file using 7Zip for example so that the folder "ja-example-maps-2005-01-16.tar.gz\ja.tar\base\"

ends up being your base folder of the environment you want to map for.

You may want to use notepad++ - extract the shader files from the base assets or use the ones from the above gamepacks.

Spoiler

###StuffHiddenHereNoLongerNecessary###

Replace the the following keywords from the existing shader files or enhance your shaders so that every keyword on the left of the list below is enhanced by its counterpart on the right side of the list...

q3map_origin => surfaceparm origin
q3map_patchshadow => q3map_patchshadows
q3map_nolightmap => surfaceparm nolightmap
q3map_hint => surfaceparm hint
q3map_clusterportal => surfaceparm clusterportal
q3map_alphashadow => surfaceparm alphashadow
q3map_areaportal => surfaceparm areaportal
q3map_structural => surfaceparm structural
q3map_detail => surfaceparm detail

Especially important to do this for the system.shader!

You can use the "search in folders/files" option in notepad++ and use replace for an entire folder (shaders in this case)

Check the documentation that comes along with NetRadiant Custom from Garux, you will see what shader instructions can be used with the included build of q3map2

docs/shaderManual/contents.html
docs/Complete_list_of_shader_keywords.htm
docs/Complete_list_of_command_line_parameters.htm

Don't worry. The only relevant part of the documentation is about what instructs q3map2 to modify a surface - don't worry - undocumented stuff that is specific to JKA such as clampAnimMap and oneshotAnimMap do work of course as they are not what you have to look with regards to compatibility here - only instructions that affect how q3map2 modifies the surfaces - not the engine later on.

Extract NetRadiant Custom so I has a "netradiant-custom-DATE_OF_RELEASE" folder inside the "netradiant-custom-win64" folder you can place about anywhere you want.

Spoiler

spacer.png

I'll share my template adaption of the unverified_gamepacks ja.game package so you can extract this alongside radiant and overwrite the existing files.

I've customized the compile options as I didn't feel the need for the original variations anymore with more sophisticated q3map2 features in use.

Spoiler

 

<?xml version="1.0"?>
<project version="2.0">
<var name="bsp">&quot;[RadiantPath]q3map2.[ExecutableType]&quot; -v<cond value="[MonitorAddress]"> -connect [MonitorAddress]</cond> -game ja -fs_basepath &quot;[EnginePath]&quot;<cond value="[GameName]"> -fs_game [GameName]</cond></var>
<var name="light">&quot;[RadiantPath]q3map2.[ExecutableType]&quot; -v<cond value="[MonitorAddress]"> -connect [MonitorAddress]</cond> -game ja -fs_basepath &quot;[EnginePath]&quot;<cond value="[GameName]"> -fs_game [GameName]</cond> -light</var>
<var name="vis">&quot;[RadiantPath]q3map2.[ExecutableType]&quot;<cond value="[MonitorAddress]"> -connect [MonitorAddress]</cond> -game ja -fs_basepath &quot;[EnginePath]&quot;<cond value="[GameName]"> -fs_game [GameName]</cond> -vis</var>
<build name="Q3Map2: (single) BSP -meta">
<command>[bsp] -meta &quot;[MapFile]&quot;</command>
</build>
<build name="Q3Map2: (single) BSP -meta -v -v -verboseentities -maxarea -threads 6">
<command>[bsp] -meta -v -v -verboseentities -maxarea -threads 6 &quot;[MapFile]&quot;</command>
</build>
<build name="Q3Map2: (single) -vis">
<command>[vis] &quot;[MapFile]&quot;</command>
</build>
<build name="Q3Map2: (single) -vis -saveprt -v -v -threads 6">
<command>[vis] -saveprt -v -v -threads 6 &quot;[MapFile]&quot;</command>
</build>
<build name="Q3Map2: (single) -vis -merge -saveprt -v -v -threads 6">
<command>[vis] -merge -saveprt -v -v -threads 6 &quot;[MapFile]&quot;</command>
</build>
<separator/>
<build name="Q3Map2: (light) Forced1024Lightmapsize -light -patchshadows -v -v -brightness 1.25 -exposure 250 -gridscale 4 -lightmapsize 1024 -nocollapse -nolightmapsearch -threads 6 -export -external">
<command>[light] -patchshadows -v -v -brightness 1.25 -exposure 250 -gridscale 4 -lightmapsize 1024 -nocollapse -nolightmapsearch -threads 6 -export -external &quot;[MapFile]&quot;</command>
</build>
<build name="Q3Map2: (light) Forced1024LightmapsizeFiltered -light -patchshadows -v -v -brightness 1.25 -exposure 250 -gridscale 4 -lightmapsize 1024 -samples 4 -super 2 -filter -nocollapse -nolightmapsearch -threads 6 -export -external">
<command>[light] -patchshadows -v -v -brightness 1.25 -exposure 250 -gridscale 4 -lightmapsize 1024 -samples 4 -super 2 -filter -nocollapse -nolightmapsearch -threads 6 -export -external &quot;[MapFile]&quot;</command>
</build>
<build name="Q3Map2: (light) ExternalLightmappingMadeEasy -light -patchshadows -v -v -brightness 1.25 -exposure 250 -gridscale 4 -nocollapse -nolightmapsearch -threads 6 -export -external ">
<command>[light] -patchshadows -v -v -brightness 1.25 -exposure 250 -gridscale 4 -nocollapse -nolightmapsearch -threads 6 -export -external &quot;[MapFile]&quot;</command>
</build>
<build name="Q3Map2: (light) BounceOnlyTest -light -patchshadows -v -v -bounceonly -bounce 4 -bouncescale 4 -bouncegrid -brightness 1.25 -exposure 250 -gridscale 4 -nocollapse -nolightmapsearch -threads 6 -export -external">
<command>[light] -patchshadows -v -v -bounceonly -bounce 4 -bouncescale 4 -bouncegrid -brightness 1.25 -exposure 250 -gridscale 4 -nocollapse -nolightmapsearch -threads 6 -export -external &quot;[MapFile]&quot;</command>
</build>
<build name="Q3Map2: (light) Radiosity -light -dirty -dirtdepth 4 -dirtmode 0 -dirtscale 4 -patchshadows -v -v -brightness 1.25 -exposure 250 -bounce 4 -bouncescale 4 -bouncegrid -gridscale 4 -samples 4 -super 2 -filter -nocollapse -nolightmapsearch -threads 6 -export -external">
<command>[light] -dirty -dirtdepth 4 -dirtmode 0 -dirtscale 4 -patchshadows -v -v -brightness 1.25 -exposure 250 -bounce 4 -bouncescale 4 -bouncegrid -gridscale 4 -samples 4 -super 2 -filter -nocollapse -nolightmapsearch -threads 6 -export -external &quot;[MapFile]&quot;</command>
</build>
<separator/>
<build name="convert to .ASE">
<command>[bsp] -convert -format ase -shadersasbitmap &quot;[BspFile]&quot;</command>
</build>
<build name="convert to .OBJ">
<command>[bsp] -convert -format obj -shadersasbitmap &quot;[BspFile]&quot;</command>
</build>
<separator/>
<build name="make .pk3">
<command>[bsp] -pk3 &quot;[BspFile]&quot;</command>
</build>
<build name="make .aas">
<command>[mbspc] -forcesidesvisible -optimize -bsp2aas &quot;[BspFile]&quot;</command>
</build>
<separator/>
<build name="ScaleMap8">
<command>[bsp] -scale 8 &quot;[BspFile]&quot;</command>
</build>
<build name="ASE Shaders">
<command>[bsp] -convert -format ase -shadersasbitmap &quot;[BspFile]&quot;</command>
</build>
<build name="ASE Lightmaps">
<command>[bsp] -convert -format ase -lightmapsastexcoord -shadersasbitmap &quot;[BspFile]&quot;</command>
</build>
</project>

Inside the archive will be my preferences and modified compile commands. The original ones can be found in the unverified gamepacks if you want to see it. However look at my zip file so you know where your files should end up incase you want to build this yourself...

The file linked to this post is to be found here: 

 


User Feedback

Recommended Comments

 

On 7/3/2020 at 11:49 PM, mjt said:

Download a release from Garux GitHub:

Why should we use this over GTKRadiant again?

Link to comment
On 7/5/2020 at 12:20 AM, Aldro Koon said:

 Why should we use this over GTKRadiant again?

I wonder where I said you should ? Just providing another option here, because I really have grown fond of this tool over Radiant 1.6.6 because of its advanced BobToolZ plugin for Patchmeshes and the new patch primitives. I also like to compile with the version of q3map2 it brings along. Thinking about it, I will now edit the post again to include what I did to get that to work properly.

Granted it's a bit of effort but nothing special.

Aldro Koon likes this
Link to comment

Folks who checked this out, beware that I have occasionally updated this topic to include my latest findings with regards to mapping the q3map_ parameters in the shaders to their surfaceparm counterpart...

Link to comment

Just updated the instructions - shader editing no longer necessary during setup

Link to comment

ok haven't mapped in 4 or 5 years.

First question: is this thing 32 bit or 64 bit. should it be in program files on windows (64 bit) or x86 (32 bit)?

second question.

What's the point of the gamepack step of adding it? does it not just reference the installed jka game?

Link to comment

I usually just extract to the desktop or wherever tbh. Doesn't really matter I think.

 

I believe the gamepacks just add extra things like example maps and shit.

Link to comment

NRC gamepack only has  entity definitions and build menu configs.

I was suggesting installing the assets from the original JA SDKs for shaders, editor relevant textures and so on. Those are not included in the NRC gamepacks.

Link to comment
On 7/13/2023 at 12:11 AM, mjt said:

I wonder where I said you should ? Just providing another option here, because I really have grown fond of this tool over Radiant 1.6.6 because of its advanced BobToolZ plugin for Patchmeshes and the new patch primitives. I also like to compile with the version of q3map2 it brings along. Thinking about it, I will now edit the post again to include what I did to get that to work properly.

Granted it's a bit of effort but nothing special.

I guess I was just assuming & hoping there was something borderline groundbreaking that puts its ahead of GTKRadiant but OK good to know, thanks!

Link to comment


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...