Pages: [1]
  Print  
Author Topic: Dumping of compiled maps in the SVN  (Read 5369 times)
fromhell
Administrator
GET A LIFE!
**********

Cakes 31
Posts: 14480



WWW
« on: July 11, 2009, 06:42:39 am »

Should I do this? I mean, deleting all the generated BSPs we have now in the /maps, and having .bat/.sh files that generate them (back into the svn, no i'm not changing the whole pak building process and most importantly i am not removing maps). I hope it would encourage that whole build script thing I wanted to do.

bat/shs would be placed in the maps source folder.
Logged

asking when OA3 will be done won't get OA3 done.
Progress of OA3 currently occurs behind closed doors alone

I do not provide technical support either.

new code development on github
bill-----
Half-Nub


Cakes 8
Posts: 60


« Reply #1 on: July 11, 2009, 08:55:25 am »

on the plus side: 
You'd know that the .bsp was generated from the .map, Has there been
much problem with mismatched .map and .bsp files?  Knowing that everything can
be regenerated from source, and there's no hidden 'gotchas' in the tree would be a Good Thing.

on the challenge side: 
You'd have to pick the correct compile program and compile options. 
Don't know how long it would take to compile them all, but I'd guess it'll take a while, and
require non-trivial CPU and memory.  Comparison and verification of function and appearance
will also be non-trivial, and probably can't be done automatically.  A community effort.

on the negative side: 
In the unlikely event that a map won't compile or doesn't work like the
original, you'd have to decide whether or not to make an exception or take on the task of
correcting problems.

Knowing you can or knowing why you can't is better than not knowing.

Logged
cosmo
Member


Cakes 18
Posts: 372


on a dead horse


WWW
« Reply #2 on: July 13, 2009, 03:31:33 am »

Not a good idea: high quality lightmaps require 10+ hours of compile time on Quadcore CPUs with 4GB RAM. You do not want to go through this, do you? Some q3map2 versions tend to segfault, others do not, regarding to compile options.

Think about this: Ban Quark from the mapping tool list because it generates mapfiles not being readable by radiant. I have not tried converting mapfiles with q3map2 so far.
Logged

- HUNT HIGHSCORES - mapping - xmpp://cosmo@spaceboyz.net
Neon_Knight
In the year 3000
***

Cakes 49
Posts: 3658


Trickster God.


« Reply #3 on: February 05, 2014, 07:09:07 pm »

Bump!

Considering the reboot, I guess this would be a good idea, especially if you're searching for a new SVN. I have already a basic .sh compile script. And my q3map2build folder has the .bat files for each map I worked on, though I have to sincronize them.
Logged


"Level Designers are 1 part architect, 1 part artist, 1 part game designer, and 1 part beta tester!" Cliff Bleszinski
Want to contribute? Read this.
pelya
Member


Cakes 6
Posts: 395


WWW
« Reply #4 on: February 09, 2014, 08:17:42 am »

I think that the map build script should be a part of OA3, with a requirement that any new map can be compiled with it, if screw-ups in OACMPv1 caused by mismatching map build tools taught us anything.
At the very least, the script should update shaderlist.txt with new shaders from each new map.
Logged
Neon_Knight
In the year 3000
***

Cakes 49
Posts: 3658


Trickster God.


« Reply #5 on: February 09, 2014, 11:21:26 am »

I would also recommend not using the default editor options, but rather compilation scripts and the latest versions of Q3Map2 and BSPC. We didn't made the DO NOT LINK) h t t p s : / / openarena . wikia . com/wiki/Mapping_manual/Compiling_and_packaging]Compiling & packaging[/url][/b] page for nothing.

And also use good building techniques. If there's anything we have learn with OACMPv1 is that bad building techniques equals to tons of headaches.
Logged


"Level Designers are 1 part architect, 1 part artist, 1 part game designer, and 1 part beta tester!" Cliff Bleszinski
Want to contribute? Read this.
sago007
Posts a lot
*

Cakes 62
Posts: 1651


Open Arena Developer


WWW
« Reply #6 on: February 15, 2014, 06:37:34 am »

I do think it is a good idea however to make it work would require some help tools of sort.

First of all multiple versions of map-compilers may be needed. Even if a map works as intended on the latest compile may not necessarily mean that it works fine on future map-compilers.

Furthermore a number of standard compile scripts should be available for map makers. Some that you just drag-and-drop the map file onto and then a short while later gets a pk3-file that can then be tested. Then a map-maker would not have to think about compile switches other than reporting the standard compile script that gave the wanted result.

The main difference between the compile script would properly be lightning related (floodlight for instance). Perhaps a fastvis for space maps.

A build.xml for Radiant editors should also be made with standard switches so that the bat-script have a maximum probability to work in the first go.
Logged

There are nothing offending in my posts.
Neon_Knight
In the year 3000
***

Cakes 49
Posts: 3658


Trickster God.


« Reply #7 on: February 15, 2014, 07:09:52 am »

Here's the script I was using while I mapped on Linux. I should update it. Also, a BAT version of it would be welcome.

Code:
#!/bin/sh
#init

# Switch 1 - What to do?
# - compile - Compiles the map with my settings.
# - compilenovis - Compiles the map without the VIS stage. Use this one if the map doesn't really need the VIS stage. (i.e. simple space map such as oa_ctf4ish)
# - compilenocol - Compiles the map with -nocollapse. Use this one if the map freezes q3map2 when used with the normal compile.
# - compilefinal - Compiles the map with "final" settings.
# - compilenocfin - Compiles the map with "final" settings and -nocollapse. Use this one if the map freezes q3map2 when used with the final compile.
# - compilenovfin - Compiles the map with "final" settings and no VIS stage. Use this one if the map doesn't really need the VIS stage.
# - onlybsp - Only runs the BSP stage.
# - entity - Only does entity-editing compile.
# - model - Converts a .map file into a model.
# - decomp - Decompiles a map.
# - simple - Runs BSP (with Meta) VIS LIGHT and BSPC (with forcesidesvisible)
# - notmine - Maps which have it's own settings. I should collect them.
# - testpaths - Used for debugging.
#
# Switch 2 - The map itself.
#
# Usage - q3map2 condition map
# E.g.: q3map2 compilefinal am_galmevish

# Variable with the route to the .map files. I.e. $HOME/.openarena/baseoa/maps
mapsdir=$HOME/openarena-dev/baseoa/maps
# Variable with the route to q3map2 and bspc. I.e. $HOME/dev/netradiant/install
raddir=$HOME/dev/netradiant
# Variable with the route to OA's dir. I.e. /usr/lib/games/openarena
oadir=/usr/lib/openarena

if [ "$1" = "testpaths" ]; then
locate -c $mapsdir
locate -c $raddir
locate -c $oadir
fi

# The following only applies if it's:
# 1) a final compile
# 2) a final compile with -nocollapse
# 3) a normal compile
# 4) a normal compile with -nocollapse
# 5) a simple test compiling
if [ "$1" = "notmine" ]; then
# Some maps have their own settings. It's better to keep them.
case "$2" in
islandctf4a3) #by sago007
$raddir/q3map2.x86 -fs_basepath "$oadir" -fs_game "baseoa" -game "oa" -flares -meta -np 179 -patchmeta -v -verboseentities $mapsdir/$2.map
;;
suspended) #by baronofhell
$raddir/q3map2.x86 -fs_basepath "$oadir" -fs_game "baseoa" -game "oa" -flares -meta -skyfix -patchmeta -v -verboseentities $mapsdir/$2.map
;;
*)
$raddir/q3map2.x86 -fs_basepath "$oadir" -fs_game "baseoa" -game "oa" -flares -meta -patchmeta -v -verboseentities $mapsdir/$2.map
;;
esac
$raddir/q3map2.x86 -fs_basepath "$oadir" -fs_game "baseoa" -game "oa" -vis -v $mapsdir/$2.map
case "$2" in
ajactf) #by andrewj
$raddir/q3map2.x86 -fs_basepath "$oadir" -fs_game "baseoa" -game "oa" -light -v -fast -bounce 8 -samples 2 -gamma 2 -sky 0.0 $mapsdir/$2.map
;;
ctf_inyard) #by cosmo
$raddir/q3map2.x86 -fs_basepath "$oadir" -fs_game "baseoa" -game "oa" -light -v -fast -patchshadows -bounce 4 -bouncegrid -samples 4 -dark -dirty -dirtmode 0 -dirtdepth 512 -dirtscale 1.25 -gamma 2.0 -compensate 2.0 $mapsdir/$2.map
;;
islandctf4a3) #by sago007
$raddir/q3map2.x86 -fs_basepath "$oadir" -fs_game "baseoa" -game "oa" -light -v -fast -dark -filter -patchshadows -shade $mapsdir/$2.map
;;
oa_koth2) #by cosmo
$raddir/q3map2.x86 -fs_basepath "$oadir" -fs_game "baseoa" -game "oa" -light -v -fast -patchshadows -bounce 8 -bouncegrid -samples 8 -dark -dirty -dirtmode 1 -dirtdepth 256 -dirtscale 1.15 -gamma 2.85 -compensate 3.15 $mapsdir/$2.map
;;
oa_nemesis) #by andrewj
$raddir/q3map2.x86 -fs_basepath "$oadir" -fs_game "baseoa" -game "oa" -light -v -fast -filter -bounce 4 -samples 3 -gamma 1.4 -sky 1.0 -dirty -patchshadows $mapsdir/$2.map
;;
oa_rpg3dm1) #by andrewj
$raddir/q3map2.x86 -fs_basepath "$oadir" -fs_game "baseoa" -game "oa" -light -v -fast -patchshadows -sky 0.6 -bounce 2 -samples 2 -gamma 1.1 $mapsdir/$2.map
;;
oasago[1-2]) #by sago007
$raddir/q3map2.x86 -fs_basepath "$oadir" -fs_game "baseoa" -game "oa" -light -v -fast -super 2 -filter -bounce 20 -patchshadows $mapsdir/$2.map
;;
pillarpanic) #by sago007
$raddir/q3map2.x86 -fs_basepath "$oadir" -fs_game "baseoa" -game "oa" -light -v -fast -super 2 -filter -bounce 20 -patchshadows $mapsdir/$2.map
;;
redishf) #by sago007
$raddir/q3map2.x86 -fs_basepath "$oadir" -fs_game "baseoa" -game "oa" -light -v -fast -super 2 -filter -bounce 20 -patchshadows $mapsdir/$2.map
;;
suspended) #by baronofhell
$raddir/q3map2.x86 -fs_basepath "$oadir" -fs_game "baseoa" -game "oa" -light -v -fast -super 2 -filter $mapsdir/$2.map
;;
*)
$raddir/q3map2.x86 -fs_basepath "$oadir" -fs_game "baseoa" -game "oa" -light -v -fast -dark -filter -patchshadows $mapsdir/$2.map
;;
esac
$raddir/bspc -bsp2aas $mapsdir/$2.bsp -forcesidesvisible -optimize
else
if [ "$1" = "compilefinal" -o "$1" = "compilenocfin" -o "$1" = "compile" -o "$1" = "compilenocol" -o "$1" = "simple" -o "$1" = "compilenovis" -o "$1" = "compilenovfin" ]; then
#
# BSP stage
#
if [ "$1" = "compile" -o "$1" = "compilenocol" -o "$1" = "compilefinal" -o "$1" = "compilenocfin" -o "$1" = "compilenovis" -o "$1" = "compilenovfin" ]; then
$raddir/q3map2.x86 -fs_basepath "$oadir" -fs_game "baseoa" -game "oa" -flares -meta -patchmeta -v -verboseentities $mapsdir/$2.map
else
if [ "$1" = "simple" ]; then
$raddir/q3map2.x86 -fs_basepath "$oadir" -fs_game "baseoa" -game "oa" -meta -patchmeta -v -verboseentities $mapsdir/$2.map
fi
fi
#
# VIS stage
#
if [ "$1" = "compile" -o "$1" = "compilenocol" -o "$1" = "compilefinal" -o "$1" = "compilenocfin" -o "$1" = "simple" ]; then
$raddir/q3map2.x86 -fs_basepath "$oadir" -fs_game "baseoa" -game "oa" -vis -v $mapsdir/$2.map
fi
#
# Light stage
#
case "$1" in
compile)
$raddir/q3map2.x86 -fs_basepath "$oadir" -fs_game "baseoa" -game "oa" -light -dark -fast -filter -patchshadows -gamma 1.5 -v $mapsdir/$2.map
;;
compilenovis)
$raddir/q3map2.x86 -fs_basepath "$oadir" -fs_game "baseoa" -game "oa" -light -dark -fast -filter -patchshadows -gamma 1.5 -v $mapsdir/$2.map
;;
compilenocol)
$raddir/q3map2.x86 -fs_basepath "$oadir" -fs_game "baseoa" -game "oa" -light -dark -fast -filter -patchshadows -nocollapse -gamma 1.5 -v $mapsdir/$2.map
;;
compilefinal)
$raddir/q3map2.x86 -fs_basepath "$oadir" -fs_game "baseoa" -game "oa" -light -dark -fast -filter -patchshadows -dirty -bounce 8 -samples 3 -gamma 1 -v $mapsdir/$2.map
;;
compilenocfin)
$raddir/q3map2.x86 -fs_basepath "$oadir" -fs_game "baseoa" -game "oa" -light -dark -fast -filter -patchshadows -dirty -bounce 8 -samples 3 -nocollapse -gamma 1 -v $mapsdir/$2.map
;;
compilenovfin)
$raddir/q3map2.x86 -fs_basepath "$oadir" -fs_game "baseoa" -game "oa" -light -dark -fast -filter -patchshadows -dirty -bounce 8 -samples 3 -gamma 1 -v $mapsdir/$2.map
;;
simple)
$raddir/q3map2.x86 -fs_basepath "$oadir" -fs_game "baseoa" -game "oa" -light -fast -v $mapsdir/$2.map
;;
*)
;;
esac
#
# BSPC stage
#
$raddir/bspc -bsp2aas $mapsdir/$2.bsp -forcesidesvisible -optimize -grapplereach
fi
#Only BSP
#---------------------
if [ "$1" = "onlybsp" ]; then
$raddir/q3map2.x86 -fs_basepath "$oadir" -fs_game "baseoa" -game "oa" -flares -meta -patchmeta -v -verboseentities $mapsdir/$2.map
fi

#Entity-edit compile
#---------------------
if [ "$1" = "entity" ]; then
$raddir/q3map2.x86 -fs_basepath "$oadir" -fs_game "baseoa" -game "oa" -onlyents $mapsdir/$2.map
$raddir/bspc -bsp2aas $mapsdir/$2.bsp -forcesidesvisible -optimize
fi
#For model conversion
#---------------------
if [ "$1" = "model" ]; then
$raddir/q3map2.x86 -fs_basepath "$oadir" -fs_game "baseoa" -game "oa" $HOME/oa/baseoa/models/mapobjects/$2.map
$raddir/q3map2.x86 -fs_basepath "$oadir" -fs_game "baseoa" -game "oa" -convert $HOME/oa/baseoa/models/mapobjects/$2.bsp
#
# Next, it deletes the temporary files generated by q3map2.
#
rm $HOME/oa/baseoa/models/mapobjects/$2.prt
rm $HOME/oa/baseoa/models/mapobjects/$2.srf
rm $HOME/oa/baseoa/models/mapobjects/$2.bsp
fi
#For map decompilation
#---------------------
if [ "$1" = "decomp" ]; then
$raddir/q3map2.x86 -fs_basepath "$oadir" -fs_game "baseoa" -game "oa" -convert -format map $mapsdir/$1.bsp
fi
fi
« Last Edit: February 15, 2014, 07:14:16 am by Neon_Knight » Logged


"Level Designers are 1 part architect, 1 part artist, 1 part game designer, and 1 part beta tester!" Cliff Bleszinski
Want to contribute? Read this.
Neon_Knight
In the year 3000
***

Cakes 49
Posts: 3658


Trickster God.


« Reply #8 on: February 16, 2014, 11:31:53 pm »

First of all multiple versions of map-compilers may be needed. Even if a map works as intended on the latest compile may not necessarily mean that it works fine on future map-compilers.
I disagree. Generally speaking, bad/non-clean brushwork has been proven to be a problem with newer compilers. Good brushwork is not really covered by the GTKR manual, which a lot of people seems to use to create maps. Hence why I think that including multiple versions of q3map2/bspc is unnecessary. We must, however, have a good mapping manual (and the complementary tutorial) to supplant the mapping documentation which comes with the Q3 gamepack, which is highly outdated. I imagine one PDF or a small group of them might do the trick.

Furthermore a number of standard compile scripts should be available for map makers. Some that you just drag-and-drop the map file onto and then a short while later gets a pk3-file that can then be tested. Then a map-maker would not have to think about compile switches other than reporting the standard compile script that gave the wanted result.

The main difference between the compile script would properly be lightning related (floodlight for instance). Perhaps a fastvis for space maps.

A build.xml for Radiant editors should also be made with standard switches so that the bat-script have a maximum probability to work in the first go.
I highly agree on this, but there could be a complication since .bat files can be rewrote as .sh files but not the other way around because of lack of certain commands. I suppose we should also include default compile lines in the OA gamepack which aren't copies of the ones coming with the non-Free Q3 gamepack.
Logged


"Level Designers are 1 part architect, 1 part artist, 1 part game designer, and 1 part beta tester!" Cliff Bleszinski
Want to contribute? Read this.
Pages: [1]
  Print  
 
Jump to: