O.W.T.F.A
A downloadable game for Linux and Android
contact@indeproduction.fr
🇫🇷 DÉFILEZ VERS LE BAS POUR LA VERSION FRANÇAISE 👇
🇪🇸 DESPLÁCETE HACIA ABAJO PARA LA VERSIÓN EN ESPAÑOL 👇
🇷🇺 SCROLL DOWN FOR RUSSIAN VERSION 👇
🇨🇳 SCROLL DOWN FOR CHINESE VERSION 👇
Welcome to O.W.T.F.A: The ultimate chaotic mobile racing experience.
More than just a game, this is the comprehensive guide to understanding, installing, playing, and hosting O.W.T.F.A.
⚠️ READ THIS BEFORE DOWNLOADING (IMPORTANT PREAMBLE)
1. Read the Guide (It's Plug & Play, promise): Rest assured, the game itself is extremely simple to use. Think of it like IKEA furniture: everything snaps together perfectly, but if you dive in without glancing at the instructions below, the overall architecture might confuse you. So, I ask for one small favor: please don't tear me apart in the comments if you choose to launch the APK without reading this manual. Thank you in advance for your understanding!
2. Understand the Architecture (What you're downloading): There are two distinct files provided on this page, do not confuse them:
- 🐧 The Linux Headless Build: Intended ONLY for those who want to host their own server. It is used to host a WAN dedicated server (Public or Private) or a LAN server on your own Linux machine/VPS.
- 🎮 The Android Build (APK): This is the game itself. It contains both the Client AND an embedded Server. It allows you to:
- Play Solo (You host the game locally on your phone).
- Play Local LAN (You host, and friends on the same Wi-Fi network join you).
- Play Online Multiplayer (You join a public or private WAN dedicated server).
3. Beta Preview & Expiration (Internet Required): This is a Beta (Preview) version designed to prepare for the final release (Production) on official stores. This version will permanently expire on 08/20/2026. To enforce this limit, a constant internet connection is absolutely required to play, even in Solo or LAN modes, in order to verify the expiration date.
📋 Table of Contents
- 📖 1. Origins, Inspirations & Mechanics
- 👤 2. The Project's History (A Word from the Dev)
- 🚗 3. Gameplay
- Ground Controls
- 3D (3-Axis) Air Control System
- In-Game Interface (HUD)
- Checkpoint Color Codes
- The "Multitasking" Feature
- Post-Race: Rematch or Freeroam?
- 🎮 4. Game Modes
- Playing with Bots (AI)
- ⚙️ 5. Technical Architecture (Under The Hood)
- 🕹️ 6. Installation Guide (Player Onboarding)
- 🐧 7. Deployment Guide (For Admins / Homelabs)
- 🔒 8. Security & DRM
- 🛠️ 9. F.A.Q & Troubleshooting
- 🐛 10. Known Bugs (Early Access)
- 📜 11. Credits & Acknowledgements
📖 1. Origins, Inspirations & Mechanics
The initial goal of this project was clear and ambitious: bring the legendary "Face-to-Face" racing concept to mobile. This mythical mode, imagined by the GTA Online community during its golden years (Xbox 360 / PS3) and perfected by FiveM servers (MegaGames EU/US), deserved a true dedicated iteration.
Absolutely every mechanic that made Face-to-Face races a success has been faithfully integrated (non-exhaustive list):
- Car Swap: Forced vehicle change at every Checkpoint.
- Ghost Effect: Players become ghosts (no collision) for a short duration after each swap to prevent griefing.
- Spectator Mode: Spectator camera for those who finished the race or joined too late.
- Slipstream: Use the slipstream behind your opponents to gain a decisive speed boost.
- Dynamic Day/Night Cycle: An environment that evolves in real-time (if enabled by the server).
The "Sandbox in the Sky" Aesthetic:
The visual style, consisting of colorful prototyping platforms suspended in the void, is not a design oversight: it's a fully deliberate and nostalgic aesthetic choice. It reproduces the very essence of the original GTA Online concept, where community creators manually assembled these "WTF" tracks high in the sky above the clouds of Los Santos.
An Open World acting as an Organic Lobby:
O.W.T.F.A does not use cold matchmaking menus. The game is built on a single Open World scene where all races happen simultaneously. Matchmaking is 100% organic: join an ongoing race on the fly, or stay in Free Roam.
👤 2. The Project's History (A Word from the Dev)
For the record, O.W.T.F.A is entirely developed by a single person (an atypical developer with ADHD/Autism, compensating and organizing with the help of AI agents for coding, and possessing an assumed obsession for network infrastructure rigor). Behind this technical challenge lies a visceral and transparent personal goal: to generate enough revenue to finally finish building my house. My family and I have been living in a mobile home for 3 years, and this game is my hope for providing us with a real home.
It's a passion project, crafted "by hand", but with the ambition to offer netcode and performance worthy of major studios. Every download, every piece of constructive feedback, and every chaotic race you participate in brings me a little closer to this lifelong dream. Thank you for giving an indie game a chance and supporting this human adventure!
A word on advertising:
Since the goal is to fund this life project, the game includes advertisements, but I have made it a point of honor to never break your immersion:
- Zero spam: Very few ads, and no interruptions in the middle of the action.
- Limited Interstitials: An ad may pop up at the end of a race, but only if your last ad was over 5 minutes ago.
- Rewarded Ads (Voluntary): Head to the VIP Car Dealer (outside of races)! You can choose to watch an ad to unlock an exclusive Premium vehicle, which will remain yours for the rest of the session.
(Note: During this Beta phase, only Google AdMob test ads are integrated. You will not see any real ads for now).
🚗 3. Gameplay ("GTA-Like" Controls)
The driving is designed to be arcade, demanding, but extremely forgiving and rewarding. It's pure "Fun & Skill to win", there is no Pay-to-Win mechanic here.
The Skill Gap might seem massive at first, but once mastered, you'll literally forget you're playing on a touchscreen. Here are two concrete examples to tame the physics:
- Mid-air Control: If your car consistently nosedives during a big jump, try releasing the accelerator just before leaving the ramp to stabilize its pitch.
- Twitchy Steering: If the car feels uncontrollable at high speeds, don't hold the steering arrow down. Use rapid, successive taps to correct your trajectory with surgical precision.
Feel free to watch the gameplay videos available on my YouTube channel to see these mechanics in action.
Ground Controls
- Basic Steering: Accelerate, Reverse / Brake, Right, Left.
- Drift (Handbrake): To trigger tight drifts.
- Boost: For lightning-fast acceleration on ramps.
✈️ 3D (3-Axis) Air Control System
Mastering the air is essential to survive the dizzying jumps.
- Pitch: Accelerate = Pitch Down (nosedive) / Brake = Pitch Up (pull up).
- Roll: Left/Right to stabilize the vehicle laterally.
- Yaw: Combo Drift + Left/Right to horizontally orient the front of the car in mid-air.
📺 In-Game Interface (HUD)
Once in-game, here are two tricks you need to know about your touchscreen:
- The Tactile Radar: In the bottom left, the large circle displays a mini-map by default. Tap it, and it will instantly switch to a Rear Cam screen to keep an eye on your opponents.
- The Telemetry Bar: At the very bottom of the screen, a green bar (which can be disabled in the settings) displays in real-time: your Speed, your FPS, the current Resolution managed by the DRS, RAM/VRAM consumption, and even your battery's physical temperature!
🏁 Checkpoint Color Codes
As you wander the open world, you'll see various glowing halos. Their color has a very specific meaning:
- 🟢 Start (Green): The race hasn't started. Drive through to trigger it and become the leader.
- 🔵 Start (Blue): Race in progress, but joinable. Drive into it to land on the track and participate.
- 🟣 Start (Purple): Race is full (max capacity reached). You will automatically be placed in spectator mode if you drive through.
- 🔴 Start (Red): Race is in its final phase (Sudden Death: a first participant has crossed the finish line, less than a minute remains). You will be placed in spectator mode.
- 🟡 Checkpoint (Yellow): A classic intermediate checkpoint on a track.
- 🏁 Finish (Pink & Black Checkered): The final Checkpoint. Cross it to win and trigger sudden death for your opponents!
🚨 The "Multitasking" Feature (Not a bug)
Thanks to the single-scene architecture, you can participate in multiple races at the same time! A dynamic list records your participations and lets you switch between them on the fly. The RaceManager always knows which race is your "active" one and adapts the HUD accordingly. However, some global events might bleed over: if you see a race finish panel pop up in the middle of a loop, or hear the Sudden Death siren while no red countdown is on your screen... don't panic! It simply means that another background race you're participating in has just ended or entered its final phase.
🔄 Post-Race: Rematch or Freeroam?
Once the race is over, each RaceManager handles its own post-game micro-lobby. The game then offers you a crucial choice:
- Freeroam: You leave the race instance and are freely teleported back into the open world.
- Try Hard (This Race): You demand a rematch! You are instantly teleported to the starting grid with other players who made the same choice, and the countdown for the next round automatically begins.
🎮 4. Game Modes (Total Freedom)
O.W.T.F.A enforces nothing. You play exactly how you want in an open world currently featuring 15 distinct and fully functional races (more will be added as development progresses):
- Host Mode (Solo / Local LAN): By clicking "HOST", your device directly hosts the game. As long as no one joins, you play Solo. But if friends are connected to the same Wi-Fi network, they'll automatically see your game and can dive right in! (Tip: if you want to be absolutely sure to remain solo on your local network, activate a VPN).
- Online Mode (Public or Private): Join the community's online servers (Public or Private) to face the world in multiplayer races. While defaults are often set to 64 players per server and 8 per race, the engine can actually handle up to 256 simultaneous clients per server, and can line up up to 16 players on a single starting grid.
🤖 Playing with Bots (AI)
Whether you're playing Solo to practice or managing a server with few connected players, you can spice up the races using the built-in Bots!
- Activation: By default, the number of bots is set to 0. If you are the host, you can modify this number via the Server Settings tab (on Android) or in the
server_config.inifile (on Linux Headless). - Recommended Usage: They are perfect for testing the game or bringing life to an empty server. However, it is not recommended to use them on crowded servers to keep things readable (though the final choice always belongs to the server admin).
- How it works: The bot AI relies on a complex network of Waypoints (pre-recorded paths). To guarantee a constant challenge and seem more human, they use a dynamic Rubberbanding mechanic to adjust their competitiveness.
⚙️ 5. Technical Architecture (Under The Hood)
O.W.T.F.A is an optimization monster built in Unity 6 to handle high-speed competition. My approach blends network engineering with obsessive optimization. (The points below are just a few examples among dozens of implemented systems):
- Netcode (Asynchronous Magic): Powered by FishNet, the architecture is based on a "Client Authoritative with Server Control over the Game" model. Opponent vehicles are "puppets" synchronized via Target RPCs. Impacts always arrive at the perfect millisecond on your screen.
- Experimental Advanced Physics: The game simulates inertia transfer (Attacker Yielding) during frontal crashes, avoiding the "brick wall" effect. Furthermore, continuous friction is calculated during lateral contacts (pack rubbing), securely throttled and sent to the server.
- Mathematical Slipstream Architecture: The slipstream calculation bypasses Unity colliders in favor of a purely mathematical ellipse model. Optimized via Time-Slicing (target search at 10Hz, application at 60Hz) and Broadphase Culling, this architecture handles dozens of simultaneous vehicles without breaking a sweat.
- Dynamic Resolution (DRS) & JNI Monitoring: The game features a dynamic 6-tier system that monitors framerate. If the average drops below 25 FPS over 3 seconds, the game downscales. If it exceeds 50 FPS for 20 seconds, it upscales. Additionally, native Android calls (JNI) display your battery's physical temperature in real-time.
- Eradicating State Leaks (Zero Loading): The Single Scene architecture is bulletproof. The single scene is loaded once when the app launches, then reused endlessly to completely eliminate loading screens. Whether you switch from a local Host to a pure Client on a WAN server, or suffer a brutal disconnect, the global state and coroutines are purged to the millisecond. No ghost UI (zombies) will ever pollute your screen.
🕹️ 6. Installation Guide (Player Onboarding)
Want to jump into the action? Follow this step-by-step UI guide:
Step 1: Installation
Download the .apk file (Android) below and install it. (Note: You may need to allow the installation of apps from unknown sources in your phone's settings).
Step 2: The Main Menu (Carousel)
Upon launch, you are greeted by a carousel menu. Swipe to browse the main buttons:
- 🔵 JOIN LOCAL / ONLINE: To join an existing game.
- 🟡 LOCAL HOST & SOLO: To host your own game (play alone, or let friends on the same Wi-Fi join you).
- ⚙️ GAME SETTINGS: Where everything is configured. Split into two columns: on the left your Client Settings (FPS limiter, manual DRS tier selection, vibrations, etc.), and on the right the Server Settings (which only apply if you are the host).
- 🟢 MY PROFILE / STATS: To check your statistics.
Step 3: Joining a game (JOIN Panel)
If you clicked the blue "JOIN" button, the server browser opens. It's divided into 3 smart zones:
- Top Right (Online Public Servers): This is where WAN dedicated servers (Online) appear. Simply tap a row to join the global chaos.
- Top Left (LAN Android Servers): If a family member started the game as "HOST" on the same Wi-Fi network, their phone will appear here.
- Bottom (Manual Connection): A zone for veterans. Enter the IP, Port, and optional Password to join a private dedicated server (stealth mode).
🐧 7. Deployment Guide (For Admins / Homelabs)
Do you manage a community and want to host your own Linux (Headless) server?
The build is designed to run on a VPS (Ubuntu, Debian...) purely via command line. Don't be afraid of hardware requirements: a basic entry-level VPS (1 vCore, 2GB RAM) won't lag. To give you an idea, such a server maintains a solid 75 FPS with 100 active bots! If you push it to 160 bots, the CPU will max out at 100% and you'll experience lag/jitter (dropping to around 40 FPS), but the architecture will not crash. The executable contains its own comprehensive manual, accessible via the command:
./Server_Build_36.x86_64 -man
🚀 The Built-in Configuration Wizard
Forget complex manual editing. The server includes an interactive CONFIGURATION WIZARD. Run the following command and answer the prompts (Name, Port, Day/Night Cycle, Slipstream, etc.) to cleanly and automatically generate your server_config.ini file:
./Server_Build_36.x86_64 -batchmode -nographics -g
🏁 Starting the Server
Once configured, launch your server in the background:
nohup ./Server_Build_36.x86_64 -batchmode -nographics &
Stealth Mode (Private): You can override the configuration via command-line arguments. By adding the -private argument, the server will no longer appear on the global directory. The -token argument then changes its role and becomes the Password required for players connecting manually via IP!
🛡️ Firewall & Networking (CRITICAL)
For your server to be visible and functional, you must absolutely open two ports in your firewall (UFW) or hosting panel:
- The Game Port (e.g., 7770) over UDP: Essential for player traffic.
- The Ping Port (e.g., 7771) over TCP: (Always Game Port + 1). The Master Server uses this to ping your server and certify it is alive before listing it. If closed, your server will remain invisible.
🩺 Monitoring & Telemetry (For SysAdmins)
The server was designed for extreme lightweight performance. You can monitor its health in real-time by reading the output (e.g., tail -f nohup.out). The server continuously prints full telemetry of its internal performance:
- Server FPS: Rolling averages over 3s, 10s, and 60s (Natively runs at a constant 75 FPS).
- Resources: CPU usage (usually under 4% on a standard VPS) and optimized RAM usage (under 600 MB).
- Heartbeat: Real-time confirmation of successful pings to the Master Server.
🔒 8. Security & DRM
(See Preamble for details). This evaluation version features a proprietary DRM constantly verifying the expiration date (08/20/2026). Without access to validation servers (no internet), the game will refuse to launch, even for a Solo session.
🛠️ 9. F.A.Q & Troubleshooting
Some behaviors might seem like bugs or oversights, but are actually deliberate design choices or related to your device's configuration:
- "Why is the game ONLY available on Android? When is PC/iOS coming?" This is a fully deliberate choice. The goal of O.W.T.F.A is to bring this racing concept to a platform (touchscreens) where it's unseen. Furthermore, I refuse to put PC players (keyboard/controller) in unfair competition against mobile players. Lastly, maintaining cross-platform builds would quickly become a nightmare for a solo developer. For admins, I might release a Windows executable dedicated server if demand is high, but it's not planned for now.
- "The resolution looks pixelated / ugly": The game uses a Dynamic Resolution System (DRS). If it insists on dropping the resolution to maintain FPS, go to the Settings panel and uncheck the lowest resolution tiers (or only leave your preferred one checked) to force the game to stay sharp.
- "The game lags / lacks smoothness":
- Close all background apps and disable power-saving mode.
- Xiaomi Redmi Tip (and equivalents): Quickly toggle the eco mode on and off via the notification shade mid-game. This often unlocks turbo mode, allowing you to play at 120Hz (up to 120 theoretical FPS).
- If the game still lags, go to Settings and uncheck the highest resolution tiers to prevent it from running in Full HD.
- For ancient devices (e.g., Samsung Galaxy Note 3): Yes, the game can actually run on these (no joke) at 25-30 FPS! To achieve this: cap the Framerate to 30 FPS, only keep the lowest (or second-lowest) resolution checked, and play online (being a pure client massively reduces the load compared to hosting).
🐛 10. Known Bugs (Early Access)
The game is in active development (Beta). Here are the malfunctions I am aware of and which will be patched soon. Please be forgiving, and thank you for your feedback!
- Spectator Mode (Races 5 to 15): Only races 1 to 4 have their spectator camera anchor points properly configured. On other tracks, the camera might get stuck in the scenery or fail to find any vehicles to follow (due to Network Culling optimization).
- Track Trolls (Trigger flaw): On certain tracks, the starting detection zone (trigger) isn't perfectly glued to the physical entrance of the circuit. Malicious players can thus sneak onto the track mid-race without being detected, allowing them to interfere with racers instead of being switched to spectator mode.
- "Server Hopping" Instability (State Leaks): Although the Single Scene auto-purges, residual state conflicts might survive during intensive back-and-forths between multiple WAN servers and the main menu. If you experience abnormal behavior, completely close the app and relaunch it to force a clean wipe.
📜 11. Credits & Acknowledgements
O.W.T.F.A is a solo project, but it wouldn't have seen the light of day without the exceptional work of developers and 3D artists from the Unity community. A massive thank you to the creators of the following assets:
- Arcade Car Physics by Saarg: The skeleton that allowed me to build my own physics.
- Fish-Net (Networking Evolved) by FirstGearGames: The genius network engine that absorbs the chaos of my collisions without flinching.
- 3D Models (Vehicles & Environments): A huge thank you to the authors of: POLYGON City Pack, Awb-Free Low Poly Cars, BackRock-NeonCity, Fantasy Skybox FREE, Police Car & Helicopter, Simple Vehicle Pack, Simple city plain, Toon Vehicles Free, Pack FREE Cars, and SportCar.
Developer's note: O.W.T.F.A is my very first game. I did my best to log the assets used throughout development, but it's highly possible I forgot some people or listed certain packs by mistake. Please be forgiving! If you are a creator, recognize your work, and I forgot to mention you, please don't hesitate to contact me (with proof) and I will officially credit you with the greatest pleasure.
Thank you for being part of the O.W.T.F.A adventure. Brace for the chaos. 💥
🇬🇧 SCROLL UP FOR ENGLISH VERSION 👆
🇪🇸 DESPLÁCETE HACIA ABAJO PARA LA VERSIÓN EN ESPAÑOL 👇
🇷🇺 DÉFILEZ VERS LE BAS POUR LA VERSION RUSSE 👇
🇨🇳 DÉFILEZ VERS LE BAS POUR LA VERSION CHINOISE 👇
Bienvenue dans O.W.T.F.A : L'expérience ultime de course chaotique sur mobile.
Plus qu'un simple jeu, ceci est le guide complet pour comprendre, installer, jouer et héberger O.W.T.F.A.
⚠️ LISEZ CECI AVANT DE TÉLÉCHARGER (PRÉAMBULE IMPORTANT)
1. Lisez le Guide (C'est Plug & Play, promis) : Rassurez-vous, le jeu en lui-même est extrêmement simple d'utilisation. Voyez-le comme un meuble IKEA : tout s'emboîte parfaitement, mais si vous essayez de vous lancer sans jeter un œil à la notice ci-dessous, l'architecture globale risque de vous paraître confuse. Je vous demande donc une petite faveur : s'il vous plaît, ne me démontez pas dans les commentaires si vous avez fait le choix de lancer l'APK sans lire ce manuel. Merci d'avance pour votre bienveillance !
2. Comprenez l'Architecture (Ce que vous téléchargez) : Il y a deux fichiers distincts fournis sur cette page, ne les confondez pas :
- 🐧 Le Build Linux Headless : Destiné UNIQUEMENT à ceux qui veulent administrer leur propre serveur. Il sert à héberger un serveur dédié WAN (Public ou Privé) ou un serveur LAN sur votre propre machine Linux/VPS.
- 🎮 Le Build Android (APK) : C'est le jeu. Il contient à la fois le Client ET un Serveur embarqué. Il vous permet de :
- Jouer en Solo (Vous hébergez la partie localement sur votre téléphone).
- Jouer en Multi LAN (Vous hébergez et vos amis sur le même réseau local vous rejoignent).
- Jouer en Multi Online (Vous rejoignez un serveur dédié WAN Public ou Privé).
3. Beta Preview & Expiration (Connexion Requise) : Ceci est une version Beta (Preview) conçue pour préparer la sortie finale (Production) sur les stores officiels. Cette version expirera définitivement le 20/08/2026. Pour appliquer cette limite, une connexion internet constante est absolument requise pour jouer, même dans les modes Solo ou LAN, afin de vérifier la date d'expiration.
📋 Sommaire
- 📖 1. Origines, Inspirations & Mécaniques
- 👤 2. L'Histoire du Projet (Le mot du Dev)
- 🚗 3. Le Gameplay
- Contrôles au sol
- Système 3D (3-Axis) Air Control
- L'Interface en Course (HUD)
- Le Code Couleur des Checkpoints
- Subtilité "Multitasking"
- Après la Course : Revanche ou Exploration ?
- 🎮 4. Les Modes de Jeu
- Jouer avec des Bots (IA)
- ⚙️ 5. Architecture Technique (Under The Hood)
- 🕹️ 6. Guide d'Installation (Onboarding Joueurs)
- 🐧 7. Guide de Déploiement (Pour les Admins / Homelabs)
- 🔒 8. Sécurité & DRM
- 🛠️ 9. F.A.Q & Dépannage (Problèmes fréquents)
- 🐛 10. Bugs Connus (Early Access)
- 📜 11. Crédits & Remerciements
📖 1. Origines, Inspirations & Mécaniques
L'objectif initial de ce projet était clair et ambitieux : porter le concept légendaire des courses "Face-to-Face" sur mobile. Ce mode mythique, imaginé par la communauté de GTA Online durant ses années d'or (Xbox 360 / PS3) et sublimé par les serveurs FiveM (MegaGames EU/US), méritait une véritable itération dédiée.
Absolument toutes les mécaniques qui ont fait le succès des courses Face-to-Face ont été fidèlement intégrées (liste non exhaustive) :
- Car Swap : Changement de véhicule imposé à chaque passage de Checkpoint.
- Ghost Effect : Les joueurs deviennent des fantômes (sans collision) pendant une courte durée après chaque swap pour éviter l'antijeu.
- Spectator Mode : Caméra spectateur pour ceux qui ont terminé la course ou qui la rejoignent trop tard.
- Slipstream (Aspiration) : Exploitez l'aspiration derrière vos adversaires pour gagner un boost de vitesse décisif.
- Cycle Jour/Nuit Dynamique : Un environnement qui évolue en temps réel (si activé par le serveur).
L'Esthétique "Bac à sable dans le ciel" :
Le style visuel composé de plateformes de prototypage colorées suspendues dans le vide n'est pas un oubli de design : c'est un choix esthétique et nostalgique totalement assumé. Cela reproduit l'essence même du concept original sur GTA Online, où les créateurs de la communauté assemblaient manuellement ces parcours "WTF", très haut dans le ciel au-dessus des nuages de Los Santos.
Un monde ouvert faisant office de Lobby organique :
O.W.T.F.A n'utilise pas de menus de matchmaking froids. Le jeu repose sur une scène unique en monde ouvert (Open World) où toutes les courses ont lieu simultanément. Le matchmaking est 100% organique : rejoignez une course en cours à la volée, ou restez en Free Roam.
👤 2. L'Histoire du Projet (Le mot du Dev)
Pour la petite histoire, O.W.T.F.A est intégralement développé par une seule personne (un développeur atypique avec TDAH/Autisme, compensant et s'organisant avec l'aide d'agents IA pour le code, et possédant une obsession assumée pour la rigueur des infrastructures réseaux). Derrière ce défi technique se cache un objectif personnel viscéral et transparent : générer suffisamment de revenus pour enfin terminer la construction de ma maison. Ma famille et moi vivons dans un mobil-home depuis 3 ans, et ce jeu est mon espoir de nous offrir un vrai foyer.
C'est un projet de passionné, façonné "à la main", mais avec l'ambition de proposer un netcode et des performances dignes des gros studios. Chaque téléchargement, chaque retour constructif, et chaque course chaotique à laquelle vous aurez participé me rapproche un peu plus de ce rêve de vie. Merci de donner sa chance à un jeu indé et de soutenir cette aventure humaine !
Un mot sur la publicité :
Puisque l'objectif est de financer ce projet de vie, le jeu intègre des publicités, mais j'ai mis un point d'honneur à ne jamais casser votre immersion :
- Zéro spam : Très peu de publicités, et aucune interruption en pleine action.
- Interstitiels limités : Une pub peut s'afficher à la fin d'une course, mais uniquement si votre dernière pub remonte à plus de 5 minutes.
- Pubs volontaires (Rewarded) : Rendez-vous au Car VIP Dealer (hors course) ! Vous pouvez choisir de regarder une publicité pour débloquer un véhicule Premium exclusif, qui restera vôtre pour tout le reste de la session.
(Note : Durant cette phase Beta, seules des annonces de test Google AdMob sont intégrées. Vous ne verrez aucune vraie publicité pour le moment).
🚗 3. Le Gameplay (Contrôles "GTA-Like")
La conduite se veut arcade, exigeante, mais extrêmement permissive et gratifiante. C'est du pur "Fun & Skill to win", il n'y a aucune notion de Pay-to-Win ici.
Le Skill Gap (la marge de progression) peut sembler immense au début, mais une fois maîtrisé, vous allez littéralement oublier que vous jouez sur un écran tactile. Voici deux exemples concrets pour dompter la physique :
- Contrôle en vol : Si votre voiture pique systématiquement du nez lors d'un grand saut, demandez-vous si vous ne devriez pas relâcher l'accélérateur juste avant de quitter la rampe pour stabiliser l'assiette.
- Direction nerveuse : Si la voiture vous semble incontrôlable à haute vitesse, ne maintenez pas la flèche enfoncée. Agissez par petits tapotements successifs et rapprochés pour corriger la trajectoire avec une précision chirurgicale.
N'hésitez pas à visionner les vidéos de gameplay disponibles sur ma chaîne YouTube pour observer ces mécaniques en action.
Contrôles au sol
- Direction basique : Avancer, Reculer / Freiner, Droite, Gauche.
- Drift (Handbrake) : Pour déclencher des dérapages serrés.
- Boost : Pour une accélération fulgurante sur les rampes.
✈️ Système 3D (3-Axis) Air Control
La maîtrise des airs est indispensable pour survivre aux sauts vertigineux.
- Pitch (Tangage) : Avancer = Pitch Down (piquer du nez) / Freiner = Pitch Up (cabrer).
- Roll (Roulis) : Gauche/Droite pour stabiliser le véhicule latéralement.
- Yaw (Lacet) : Combo Drift + Gauche/Droite pour orienter l'avant de la voiture horizontalement en l'air.
📺 L'Interface en Course (HUD)
Une fois en jeu, voici les deux astuces à connaître sur votre écran tacticle :
- Le radar tactile : En bas à gauche, le grand cercle affiche par défaut une mini-map. Touchez-le, et il basculera instantanément sur un écran de caméra de recul (Rear Cam) pour surveiller vos adversaires.
- La barre de télémétrie : Tout en bas de l'écran, une barre verte (désactivable dans les paramètres) affiche en temps réel : votre Vitesse, vos FPS, la Résolution actuelle gérée par le DRS, la consommation RAM/VRAM, et même la température physique de votre batterie !
🏁 Le Code Couleur des Checkpoints
En vous baladant dans le monde ouvert, vous verrez différents halos lumineux. Leur couleur a une signification très précise :
- 🟢 Départ (Vert) : La course n'a pas commencé. Traversez pour la déclencher et devenir le leader.
- 🔵 Départ (Bleu) : Course en cours, mais rejoignable. Foncez dedans pour atterrir sur la piste et y participer.
- 🟣 Départ (Violet) : Course pleine (capacité max atteinte). Vous serez automatiquement placé en mode spectateur si vous traversez.
- 🔴 Départ (Rouge) : Course en phase de fin (Sudden Death : un premier participant a franchi la ligne d'arrivée, il reste moins d'une minute). Vous serez placé en mode spectateur.
- 🟡 Checkpoint (Jaune) : Point de passage intermédiaire classique sur un circuit (ni départ, ni arrivée).
- 🏁 Arrivée (Damiers Roses & Noirs) : Le Checkpoint final. Franchissez-le pour gagner et déclencher la mort subite pour vos adversaires !
🚨 Subtilité "Multitasking" (Ce n'est pas un bug)
Grâce à l'architecture en scène unique, vous pouvez participer à plusieurs courses en même temps ! Une liste dynamique enregistre vos participations et vous permet de basculer de l'une à l'autre à la volée. Le RaceManager sait toujours quelle est votre course "active" et adapte le HUD en conséquence. Cependant, certains événements globaux peuvent déborder : si vous voyez apparaître un panneau de fin de course en plein milieu d'une boucle, ou si vous entendez la sirène de la Sudden Death (mort subite) alors qu'aucun compte à rebours rouge n'est affiché sur votre écran... pas de panique ! C'est simplement qu'une autre des courses à laquelle vous participez en arrière-plan vient de s'achever ou d'entrer dans sa phase finale.
🔄 Après la Course : Revanche ou Exploration ?
Une fois la course terminée, chaque RaceManager gère son propre micro-lobby de fin de partie. Le jeu vous propose alors un choix crucial :
- Freeroam : Vous quittez l'instance de la course et êtes téléporté librement dans le monde ouvert.
- Try Hard (This Race) : Vous demandez votre revanche ! Vous êtes immédiatement téléporté sur la grille de départ avec les autres joueurs ayant fait le même choix, et le compte à rebours de la manche suivante s'enclenche automatiquement.
🎮 4. Les Modes de Jeu (La Liberté Totale)
O.W.T.F.A n'impose rien. Vous jouez comme vous le souhaitez dans un monde ouvert proposant actuellement 15 courses distinctes et fonctionnelles (d'autres seront ajoutées au fil du développement) :
- Mode Host (Solo / LAN Local) : En choisissant de cliquer sur "HOST", votre appareil héberge directement la partie. Tant que personne ne vous rejoint, vous jouez en Solo. Mais si des amis sont connectés sur le même réseau Wi-Fi que vous, ils verront automatiquement votre partie et pourront y plonger ! (Astuce : si vous voulez être absolument certain de rester seul en local, activez un VPN).
- Mode Online (Public ou Privé) : Rejoignez les serveurs online de la communauté (Publics ou Privés) pour affronter le monde entier dans des courses multijoueurs. Si les valeurs par défaut sont souvent réglées sur 64 joueurs par serveur et 8 par course, le moteur encaisse en réalité jusqu'à 256 clients simultanés par serveur, et permet d'aligner jusqu'à 16 joueurs sur une même grille de départ.
🤖 Jouer avec des Bots (Intelligence Artificielle)
Que vous jouiez en Solo pour vous entraîner ou que vous gériez un serveur avec peu de joueurs connectés, vous pouvez dynamiser les courses grâce aux Bots intégrés !
- Activation : Par défaut, le nombre de bots est fixé à 0. Si vous hébergez la partie, vous pouvez modifier ce nombre via l'onglet Server Settings (sur Android) ou dans le fichier
server_config.ini(sur Linux Headless). - Usage recommandé : Ils sont parfaits pour tester le jeu ou animer un serveur vide. En revanche, il est déconseillé de les utiliser sur des serveurs bondés pour des questions de lisibilité (bien que le choix final appartienne toujours à l'administrateur du serveur).
- Fonctionnement : L'IA des bots repose sur un réseau de Waypoints (tracés préenregistrés). Afin de garantir un défi constant et de paraître plus humains, ils utilisent une mécanique de Rubberbanding (élastique).
⚙️ 5. Architecture Technique (Under The Hood)
O.W.T.F.A est un monstre d'optimisation conçu sous Unity 6 pour encaisser la compétition à haute vitesse. Mon approche mêle ingénierie réseau et optimisation obsessionnelle. (Les points ci-dessous ne sont que quelques exemples parmi des dizaines de systèmes implémentés) :
- Netcode (La Magie Asynchrone) : Propulsé par FishNet, l'architecture repose sur un modèle "Client Authoritative with Server Control over the Game". Les véhicules adverses sont des "marionnettes" synchronisées par des Target RPCs. Les impacts arrivent toujours au moment parfait sur votre écran.
- Physique Avancée Expérimentale : Le jeu simule le transfert d'inertie (Attacker Yielding) lors d'un choc frontal, évitant l'effet de "mur en béton". De plus, une friction continue est calculée lors des contacts latéraux (frottements peloton), envoyée de manière sécurisée (throttled) au serveur.
- Architecture Slipstream (Aspiration) Mathématique : Le calcul d'aspiration bypass les colliders Unity au profit d'un modèle d'ellipse purement mathématique. Optimisée par Time-Slicing (recherche de cible à 10Hz, application à 60Hz) et un Broadphase Culling, cette architecture encaisse sans sourciller des dizaines de véhicules simultanés.
- Résolution Dynamique (DRS) & Monitoring JNI : Le jeu intègre un système dynamique à 6 paliers qui surveille le framerate. Si la moyenne des 3 dernières secondes passe sous 25 FPS, le jeu downscale. Si elle dépasse 50 FPS sur 20 secondes, il upscale. En complément, des appels natifs Android (JNI) affichent la température en temps réel de votre batterie.
- Éradication des State Leaks (Zéro Chargement) : L'architecture de la Single Scene est blindée. La scène unique est chargée une seule fois au lancement de l'application, puis réutilisée en boucle pour éliminer totalement les écrans de chargement. Que vous passiez de Host local à Client pur sur un serveur WAN, ou que vous subissiez une déconnexion brutale, l'état global et les coroutines sont purgés à la milliseconde près. Aucune interface fantôme (zombie UI) ne viendra polluer votre écran.
🕹️ 6. Guide d'Installation (Onboarding Joueurs)
Vous voulez plonger dans l'action ? Suivez le guide pas-à-pas de l'interface :
Étape 1 : Installation
Téléchargez le fichier .apk (Android) ci-dessous et installez-le. (Note : Vous devrez peut-être autoriser l'installation d'applications de sources inconnues dans les paramètres de votre téléphone).
Étape 2 : Le Menu Principal (Carrousel)
Au lancement, vous êtes accueilli par un menu sous forme de carrousel. Utilisez les flèches pour faire défiler les gros boutons :
- 🔵 JOIN LOCAL / ONLINE : Pour rejoindre une partie existante.
- 🟡 LOCAL HOST & SOLO : Pour héberger votre propre partie (et y jouer seul, ou laisser vos amis sur le même réseau Wi-Fi vous rejoindre).
- ⚙️ PARAMÈTRES DU JEU : L'endroit où tout se configure. Divisé en deux colonnes : à gauche vos Client Settings (limiteur de FPS, activation manuelle des paliers du DRS, vibrations, etc.), et à droite les Server Settings (qui ne s'appliqueront que si vous hébergez la partie).
- 🟢 MON PROFIL / STATS : Pour consulter vos statistiques.
Étape 3 : Rejoindre une partie (Panel JOIN)
Si vous avez cliqué sur le bouton bleu "JOIN", le navigateur de serveurs s'ouvre. Il est divisé en 3 zones intelligentes :
- En haut à droite (Online Public Servers) : C'est ici qu'apparaissent les serveurs dédiés WAN (Online). Cliquez simplement sur la ligne pour rejoindre le chaos mondial.
- En haut à gauche (LAN Android Servers) : Si un membre de votre famille a lancé le jeu en "HOST" sur la même box Wi-Fi, son téléphone apparaîtra ici.
- En bas (Manual Connection) : Une zone pour les vétérans. Entrez l'IP, le Port, et le Mot de Passe optionnel pour rejoindre un serveur dédié privé (mode furtif).
🐧 7. Guide de Déploiement (Pour les Admins / Homelabs)
Vous gérez une communauté et voulez héberger votre propre serveur Linux (Headless) ?
Le build est conçu pour tourner sur un VPS (Ubuntu, Debian...) en ligne de commande pure. N'ayez pas peur de la configuration matérielle requise : un simple VPS d'entrée de gamme (1 vCore, 2 Go de RAM) ne ramera pas. Pour vous donner un ordre d'idée, un tel serveur tient 75 FPS constants avec 100 bots actifs ! Si vous le poussez à 160 bots, le CPU saturera à 100% et vous subirez du lag/jitter (avec une chute autour de 40 FPS), mais l'architecture ne plantera pas. L'exécutable embarque son propre manuel complet, accessible via la commande :
./Server_Build_36.x86_64 -man
🚀 L'Assistant de Configuration Intégré
Oubliez l'édition manuelle complexe. Le serveur embarque un CONFIGURATION WIZARD interactif. Lancez la commande suivante et répondez aux questions (Nom, Port, Cycle Jour/Nuit, Aspiration, etc.) pour générer automatiquement et proprement votre fichier server_config.ini :
./Server_Build_36.x86_64 -batchmode -nographics -g
🏁 Lancement du Serveur
Une fois configuré, lancez votre serveur en tâche de fond :
nohup ./Server_Build_36.x86_64 -batchmode -nographics &
Mode Furtif (Privé) : Vous pouvez surcharger la configuration via les arguments en ligne de commande. En ajoutant l'argument -private, le serveur n'apparaîtra plus sur l'annuaire mondial. L'argument -token change alors de rôle et devient le Mot de passe requis par les joueurs pour se connecter manuellement via l'IP !
🛡️ Firewall et Réseau (CRITIQUE)
Pour que votre serveur soit visible et fonctionnel, vous devez impérativement ouvrir deux ports dans votre pare-feu (UFW) ou sur le panel de votre hébergeur :
- Le Port de Jeu (ex: 7770) en UDP : Indispensable pour le trafic des joueurs.
- Le Port de Ping (ex: 7771) en TCP : (Toujours égal au port de jeu + 1). Le Master Server s'en sert pour pinger votre serveur et certifier qu'il est en vie avant de le lister. S'il est fermé, votre serveur restera invisible.
🩺 Monitoring & Télémétrie (Pour les SysAdmins)
Le serveur a été conçu pour l'ultra-légèreté. Vous pouvez surveiller sa santé en temps réel en lisant l'output (ex: tail -f nohup.out). Le serveur imprime en boucle une télémétrie complète de ses performances internes :
- FPS Serveur : Moyennes glissantes sur 3s, 10s et 60s (Tourne nativement à 75 FPS constant).
- Ressources : Consommation CPU (généralement sous les 4% sur un VPS classique) et usage RAM optimisé (inférieur à 600 Mo).
- Heartbeat : Confirmation en temps réel des pings réussis vers le Master Server.
🔒 8. Sécurité & DRM
(Voir le Préambule pour plus de détails). Cette version d'évaluation intègre un DRM propriétaire vérifiant en permanence la date d'expiration (20/08/2026). Sans accès à aux serveurs de validation (pas d'internet), le jeu refusera de démarrer, même pour une session Solo.
🛠️ 9. F.A.Q & Dépannage (Problèmes fréquents)
Certains comportements peuvent sembler être des bugs ou des oublis, mais relèvent en fait d'un choix de design ou de la configuration de votre appareil :
- "Pourquoi le jeu n'est-il dispo QUE sur Android ? À quand le PC/iOS ?" : C'est un choix totalement assumé. Le but d'O.W.T.F.A est de porter ce concept de course sur une plateforme (le tactile) où il est inédit. De plus, je refuse de mettre en concurrence des joueurs PC avec des joueurs mobiles. Enfin, maintenir le jeu multi-plateformes deviendrait rapidement un cauchemar pour un développeur solo. Pour les admins, je sortirai peut-être un serveur dédié exécutable sous Windows si la demande est forte, mais ce n'est pas prévu pour le moment.
- "La résolution est pixélisée / moche" : Le jeu utilise un système de Résolution Dynamique (DRS). S'il s'obstine à baisser la résolution pour garder des FPS, allez dans le panel Settings et décochez les paliers de résolution les plus bas (ou ne laissez coché que celui qui vous convient) pour forcer le jeu à rester net.
- "Le jeu rame / manque de fluidité" :
- Fermez toutes vos applications en arrière-plan et désactivez le mode économie d'énergie.
- Astuce Xiaomi Redmi (et équivalents) : Activez et désactivez rapidement le mode éco via le volet de notification en pleine partie. Cela débloque souvent le mode turbo et permet de jouer en 120Hz (jusqu'à 120 FPS théoriques).
- Si le jeu rame toujours, allez dans les Settings et excluez les paliers de résolution les plus hauts pour l'empêcher de tourner en Full HD.
- Pour les antiquités (ex: Samsung Galaxy Note 3) : Et oui, le jeu peut y tourner (no fake) à 25-30 FPS ! Pour cela : limitez le Framerate à 30 FPS, ne laissez cochée que la résolution la plus basse (ou l'avant-dernière), et jouez en ligne (être un simple client soulage énormément la charge, contrairement au mode Host).
🐛 10. Bugs Connus (Early Access)
Le jeu est en développement actif (Beta). Voici les dysfonctionnements dont je suis conscient et qui seront patchés prochainement. Soyez indulgents, et merci pour vos retours !
- Mode Spectateur (Courses 5 à 15) : Seules les courses 1 à 4 ont leurs points d'ancrage de caméra spectateur correctement configurés. Sur les autres tracés, la caméra peut se bloquer dans le décor ou ne trouver aucun véhicule à suivre (en raison de l'optimisation Network Culling).
- Trolls en piste (Faille de déclencheur) : Sur certaines pistes, la zone de détection du départ (trigger) n'est pas parfaitement collée à l'entrée physique du circuit. Des joueurs malveillants peuvent ainsi s'infiltrer sur la piste en pleine course sans être détectés, ce qui leur permet d'interférer avec les coureurs au lieu d'être basculés en mode spectateur.
- Instabilité lors du "Server Hopping" (Fuites résiduelles) : Bien que la Single Scene soit purgée automatiquement, il peut subsister des conflits d'états lors d'allers-retours intensifs entre de multiples serveurs WAN et le menu principal. Si vous rencontrez un comportement anormal, fermez complètement l'application et relancez-la pour forcer un nettoyage propre.
📜 11. Crédits & Remerciements
O.W.T.F.A est un projet solo, mais qui n'aurait pas pu voir le jour sans le travail exceptionnel de développeurs et d'artistes 3D de la communauté Unity. Un immense merci aux créateurs des assets suivants :
- Arcade Car Physics par Saarg : Le squelette qui m'a permis de bâtir ma propre physique.
- Fish-Net (Networking Evolved) par FirstGearGames : Le moteur réseau de génie qui encaisse le chaos de mes collisions sans broncher.
- Modèles 3D (Véhicules & Environnements) : Un grand merci aux auteurs de : POLYGON City Pack, Awb-Free Low Poly Cars, BackRock-NeonCity, Fantasy Skybox FREE, Police Car & Helicopter, Simple Vehicle Pack, Simple city plain, Toon Vehicles Free, Pack FREE Cars, et SportCar.
Note du développeur : O.W.T.F.A est mon tout premier jeu. J'ai fait de mon mieux pour recenser les assets utilisés au fil du développement, mais il est fort possible que j'aie oublié du monde ou listé certains packs à tort. Soyez indulgents ! Si vous êtes créateur, que vous reconnaissez votre travail et que j'ai oublié de vous mentionner, n'hésitez pas à me contacter (avec preuve à l'appui) et je vous créditerai officiellement avec le plus grand plaisir.
Merci de faire partie de l'aventure O.W.T.F.A. Préparez-vous au chaos. 💥
🇬🇧 SCROLL UP FOR ENGLISH VERSION 👆
🇫🇷 DÉFILEZ VERS LE HAUT POUR LA VERSION FRANÇAISE 👆
🇷🇺 DESPLÁCETE HACIA ABAJO PARA LA VERSIÓN EN RUSO 👇
🇨🇳 DESPLÁCETE HACIA ABAJO PARA LA VERSIÓN EN CHINO 👇
Bienvenido a O.W.T.F.A: La experiencia definitiva de carreras caóticas en móvil.
Más que un simple juego, esta es la guía completa para entender, instalar, jugar y alojar servidores de O.W.T.F.A.
⚠️ LEE ESTO ANTES DE DESCARGAR (PREÁMBULO IMPORTANTE)
1. Lee la Guía (Es Plug & Play, lo prometo): No te preocupes, el juego en sí es extremadamente fácil de usar. Piénsalo como un mueble de IKEA: todo encaja perfectamente, pero si intentas empezar sin echarle un vistazo a las instrucciones a continuación, la arquitectura general podría resultarte confusa. Por eso te pido un pequeño favor: por favor, no me destroces en los comentarios si decides iniciar el APK sin leer este manual. ¡Gracias de antemano por tu comprensión!
2. Entiende la Arquitectura (Lo que estás descargando): Hay dos archivos distintos proporcionados en esta página, no los confundas:
- 🐧 La Build Linux Headless: Destinada ÚNICAMENTE a aquellos que quieran administrar su propio servidor. Sirve para alojar un servidor dedicado WAN (Público o Privado) o un servidor LAN en tu propia máquina Linux/VPS.
- 🎮 La Build de Android (APK): Este es el juego. Contiene tanto el Cliente COMO un Servidor integrado. Te permite:
- Jugar en Solitario (Alojas la partida localmente en tu teléfono).
- Jugar en Multi LAN (Alojas y tus amigos en la misma red Wi-Fi se unen a ti).
- Jugar en Multi Online (Te unes a un servidor dedicado WAN Público o Privado).
3. Beta Preview y Expiración (Conexión Obligatoria): Esta es una versión Beta (Preview) diseñada para preparar el lanzamiento final (Producción) en las tiendas oficiales. Esta versión caducará permanentemente el 20/08/2026. Para aplicar este límite, se requiere absolutamente una conexión a internet constante para jugar, incluso en los modos Solitario o LAN, con el fin de verificar la fecha de caducidad.
📋 Índice
- 📖 1. Orígenes, Inspiraciones y Mecánicas
- 👤 2. La Historia del Proyecto (Palabras del Desarrollador)
- 🚗 3. El Gameplay
- Controles en tierra
- Sistema 3D (3-Axis) Air Control
- La Interfaz en Carrera (HUD)
- Código de Colores de los Checkpoints
- La Subtileza del "Multitasking" (Multitarea)
- Después de la Carrera: ¿Revancha o Exploración?
- 🎮 4. Los Modos de Juego
- Jugar con Bots (IA)
- ⚙️ 5. Arquitectura Técnica (Under The Hood)
- 🕹️ 6. Guía de Instalación (Onboarding de Jugadores)
- 🐧 7. Guía de Despliegue (Para Admins / Homelabs)
- 🔒 8. Seguridad y DRM
- 🛠️ 9. Preguntas Frecuentes y Solución de Problemas
- 🐛 10. Bugs Conocidos (Early Access)
- 📜 11. Créditos y Agradecimientos
📖 1. Orígenes, Inspiraciones y Mecánicas
El objetivo inicial de este proyecto era claro y ambicioso: llevar el legendario concepto de carreras "Face-to-Face" a dispositivos móviles. Este modo mítico, imaginado por la comunidad de GTA Online durante sus años dorados (Xbox 360 / PS3) y sublimado por los servidores FiveM (MegaGames EU/US), merecía una verdadera iteración dedicada.
Absolutamente todas las mecánicas que hicieron que las carreras Face-to-Face fueran un éxito han sido fielmente integradas (lista no exhaustiva):
- Car Swap: Cambio de vehículo forzado al pasar cada Checkpoint.
- Ghost Effect (Modo Fantasma): Los jugadores se convierten en fantasmas (sin colisión) durante un breve período después de cada cambio para evitar el comportamiento antideportivo.
- Spectator Mode (Modo Espectador): Cámara de espectador para aquellos que terminaron la carrera o se unieron demasiado tarde.
- Slipstream (Rebufo): Aprovecha el rebufo detrás de tus oponentes para obtener un impulso de velocidad decisivo.
- Ciclo Día/Noche Dinámico: Un entorno que evoluciona en tiempo real (si está activado por el servidor).
La Estética de "Sandbox en el cielo":
El estilo visual compuesto por coloridas plataformas de prototipado suspendidas en el vacío no es un descuido de diseño: es una elección estética y nostálgica totalmente deliberada. Reproduce la esencia misma del concepto original de GTA Online, donde los creadores de la comunidad ensamblaban manualmente estos circuitos "WTF", muy alto en el cielo sobre las nubes de Los Santos.
Un Mundo Abierto que funciona como Lobby orgánico:
O.W.T.F.A no utiliza fríos menús de matchmaking. El juego se basa en una única escena de mundo abierto (Open World) donde todas las carreras tienen lugar simultáneamente. El matchmaking es 100% orgánico: únete a una carrera en curso sobre la marcha, o quédate explorando en Free Roam.
👤 2. La Historia del Proyecto (Palabras del Desarrollador)
A modo de anécdota, O.W.T.F.A está desarrollado íntegramente por una sola persona (un desarrollador atípico con TDAH/Autismo, que se compensa y organiza con la ayuda de agentes de IA para programar, y que posee una obsesión confesada por el rigor en las infraestructuras de red). Detrás de este desafío técnico se esconde un objetivo personal visceral y transparente: generar suficientes ingresos para finalmente terminar la construcción de mi casa. Mi familia y yo llevamos viviendo en una casa móvil (mobil-home) durante 3 años, y este juego es mi esperanza de ofrecernos un verdadero hogar.
Es un proyecto de pura pasión, moldeado "a mano", pero con la ambición de ofrecer un netcode y un rendimiento dignos de los grandes estudios. Cada descarga, cada crítica constructiva y cada carrera caótica en la que participes me acerca un poco más a este sueño de vida. ¡Gracias por darle una oportunidad a un juego indie y por apoyar esta aventura humana!
Unas palabras sobre la publicidad:
Dado que el objetivo es financiar este proyecto de vida, el juego incluye anuncios, pero he hecho que sea una cuestión de honor no romper nunca tu inmersión:
- Cero spam: Muy pocos anuncios, y ninguna interrupción en plena acción.
- Intersticiales limitados: Un anuncio puede aparecer al final de una carrera, pero únicamente si tu último anuncio fue hace más de 5 minutos.
- Anuncios Voluntarios (Recompensados): ¡Dirígete al Concesionario VIP (fuera de carrera)! Puedes elegir ver un anuncio para desbloquear un vehículo Premium exclusivo, que será tuyo por el resto de la sesión.
(Nota: Durante esta fase Beta, solo se han integrado anuncios de prueba de Google AdMob. No verás ninguna publicidad real por el momento).
🚗 3. El Gameplay (Controles estilo "GTA")
La conducción pretende ser arcade, exigente, pero extremadamente permisiva y gratificante. Es puro "Diversión y Habilidad para ganar", no existe ningún concepto de Pay-to-Win aquí.
El Skill Gap (margen de mejora) puede parecer inmenso al principio, pero una vez dominado, literalmente olvidarás que estás jugando en una pantalla táctil. Aquí tienes dos ejemplos concretos para dominar la física:
- Control en el aire: Si tu coche siempre pica de morro sistemáticamente durante un gran salto, pregúntate si no deberías soltar el acelerador justo antes de dejar la rampa para estabilizarlo.
- Dirección nerviosa: Si el coche te parece incontrolable a alta velocidad, no mantengas pulsada la flecha de dirección. Haz toques rápidos y sucesivos para corregir la trayectoria con precisión quirúrgica.
No dudes en ver los videos de gameplay disponibles en mi canal de YouTube para observar estas mecánicas en acción.
Controles en tierra
- Dirección básica: Avanzar, Retroceder / Frenar, Derecha, Izquierda.
- Drift (Freno de mano): Para desencadenar derrapes cerrados.
- Boost: Para una aceleración deslumbrante en las rampas.
✈️ Sistema 3D (3-Axis) Air Control
Dominar el aire es indispensable para sobrevivir a los vertiginosos saltos.
- Pitch (Cabeceo): Avanzar = Pitch Down (picar de morro) / Frenar = Pitch Up (levantar el morro).
- Roll (Alabeo): Izquierda/Derecha para estabilizar el vehículo lateralmente.
- Yaw (Guiñada): Combo Drift + Izquierda/Derecha para orientar horizontalmente la parte delantera del coche mientras estás en el aire.
📺 La Interfaz en Carrera (HUD)
Una vez en el juego, aquí tienes dos trucos clave para tu pantalla táctil:
- El radar táctil: Abajo a la izquierda, el gran círculo muestra un mini-mapa por defecto. Tócalo, y cambiará instantáneamente a una pantalla de cámara trasera (Rear Cam) para vigilar a tus oponentes.
- La barra de telemetría: En la parte inferior de la pantalla, una barra verde (desactivable en la configuración) muestra en tiempo real: tu Velocidad, tus FPS, la Resolución actual gestionada por el DRS, el consumo de RAM/VRAM, ¡y hasta la temperatura física de tu batería!
🏁 Código de Colores de los Checkpoints
Al explorar el mundo abierto, verás diferentes halos luminosos. Su color tiene un significado muy preciso:
- 🟢 Salida (Verde): La carrera no ha comenzado. Atraviésalo para iniciarla y convertirte en el líder.
- 🔵 Salida (Azul): Carrera en curso, pero te puedes unir. Atraviésalo para aterrizar en la pista y participar.
- 🟣 Salida (Morado): Carrera llena (capacidad máxima alcanzada). Serás colocado automáticamente en modo espectador si lo atraviesas.
- 🔴 Salida (Rojo): Carrera en fase final (Muerte Súbita: un primer participante ha cruzado la línea de meta, queda menos de un minuto). Serás colocado en modo espectador.
- 🟡 Checkpoint (Amarillo): Punto de control intermedio clásico en un circuito (ni salida, ni meta).
- 🏁 Meta (Cuadros Rosas y Negros): El Checkpoint final. ¡Atraviésalo para ganar y activar la muerte súbita para tus oponentes!
🚨 La Subtileza del "Multitasking" (No es un bug)
Gracias a la arquitectura de escena única, ¡puedes participar en varias carreras al mismo tiempo! Una lista dinámica registra tus participaciones y te permite cambiar de una a otra sobre la marcha. El RaceManager siempre sabe cuál es tu carrera "activa" y adapta el HUD en consecuencia. Sin embargo, ciertos eventos globales pueden desbordarse: si ves aparecer un panel de fin de carrera en medio de un bucle, o si escuchas la sirena de Muerte Súbita (Sudden Death) sin que haya ninguna cuenta atrás en rojo en tu pantalla... ¡no entres en pánico! Es simplemente que otra de las carreras en las que participas en segundo plano acaba de terminar o de entrar en su fase final.
🔄 Después de la Carrera: ¿Revancha o Exploración?
Una vez terminada la carrera, cada RaceManager gestiona su propio micro-lobby de fin de partida. El juego te ofrece entonces una elección crucial:
- Freeroam: Abandonas la instancia de la carrera y eres teletransportado libremente al mundo abierto.
- Try Hard (Revancha en esta carrera): ¡Exiges la revancha! Eres teletransportado de inmediato a la parrilla de salida con los demás jugadores que hayan tomado la misma decisión, y la cuenta atrás para la siguiente ronda se inicia automáticamente.
🎮 4. Los Modos de Juego (Libertad Total)
O.W.T.F.A no impone nada. Juegas como quieres en un mundo abierto que ofrece actualmente 15 carreras distintas y funcionales (se irán añadiendo más a lo largo del desarrollo):
- Modo Host (Solitario / LAN Local): Al elegir hacer clic en "HOST", tu dispositivo aloja directamente la partida. Mientras nadie se una a ti, juegas en Solitario. Pero si tienes amigos conectados en la misma red Wi-Fi, ¡verán automáticamente tu partida y podrán entrar en ella! (Consejo: si quieres estar absolutamente seguro de permanecer solo en tu red local, activa una VPN).
- Modo Online (Público o Privado): Únete a los servidores online de la comunidad (Públicos o Privados) para enfrentarte al mundo entero en carreras multijugador. Aunque los valores predeterminados suelen estar configurados en 64 jugadores por servidor y 8 por carrera, el motor soporta en realidad hasta 256 clientes simultáneos por servidor, y permite alinear hasta 16 jugadores en una misma parrilla de salida.
🤖 Jugar con Bots (Inteligencia Artificial)
Ya sea que juegues en Solitario para entrenar o administres un servidor con pocos jugadores conectados, ¡puedes dinamizar las carreras gracias a los Bots integrados!
- Activación: Por defecto, el número de bots está fijado en 0. Si alojas la partida, puedes modificar este número a través de la pestaña Server Settings (en Android) o en el archivo
server_config.ini(en Linux Headless). - Uso recomendado: Son perfectos para probar el juego o animar un servidor vacío. Por el contrario, se desaconseja usarlos en servidores muy concurridos por cuestiones de claridad visual (aunque la elección final siempre pertenece al administrador del servidor).
- Funcionamiento: La IA de los bots se basa en una red de Waypoints (trazados pregrabados). Para garantizar un desafío constante y parecer más humanos, utilizan una mecánica de Rubberbanding (efecto goma elástica).
⚙️ 5. Arquitectura Técnica (Under The Hood)
O.W.T.F.A es un monstruo de la optimización diseñado bajo Unity 6 para soportar competiciones a alta velocidad. Mi enfoque mezcla ingeniería de redes y optimización obsesiva. (Los puntos a continuación son solo algunos ejemplos entre decenas de sistemas implementados):
- Netcode (La Magia Asíncrona): Impulsado por FishNet, la arquitectura se basa en un modelo "Autoridad del Cliente con Control del Servidor sobre el Juego". Los vehículos adversarios son "marionetas" sincronizadas mediante Target RPCs. Los impactos ocurren siempre en el momento perfecto en tu pantalla.
- Física Avanzada Experimental: El juego simula la transferencia de inercia (Attacker Yielding) durante un choque frontal, evitando el efecto de "muro de hormigón". Además, se calcula una fricción continua durante los contactos laterales (roces del pelotón), enviada de forma segura (throttled) al servidor.
- Arquitectura Matemática del Slipstream (Rebufo): El cálculo del rebufo elude los colliders de Unity en favor de un modelo de elipse puramente matemático. Optimizada mediante Time-Slicing (búsqueda de objetivo a 10Hz, aplicación a 60Hz) y un Broadphase Culling, esta arquitectura soporta sin inmutarse docenas de vehículos simultáneos.
- Resolución Dinámica (DRS) y Monitoreo JNI: El juego integra un sistema dinámico de 6 niveles que supervisa los framerates. Si la media de los últimos 3 segundos cae por debajo de 25 FPS, el juego baja la resolución. Si supera los 50 FPS durante 20 segundos, la sube. Como complemento, llamadas nativas de Android (JNI) muestran la temperatura en tiempo real de tu batería.
- Erradicación de Fugas de Estado (Sin Tiempos de Carga): La arquitectura de Single Scene está blindada. La escena única se carga una sola vez al iniciar la aplicación, y luego se reutiliza en bucle para eliminar por completo las pantallas de carga. Ya sea que pases de ser Host local a un Cliente puro en un servidor WAN, o que sufras una desconexión abrupta, el estado global y las corrutinas se purgan al milisegundo exacto. Ninguna interfaz fantasma (zombie UI) contaminará tu pantalla.
🕹️ 6. Guía de Instalación (Onboarding de Jugadores)
¿Quieres sumergirte en la acción? Sigue esta guía paso a paso de la interfaz:
Paso 1: Instalación
Descarga el archivo .apk (Android) a continuación e instálalo. (Nota: Es posible que tengas que permitir la instalación de aplicaciones de orígenes desconocidos en la configuración de tu teléfono).
Paso 2: El Menú Principal (Carrusel)
Al iniciarlo, te recibe un menú en forma de carrusel. Usa las flechas para desplazarte por los botones grandes:
- 🔵 JOIN LOCAL / ONLINE: Para unirte a una partida existente.
- 🟡 LOCAL HOST & SOLO: Para alojar tu propia partida (y jugar solo, o dejar que amigos en la misma red Wi-Fi se unan).
- ⚙️ CONFIGURACIÓN DEL JUEGO (SETTINGS): El lugar donde todo se configura. Dividido en dos columnas: a la izquierda tus Client Settings (limitador de FPS, activación manual de los niveles DRS, vibraciones, etc.), y a la derecha los Server Settings (que solo se aplicarán si alojas la partida).
- 🟢 MI PERFIL / ESTADÍSTICAS: Para consultar tus estadísticas.
Paso 3: Unirse a una partida (Panel JOIN)
Si hiciste clic en el botón azul "JOIN", se abre el explorador de servidores. Está dividido en 3 zonas inteligentes:
- Arriba a la derecha (Online Public Servers): Aquí aparecen los servidores dedicados WAN (Online). Simplemente haz clic en la línea para unirte al caos mundial.
- Arriba a la izquierda (LAN Android Servers): Si un miembro de tu familia inició el juego como "HOST" en el mismo router Wi-Fi, su teléfono aparecerá aquí.
- Abajo (Conexión Manual): Una zona para los veteranos. Ingresa la IP, el Puerto y la Contraseña opcional para unirte a un servidor dedicado privado (modo furtivo).
🐧 7. Guía de Despliegue (Para Admins / Homelabs)
¿Gestionas una comunidad y quieres alojar tu propio servidor Linux (Headless)?
La build está diseñada para ejecutarse en un VPS (Ubuntu, Debian...) mediante línea de comandos pura. No temas los requisitos de hardware: un VPS básico de entrada (1 vCore, 2 GB de RAM) no se ralentizará. Para darte una idea, ¡un servidor así mantiene 75 FPS constantes con 100 bots activos! Si lo fuerzas a 160 bots, la CPU se saturará al 100% y sufrirás lag/jitter (cayendo a unos 40 FPS), pero la arquitectura no se colgará. El ejecutable incorpora su propio manual completo, accesible a través del comando:
./Server_Build_36.x86_64 -man
🚀 El Asistente de Configuración Integrado
Olvídate de la compleja edición manual. El servidor incluye un CONFIGURATION WIZARD interactivo. Ejecuta el siguiente comando y responde a las preguntas (Nombre, Puerto, Ciclo Día/Noche, Rebufo, etc.) para generar de forma limpia y automática tu archivo server_config.ini:
./Server_Build_36.x86_64 -batchmode -nographics -g
🏁 Iniciar el Servidor
Una vez configurado, inicia tu servidor en segundo plano:
nohup ./Server_Build_36.x86_64 -batchmode -nographics &
Modo Furtivo (Privado): Puedes anular la configuración utilizando argumentos en la línea de comandos. Al agregar el argumento -private, el servidor ya no aparecerá en el directorio mundial. El argumento -token cambia entonces de rol y se convierte en la Contraseña requerida por los jugadores para conectarse manualmente a través de la IP.
🛡️ Firewall y Red (CRÍTICO)
Para que tu servidor sea visible y funcional, debes abrir obligatoriamente dos puertos en tu cortafuegos (UFW) o en el panel de tu hosting:
- El Puerto de Juego (ej: 7770) en UDP: Indispensable para el tráfico de jugadores.
- El Puerto de Ping (ej: 7771) en TCP: (Siempre igual al puerto de juego + 1). El Servidor Maestro (Master Server) lo utiliza para hacer ping a tu servidor y certificar que está vivo antes de listarlo. Si está cerrado, tu servidor permanecerá invisible.
🩺 Monitorización y Telemetría (Para SysAdmins)
El servidor ha sido diseñado para ser ultra ligero. Puedes supervisar su salud en tiempo real leyendo la salida (ej: tail -f nohup.out). El servidor imprime en bucle una telemetría completa de su rendimiento interno:
- FPS del Servidor: Promedios móviles de 3s, 10s y 60s (Funciona de forma nativa a 75 FPS constantes).
- Recursos: Consumo de CPU (generalmente por debajo del 4% en un VPS clásico) y uso de RAM optimizado (inferior a 600 MB).
- Heartbeat (Latido): Confirmación en tiempo real de los pings exitosos al Master Server.
🔒 8. Seguridad y DRM
(Ver el Preámbulo para más detalles). Esta versión de evaluación integra un DRM propietario que verifica constantemente la fecha de caducidad (20/08/2026). Sin acceso a los servidores de validación (sin internet), el juego se negará a iniciar, incluso para una sesión en Solitario.
🛠️ 9. Preguntas Frecuentes y Solución de Problemas
Ciertos comportamientos pueden parecer bugs o descuidos, pero en realidad se deben a una elección de diseño o a la configuración de tu dispositivo:
- "¿Por qué el juego SOLAMENTE está disponible en Android? ¿Cuándo llegará a PC/iOS?" Es una elección totalmente premeditada. El objetivo de O.W.T.F.A es llevar este concepto de carrera a una plataforma (pantallas táctiles) donde es inédito. Además, me niego a poner a jugadores de PC (teclado/mando) en competencia desleal contra jugadores de móviles. Por último, mantener múltiples plataformas se convertiría rápidamente en una pesadilla para un desarrollador en solitario. Para los administradores, tal vez lance un servidor dedicado ejecutable para Windows si hay mucha demanda, pero no está previsto por el momento.
- "La resolución se ve pixelada / fea": El juego utiliza un Sistema de Resolución Dinámica (DRS). Si se empeña en bajar la resolución para mantener los FPS, ve al panel de Settings y desmarca los niveles de resolución más bajos (o deja marcado solo el que prefieras) para obligar al juego a mantenerse nítido.
- "El juego va a tirones / falta fluidez":
- Cierra todas las aplicaciones en segundo plano y desactiva el modo de ahorro de energía.
- Truco para Xiaomi Redmi (y equivalentes): Activa y desactiva rápidamente el modo eco desde la barra de notificaciones en plena partida. Esto suele desbloquear el modo turbo y permite jugar a 120Hz (hasta 120 FPS teóricos).
- Si el juego sigue yendo a tirones, ve a Settings y desmarca los niveles de resolución más altos para evitar que se ejecute en Full HD.
- Para antigüedades (ej: Samsung Galaxy Note 3): ¡Y sí, el juego puede funcionar ahí (no es broma) a 25-30 FPS! Para lograrlo: limita el Framerate a 30 FPS, deja marcada solo la resolución más baja (o la penúltima), y juega online (ser un simple cliente reduce enormemente la carga, al contrario que si eres el Host).
🐛 10. Bugs Conocidos (Early Access)
El juego está en desarrollo activo (Beta). A continuación, las anomalías de las que soy consciente y que se solucionarán pronto. ¡Sed indulgentes, y gracias por vuestros comentarios!
- Modo Espectador (Carreras 5 a 15): Solo las carreras 1 a 4 tienen sus puntos de anclaje de cámara de espectador correctamente configurados. En las demás pistas, la cámara puede quedarse atascada en el decorado o no encontrar ningún vehículo a seguir (debido a la optimización de Network Culling).
- Trolls en la pista (Fallo del trigger): En ciertas pistas, la zona de detección de salida (trigger) no está perfectamente pegada a la entrada física del circuito. Jugadores malintencionados pueden así colarse en la pista en plena carrera sin ser detectados, lo que les permite interferir con los corredores en lugar de ser pasados a modo espectador.
- Inestabilidad durante el "Server Hopping" (Fugas de estado): Aunque la Single Scene se purga automáticamente, pueden subsistir conflictos de estado residuales durante idas y venidas intensivas entre múltiples servidores WAN y el menú principal. Si experimentas un comportamiento anormal, cierra completamente la aplicación y vuelve a iniciarla para forzar una limpieza completa.
📜 11. Créditos y Agradecimientos
O.W.T.F.A es un proyecto en solitario, pero que no habría visto la luz sin el trabajo excepcional de desarrolladores y artistas 3D de la comunidad de Unity. Un enorme agradecimiento a los creadores de los siguientes assets:
- Arcade Car Physics por Saarg: El esqueleto que me permitió construir mi propia física.
- Fish-Net (Networking Evolved) por FirstGearGames: El genial motor de red que absorbe el caos de mis colisiones sin inmutarse.
- Modelos 3D (Vehículos y Entornos): Un gran agradecimiento a los autores de: POLYGON City Pack, Awb-Free Low Poly Cars, BackRock-NeonCity, Fantasy Skybox FREE, Police Car & Helicopter, Simple Vehicle Pack, Simple city plain, Toon Vehicles Free, Pack FREE Cars, y SportCar.
Nota del desarrollador: O.W.T.F.A es mi primerísimo juego. Hice todo lo posible por registrar los assets utilizados durante el desarrollo, pero es muy posible que me haya olvidado de personas o que haya listado ciertos packs por error. ¡Sed indulgentes! Si eres un creador, reconoces tu trabajo y olvidé mencionarte, no dudes en contactarme (con pruebas) y te acreditaré oficialmente con el mayor de los gustos.
Gracias por formar parte de la aventura O.W.T.F.A. Prepárate para el caos. 💥
🇪🇸 DESPLÁCETE HACIA ARRIBA PARA LA VERSIÓN EN ESPAÑOL 👆
🇫🇷 DÉFILEZ VERS LE HAUT POUR LA VERSION FRANÇAISE 👆
🇬🇧 SCROLL UP FOR ENGLISH VERSION 👆
🇨🇳 ПРОКРУТИТЕ ВНИЗ ДЛЯ КИТАЙСКОЙ ВЕРСИИ 👇
Добро пожаловать в O.W.T.F.A: Идеальный хаос гонок на мобильных устройствах.
Больше, чем просто игра, это полное руководство по пониманию, установке, игре и размещению серверов O.W.T.F.A.
⚠️ ПРОЧТИТЕ ЭТО ПЕРЕД СКАЧИВАНИЕМ (ВАЖНОЕ ПРЕДИСЛОВИЕ)
1. Прочтите Руководство (Обещаю, это Plug & Play): Не волнуйтесь, сама игра чрезвычайно проста в использовании. Относитесь к ней как к мебели IKEA: все идеально стыкуется, но если вы попытаетесь начать без просмотра инструкций ниже, общая архитектура может показаться запутанной. Поэтому я прошу об одном небольшом одолжении: пожалуйста, не критикуйте меня в комментариях, если вы решите запустить APK, не прочитав это руководство. Заранее спасибо за понимание!
2. Поймите Архитектуру (Что вы скачиваете): На этой странице представлены два разных файла, не перепутайте их:
- 🐧 Сборка Linux Headless: Предназначена ТОЛЬКО для тех, кто хочет разместить свой собственный сервер. Она используется для размещения выделенного сервера WAN (Публичного или Частного) или сервера LAN на вашей собственной машине Linux/VPS.
- 🎮 Сборка Android (APK): Это сама игра. Она содержит как Клиент, ТАК И встроенный Сервер. Это позволяет вам:
- Играть в Соло (Вы размещаете игру локально на своем телефоне).
- Играть по локальной сети (Multi LAN) (Вы размещаете, а друзья в той же сети Wi-Fi присоединяются к вам).
- Играть онлайн (Multi Online) (Вы присоединяетесь к выделенному серверу WAN, Публичному или Частному).
3. Beta Preview и Истечение Срока Действия (Обязательное подключение): Это версия Beta (Preview), предназначенная для подготовки к финальному релизу (Production) в официальных магазинах. Срок действия этой версии навсегда истечет 20.08.2026. Для соблюдения этого ограничения абсолютно необходимо постоянное подключение к Интернету для игры, даже в режимах Соло или LAN, чтобы проверить дату истечения срока действия.
📋 Оглавление
- 📖 1. Истоки, Вдохновение и Механики
- 👤 2. История Проекта (Слово от Разработчика)
- 🚗 3. Геймплей
- Наземное управление
- Система 3D (3-Axis) Управления в воздухе
- Внутриигровой Интерфейс (HUD)
- Цветовые Коды Чекпоинтов
- Тонкости "Многозадачности" (Multitasking)
- После Гонки: Реванш или Исследование?
- 🎮 4. Игровые Режимы
- Игра с Ботами (ИИ)
- ⚙️ 5. Техническая Архитектура (Под капотом)
- 🕹️ 6. Руководство по Установке (Для Игроков)
- 🐧 7. Руководство по Развертыванию (Для Админов / Homelabs)
- 🔒 8. Безопасность и DRM
- 🛠️ 9. Часто задаваемые вопросы и Устранение неполадок
- 🐛 10. Известные Ошибки (Ранний Доступ)
- 📜 11. Титры и Благодарности
📖 1. Истоки, Вдохновение и Механики
Первоначальная цель этого проекта была ясной и амбициозной: перенести легендарный гоночный концепт "Face-to-Face" на мобильные устройства. Этот мифический режим, придуманный сообществом GTA Online в золотые годы (Xbox 360 / PS3) и усовершенствованный серверами FiveM (MegaGames EU/US), заслуживал настоящей выделенной итерации.
Абсолютно все механики, которые сделали гонки Face-to-Face успешными, были точно интегрированы (неполный список):
- Смена Авто (Car Swap): Принудительная смена транспортного средства при прохождении каждого чекпоинта.
- Эффект Призрака (Ghost Effect): Игроки становятся призраками (без коллизий) на короткое время после каждой смены, чтобы предотвратить неспортивное поведение.
- Режим Наблюдателя (Spectator Mode): Камера наблюдателя для тех, кто закончил гонку или присоединился слишком поздно.
- Слипстрим (Slipstream): Используйте аэродинамический мешок позади противников, чтобы получить решающее ускорение.
- Динамическая смена дня и ночи: Среда, которая эволюционирует в реальном времени (если включено сервером).
Эстетика "Песочницы в небе":
Визуальный стиль, состоящий из красочных прототипных платформ, подвешенных в пустоте, — это не недосмотр дизайна, а полностью осознанный эстетический и ностальгический выбор. Это воспроизводит саму суть оригинального концепта GTA Online, где создатели сообщества вручную собирали эти трассы "WTF" высоко в небе над облаками Лос-Сантоса.
Открытый Мир, работающий как Органическое Лобби:
O.W.T.F.A не использует холодные меню матчмейкинга. Игра основана на единой сцене открытого мира (Open World), где все гонки происходят одновременно. Матчмейкинг на 100% органичен: присоединяйтесь к текущей гонке на лету или оставайтесь в Свободном режиме (Free Roam).
👤 2. История Проекта (Слово от Разработчика)
Для справки, O.W.T.F.A полностью разрабатывается одним человеком (нетипичным разработчиком с СДВГ/Аутизмом, который компенсирует и организует себя с помощью ИИ-агентов для кодирования и обладает признанной одержимостью строгостью сетевых инфраструктур). За этим техническим вызовом скрывается глубокая и прозрачная личная цель: получить достаточный доход, чтобы, наконец, завершить строительство моего дома. Моя семья и я живем в мобильном доме (mobil-home) уже 3 года, и эта игра — моя надежда подарить нам настоящий дом.
Это проект страсти, созданный "вручную", но с амбициями предложить сетевой код и производительность, достойные крупных студий. Каждое скачивание, каждый конструктивный отзыв и каждая хаотичная гонка, в которой вы участвуете, приближают меня к этой мечте всей жизни. Спасибо за то, что дали шанс инди-игре и поддержали это человеческое приключение!
Слово о рекламе:
Поскольку цель — профинансировать этот жизненный проект, игра включает рекламу, но я сделал делом чести никогда не нарушать ваше погружение:
- Никакого спама: Очень мало рекламы и никаких прерываний в разгар действия.
- Ограниченные вставки: Реклама может появиться в конце гонки, но только если ваша последняя реклама была более 5 минут назад.
- Добровольная реклама (С вознаграждением): Отправляйтесь к VIP Автодилеру (вне гонки)! Вы можете выбрать просмотр рекламы, чтобы разблокировать эксклюзивный Премиум-автомобиль, который останется вашим на всю оставшуюся сессию.
(Примечание: На этапе беты интегрирована только тестовая реклама Google AdMob. Пока вы не увидите никакой реальной рекламы).
🚗 3. Геймплей (Управление в стиле "GTA")
Вождение задумано как аркадное, требовательное, но в то же время очень снисходительное и приятное. Это чистый "Веселье и Навык для победы" (Fun & Skill to win), здесь нет понятия Pay-to-Win.
Разрыв в навыках (Skill Gap) поначалу может показаться огромным, но как только вы его освоите, вы буквально забудете, что играете на сенсорном экране. Вот два конкретных примера, как укротить физику:
- Контроль в воздухе: Если ваша машина постоянно клюет носом во время большого прыжка, подумайте, не стоит ли отпустить газ прямо перед отрывом от рампы, чтобы стабилизировать угол тангажа.
- Нервное рулевое управление: Если машина кажется неуправляемой на высокой скорости, не удерживайте стрелку нажатой. Делайте короткие, быстрые нажатия, чтобы хирургически точно корректировать траекторию.
Не стесняйтесь смотреть видеоролики с геймплеем на моем канале YouTube, чтобы увидеть эти механики в действии.
Наземное управление
- Базовое рулевое управление: Вперед, Назад / Тормоз, Вправо, Влево.
- Дрифт (Ручной тормоз): Для инициации крутых заносов.
- Буст (Boost): Для молниеносного ускорения на рампах.
✈️ Система 3D (3-Axis) Управления в воздухе
Владение воздухом необходимо, чтобы пережить головокружительные прыжки.
- Тангаж (Pitch): Вперед = Pitch Down (опустить нос) / Тормоз = Pitch Up (поднять нос).
- Крен (Roll): Влево/Вправо, чтобы стабилизировать машину в поперечной плоскости.
- Рыскание (Yaw): Комбо Дрифт + Влево/Вправо, чтобы горизонтально направить переднюю часть машины в воздухе.
📺 Внутриигровой Интерфейс (HUD)
Оказавшись в игре, вот две важные вещи, которые нужно знать о вашем сенсорном экране:
- Сенсорный радар: В левом нижнем углу большой круг по умолчанию показывает мини-карту. Коснитесь его, и он мгновенно переключится на экран камеры заднего вида (Rear Cam), чтобы следить за соперниками.
- Панель телеметрии: В самом низу экрана зеленая полоса (ее можно отключить в настройках) отображает в реальном времени: вашу Скорость, ваши FPS, текущее Разрешение, управляемое DRS, потребление RAM/VRAM и даже физическую температуру вашей батареи!
🏁 Цветовые Коды Чекпоинтов
Бродя по открытому миру, вы увидите разные светящиеся ореолы. Их цвет имеет очень точное значение:
- 🟢 Старт (Зеленый): Гонка не началась. Проедьте сквозь него, чтобы запустить ее и стать лидером.
- 🔵 Старт (Синий): Гонка идет, но к ней можно присоединиться. Влетите в него, чтобы приземлиться на трассу и принять участие.
- 🟣 Старт (Фиолетовый): Гонка заполнена (максимальная вместимость достигнута). Если вы проедете сквозь него, вас автоматически переведут в режим наблюдателя.
- 🔴 Старт (Красный): Гонка в финальной фазе (Внезапная смерть: первый участник пересек финишную черту, осталась меньше минуты). Вас переведут в режим наблюдателя.
- 🟡 Чекпоинт (Желтый): Классическая промежуточная контрольная точка на трассе.
- 🏁 Финиш (Розово-черные шашечки): Последний Чекпоинт. Пересеките его, чтобы победить и запустить внезапную смерть для ваших противников!
🚨 Тонкости "Многозадачности" (Не баг)
Благодаря архитектуре единой сцены, вы можете участвовать в нескольких гонках одновременно! Динамический список регистрирует ваши участия и позволяет переключаться между ними на лету. RaceManager всегда знает, какая гонка у вас "активная", и адаптирует HUD соответствующим образом. Однако некоторые глобальные события могут пересекаться: если вы видите панель окончания гонки посреди петли или слышите сирену Внезапной смерти, хотя на экране нет красного обратного отсчета... без паники! Это просто означает, что другая фоновая гонка, в которой вы участвуете, только что закончилась или перешла в финальную фазу.
🔄 После Гонки: Реванш или Исследование?
Как только гонка заканчивается, каждый RaceManager управляет своим собственным микро-лобби окончания матча. Затем игра предлагает вам решающий выбор:
- Freeroam (Свободная езда): Вы покидаете инстанс гонки и свободно телепортируетесь обратно в открытый мир.
- Try Hard (Реванш в этой гонке): Вы требуете реванша! Вы мгновенно телепортируетесь на стартовую решетку вместе с другими игроками, сделавшими такой же выбор, и обратный отсчет до следующего раунда начинается автоматически.
🎮 4. Игровые Режимы (Полная Свобода)
O.W.T.F.A ничего не навязывает. Вы играете так, как хотите, в открытом мире, который в настоящее время предлагает 15 различных и полностью функциональных гонок (больше будет добавлено по мере разработки):
- Режим Host (Соло / Локальная LAN): Если вы нажмете "HOST", ваше устройство напрямую создаст игру. Пока к вам никто не присоединился, вы играете в Соло. Но если у вас есть друзья, подключенные к той же сети Wi-Fi, они автоматически увидят вашу игру и смогут в нее зайти! (Совет: если вы хотите быть абсолютно уверены, что останетесь один в локальной сети, включите VPN).
- Онлайн Режим (Публичный или Частный): Присоединяйтесь к онлайн-серверам сообщества (Публичным или Частным), чтобы сразиться со всем миром в многопользовательских гонках. Хотя настройки по умолчанию часто составляют 64 игрока на сервер и 8 на гонку, движок на самом деле поддерживает до 256 одновременных клиентов на сервер и позволяет выстраивать до 16 игроков на одной стартовой решетке.
🤖 Игра с Ботами (Искусственный Интеллект)
Независимо от того, играете ли вы в Соло для тренировки или управляете сервером с несколькими подключенными игроками, вы можете оживить гонки с помощью встроенных Ботов!
- Активация: По умолчанию количество ботов установлено на 0. Если вы являетесь хостом, вы можете изменить это число на вкладке Server Settings (на Android) или в файле
server_config.ini(на Linux Headless). - Рекомендуемое использование: Они идеально подходят для тестирования игры или оживления пустого сервера. Однако не рекомендуется использовать их на переполненных серверах из соображений наглядности (хотя окончательный выбор всегда остается за администратором сервера).
- Как это работает: ИИ ботов основан на сети Вейпоинтов (Waypoints) (заранее записанных траекторий). Чтобы гарантировать постоянный вызов и казаться более человечными, они используют механику Раббербендинга (Rubberbanding - Эффект резинки).
⚙️ 5. Техническая Архитектура (Под капотом)
O.W.T.F.A — это монстр оптимизации, созданный на Unity 6, чтобы выдерживать соревнования на высоких скоростях. Мой подход сочетает сетевую инженерию с маниакальной оптимизацией. (Пункты ниже — это лишь несколько примеров из десятков реализованных систем):
- Сетевой код (Асинхронная Магия): На базе FishNet, архитектура основана на модели "Client Authoritative with Server Control over the Game" (Авторитет клиента с контролем сервера над игрой). Вражеские машины — это "марионетки", синхронизированные через Target RPC. Столкновения всегда происходят в идеальный момент на вашем экране.
- Экспериментальная Продвинутая Физика: Игра симулирует передачу инерции (Attacker Yielding) при лобовом столкновении, избегая эффекта "бетонной стены". Кроме того, рассчитывается непрерывное трение при боковых контактах (трение пелотона), безопасно (с троттлингом) передаваемое на сервер.
- Математическая Архитектура Слипстрима (Аэродинамический мешок): Вычисление слипстрима обходит коллайдеры Unity в пользу чисто математической модели эллипса. Оптимизированная за счет Time-Slicing (поиск цели при 10 Гц, применение при 60 Гц) и Broadphase Culling, эта архитектура без проблем справляется с десятками одновременно движущихся машин.
- Динамическое Разрешение (DRS) и Мониторинг JNI: В игре есть динамическая 6-уровневая система, которая отслеживает частоту кадров. Если среднее значение за последние 3 секунды падает ниже 25 FPS, игра снижает разрешение. Если оно превышает 50 FPS в течение 20 секунд, разрешение повышается. В качестве дополнения нативные вызовы Android (JNI) отображают физическую температуру вашей батареи в реальном времени.
- Искоренение Утечек Состояния (Никаких Загрузок): Архитектура Единой Сцены (Single Scene) бронирована. Единая сцена загружается один раз при запуске приложения, а затем бесконечно переиспользуется, чтобы полностью устранить экраны загрузки. Переходите ли вы от локального Хоста к чистому Клиенту на WAN-сервере или внезапно отключаетесь — глобальное состояние и корутины очищаются с точностью до миллисекунды. Никакие призрачные интерфейсы (zombie UI) не загрязнят ваш экран.
🕹️ 6. Руководство по Установке (Для Игроков)
Хотите погрузиться в действие? Следуйте этому пошаговому руководству по интерфейсу:
Шаг 1: Установка
Скачайте файл .apk (Android) ниже и установите его. (Примечание: Возможно, вам придется разрешить установку приложений из неизвестных источников в настройках вашего телефона).
Шаг 2: Главное Меню (Карусель)
При запуске вас встречает меню-карусель. Используйте стрелки для прокрутки больших кнопок:
- 🔵 JOIN LOCAL / ONLINE: Присоединиться к существующей игре.
- 🟡 LOCAL HOST & SOLO: Создать свою игру (играть одному или позволить друзьям в той же сети Wi-Fi присоединиться).
- ⚙️ НАСТРОЙКИ (SETTINGS): Место, где все настраивается. Разделено на две колонки: слева ваши Client Settings (лимит FPS, ручной выбор уровня DRS, вибрация и т. д.), а справа Server Settings (которые применяются, только если вы являетесь хостом).
- 🟢 МОЙ ПРОФИЛЬ / СТАТИСТИКА: Для просмотра вашей статистики.
Шаг 3: Присоединение к игре (Панель JOIN)
Если вы нажали синюю кнопку "JOIN", откроется браузер серверов. Он разделен на 3 умные зоны:
- Сверху справа (Online Public Servers): Здесь появляются выделенные серверы WAN (Онлайн). Просто нажмите на строку, чтобы присоединиться к мировому хаосу.
- Сверху слева (LAN Android Servers): Если член вашей семьи запустил игру как "HOST" на том же Wi-Fi роутере, его телефон появится здесь.
- Снизу (Ручное Подключение): Зона для ветеранов. Введите IP-адрес, Порт и (необязательно) Пароль, чтобы присоединиться к частному выделенному серверу (скрытый режим).
🐧 7. Руководство по Развертыванию (Для Админов / Homelabs)
Управляете сообществом и хотите разместить свой собственный сервер Linux (Headless)?
Сборка предназначена для запуска на VPS (Ubuntu, Debian...) через чистую командную строку. Не бойтесь требований к оборудованию: базовый VPS начального уровня (1 vCore, 2 ГБ ОЗУ) не будет тормозить. Чтобы вы понимали: такой сервер стабильно выдает 75 FPS при 100 активных ботах! Если вы увеличите число ботов до 160, процессор будет загружен на 100%, и вы столкнетесь с лагами/джиттером (FPS упадет примерно до 40), но архитектура не рухнет. Исполняемый файл содержит свое собственное подробное руководство, доступное по команде:
./Server_Build_36.x86_64 -man
🚀 Встроенный Мастер Настройки
Забудьте о сложном ручном редактировании. Сервер включает интерактивный МАСТЕР НАСТРОЙКИ (CONFIGURATION WIZARD). Запустите следующую команду и ответьте на вопросы (Имя, Порт, Цикл День/Ночь, Слипстрим и т. д.), чтобы чисто и автоматически сгенерировать ваш файл server_config.ini:
./Server_Build_36.x86_64 -batchmode -nographics -g
🏁 Запуск Сервера
После настройки запустите ваш сервер в фоновом режиме:
nohup ./Server_Build_36.x86_64 -batchmode -nographics &
Скрытый Режим (Приватный): Вы можете переопределить конфигурацию с помощью аргументов командной строки. При добавлении аргумента -private сервер больше не будет отображаться в глобальном каталоге. Аргумент -token меняет свою роль и становится Паролем, необходимым игрокам для ручного подключения по IP!
🛡️ Брандмауэр и Сеть (КРИТИЧЕСКИ ВАЖНО)
Чтобы ваш сервер был виден и работал, вы обязаны открыть два порта в вашем брандмауэре (UFW) или панели хостинга:
- Игровой Порт (Game Port, напр. 7770) по UDP: Необходим для трафика игроков.
- Порт Пинга (Ping Port, напр. 7771) по TCP: (Всегда равен Игровому порту + 1). Мастер-сервер использует его для пинга вашего сервера и проверки его жизнеспособности перед добавлением в список. Если он закрыт, ваш сервер останется невидимым.
🩺 Мониторинг и Телеметрия (Для Сисадминов)
Сервер был разработан для максимальной легкости. Вы можете следить за его здоровьем в реальном времени, читая вывод (например, tail -f nohup.out). Сервер непрерывно печатает полную телеметрию своей внутренней производительности:
- FPS Сервера: Скользящие средние за 3с, 10с и 60с (изначально работает на стабильных 75 FPS).
- Ресурсы: Потребление процессора (обычно менее 4% на стандартном VPS) и оптимизированное использование оперативной памяти (менее 600 МБ).
- Heartbeat (Сердцебиение): Подтверждение в реальном времени успешных пингов до Мастер-сервера.
🔒 8. Безопасность и DRM
(Подробнее см. Предисловие). Эта ознакомительная версия оснащена проприетарным DRM, который постоянно проверяет дату истечения срока действия (20.08.2026). Без доступа к серверам валидации (без Интернета) игра откажется запускаться даже для одиночной сессии (Solo).
🛠️ 9. Часто задаваемые вопросы и Устранение неполадок
Некоторые формы поведения могут показаться ошибками или недоработками, но на самом деле они являются осознанным выбором дизайна или связаны с конфигурацией вашего устройства:
- "Почему игра доступна ТОЛЬКО на Android? Когда выйдет на PC/iOS?" Это полностью осознанный выбор. Цель O.W.T.F.A — перенести этот гоночный концепт на платформу (сенсорные экраны), где он уникален. Кроме того, я отказываюсь ставить игроков на ПК (клавиатура/контроллер) в условия нечестной конкуренции против мобильных игроков. Наконец, поддержка кроссплатформенных сборок быстро превратилась бы в кошмар для соло-разработчика. Для админов я, возможно, выпущу исполняемый выделенный сервер для Windows, если будет высокий спрос, но пока это не планируется.
- "Разрешение выглядит пиксельным / уродливым": Игра использует Систему Динамического Разрешения (DRS). Если она упорно снижает разрешение ради сохранения FPS, перейдите на панель Settings и снимите галочки с самых низких уровней разрешения (или оставьте только предпочтительный), чтобы заставить игру оставаться четкой.
- "Игра тормозит / не хватает плавности":
- Закройте все фоновые приложения и отключите режим энергосбережения.
- Совет для Xiaomi Redmi (и аналогов): Быстро включите и выключите эко-режим через панель уведомлений прямо во время игры. Это часто разблокирует турбо-режим и позволяет играть в 120 Гц (до 120 теоретических FPS).
- Если игра все еще тормозит, зайдите в Settings и снимите галочки с самых высоких разрешений, чтобы она не запускалась в Full HD.
- Для раритетов (напр., Samsung Galaxy Note 3): Да, игра может работать даже там (без шуток) в 25-30 FPS! Чтобы достичь этого: ограничьте Framerate до 30 FPS, оставьте только самое низкое (или предпоследнее) разрешение и играйте онлайн (быть простым клиентом сильно снижает нагрузку по сравнению с ролью хоста).
🐛 10. Известные Ошибки (Ранний Доступ)
Игра находится в активной разработке (Бета). Вот аномалии, о которых я знаю и которые будут исправлены в ближайшее время. Пожалуйста, проявите снисходительность и спасибо за ваши отзывы!
- Режим Наблюдателя (Гонки 5 - 15): Только у гонок с 1 по 4 точки привязки камеры наблюдателя настроены правильно. На других трассах камера может застрять в декорациях или не найти машины для наблюдения (из-за оптимизации Network Culling).
- Тролли на трассе (Ошибка триггера): На некоторых трассах зона обнаружения старта (триггер) не идеально прилегает к физическому въезду на трассу. Таким образом, злонамеренные игроки могут пробраться на трассу посреди гонки незамеченными, что позволяет им мешать гонщикам вместо того, чтобы быть переведенными в режим наблюдателя.
- Нестабильность при "Прыжках по серверам" (Утечки состояния): Хотя Единая Сцена очищается автоматически, могут сохраняться остаточные конфликты состояния при интенсивных переключениях между множеством WAN-серверов и главным меню. Если вы заметили аномальное поведение, полностью закройте приложение и перезапустите его, чтобы принудительно очистить память.
📜 11. Титры и Благодарности
O.W.T.F.A — это сольный проект, но он не увидел бы свет без исключительной работы разработчиков и 3D-художников из сообщества Unity. Огромное спасибо создателям следующих ассетов:
- Arcade Car Physics от Saarg: Скелет, позволивший мне создать собственную физику.
- Fish-Net (Networking Evolved) от FirstGearGames: Гениальный сетевой движок, поглощающий хаос моих столкновений, не моргнув глазом.
- 3D Модели (Транспорт и Окружение): Огромное спасибо авторам: POLYGON City Pack, Awb-Free Low Poly Cars, BackRock-NeonCity, Fantasy Skybox FREE, Police Car & Helicopter, Simple Vehicle Pack, Simple city plain, Toon Vehicles Free, Pack FREE Cars, и SportCar.
Примечание разработчика: O.W.T.F.A — моя самая первая игра. Я старался изо всех сил вести учет используемых ассетов на протяжении всей разработки, но вполне возможно, что я кого-то забыл или по ошибке указал некоторые паки. Проявите снисхождение! Если вы создатель, узнаете свою работу и я забыл вас упомянуть, не стесняйтесь обращаться ко мне (с доказательствами), и я с огромным удовольствием укажу вас официально.
Спасибо за участие в приключении O.W.T.F.A. Готовьтесь к хаосу. 💥
🇷🇺 ПРОКРУТИТЕ ВВЕРХ ДЛЯ РУССКОЙ ВЕРСИИ 👆
🇪🇸 DESPLÁCETE HACIA ARRIBA PARA LA VERSIÓN EN ESPAÑOL 👆
🇫🇷 DÉFILEZ VERS LE HAUT POUR LA VERSION FRANÇAISE 👆
🇬🇧 SCROLL UP FOR ENGLISH VERSION 👆
欢迎来到 O.W.T.F.A:终极移动端混乱赛车体验。
这不仅仅是一款游戏,这是一份完整的指南,帮助你了解、安装、游玩并托管 O.W.T.F.A 服务器。
⚠️ 下载前请阅读(重要前言)
1. 阅读指南(我保证,这是即插即用的): 请放心,游戏本身的使用极其简单。你可以把它当作宜家家具:一切都能完美拼合,但如果你不看说明书就直接上手,整体的架构可能会让你感到困惑。因此,我恳求你帮个小忙:如果你选择在不阅读本手册的情况下启动 APK,请不要在评论区痛骂我。提前感谢你的理解!
2. 了解架构(你正在下载什么): 本页面提供了两个不同的文件,请不要混淆:
- 🐧 Linux Headless 版本: 仅供 想要管理自己服务器的玩家使用。它用于在你自己的 Linux/VPS 机器上托管广域网 (WAN) 独立服务器(公开或私有)或局域网 (LAN) 服务器。
- 🎮 Android (APK) 版本: 这就是游戏本体。它同时包含客户端和内置服务器。它允许你:
- 单人游玩(在你的手机上本地托管游戏)。
- 局域网多人游戏 (LAN)(你进行托管,同一 Wi-Fi 网络下的朋友即可加入)。
- 在线多人游戏 (Online)(你加入公开或私有的广域网独立服务器)。
3. Beta 预览版与过期时间(必须连接网络): 这是一个 Beta 预览版,旨在为未来在官方商店的正式发布 (Production) 做准备。 此版本将于 2026 年 8 月 20 日永久过期。 为了执行此限制,即使在单人或局域网模式下,游玩也绝对需要持续的互联网连接,以便验证过期日期。
📋 目录
- 📖 1. 起源、灵感与机制
- 👤 2. 项目历史(开发者寄语)
- 🚗 3. 游戏玩法 (Gameplay)
- 地面控制
- 3D (3轴) 空中控制系统
- 游戏内界面 (HUD)
- 检查点 (Checkpoint) 的颜色代码
- “多任务处理” 的微妙之处 (并非 Bug)
- 赛后:复仇还是探索?
- 🎮 4. 游戏模式
- 与机器人 (AI) 对战
- ⚙️ 5. 技术架构 (幕后原理)
- 🕹️ 6. 安装指南 (玩家入门)
- 🐧 7. 部署指南 (致管理员 / 个人实验室)
- 🔒 8. 安全与 DRM (数字版权管理)
- 🛠️ 9. 常见问题与故障排除
- 🐛 10. 已知 Bug (抢先体验)
- 📜 11. 制作人员名单与致谢
📖 1. 起源、灵感与机制
这个项目的初衷非常明确且雄心勃勃:将传奇的“Face-to-Face”(面对面)赛车概念引入移动端。 这个神话般的模式由 GTA Online 社区在其黄金年代 (Xbox 360 / PS3) 构想,并在 FiveM 服务器 (MegaGames EU/US) 上得到了升华,它值得拥有一个真正的独立版本。
几乎所有让 Face-to-Face 赛车大获成功的机制都被忠实地整合了进来 (包括但不限于):
- 车辆互换 (Car Swap): 每次经过检查点时强制更换车辆。
- 幽灵效果 (Ghost Effect): 玩家在每次换车后的一小段时间内会变成幽灵(无碰撞),以防止恶意破坏游戏体验的行为。
- 观战模式 (Spectator Mode): 为已完成比赛或加入太晚的玩家提供观战视角。
- 尾流 (Slipstream): 利用对手后方的尾流获得决定性的加速。
- 动态昼夜交替: 实时演变的环境(如果服务器开启了此功能)。
“天空沙盒”美学:
由悬浮在空中的彩色原型平台组成的视觉风格并非设计上的疏忽:这是一种完全有意的审美和怀旧选择。它重现了 GTA Online 原始概念的精髓,当时的社区创作者们在洛圣都云层之上的高空中手动拼凑了这些“WTF”(疯狂)的赛道。
作为有机大厅的开放世界:
O.W.T.F.A 不使用冰冷的匹配菜单。游戏基于一个单一的开放世界 (Open World) 场景,所有比赛都在这里同时进行。匹配是 100% 有机的:随时加入正在进行的比赛,或者在 自由漫游 (Free Roam) 中探索。
👤 2. 项目历史(开发者寄语)
说来话长,O.W.T.F.A 完全由一个人开发(一位患有 ADHD/自闭症的非典型开发者,借助 AI 辅助编程来弥补并组织工作,并且对网络基础设施的严谨性有着近乎痴迷的追求)。在这个技术挑战的背后,隐藏着一个发自内心且非常现实的个人目标:赚取足够的收入,最终完成我房屋的建造。我和我的家人在移动房屋 (mobil-home) 里生活了 3 年,而这款游戏是我为我们提供一个真正家园的希望。
这是一个充满激情的项目,由“手工”打造,但其雄心是提供可媲美大型工作室的网络代码和性能。每一次下载、每一条建设性的反馈,以及你参与的每一场混乱赛车,都让我离这个毕生梦想更近一步。感谢你给这款独立游戏一个机会,并支持这段充满人情味的冒险!
关于广告的一句话:
既然目标是资助这个生活项目,游戏中自然包含了广告,但 我以名誉担保,绝不破坏你的沉浸感:
- 零垃圾广告: 广告很少,且绝不会在激烈的比赛中打断你。
- 限制插屏广告: 广告可能会在比赛结束时出现,但 仅限 距离你上次观看广告超过 5 分钟的情况。
- 自愿观看 (激励广告): 前往 VIP 车商 (VIP Car Dealer)(比赛外)!你可以选择观看一段广告来解锁一辆独家的尊享 (Premium) 车辆,该车辆在你的整个游戏会话期间都将归你所有。
(注:在 Beta 阶段,仅集成了 Google AdMob 的测试广告。你暂时不会看到任何真实的广告)。
🚗 3. 游戏玩法 (类似 "GTA" 的操控)
驾驶体验旨在做到街机感十足、要求严格,但同时又极具包容性和成就感。 这纯粹是“靠乐趣与技术获胜 (Fun & Skill to win)”,这里没有任何“花钱买赢 (Pay-to-Win)”的概念。
技术门槛 (Skill Gap) 一开始可能看起来很大,但一旦掌握,你甚至会忘记自己是在触摸屏上玩游戏。以下是两个驯服物理引擎的实际例子:
- 空中控制: 如果你的车在每次大跳跃时总是车头朝下栽去,试着在离开坡道前的一瞬间松开油门,以稳定其俯仰角。
- 神经质的转向: 如果车在高速行驶时感觉难以控制,不要一直按住方向键。使用连续、快速的短按来进行外科手术般精准的轨迹修正。
欢迎前往我的 YouTube 频道观看实机演示视频,观察这些机制的实际应用。
地面控制
- 基础转向: 前进、后退/刹车、向右、向左。
- 漂移 (手刹): 用于触发急转弯漂移。
- 氮气加速 (Boost): 在坡道上获得闪电般的加速。
✈️ 3D (3轴) 空中控制系统
掌握空中姿态是你在令人眩晕的跳跃中生存下来的必修课。
- 俯仰 (Pitch): 前进 = Pitch Down(车头向下)/ 刹车 = Pitch Up(抬起车头)。
- 翻滚 (Roll): 左/右,用于在横向上稳定车辆。
- 偏航 (Yaw): 组合键 漂移 + 左/右,用于在空中水平调整车头的朝向。
📺 游戏内界面 (HUD)
进入游戏后,你需要知道关于触摸屏的两个关键技巧:
- 触摸式雷达: 左下角的大圆圈默认显示小地图。点击它,它会立即切换到倒车影像 (Rear Cam) 屏幕,以便你时刻留意对手。
- 遥测数据栏: 在屏幕的最下方,有一个绿色条(可在设置中关闭),实时显示:你的速度、FPS、由 DRS 管理的当前分辨率、RAM/VRAM 消耗,甚至还有你手机电池的物理温度!
🏁 检查点 (Checkpoint) 的颜色代码
在开放世界中漫游时,你会看到不同的发光光环。它们的颜色有着非常明确的含义:
- 🟢 起点 (绿色): 比赛尚未开始。穿过它即可触发比赛并成为队长。
- 🔵 起点 (蓝色): 比赛正在进行中,但允许加入。冲进去即可降落到赛道上参赛。
- 🟣 起点 (紫色): 比赛已满(达到最大容量)。如果穿过它,你将自动进入观战模式。
- 🔴 起点 (红色): 比赛处于最后阶段(突然死亡机制 (Sudden Death):第一名参赛者已越过终点线,剩余时间不到一分钟)。你将进入观战模式。
- 🟡 检查点 (黄色): 赛道上的经典中间检查点(既不是起点也不是终点)。
- 🏁 终点 (粉黑相间的棋盘格): 最终的检查点。穿过它即可获胜,并为你的对手触发突然死亡机制!
🚨 “多任务处理” 的微妙之处 (并非 Bug)
得益于单场景架构,你可以同时参加多场比赛! 动态列表会记录你的参赛情况,并允许你随时在它们之间切换。 RaceManager(赛事管理器) 始终知道哪一场是你的“当前”活跃比赛,并相应地调整 HUD。然而,某些全局事件可能会溢出:如果你在循环赛道中看到比赛结束的面板突然弹出,或者在屏幕上没有红色倒计时的情况下听到了 突然死亡 的警报声……不要惊慌!这仅仅意味着你参与的 另一场 后台比赛刚刚结束或进入了最后阶段。
🔄 赛后:复仇还是探索?
比赛结束后,每个 RaceManager 会管理其专属的赛后微型大厅。游戏此时会为你提供一个至关重要的选择:
- 自由漫游 (Freeroam): 你离开比赛副本,并自由地传送到开放世界中。
- 要求复仇 (Try Hard - 这场比赛): 你要求复仇!你和做出相同选择的其他玩家将被立即传送到起跑线上,下一轮的倒计时将自动开始。
🎮 4. 游戏模式 (完全自由)
O.W.T.F.A 不强加任何限制。你可以按照自己喜欢的方式在一个目前提供 15 条独立且功能完备的赛道的开放世界中游玩(随着开发进度会添加更多):
- Host (主机) 模式 (单人 / 局域网 LAN): 选择点击 "HOST",你的设备将直接托管游戏。只要没有人加入,你就是单人游玩。但如果有朋友连接在同一个 Wi-Fi 网络下,他们会自动看到你的游戏并可以随时加入! (提示:如果你想确保自己一个人在本地玩,请开启 VPN)。
- 在线模式 (Online - 公开或私有): 加入社区的在线服务器(公开或私有),在多人比赛中挑战全世界。虽然默认设置通常为每个服务器 64 名玩家和每场比赛 8 名玩家,但引擎实际上 每个服务器可支持多达 256 个同时连接的客户端,并允许 在同一条起跑线上排列多达 16 名玩家。
🤖 与机器人 (AI) 对战
无论你是想单人练习,还是管理着一个人数寥寥的服务器,你都可以利用内置的机器人来让比赛变得生动起来!
- 激活: 默认情况下,机器人数量设置为 0。如果你是主机,你可以通过 Server Settings (服务器设置) 选项卡(Android 端)或在
server_config.ini文件(Linux Headless 端)中修改此数字。 - 建议用途: 它们非常适合用来测试游戏或为一个空荡荡的服务器增添活力。相反,不建议在拥挤的服务器上使用它们,以免影响画面的整洁度(当然,最终决定权始终在服务器管理员手中)。
- 工作原理: 机器人的 AI 基于复杂的 Waypoints (路点) 网络(预先录制的轨迹)。为了保证持续的挑战性并让它们看起来更像人类,它们采用了 Rubberbanding (橡皮筋机制)。
⚙️ 5. 技术架构 (幕后原理)
O.W.T.F.A 是一个基于 Unity 6 打造的优化怪兽,旨在承受高速竞技的考验。我的方法融合了网络工程和对优化的极致追求。 (以下几点仅为数十个已实现系统中的几个例子):
- 网络代码 (异步魔法): 由 FishNet 驱动,架构基于 “客户端授权并由服务器控制游戏 (Client Authoritative with Server Control over the Game)” 模型。敌对车辆是通过 Target RPC 同步的“傀儡”。撞击 始终 会在完美的时刻呈现在你的屏幕上。
- 实验性高级物理: 游戏模拟了正面碰撞时的惯性转移 (Attacker Yielding),避免了“撞混凝土墙”的效应。此外,在侧面接触(车群摩擦)时会计算持续摩擦力,并以安全的方式 (throttled) 发送给服务器。
- 尾流的数学架构: 尾流计算绕过了 Unity 的碰撞体,转而采用纯数学的椭圆模型。通过 Time-Slicing (时间切片)(10Hz 搜寻目标,60Hz 应用)和 Broadphase Culling (粗略阶段剔除) 进行优化,这种架构可以轻松应对几十辆车的并发计算。
- 动态分辨率 (DRS) 与 JNI 监控: 游戏内置了一个具有 6 个层级的动态系统,用于监控帧率。如果过去 3 秒的平均帧率低于 25 FPS,游戏会降低分辨率。如果帧率在 20 秒内超过 50 FPS,则会提高分辨率。作为补充,Android 原生调用 (JNI) 会实时显示你的电池物理温度。
- 根除状态泄漏 (零加载时间): Single Scene (单场景) 架构无懈可击。单场景在应用程序启动时加载一次,然后无限循环重复使用,彻底消除了加载屏幕。无论你是从本地主机切换到 WAN 服务器的纯客户端,还是遭遇突然断线,全局状态和协程都会精确到毫秒级被清除。没有任何幽灵界面 (zombie UI) 会污染你的屏幕。
🕹️ 6. 安装指南 (玩家入门)
想立刻投入行动?请按照界面的分步指南进行操作:
步骤 1:安装
下载下方的 .apk (Android) 文件并安装。 (注:你可能需要在手机设置中允许安装未知来源的应用)。
步骤 2:主菜单 (轮播图)
启动后,迎接你的是一个轮播图菜单。使用箭头滚动这些大按钮:
- 🔵 JOIN LOCAL / ONLINE (加入本地/在线): 用于加入已有的游戏。
- 🟡 LOCAL HOST & SOLO (本地主机与单人): 用于托管你自己的游戏(可以单人玩,或让同一 Wi-Fi 网络下的朋友加入)。
- ⚙️ SETTINGS (游戏设置): 配置所有选项的地方。分为两列:左边是你的 Client Settings (客户端设置)(FPS 限制器、手动激活 DRS 层级、震动等),右边是 Server Settings (服务器设置)(仅当你托管游戏时生效)。
- 🟢 PLAYER PROFILE / STATS (我的档案/统计信息): 用于查看你的统计数据。
步骤 3:加入游戏 (JOIN 面板)
如果你点击了蓝色的 "JOIN" 按钮,服务器浏览器就会打开。它被划分为 3 个智能区域:
- 右上角 (Online Public Servers): 这里显示广域网专属服务器 (在线)。只需点击列表项即可加入全球混战。
- 左上角 (LAN Android Servers): 如果你的家人在同一个 Wi-Fi 路由器上以 "HOST" 身份启动了游戏,他/她的手机就会出现在这里。
- 底部 (Manual Connection - 手动连接): 专为老玩家准备的区域。输入 IP、端口和可选的密码,即可加入私有的专用服务器(隐身模式)。
🐧 7. 部署指南 (致管理员 / 个人实验室)
你管理着一个社区,并希望托管你自己的 Linux (Headless) 服务器吗?
该版本旨在通过纯命令行在 VPS (Ubuntu, Debian...) 上运行。 不要惧怕硬件配置要求: 一个入门级的普通 VPS (1 vCore, 2 GB RAM) 就不会卡顿。给你一个概念:这样的服务器在启用 100 个机器人的情况下,能稳定保持 75 FPS!如果你将其推至 160 个机器人,CPU 将达到 100% 满载,你会遇到 卡顿/抖动(FPS 下降到约 40 左右),但架构不会崩溃。可执行文件附带了完整的手册,可通过以下命令访问:
./Server_Build_36.x86_64 -man
🚀 内置配置向导
忘掉复杂的手动编辑吧。服务器内置了一个交互式的 CONFIGURATION WIZARD (配置向导)。运行以下命令并回答问题(名称、端口、昼夜交替、尾流等),即可干净利落地自动生成 server_config.ini 文件:
./Server_Build_36.x86_64 -batchmode -nographics -g
🏁 启动服务器
配置完成后,在后台启动你的服务器:
nohup ./Server_Build_36.x86_64 -batchmode -nographics &
隐身模式 (私有): 你可以通过命令行参数覆盖配置。添加 -private 参数后,服务器将不再出现在全球列表中。此时,-token 参数的作用将发生改变,变成玩家通过 IP 手动连接时所需的 密码!
🛡️ 防火墙与网络 (极其重要)
为了让你的服务器可见且正常工作,你 必须 在防火墙 (UFW) 或托管面板中开放两个端口:
- 游戏端口 (Game Port, 例如 7770) UDP: 用于处理玩家流量,必不可少。
- Ping 端口 (Ping Port, 例如 7771) TCP:(始终等于 游戏端口 + 1)。主服务器 (Master Server) 使用它来 ping 你的服务器,并在列出它之前确认其存活状态。如果该端口关闭,你的服务器将保持不可见。
🩺 监控与遥测 (致系统管理员)
服务器在设计时追求极致的轻量化。你可以通过读取输出文件(例如 tail -f nohup.out)实时监控其健康状态。服务器会循环打印其内部性能的完整遥测数据:
- 服务器 FPS: 3秒、10秒和60秒的滑动平均值(原生以稳定的 75 FPS 运行)。
- 资源消耗: CPU 使用率(在经典 VPS 上通常低于 4%)和优化的 RAM 使用量(低于 600 MB)。
- 心跳 (Heartbeat): 实时确认成功 ping 通主服务器的状态。
🔒 8. 安全与 DRM (数字版权管理)
(详见前言)。 此评估版集成了专有的 DRM,它会不断验证过期日期 (2026 年 8 月 20 日)。如果没有连接到验证服务器(无网络连接),游戏将拒绝启动,即便是单人会话 (Solo) 也不例外。
🛠️ 9. 常见问题与故障排除
某些行为可能看起来像是 Bug 或疏漏,但实际上是设计上的选择或与你的设备配置有关:
- “为什么游戏只在 Android 上提供?什么时候出 PC/iOS 版?” 这是一个完全经过深思熟虑的选择。 O.W.T.F.A 的目标是将这种赛车概念带到一个前所未有的平台(触摸屏)上。此外,我拒绝让 PC(键盘/手柄)玩家与移动端玩家进行不公平的竞争。最后,维护多平台版本对于单人开发者来说很快就会变成一场噩梦。对于管理员,如果需求量大,我或许会发布 Windows 版的独立服务器程序,但目前没有这个计划。
- “分辨率看起来有像素感 / 很丑”: 游戏使用了动态分辨率系统 (DRS)。如果它为了保持 FPS 而执意降低分辨率,请进入 Settings 面板,取消勾选最低分辨率层级(或者只勾选你想要的那个),强制游戏保持清晰。
- “游戏卡顿 / 不够流畅”:
- 关闭所有后台应用并禁用省电模式。
- 小米 Redmi (及同类机型) 提示: 在游戏过程中,通过下拉通知栏快速打开再关闭省电模式。这通常能解锁性能模式 (Turbo),并允许以 120Hz(理论上最高 120 FPS)运行游戏。
- 如果游戏依然卡顿,进入 Settings 并取消勾选最高分辨率层级,以防止游戏以全高清运行。
- 对于古董机(如:三星 Galaxy Note 3): 没错,游戏也能在上面运行(毫不夸张)并保持 25-30 FPS!为此:将 Framerate 限制为 30 FPS,只勾选最低(或倒数第二低)分辨率,并 在线游玩(仅仅作为客户端可以极大地减轻负载,不像主机模式那么吃力)。
🐛 10. 已知 Bug (抢先体验)
游戏正处于活跃开发阶段 (Beta)。以下是我已知并将很快修复的异常情况。请多包涵,感谢你们的反馈!
- 观战模式 (第 5 到 15 场比赛): 只有第 1 到 4 场比赛正确配置了观战相机的锚点。在其他赛道上,相机可能会卡在风景中,或者由于 Network Culling (网络剔除) 优化而找不到要跟踪的车辆。
- 赛道上的捣乱分子 (触发器漏洞): 在某些赛道上,起点的检测区域 (trigger) 并没有完美贴合赛道的物理入口。因此,恶意玩家可能会在比赛途中神不知鬼不觉地潜入赛道,从而干扰赛车手,而不是被切换到观战模式。
- 频繁切换服务器时的不稳定性 (状态残留): 尽管 单场景 (Single Scene) 会自动清理,但在多个 WAN 服务器和主菜单之间进行高强度的来回切换时,可能仍会残留状态冲突。如果遇到异常行为,请 完全关闭应用程序并重新启动 以强制执行一次干净的清理。
📜 11. 制作人员名单与致谢
O.W.T.F.A 是一个单人项目,但如果没有 Unity 社区中开发者和 3D 艺术家的杰出工作,它就不可能见诸于世。非常感谢以下资产的创作者:
- Arcade Car Physics,作者 Saarg:让我得以构建自己物理系统的骨架。
- Fish-Net (Networking Evolved),作者 FirstGearGames:天才般的网络引擎,从容不迫地承受了我的碰撞所带来的混乱。
- 3D 模型 (车辆与环境): 衷心感谢以下资产的作者:POLYGON City Pack, Awb-Free Low Poly Cars, BackRock-NeonCity, Fantasy Skybox FREE, Police Car & Helicopter, Simple Vehicle Pack, Simple city plain, Toon Vehicles Free, Pack FREE Cars, 和 SportCar。
开发者注:O.W.T.F.A 是我的第一款游戏。在整个开发过程中,我已尽力记录所使用的资产,但很有可能还是遗漏了一些人或者错误列出了一些资产包。请多多包涵!如果你是创作者,认出了你的作品而我却忘了提及你,请随时与我联系(并提供证据),我将非常乐意为你添加官方致谢。
感谢你参与 O.W.T.F.A 的冒险。准备迎接混乱吧。 💥
| Published | 23 days ago |
| Status | In development |
| Platforms | Linux, Android |
| Author | I.N.D.E Production |
| Genre | Racing |
| Made with | Unity, Blender |
| Tags | chaos, competitive, dedicated-server, drifting, face-to-face, Low-poly, Massively multiplayer, Open World, Parkour, Physics |
| Average session | A few minutes |
| Languages | English |
| Inputs | Touchscreen |
| Accessibility | Color-blind friendly, High-contrast |
| Multiplayer | Local multiplayer, Server-based networked multiplayer |
| Player count | 1 - 255 |
| AI Disclosure | AI Assisted, Code, Graphics, Sounds, Text |
Download
Click download now to get access to the following files:

























































































































Leave a comment
Log in with itch.io to leave a comment.