---------------------------------------- | X-Wing Revival | | 0.2 Alpha (2023-05-04) | | by Raptor007 (Blair Sherman) | | http://raptor007.com/x-wing-revival/ | ---------------------------------------- Welcome to X-Wing Revival! I started making this because I wanted to have an X-Wing LAN party in 2011, and found that X-Wing Alliance (released in 2002) didn't run correctly on modern PCs. We've come a long way since then! The goal is still to recreate the feeling of a classic LucasArts X-Wing game, but X-Wing Revival has developed into its own unique take on the genre, with a focus on fun dogfighting, epic battles, multiplayer balance, and staying true to classic Star Wars ship designs. (TIE Fighters don't have missiles!) If you're looking for the official X-Wing title of 2020, check out Star Wars Squadrons: https://store.steampowered.com/app/1222730/STAR_WARS_Squadrons/ == GETTING STARTED == The quickest way to start is to click Play, then Host/Solo, adjust the game settings, and click Fly when you're ready to launch. == GAME TYPES == Fleet Battle: Each team tries to destroy the enemy capital ships while defending their own. The last team with any surviving capital ship wins. Respawn is only possible while your main capital ship survives, so prioritize its protection. Cruisers will respawn if their entire group is destroyed before the main ship, but the more cruisers on a team, the longer it takes for their group to respawn. Default cruisers are 2 Corvettes vs 3 Interdictors. (If you set both to 0, this is essentially the old "Defend/Destroy" mode.) Battle of Yavin: Rebels must fly down the trench and try to hit the exhaust port with a pair of proton torpedoes. Imperials must try to prevent the Rebels from doing this before the time limit runs out. Harder AI skill effects turrets too! Flagship Hunt: The attacking team must destroy the defending team's flagship before the time limit runs out. (This mode was previously called "Capital Ship Hunt".) Team Deathmatch: The team to hit the kill limit first wins. Respawn always enabled. Team Elimination: The last team with any ships remaining wins. Players can control AI ships when the player's ship has been destroyed, but no new ships will be given to either team once the match has started. FFA Deathmatch: The player to hit the kill limit first wins. Respawn always enabled. FFA Elimination: Last man standing wins, and there's no respawn whatsoever. == TROUBLESHOOTING / FAQ == Textures are blank. Everything looks like white boxes! Windows: This is a directory permissions problem. This often happens on Windows 10/11 if you attempt to unzip X-Wing Revival in your Downloads folder or on the desktop. The solution is to move the zip file to a different directory like "C:\Program Files" before extracting it. Mac: This is usually caused by the Quarantine file system attribute, which prevents a downloaded program from reading files, even if they were extracted from the same zip. The solution is to open Utilities/Terminal and remove the Quarantine flag from the directory you extracted X-Wing Revival to: xattr -dr com.apple.quarantine "/Applications/X-Wing Revival" My OS warns about or won't allow a downloaded or unsigned application to run. Apple and Microsoft have made it disappointingly onerous to distribute software for their platforms without paying them for code-signing. Fortunately for those of us who still value running whatever we want on our own computers, there are workarounds. Windows: In the SmartScreen popup, click "More Info" at bottom, then "Run Anyway". The permanent fix is in Windows Security, "App & Browser Control", "Reputation-based protection settings". Turn off "Check apps and files". Mac: You might be able to just right-click to run an unsigned app. (Unconfirmed.) The permanent fix to allow apps downloaded from anywhere is done in the Terminal: sudo spctl --global-disable I recommend the permanent fixes for power users only, or anyone who misses the 90's. == PREFERENCES == --Graphics-- Fullscreen: Toggle fullscreen, and set the resolution for fullscreen mode. Windowed resolution can be changed by dragging the lower-right corner. FSAA (Antialiasing): Use multiple samples to reduce jagged edges. Can be GPU-heavy, especially when VR is enabled. Vertical Synchronization (VSync): Eliminate tearing by only drawing frames when the monitor is ready to refresh. Recommended for fast systems, but turning this off is an easy way to improve framerate and reduce stuttering. Texture Quality: Limit the maximum texture resolution; downsample anything too large. This may improve performance with very limited VRAM and is required on some ancient video cards, but if your PC was made in the last 20 years you can leave this High. AF (Anisotropic Filtering): Improve texture clarity and detail. Slightly GPU-heavy. Trilinear mode is the standard non-anisotropic mode. Linear mode uses bilinear filtering without mipmapping, which looks sharp but sparkles at longer distances. Framebuffer Textures: Use framebuffer objects as live textures for the cockpit. This shouldn't hurt performance much, but some old video cards don't support it. Framebuffers are also used for the VR eyes, so this is required for VR. Draw With Shaders: Use GLSL vertex and fragment shaders. Recommended for performance and better appearance, but certain old motherboards perform better with this off and some ancient video cards require this off. Light Quality: Per-pixel can be GPU-heavy, especially in VR, but looks much better on large surfaces like capital ships and the Death Star trench. NOTE: This only works if "Draw With Shaders" is enabled. Dynamic Lights Per Object: Number of point light sources (lasers, torpedos, etc) to use for lighting each object. Higher values use a bit more CPU and GPU power. NOTE: This only works if "Draw With Shaders" is enabled. Death Star Trench Details: Add detail to the Death Star trench walls and floor. Can be somewhat GPU-heavy and CPU-heavy. NOTE: This is even more CPU-heavy when shaders are disabled! Asteroid Detail: Controls how far away asteroids render as model vs simple sphere. Can be somewhat CPU-heavy and GPU-heavy with many asteroids, especially in VR. NOTE: This is even more CPU-heavy when shaders are disabled! --Virtual Reality-- Enable VR Mode: Enable VR HMD output and seated head tracking, using OpenVR/SteamVR. Tested with the HTC Vive, and it should work for the Oculus Rift or any other HMD. You might need to tweak vr_fov and vr_offset in the console. VERY GPU-HEAVY! --Sound-- Volume: Master volume that affects all playback. Effects: Volume of sound effects. Engines: Engine sound volume, relative to effect volume. Music: Volume of all music, including end-of-round victory/defeat music. Menu Music: Play background music in the menus and lobby. Game Music: Play background music while flying. == CONTROLS == Swap Yaw/Roll: Normally X = roll and twist/pedals = yaw. This option swaps those controls so the joystick points your ship and twist/pedals change your ship's roll, which is how classic X-Wing games were controlled. Invert Turrets: Normally turrets pitch the same way ships do. This reverses them. --Joystick-- Deadzone: Ignore some stick/twist motion near the center to prevent drift. X / Y / Twist: Sharpest is most responsive while Smoothest is least twitchy. --Controller-- Deadzone: Ignore some thumbstick motion near the center to prevent drift. Sticks: Sharpest is most responsive while Smoothest is least twitchy. Triggers: Sharpest is most responsive while Smoothest is least twitchy. --Mouse-- Mode: Disabled: Disable mouse input in game. Mode: Turret Aim: Mouse does not control flight, but does aim for turret gunners. Mode: Yaw/Pitch: Mouse controls yaw and pitch in flight, and aims turrets. Mode: Roll/Pitch: Mouse controls roll and pitch in flight, and aims turrets. Mode: Freelook: Use mouse to look around the cockpit. Invert Pitch: Make mouse flying feel more like using a joystick (up = pitch down). Input: Sharpest is most responsive while Smoothest is least twitchy. --Binds-- Show Only Connected Devices: Hide control binds for devices that were not found. Refresh: Search again for connected joysticks. Default Binds: Joy X-Axis: Roll Joy Y-Axis: Pitch Joy Twist/Pedals: Yaw Joy Throttle: Throttle Joy Hat: Look Around Joy Button 1 (Trigger): Fire Joy Button 2: Change Weapon Joy Button 3: Target Ahead Joy Button 4: Target Nearest Enemy Joy Button 5: Change Firing Mode Joy Button 6: Look Center / VR Head Center Joy Button 7: Change Shield Direction Joy Button 8: Target Attacker Joy Button 9: Target Incoming Warhead Joy Button 10: Target None Joy Button 11: Target Data-Link Joy Button 12: Target Groupmate Joy Button 13: Target Previous Joy Button 14: Target Next Joy Button 20 (Hat 2 Up): Target Previous Friendly Joy Button 21 (Hat 2 Right): Target Next Enemy Joy Button 22 (Hat 2 Down): Target Next Friendly Joy Button 23 (Hat 2 Left): Target Previous Enemy Joy Button 24 (Hat 3 Up): Target Data-Link Joy Button 25 (Hat 3 Right): Target Objective Joy Button 26 (Hat 3 Down): Target None Joy Button 27 (Hat 3 Left): Target Groupmate Joy Button 31 (Clutch): Target Incoming Warhead Xbox Left Stick: Yaw/Pitch Xbox Right Stick: Look Around Xbox Right Stick Click: VR Head Center Xbox Triggers: Roll Xbox Left Bumper: Target Center Xbox Right Bumper: Fire Xbox A: Throttle Decrease Xbox B: Change Firing Mode Xbox X: Throttle Increase Xbox Y: Change Weapon Xbox Back: Show Scores Xbox Start: Change Shield Direction Xbox D-Pad Up: Target Nearest Enemy Xbox D-Pad Down: Target Attacker Xbox D-Pad Left: Target Previous Enemy / Spectate Previous Xbox D-Pad Right: Target Next Enemy / Spectate Next Mouse Left-Click: Fire Mouse Right-Click: Target Center Mouse Middle-Click: Change Weapon Mouse Scroll Up: Target Previous Mouse Scroll Down: Target Next Mouse Thumb-Button Big (Back): Throttle Decrease Mouse Thumb-Button Little (Forward): Throttle Increase Arrows: Yaw/Pitch D: Roll Left F: Roll Right Backslash: 0% Throttle Left Bracket: 33% Throttle / Spectate Previous Right Bracket: 67% Throttle / Spectate Next Backspace: 100% Throttle Plus: Throttle Increase A: Throttle Increase Minus: Throttle Decrease Z: Throttle Decrease Numeric Keypad: Look Around Numeric Keypad 5: Look Center / VR Head Center Space: Fire W: Change Weapon X: Change Firing Mode S: Shield Direction Ctrl: Target Center Q: Target None E: Target Attacker R: Target Nearest Enemy T: Target Next Y: Target Previous I: Target Incoming O: Target Objective G: Target Groupmate V/CapsLock: Target Data-Link F1: Cockpit Seat F2: Gunner Seat 1 F3: Gunner Seat 2 F4: Toggle Co-Pilot (Chewie) Tab: Show Scores Return/Enter: Toggle/Send Chat Esc/F10: Menu Backtick/Tilde: Toggle Console To rebind an analog axis, click the box and then move your joystick or controller axis in the positive direction (pitch up, yaw right, roll right, throttle up, etc). If the result is reversed from what you want, rebind it in the other direction. To rebind a digital control, click the box and then press the desired button or key. To unbind a control entirely, right-click its box; all of its binds will be cleared. == CONSOLE COMMANDS == X-Wing Revival features a Quake-style console which allows power users to tweak the game parameters. Press backtick (tilde) to toggle the console. If you mess anything up, quit and delete settings.cfg to restore defaults. Here are some of the commands currently implemented: status: Show the status of various game subsystems, including framerate and ping. show: Show all variables. set : Change a variable's value. exec : Load a config file. export : Save a config file. g_restart: Apply video settings and restart video. joy_refresh: Look for new joysticks that have been connected. who: Show list of players connected. say : Send chat message. echo : Display text in the local console. host: Start a new game. connect : Join a game by IP/hostname. reconnect: Rejoin the IP/hostname last connected to. disconnect: Leave the current game. quit: Exit to desktop. When hosting, you can also use the "sv" command to control the server: sv show: List game variables. sv set : Change a game variable's value. sv state ++: When a game is in progress, you can use this to end the round early. sv netrate : Adjust the network update rate for all clients. Default: 30 sv maxfps : Adjust the simulation update rate. Default: 60 sv port : Change the TCP port number (after restart). Default: 7000 sv restart: Restart the server. From a dedicated server console, the sv commands are used without the "sv" keyword. == COMMAND-LINE OPTIONS == You can control X-Wing Revival's behavior with these command-line options: -host: Start a new game immediately. -connect : Join a game immediately by IP/hostname. -name : Set player name. -dedicated: Host a dedicated server console instead of playing. -set : Change a variable's value. -windowed: Start windowed, not fullscreen. -safe: Use old fixed-pipeline OpenGL at 640x480 with minimal extensions. -screensaver: Load in screensaver mode. Moving the mouse will quit. == NETWORKING AND PORT-MAPPING == By default, X-Wing Revival servers run on TCP port 7000. If you wish to host a game online, you'll need to map this port from your firewall to your PC. You can override the server port by changing the "sv_port" variable. Local games are announced by sending LAN broadcasts on UDP port 7000. If you have a software firewall enabled (such as Windows Firewall) and want to play over LAN, make sure this port is allowed so you can discover local games. == VIRTUAL REALITY == This version of X-Wing Revival has OpenVR (SteamVR) support! It has only been tested on the HTC Vive, but it should work on other headsets like the Oculus Rift. I quickly hacked this in without following all the best practices, so it may require a little bit of tweaking to look perfect, especially if you aren't using the HTC Vive. Here are the relevant console variables: vr_fov: Field of view in VR. Negative values specify vertical FOV. Defaut: -111 vr_offset: Eye centering fix in pixels. Small values exaggerate depth. Default: 87 vr_separation: Distance between in-game eyes in meters. Default: 0.0625 When playing in VR, there's no radar yet, but the ability to freely look around more than makes up for this. Messages won't display by default, but you can show them by pressing return to toggle chat. == ABOUT THE SCREENSAVER == To use X-Wing Revival as your screensaver, simply copy the RaptorEngine.scr file into C:\Windows and select "RaptorEngine" in the Screen Saver settings. Before you can preview or activate it, you'll need to click "Settings...", browse to your copy of "X-Wing Revival.exe" (or x64), and click "OK". The RaptorEngine screensaver wrapper is only currently available for Windows. You can also launch the game with "-screensaver" to watch screensaver mode on any platform. You can customize the screensaver by creating a text file "screensaver.cfg" with console commands to execute, such as "sv gametype yavin" or "sv rebel_fighter A/W". == VERSION HISTORY == Alpha 0.2 (2023-05-04): * AI ships now dodge obstacles, avoid friendly fire, and have selectable skill level. * Improved capital ship collision detection to maintain performance in large fleets. * Replaced "Defend/Destroy" with "Fleet Battle"; all AI ship types are customizable! * Ship and weapon rebalancing, mostly of capital ships. Added Interdictor Cruiser. * Improved netcode makes other ships move more smoothly and corrects for jitter. * Players can control turrets, change seats, and let an AI co-pilot fly the YT-1300. * In-flight menu allows selecting a different ship or group for next respawn. * Improved graphics. Respawn jumps in from hyperspace. Engines glow with throttle. * Improved some sound effects. Accelerating or decelerating makes engine sounds. * Weapons remember mode. Each action has a unique beep. Lasers beep when on target. * Deflector shield angled double-front or double-rear protects only that direction. * If your target crashes after you shoot them, you get the kill. TKs subtract score. * Improved input curves, especially controllers. Xbox 360 controllers now work great! * Joystick, game controller, keyboard, and mouse binds are now fully customizable. * Updated RaptorEngine.scr to keep multiple paths, such as X-Wing Revival and BTTT. Alpha 0.1.9 (2021-05-04): * Ships are now less twitchy, especially at full speed. Slow down for tighter turns. * Balance and damage tweaks. It now takes a pair of torpedoes to kill the Death Star! * Improved lighting effects, and fixed lighting artifacts along polygon edges. * Fixed anti-aliasing on Windows by using 24-bit depth buffer when not in VR mode. * Can toggle VSync (default off), and default maxfps on Windows is the refresh rate. * Fixed some issues with capital ship turret spawning and tracking angles. * Fixed a bug that caused players to regain health when someone joined late. Alpha 0.1.8 (2020-05-04): * Added a bunch of new ships to play with, and did some re-balancing. * Disables Windows DPI scaling; the screen should no longer stretch and crop. * Dramatically reduced network jitter. Formation flying should now be possible. * Improved framerate smoothness. The optimal maxfps is now your video refresh rate. * Improved graphics, especially lighting. The Death Star horizon looks much better. * The cockpit sways with yaw/pitch/roll input for a better feeling of ship motion. * Instruments flash for enemy lock-on, and your droid warns about incoming missiles. * Added support for some joystick and pedal devices with unusual axis mapping. Alpha 0.1.7 (2019-05-04): * Torpedos must now acquire a lock to track, but are better at hitting their targets. * Improved targeting computer display, especially for locking onto the exhaust port. * Trench obstacles protrude a bit less, so flying the trench is a little easier. * Detailed geometry in the trench has been reworked to reduce z-fighting flicker. * VR is more comfortable, with better default vr_fov and a more stable spectator view. * The cockpit shakes when hit, and moves slightly for acceleration and deceleration. * Fixed the cockpit orientation when using view rotation controls (keys/thumbstick/hat). * If the screensaver engages while the PC is running a server, it spectates the game. Alpha 0.1.6 (2018-05-04): * Fixed cockpit jitter when you fly far from the map center, especially in VR mode. * Menus now have a 3D background in VR, making them infinitely less nauseating. * Automatically recenters VR head position when a mission begins. * Roll/pitch/yaw have a maximum rate of change, which smooths out keyboard flying. * AI ships fly a little smarter; there should be fewer Porkins suicide runs. * Fixed texture loading on new versions of Mac OS X by downgrading to SDL_image 1.2.10. * Fixed library not found crash in Mac OS X if OpenVR is not installed (dylib bundled). Alpha 0.1.5 (2017-05-04): * Added OpenVR/SteamVR support for HTC Vive (and probably Oculus Rift). * Chat beep sound, because in VR messages don't display unless you press return. * Controller thumbstick look now intelligently toggles itself. * Fixed font and mouse cursor artifacts with antialiasing. * More customization options for texture resolution and filtering. * Safe mode is now so safe, it works on the Voodoo5 (with 3rd-party XP drivers). Alpha 0.1.4 (2016-05-04): * Improved lighting quality. * Game engine and net-code cleanup. * You can now disable thumbstick look (it prevents other look methods when active). * Improved spectator view. Players waiting to respawn now watch their teammates. * Added safe-mode for systems with strange GPUs or outdated video drivers. * Officially added the silly sounds easter-egg. See if you can find it! Alpha 0.1.3 (2015-05-04): * Fighters and lasers are all a little faster (the Y-Wing especially needed this). * Added high-quality cockpits. * Other minor graphical improvements. * Host can now end the round early without quitting the server. * Fixed some rare issues with working directory and DLL/resource paths. Alpha 0.1.2 (2014-05-28): * Added "Defend/Destroy" game mode. * Merged the two hunt modes into one customizable "Capital Ship Hunt" game mode. * Added Nebulon B Frigate and Mon Calamari Cruiser. * Some capital ships now have destructible attached turrets. * Large capital ships will shoot asteroids out of their way. * Star Destroyer shield towers now explode correctly. * Improved capital ship performance, especially on the server. * Fixed compatibility issues with recent Mac OS X versions, including 10.9 Mavericks. Alpha 0.1.1 (2014-05-03): * Added "Star Destroyer Hunt" and "Rebel Corvette Hunt" game modes. * Added group spawning option to encourage teamwork. * Added Saitek DirectOutput support for X52 Pro and Flight Instrument Panel (FIP). * No longer ignores analog axes on joystick when button pads are present. * Reduced default sv_maxfps from 120 to 60 to reduce CPU load. Alpha 0.1 (2013-08-29): * First semi-public release.