This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Failed to load latest commit information.
---------------------------------------- | X-Wing Revival | | 0.3.1 Alpha (2023-11-22) | | 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 fast dogfighting, epic battles, multiplayer balance, and staying true to classic Star Wars ship designs. (TIE Fighters don't have missiles!) X-Wing Revival finally feels like a proper sequel to the X-Wing Demo for Macintosh that I played over and over on a Quadra 605 while listening to the Star Wars soundtrack CDs. 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. Team Kessel Run: Race through the asteroid field, gaining points for your team with each checkpoint reached. First team at the score limit (or last team alive) wins. 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. FFA Kessel Run: Race through the checkpoints in the asteroid field. First player to reach the score limit (or last player alive) wins. Basically Carmageddon in space. == 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. Should I run "X-Wing Revival.exe" or "X-Wing Revival Legacy.exe" on Windows? You should try "X-Wing Revival.exe" first. This is the 64-bit version using SDL 2.0. If you are on a 32-bit system or having problems that did not occur in old versions of X-Wing Revival, you can try "X-Wing Revival Legacy.exe" which is 32-bit SDL 1.2. NOTE: SDL 1.2 and 2.0 often have different joystick axis mappings, so you may need to alter control binds or restore defaults when switching between them. Linux asks what application to open files of type "executable" with. Click Cancel, then right-click "X-Wing Revival.elf", select "Properties", then go to the "Permissions" tab, and check "Allow this file to run as a program". Close this window. Now double-clicking "X-Wing Revival.elf" should run it. == PREFERENCES == --Graphics-- Fullscreen: Toggle fullscreen, and set the resolution for fullscreen mode. Windowed resolution can be changed by dragging the lower-right corner. MSAA (Antialiasing): Use multiple samples to reduce jagged edges. Can be GPU-heavy, especially when VR is enabled. (Renamed from "FSAA" to avoid confusion with FXAA.) 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: Number of point light sources (lasers, torpedos, explosions, 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. Effects: Adjust the number of sprites per explosion. Lowest removes shot impact effects entirely. Most should leave this High, but lower settings may reduce the CPU load of dynamic lights and/or the GPU load of layered transparencies. Asteroid Quality: 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! Death Star Trench/Surface: Draw 3D details over the flat surfaces of the Death Star. Can be somewhat GPU-heavy and CPU-heavy, 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, Valve Index, or any other HMD. Non-Vive headsets may require view tweaks below. VERY GPU-HEAVY! Sway: Enable cockpit swaying motions in VR. More immersive, but can be nauseating. FOVW / FOVH: Field of view in degrees; negative means vertical FOV. Default: -111 Eye Separation: Spacing in meters between the two eyes. Default: 0.0625 Center Offset: Offset in pixels from screen center to eye center. Default: 87 --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: Change Firing Mode Joy Button 4: Target Nearest Enemy Joy Button 5: Look Center / VR Head Center Joy Button 6: Target Ahead Joy Button 7: Target Attacker Joy Button 8: Target Incoming Warhead Joy Button 9: Target Next Enemy Joy Button 10: Target Previous Enemy Joy Button 11: Change Shield Direction Joy Button 12: Target Objective X52 Button 1 (Trigger): Fire X52 Button 2 (Fire): Change Weapon X52 Button 3 (A): Target Ahead X52 Button 4 (B): Target Nearest Enemy X52 Button 5 (C): Change Firing Mode X52 Button 6 (Pinkie): Look Center / VR Head Center X52 Button 7 (D): Change Shield Direction X52 Button 8 (E): Target Attacker X52 Button 9 (T1): Target Incoming Warhead X52 Button 10 (T2): Target None X52 Button 11 (T3): Target Data-Link X52 Button 12 (T4): Target Groupmate X52 Button 13 (T5): Target Previous X52 Button 14 (T6): Target Next X52 Button 20 (Hat 2 Up): Show Scores X52 Button 21 (Hat 2 Right): Target Next Enemy X52 Button 22 (Hat 2 Down): Target Next Subsystem X52 Button 23 (Hat 2 Left): Target Previous Enemy X52 Button 24 (Hat 3 Up): Cockpit Seat X52 Button 25 (Hat 3 Right): Gunner Seat 1 X52 Button 26 (Hat 3 Down): Gunner Seat 2 X52 Button 27 (Hat 3 Left): Toggle Co-Pilot (Chewie) X52 Button 31 (Clutch): Target Incoming Warhead SideWinder Button 1 (Trigger): Fire SideWinder Button 2: Change Weapon SideWinder Button 3: Target Ahead SideWinder Button 4: Change Firing Mode SideWinder Button 5 (A): Target Nearest Enemy SideWinder Button 6 (B): Target Attacker SideWinder Button 7 (C): Target Incoming Warhead SideWinder Button 8 (D): Change Shield Direction SideWinder Button 9 (Shift): Look Center / VR Head Center 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 K: Eject 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 <name> <value>: Change a variable's value. exec <file>: Load a config file. export <file>: 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 <message>: Send chat message. echo <text>: Display text in the local console. host: Start a new game. connect <host>: 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 <name> <value>: 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 <num>: Adjust the network update rate for all clients. Default: 30 sv maxfps <num>: Adjust the simulation update rate. Default: 60 sv port <num>: 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 <host>: Join a game immediately by IP/hostname. -name <name>: Set player name. -dedicated: Host a dedicated server console instead of playing. -set <name> <value>: 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! I've only tested this on the HTC Vive, but it should work on other headsets with SteamVR support, such as Oculus Rift, Valve Index, etc. See the Preferences for VR view tweaks. When playing in VR, there's no radar yet, so pick up your visual scanning! 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", 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.3.1 (2023-11-22): * Fixed players losing sync when playing over the internet. * Fixed cockpit seat being unavailable to turret gunners after pilot disconnects. * Fixed "resync" causing client and/or server to crash. (Two separate bugs!) * Fixed collision model sometimes not updating when player changes ship. * Slightly improved netcode prediction accuracy. * Turrets no longer aim at Kessel Run checkpoints. Gunners hear checkpoints too. * Scoreboard now highlights the winning team. * Added Eject button (default K): hold for 3 seconds to self-destruct. Alpha 0.3 (2023-11-07): * Now includes ELF64 binary for Linux. * Updated to SDL2 on Windows/Linux. This fixes some joystick device mappings. * Improved netcode fixes shot sync and reduces ship rubber-banding when stopping. * Added new race game modes: Team Kessel Run and FFA Kessel Run. * Added new playable Imperial ship: Assault Gunboat. * Improved gameplay with respawn disabled. Round ends when the last player dies. * AI ships work harder to complete main objectives, especially without respawn. * Expanded AI skill levels: Bantha Fodder, Rookie, Veteran, Ace, Jedi, and Sith. * Subsystems on Star Destroyer can now be targeted and locked on at close range. * Y-Wings and B-Wings now have working ion cannons to take down shields quickly. * All ship turrets animate movement. YT-1300 turrets reworked with firing modes. * Improved explosions, shots, and dynamic lights. Effects quality now adjustable. * Reduced z-fighting flicker and improved performance by culling model backfaces. * Improved TIE cockpit visibility and moved VR viewport into correct head position. * Added VR tweaks to prefs, including new "vr_sway" (default off to reduce nausea). * Reworked sounds: damage received, enemy lock, missile launch, and rebel turrets. * More variety in asteroid size and health. Improved scatter and reduced count. * Target Incoming Warhead now always targets the most recently launched. * Joystick hat now defaults to Glance views, similar to controller thumbstick look. * Increased spacing between cruiser arrival points to reduce friendly collisions. * If the rebels do not destroy the Death Star in time, it fires its superlaser. * Fixed auto-assign moving you to the winning team if you died after your flagship. * Fixed flyby sounds playing too frequently when closely following another ship. * Fixed position of Customize Fleet menu in VR. * Added pause button for single-player games. 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.