Jump to content

eezstreet

Members
  • Posts

    5,207
  • Joined

  • Last visited

Everything posted by eezstreet

  1. Background Originally, roq.exe was a tool developed by id software for the Quake 3 engine (now known as the id Tech 3 engine) to develop videos in their proprietary ROQ format. This format essentially links together a stream of TGA images and audio, which is loaded by the renderer. Raven Software developed a new form of roq.exe (roq2) which is a lot more advanced, and has some new features. It's also capable of outputting ROQs in specific dimensions, whereas the original roq.exe was constrained to a specific output dimension. In JKA and JK2, you can render movies and videos from IBI scripts or ingame using a videoMap shader keyword. This can be quite handy. Basic Usage roq.exe is essentially a command-line application that takes a parameter file. In the documentation, it seems to mention that .param is required, yet it appears to work just fine with any other file type. The parameter file lists all the files which are used for the frames, the audio, and some other miscellaneous stuff. How to make an ROQ The process is quite simple, as @@DT85 has outlined here. First, you'll need to put your frames somewhere where roq.exe can find them. Your path cannot contain spaces. I usually put mine in something like E:\video-editing. (Please see note at bottom for supported image formats) You'll need to create your .param file. I've detailed the .param file a bit further below. You'll now need to create a .bat which runs roq.exe. Something like this is appropriate: roq.exe Your_Param_Here.param pause The program will then build an ROQ based on the parameters in your .param file. This may take a while! The finished ROQ will show up in the same directory as roq.exe. If you want the program to not output as many lines, simply add a -q at the end. Or, you can output ROQ frames once the program has finished the file by doing -d <directory to store frames> Details on the .param file The basic syntax of the .param file follows: INPUT_DIR C:\Where_To_Find_The_Frames FILENAME _your_roq_here.roq SOUND _your_audio_here.wav INPUT*.tga [000-100] END_INPUT Some notes: INPUT_DIR cannot have any spaces, as I mentioned before. It tells the program where to find your frames. FILENAME is the output name of the file. SOUND is what audio file to use. It must be in the same directory as roq.exe! (alternatively, you could use an absolute path, I think, but again, no spaces) This field is entirely optional. See the notes below about audio format. INPUT/END_INPUT specifies how to process input. So for instance, I used "*.tga [000-100]". This specifies that the frames will be called 000.tga, 001.tga, etc all the way up to 100.tga. You could also do something like "screenshot*.jpg [000=100]" and it'll use screenshot000.jpg all the way up to screenshot100.jpg. Please see note at the bottom for supported image formats. Some extra fields that you could add to your param file: SCALE_DOWN - If this line is added to the file, the input will be scaled down. Usage: SCALE_DOWN FULLSEARCH - Use this for ROQs which will appear as a fullscreen video. It will scale up video without losing quality. I think this is spelled wrong. Usage: FULLSEARCH SCALEABLE - The ROQ will scale up to higher resolutions ingame by resampling the ROQ. Should probably be using this in tandem with FULLSEARCH Usage: SCALEABLE NO_ALPHA - If this line is added to the file, the alpha channel in the images will be ignored entirely. Usage: NO_ALPHA TIMECODE - Only use this line for certain MPEG files that aren't being displayed at the correct resolution. Usage: TIMECODE HAS_SOUND - Has no actual effect at all. START_PALETTE - Specifies the name of the palette file to use for start. (I'm not actually sure what these are used for.) The program will search for these in <your path>/LocalLibrary/vdxPalettes Usage: START_PALETTE <palette file name> END_PALETTE - Specifies the name of the palette file to use for end (see above notes on START_PALETTE) Usage: END_PALETTE <palette file name> FIXED_PALETTE - Uses this fixed palette for the whole video. (See above notes on START_PALETTE) Usage: FIXED_PALETTE <palette file name> SCREENSHOT - This line is a hint to the ROQ compiler that we're using screenshots instead of MPEG. Usage: SCREENSHOT KEY_COLOR - Specifies the key color of the video. Using this correctly can help prevent color artifacts in heavily compressed ROQs. Usage: KEY_COLOR <R> <G> <B> JUST_DELTA - Has no effect whatsoever. Usage: JUST_DELTA CODEBOOK - Makes codebook vector tables. Usage: CODEBOOK FIRSTFRAMESIZE - Sets the frame size of the first frame. Note that this is only one number, not two. Usage: FIRSTFRAMESIZE <size> NORMALFRAMESIZE - Sets the frame size that the ROQ is normally displayed at. Note that this is only one number, not two. Usage: NORMALFRAMESIZE <size> STILLFRAMEQUALITY - Has something to do with JPEG quality, I'm not certain on this yet. Usage: STILLFRAMEQUALITY <quality> FADEDOWNSTARTFRAME - Specifies the start frame to do a fade down effect. ROQ.exe will fade the video out, starting at this frame. Usage: FADEDOWNSTARTFRAME <framenum> FADEDOWNDURATION - Specifies how many frames it takes to do a fade down effect. Usage: FADEDOWNDURATION <frames> FADEUPSTARTFRAME - Similar to FADEDOWNSTARTFRAME, but has the opposite (a fade in effect). This specifies which frame to start this effect on. Usage: FADEUPSTARTFRAME <framenum> FADEUPDURATION - Specifies how many frames it takes to do a fade up effect. Usage: FADEUPDURATION <frames> MPEGCROPWIDTH - Crops the MPEG file (if used). Usage: MPEGCROPWIDTH <width> MPEGCROPHEIGHT - Crops the MPEG file (if used). Usage: MPEGCROPHEIGHT <height> MPEGCROPXORIGIN - Crops the MPEG file (if used). Usage: MPEGCROPXORIGIN <x origin> MPEGCROPYORIGIN - Crops the MPEG file (if used). Usage: MPEGCROPYORIGIN <y origin> FPS - Frames per second. (CAUTION: I'm currently not sure if this means that it simply duplicates/drops frames in order to maintain FPS, or if it actually changes the rendering FPS ingame for the ROQ...proceed with caution) Usage: FPS <fps> Supported Image Formats roq.exe uses an image library designed for supercomputers with a huge selection of supported formats. As far as I can tell, the following formats are probably supported: .jpg, .bmp, .tiff, .tga, .gif, .pcx, .ico, .pic, .pict, .hdf, .pix, .cur, .eps, .epi, .epsi, .epsf, .icon, .cursor, .pr, .iff, .vff, .suniff, .tanc, .miff, .x (NOT directx), .avs, ... (tons of other obscure formats) I haven't tested all of these. .png is NOT supported however Supported Audio Formats Credits DT85 for help with ROQ stuff jedis for putting code up on Github for roq2, this was a big help MaceCrusherMadunusus for the note on audio San Diego Supercomputer Center, their docs helped me figure out which image formats were supported
  2. At some point in development of JA, there was to be an NPC known as the Cultist Destroyer. It would instantly go into a rage mode and try to suicide bomb next to the player. While I haven't talked to Raven about why this NPC was removed, I can only speculate that it had something to do with cultural reasons (suicide bombing was oft-reported in the news during 2003's Iraq War) However, the .npc file and code is still intact, meaning this NPC was cut very late into development. There is also a cultist_commando npc which never appeared, and fully works (it has dual wielding blasters! awesome!) Anyway, enough talk. You can spawn this NPC using an npc_spawner entity with npc_type "cultist_destroyer". The NPC will go into a rage, disappear and you will die instantaneously. But there's no effect? Easy fix. The effects for the NPC didn't ship with the game but we can add them back in. For this you'll want to create a new PK3. In this, add an effects folder. Inside of that, a folder called force. Inside of this folder you will need an EFX named destruction_exp.efx. If you have no experience in creating an EFX file, that's okay, you can reuse an existing EFX like the rocket launcher explosion effect or one of the env/explosion ones. I don't know the splash radius on their explosion as it isn't explicitly stated in the code. Your mileage may vary.
  3. Fixed the screenshots being broken links, and replaced them with ones that conceal some of my personal info and point out the information better. I've also updated the "Most Common Errors" section as it wasn't up to my standards.
  4. 118 downloads

    With the Steam Integration Tools, you can either: Enable enhanced Steam functionality for mods which allow it, or: Get information about enabling enhanced Steam functionality in your own mods. For instance, you can enable the Steam overlay in your custom mod, or enable Steam's Rich Presence, or perhaps provide support for Steam controllers! Note that this is unsupported by Valve, Activision and Raven Software and done entirely at your own risk.
  5. Updated the changelog with more information.
  6. This is a very heavily WIP list of what is going to be changed in this version. Some of it is still being designed as we speak. Anything in RED is not complete. Engine Overhaul Added rd-rend2 as an option.Redid the entire memory allocation system. It is much more centralized and can better track how the game is using memory.Added perf_zone to monitor memory usageAdded perf_net to monitor network trafficImproved the perf cvar to have more performance tracking optionsAdded dimensions. Servers can now have multiple maps loaded at once on different "dimensions" that clients can switch between. This allows for instances to occur.Removed ICARUS scripting engine, replaced functionality with Lua.HUD code migrated to Lua.Added save system. For now players switch between different profiles (full login authentication service coming in Phase 4)Much vestigial code removed (Old JKA NPC code = gone, vehicles = gone, ...)Completely redid the AI systems.New Features Players can complete quests together in a hub world, and migrate out to dungeons.
  7. Updated this thread, since it had ancient information in it.
  8. It will not work. CoD uses a modified format with custom lumps. What MIGHT work is if you save the .map file in CoDRadiant and compile in GTKRadiant using q3map2. Or somehow configure CoDRadiant to use q3map2.
  9. I had a very curious person send me an email asking how to increase the NPC limits in SP, so I went a bit ham and wrote a full guide. This gets asked a lot, so I figured I'd pitch it here. If staff would like (@@Caelum / @@Circa ?) I can post it in the tutorials section if it isn't already there. --- Hi, For starters, you will probably want to use the Visual Studio C++ compiler, not Visual Basic as that's a different language altogether. After you've got that fixed, you'll want to consult this guide for getting the thing compiled: https://github.com/JACoders/OpenJK/wiki/Compilation-guide Once you get it compiled, you'll note that it builds a "jagamex86.dll", an "Openjk.x86.exe" and a "rdsp-vanilla.x86.dll" (or something along those lines, I don't remember the exact names). You'll want to place the jagamex86.dll in a mod folder (you can create a mod folder in Gamedata), and the other files in your Gamedata folder. Then to launch your mod, you'll want to create a .bat script file (it's very easy, all you need to do is open up Notepad, and save a file as .bat), with the following contents: `openjk.x86.exe +set fs_game "MyMod"` Where MyMod is the name of your mod folder. But don't include the `s! If you got that all working, you can start making your edits now. There are a few specific things regarding limits. First of all, the list of NPC files is limited to 2048 characters. Look at this file, at this line I've highlighted, and change the number from 2048 to something higher: https://github.com/JACoders/OpenJK/blob/712627afab20aaa772d062a8fc8aeb5d3efa6152/code/game/NPC_stats.cpp#L4084 Second...the .npc files are all dumped into a giant buffer and read from this buffer. This is limited, and if you go over it, you'll likely run into a "NPC_LoadParms: ran out of space before reading ..." error. This limit is handled here: https://github.com/JACoders/OpenJK/blob/712627afab20aaa772d062a8fc8aeb5d3efa6152/code/game/NPC_stats.cpp#L217 Just note that this is a hexadecimal number. If you fire up good ol' Windows calculator in Programmer mode, you can see that 0x80000 is the same as 524,288 - so the maximum size of all NPC files combined is 524,288 bytes, or 512 kilobytes. To up this limit, you can just add a couple of zeroes to this (so make it 0x8000000 or something), or use a number larger than 524288. Beware though, the highest you can go is about 2000000000 (2 billion) before you will run into issues (and you don't really want to do this anyway - you'll make the game chew up 1gb in RAM !!) If you have any questions or concerns, feel free to send me a response. ---
  10. Both of those are optional things that can be tweaked via cvars.
  11. They're popular because every device can support them. Before the Unicode Consortium decided on having emojis, forums were kind of left to having a hodgepodge of different smilies that weren't guaranteed to all look the same on a system. Now you can, as long as the device you're using supports it.
  12. Dang this looks nice. Can't wait to see it in PBR!
  13. A couple things: - I'm not attacking Tompa9 specifically here. I'm asking a question on a more deep philosophical level: How can it be OK to license something with a restrictive license when your work largely relies on other people's work? The people in that thread in question were calling that person a piece of shit, and there were back and forth exchanges of insults etc, which I don't think is right at all. I understand where Tompa9 is coming from, but I disagree with it. That's it. - As I was staff then, and I am not staff now, as I mentioned before, I'm less inclined to take a neutral approach when it comes to specific touchy subjects. When you're the #2 guy on the site, generally you don't want to make people upset. Nowadays I just don't care as much, honestly. - I still think he has the right to license his work however he wants, I just disagree with his choice of license. So I'm not exactly contradicting myself here.
×
×
  • Create New...