Bounty hunters be alert
I gave it a lot of time and thoughts, and here you go (it is obviously what seems most tasty to me):
- Multi-format cross-platform model converter: 50 $ (in progress)
- FOSS cross-platform Ogg Vorbis soundtrack support in the engine. Make it support any filenames (eg have a track called asd.ogg and “cd” “asd” in worldspawn) and console command “cd play xx” compatible. Provide a patch/diff.: 100 $
- A tool that takes a directory of images including subdirectories, converts them to .mip and puts them into a texture wad. It shall rename filenames that are incompatible with Quake and keep track of those renamings (so the source images can be used as replacement textures for the ones in the wad, a simple log is enough). Support at least TGA as source format. Windows is alright, cross-platform would get you a little extra: 25 $ (in progress)
- Fix the multi-threading-VIS auto-saving bug: 25 $
- .lit support to aguirRe’s tools: 25 $
- hint/skip/detail support to aguirRe’s tools: 25 $
- Origin brush support to aguirRe’s tools: 25 $
If you want to start working on a task, make sure to first contact me (spirit at this domain). I will then mark it as “in progress”. The bounties on aguirRe’s map tools need a bit polishing. I will need to talk to gb about his Linux ports. Because if possible those new features should work cross-platform.
Some of the money will be used for some little surprises. I planned to do this before (for) christmas but had too much stress.
I will have a low cash per-item bounty for secret guides later. Just waiting for a Darkplaces bug to be fixed some day.
I really liked some of the other ideas but many were too controversial for me and/or of no great use for many people. Especially the “new monster” idea is great but can you imagine it working out well?
26.12.2009 18:32
no:
Anything about “redoing” Quake.
articles, too hard to find the right person and probably too controversial
Anything Darkplaces specific
mapping, modding, etc; “quake internal” content creation
anything quakeworld or netquake specific, quaddicted is sp focused
csqc is already happening
server, no, maybe occasionally
a new monster, we need to find a modeller, a coder and ideas to vote on
subversion etc, no
gimp -> wad, too niche but I’d really like that feature too
“ai improvements”, aaaaaaaahhhhhhhh
gyro improvements
waypointing system
quake dm demo repository, checkout challenge-tv.com
mod database (i would not run it, who would? money would have been an incentive for me to run this site. a “mod quaddicted” would need dedication, nothing else.)
bugfixed id1 maps, see comments on the previous post.
videos that show the workflow of mappers, including shortcutkeys: way too much work and prone to be never finished or done well
txt files at quaddicted. often not named like file, sometimes not txt, sometimes none
hm:
tutorials
quake promo video (like back2doom), i love the idea but i would want to do it myself and i don’t have the time :P
a monster that runs on walls and ceiling etc. <- hell yeah! i am waiting for a monster that uses surfaces as it likes
Verbose CSQC documentation <- mammoth task
Verbose SSQC documentation <- mammoth task
Highly modularized plug-in mod for map entities, such as rising water, pushables, and a whole lot more. Think FrikbotX but for map entities. <- sexy idea, would 1000$ be a start?
open-source BSP editor
26.12.2009 18:56
this is great i think i would pitch in for the texture converter
27.12.2009 01:09
>a monster that runs on walls and ceiling etc.
Funny that. I’ve just recently coded a monster that can move on the ceiling for my partial conversion. It can be spawned both normally and on the ceiling (upside down), and it can also jump onto the ceiling and back from time to time (this is configurable, and I may add more options to its behavior later). Unlike the similar monsters (e.g. Nehahra’s Vore) it can actually move (walk/run) while on the ceiling and it doesn’t need upside down animations since I rotate the model directly in the code.
I don’t think I’m going to release the code until my mod is finished, though. Which won’t be for a while, since I’m working on it alone and I’m still in early stages (I reckon it may take me up to a half a year to finish it). Also, damn PayPal denies service to citizens of my country, so I can’t take any money anyway. :(
27.12.2009 02:55
Spirit, I will do #3 for free.
It is Windows only and essentially done.
Likely it is a mid-January release because I have some things that I need to complete first.
29.12.2009 02:57
“Highly modularized plug-in mod for map entities, such as rising water, pushables, and a whole lot more.”
This actually already kinda exists, in the form of pOx’s Extras mod. Bunch of crazy shit in there like buttons that attach to func_trains, explodables, rising (and bobbing?) water, and an insanely customizable particle system that I never wrapped my head around.
http://quake.chaoticbox.com/downloads/extras_r4.zip
All the code is contained in its own qc files, not sprawled throughout the existing qc. I think Mike Woodham some parts in one of his maps.
I’d support the further development of such ideas as well, with any features that extras doesn’t have, etc.
@Spirit: Glad to see that a wide range of compiler enhancements made your bounty list, now let’s hope someone gets inspired on that.
29.12.2009 03:41
Extras is really neat. So is custents.
Between extras, custents, and the Zerstorer, Hipnotic and Nehahra devkits, and things like Frikbot X and Gyro, not even to mention Patrick Martin’s amazing ever-growing box of goodies (I’m running out of breath here), there is more great open source QC than you can wave a stick at. There’s not that much that doesn’t exist somewhere. Mods in development like RMQ and Drake will bring tons more to the table (like RMQ’s NPCs), both of these have the source accessible. CSQC has barely started yet, and we haven’t even scratched the surface of that one.
There’s also practically nothing lost by certain mods being closed source, because you’ll find most of the features they offer in other places, if you look hard enough.
29.12.2009 04:24
And open sourced mods will increase the number of QuakeC developers.
The idea has been growing “around the block” (in non-traditional Quake communities) that because Quake has been ported to so many platforms that it is a good general use modding candidate:
http://quakeone.com/members/baker/albums/engine-mod-related/104-solitude-psp.jpg
http://www.moddb.com/games/solitude/news/solitude-update-27
There will probably be more interest in Quake in the future as additional niceties evolve.
The Kurok mod really opened some eyes last year (modified FitzQuake engine on Windows plus modified PSP Quake engine on Playstation Portable):
http://www.bladebattles.com/kurok/
29.12.2009 10:59
I’d like to have more detailed descriptions on each bounty.
For example about the myterious multi-thread bug. What application are we talking about. What exactly is the bug and when doe it hapen. This one _sounds_ like an easy to fix if its just a matter or correct locking?
What about the vorbis support? So one have to send in patches for all quake engines out there to support it? Oh joy?! Or does this refer to one particular engine? This change probably requires a more detailed specification. That about someone having 1.ogg and hits “cd play 1″ on the console. What will actually be played?
29.12.2009 12:13
@ Tuna
Multi-Threaded vis tool Spirit is referring to:
http://www.celephais.net/board/view_thread.php?id=60365
Source: http://www.quaketastic.com/upload/files/tools/windows/misc/WVis.zip
—
Ogg Vorbis:
I don’t claim to speak for Spirit whatsoever, but my guess is that adding it to FitzQuake 0.85 and FitzQuake 0.80 SDL would probably satisfy Spirit’s requirements.
FitzQuake 0.85 + source
http://www.celephais.net/fitzquake/
FitzQuake 0.80 SDL + source
http://www.kristianduske.com/fitzquake/
I don’t claim to speak for Spirit, but even adding it to EZQuake (Windows | Linux | OS X) would probably technically qualify provided it did not use weird proprietary libraries (like the MP3 player in FuhQuake that used WinAMP) and just uses libvorbis dlls and any other FOSS libraries needed, because the sample implementation could be ported to FitzQuake. I’m just pointing that out since I know you have worked with the EZQuake source code.
DarkPlaces has Ogg Vorbis support.
Again, I don’t claim to speak for Spirit at all and maybe I’m wrong.
29.12.2009 12:16
@tuna
“That about someone having 1.ogg and hits ‘cd play 1′ on the console. What will actually be played?”
quake/id1/sound/cdtracks/track001.ogg
29.12.2009 14:33
So .ogg files shall be a complete replacemnt for CD audio? That means .ogg will be preferred although I might have inserted a CD? And only if the .ogg file does not exist we will try to load the CD track?
Valid track names should remain numerical (0-255) or should any names be allowed?
Just questioning as I don’t want to apply to the task (just yet?).
But I might be looking into the thread issue later today.
29.12.2009 15:27
Perfect Ogg Vorbis would be a patch for stock Quake (GL and software). But since I am not sure how to have linux and mac support with this, a patch for SDL Fitzquake would be sufficient. It would be a start for sure. :)
I do not have the time right now but those are some good questions. Check how Darkplaces does it.
Allowing any tracknames would be best but I am not sure how to decide what to play for “1″ then too. Argh!
Is the cd track field in the BSP format limited to 1 byte? Or was the “0-255″ a random thought?
—–
Unless you are dying to work please do not start any map tool stuff yet (and always contact me before starting anything!). I need to add another bounty for merging gb’s Linux port and Willem’s Mac tools (if they are based on aguirRe’s too) with the Windows original. The new features should be added to that code base.
29.12.2009 22:56
“Is the cd track field in the BSP format limited to 1 byte? Or was the “0-255″ a random thought?”
.map and .bsp formats store it as a string.
—
Also skip / hint / detail —
1. skip is supported by standalone tools, i assume that you are looking for the equivalent capability but merged into qbsp so mappers don’t need the extra tool? That seems like a good idea, because I think you could actually get some additional benefits from that — e.g. remove the surfaces entirely from the bsp file, so that they don’t eat up lightmap space, or add to the total marksurfaces list, etc. This could actually help borderline maps get under the limits for standard engines.
2. hint probably needs to be defined slightly more (same behavior as Q2? Q3?) Perhaps whoever intends to implement it can talk to you about the options for how to do it, or maybe do some tests on the most beneficial implementation. Generally used to make the bsp cleaner or more optimized, but it was kind of esoteric and i never actually used it in my q2 mapping.
3. detail brushes, as defined in Q2/Q3 (there may be slight differences), are possible (i think) in the q1 bsp format, but would not be compatible with the software renderer. Basically detail surfaces are dumped as a list into the appropriate leafnode, and rendered with the rest of the leaf, rather than causing the leaf to be divided up into even smaller nodes. The problem is software renderer assumes that a leafnode’s faces can’t ever occlude each other, so it doesn’t have to worry about draw order. (It works in opengl because the z-buffer takes care of it.)
Someone said recently (on func) that some compiler already supports detail brushes. I haven’t investigated the claim yet, but if it works in software mode I am highly suspicious that it is the same definintion of “detail” as used in Q2 and Q3.
29.12.2009 23:02
also…
Hint brushes could just be a special texture named “hint”, but detail brushes would need a special way to define them. (in q2/q3 they are stored in the extra flags for the surface, which q1 map format doesn’t have.)
Probably you would need to group them into fake entities, such as “func_detail” which the compiler would use to know which brushes are detail. But those entities would not be compiled into the bsp or spawned in the engine of course, they are only there as a mapping convenience.
31.12.2009 00:56
“merging gb’s Linux port and Willem’s Mac tools (if they are based on aguirRe’s too) with the Windows original.”
That should probably be, “merge Willem’s changes to the Mac version into gb’s intended-as-crossplatform base, make the result (cross-)compile on Win/Lin/Mac, however you do that is up to you, and finally add threading support for vis under Windows, Mac and Linux (I think for Mac it exists already).”
Because I’m unsure if AguiRre wishes for our stuff to be merged into his Windows codebase and then marketed as “AguirRe’s tools”. Hence I choose bjptools as a homage to him, but really, lots of people worked on those tools, they include work from Tyrann, Greg Lewis, and so forth, and id of course.
My version basically replaced some Windows-common C functions with more standard ones, like strnicmp to strncasecmp, _inline to inline and so forth. This is all commented though. The other thing was commenting out some stuff that used Windows-specific header files like io.h and including common (for Linux) C header files like string.h to make some things work. It’s all commented // gb.
Really there aren’t too many changes – do a “grep gb **/*” in the bjptools dir. Remember these tools were crossplatform to start with, so the main problem was to remove or substitute Windows- or MS- specific things.
Also, only Treeqbsp was ported; Txqbsp was too hard for me to port.
Finally, be aware that TreeQBSP uses a mixture of C and C++ files. The way to compile these under Linux is to use the -fpermissive flag to the C compiler if I remember correctly.
Wildcard support in wad filenames was not ported because frankly I didn’t know how to do that in Linux. It’s commented out :)
All in all, TreeQBSP, vis and light are pretty easy to port I think.
The threading issue is about adding multi-threading support to the Linux version (and the Windows version, too, iirc) of Vis. This feature is already somewhat prepared in the original code, as far as I know, probably commented out. The goal, of course, is to decrease the ridiculous vising times for modern maps.
bjptools-090908.zip should be the latest version including source. Ported shall be “TreeQBSP”, “Vis” and “Light” (append .exe for Windows version, hehe). Willem’s OSX source is also on Quaddicted. I don’t remember if Willem actually did do a threading vis for Windows.
31.12.2009 04:02
eh, actually I was confused. Nothing needs to be ported, just neatly merged and made to compile on Win/Lin/Mac, then features added.
31.12.2009 11:39
Note that proper multithreading support isn’t as easily added (or enabled) as it seems. In Willem’s version, running a fullvis on multiple threads corrupts the autosave feature, for example.
31.12.2009 11:46
” I don’t remember if Willem actually did do a threading vis for Windows.”
I did. The source is on Quaketastic as “WVis”.
“Note that proper multithreading support isn’t as easily added (or enabled) as it seems. In Willem’s version, running a fullvis on multiple threads corrupts the autosave feature, for example.”
That’s an issue that needs be addressed, for sure. I’ve looked at it in the past but haven’t come up with a reliable fix. Multithreading complicates it (obviously). Still, it SHOULD be possible…
03.01.2010 05:27
I would kill for the light tool. Tyrlite is really hindered in what it can do compared to AguirRes’. Would get used by me for sure :DDD
06.01.2010 10:14
A couple of things came to mind.
I would love to see level ed (http://wantonhubris.com/blog/2009/10/20/leveled-preview/) finished, toetag is the easiest program I have used ;)
How about .mdl import into Blender? we can export, but not import…
06.01.2010 16:02
Quick3D can export to .mdl maintaining UV’s (no more back/front projection) but it’s a funky POS to use. Kind of like Qme ;)
Until the first (awesome) task is completed it works. Try this tutorial:
http://qexpo.tastyspleen.net/booth.php?id=153
06.01.2010 18:45
I would love to see more linux builds of map editors.
07.01.2010 11:57
LevelEd is being worked on … slowly. :)