Road Fighter remake - Le Bottin des Jeux Linux

Road Fighter remake

🗃️ Specifications

📰 Title: Road Fighter remake 🕹️ / 🛠️ Type: Game
🗃️ Genre: Arcade 👁️ Visual: 2D Top-Down
🏷️ Category: Arcade ➤ Vehicular Combat ➤ Car ➤ Road fighters 🏝️ Perspective: Third person
🔖 Tags: Sports; Vehicular Combat; Arcade; Action; Racing; Retro; Remake; Casual; Fast-Paced; Difficult; Local Multi; Split Screen ⏱️ Pacing: Real Time
🐣️ Approx. start: 2003-01-01 👫️ Played: Single & Multi
🐓️ Latest: 2018-11-02 🚦 Status: 08. Active & Not working (no status)
📍️ Version: Latest: 1.0 / 1.0-1269 / Dev: ecfa9dd2 ❤️ Like it: 9. ⏳️
🏛️ License type: 🕊️ Libre 🎀️ Quality: 7. ⏳️
🏛️ License: LGPL-2+ ✨️ (temporary):
🐛️ Created: 2010-08-20 🐜️ Updated: 2024-06-17

📦️ Deliverables

📦️ Package name: ..... 📦️ Arch:
📄️ Source: ✓ ..... 📦️ RPM:
⚙️ Generic binary: ..... 📦️ Deb: ✓
🌍️ Browser version: ..... 📦️ AppImage:
📱️ PDA support: ✓ ..... 📦️ Flatpak:
✨️ Not use: ..... 📦️ Snap:

🚦 Entry status

📰 What's new?: 👔️ Already shown:
💡 Lights on: 💭️ New version published (to be updated):
🎨️ Significant improvement: 🦺️ Work in progress:
🎖️ This work: 5 stars 🚧️ Some work remains to be done:
👫️ Contrib.: goupildb & Louis 👻️ Temporary:
🎰️ ID: 12663

📖️ Summary

📜️[en]: A libre and multi-platform remake of the eponymous arcade game (KONAMI, 1984), a car race in 2D objective vision, single-player (AI) / multiplayer (2 in hotseat, split screen), where all bad moves are allowed, with the objective of reaching the checkpoint of each stage (6 stages) in the given time without running out of gas. The game has 3 levels of difficulty (A to C). The player must not only avoid the edges of the road but also his opponent who tries to push him there, and avoid running out of gas by collecting fuel (pink hearts). 📜️[fr]: Un remake libre et multi-plateforme du jeu d'arcade éponyme (KONAMI, 1984), une course de voitures en vision objective 2D, solo (IA)/multi (2 en hotseat, en écran partagé), où tous les mauvais coups sont permis, avec pour objectif d'atteindre le checkpoint de chaque étape (6 étapes) dans les temps impartis sans tomber en panne d'essence. Le jeu comprend 3 niveaux de difficulté (A à C). Le joueur doit non seulement éviter les bords de la route mais aussi ses adversaire qui tentent de l'y pousser, et éviter la panne sèche en collectant du carburant (cœurs roses).

🎥️ Videos


🎲️ Gameplay (SP): (202107), (201706), (201305),

🕸️ Links

🏡️ Website & videos
[Homepage] [Dev site 1 2] [Features/About] [Screenshots] [Videos t(202xxx) gd(202xxx) gu(202xxx) r(202xxx) lp(202xxx) g(202107) g(201706) g(201305) g[fr](202xxx) g[de](202xxx) g[ru](202xxx) g[pl](202xxx) g[cz](202xxx) g[sp](202xxx) g[pt](202xxx) g[it](202xxx) g[tr](202xxx)] [WIKI] [FAQ] [RSS] [Changelog 1 2 3 4]

💰 Commercial
• (empty)

🍩️ Resources
• Road Fighter (Emscripten / Web version), by Andrey A. Ugolnik: [HomePage] [ru] [Dev site] [Play it] [Changelog 1 2]

🛠️ Technical informations
[PCGamingWiki] [MobyGames]

🦣️ Social
Devs (Road Fighter Team [fr] [en]): [Site 1 2] [Chat] [mastodon] [PeerTube] [YouTube] [PressKit] [Interview 1(202xxx) 2(202xxx)]
(Road Fighter remake) Devs (Santi Ontañón Villar (Brain Games) [fr] [en]): [Site 1 2] [Chat] [mastodon] [PeerTube] [YouTube] [PressKit] [Interview 1(202xxx) 2(202xxx)]
(Road Fighter remake, new version) (Andrey A. Ugolnik [fr] [en]): [Site 1 2 3] [Forums] [mastodon] [Facebook] [PeerTube] [YouTube] [PressKit] [Interview 1(202xxx) 2(202xxx)]
(Road Fighter remake, new version) (Carlos Donizete Froes (coringao) [fr] [en]): [Site 1 2 3] [mastodon] [twitter 1 2] [PeerTube] [YouTube] [PressKit] [Interview 1(202xxx) 2(202xxx)]
(Road Fighter remake, port by) (Manuel Bilderbeek [fr] [en]): [Site 1 2] [Chat] [mastodon] [PeerTube] [YouTube] [PressKit] [Linkedin] [Interview 1(202xxx) 2(202xxx)]
(Road Fighter) Devs (Konami [fr] [en]): [Site 1 2] [Chat] [mastodon] [PeerTube] [YouTube] [PressKit] [Interview 1(Tribute to Mr. Hideo Kojima)(201612) 2(Mr. Hideo Kojima, RTXAustralia 2017)(201702)]
The Project: [Blog] [Chat] [Forums] [mastodon] [PeerTube] [YouTube] [PressKit] [reddit] [Discord]

🐝️ Related
[Wikipedia (Road Fighter) [fr] [en] [de] [sp]]

📦️ Misc. repositories
[Repology] [pkgs.org] [Generic binary] [Arch Linux / AUR] [openSUSE] [Debian/Ubuntu] [Flatpak] [AppImage(author's repo)] [Snap] [PortableLinuxGames]

🕵️ Reviews
[HowLongToBeat] [metacritic] [OpenCritic] [iGDB]

🕊️ Source of this Entry: [Site (date)]

🦣️ Social Networking Update (on mastodon)

🕹️ Title: Road Fighter remake
🦊️ What's: A libre remake of the eponymous arcade game, a car race where all bad moves are allowed
🏡️ https://roadfighter.jorito.net
🐣️ https://gitlab.com/coringao/roadfighter
🔖 #LinuxGaming #ShareYourGames #Arcade #Racing #VehicularCombat #Remake
📦️ #Libre #Deb
📖 Our entry: https://www.lebottindesjeuxlinux.tuxfamily.org/en/online/lights-on/

🥁️ Update:
⚗️
📌️ Changes:
🦣️ From:

📦️
📖 Our entry: https://www.lebottindesjeuxlinux.tuxfamily.org/en/online/lights-on/
🎲️ https://www.youtube.com/embed/ob-322rJ3gE
🎲️ https://www.youtube.com/embed/QEMvEacEOEo

📕 Description [en]

📜️ "A libre remake of the eponymous arcade game, a car race where all bad moves are allowed" 📜️

How to play

In Road Fighter you drive a car in a death race between you and a group of mad drivers. Your aim? To reach the end of the checkpoint before you run out of fuel. Sounds easy? Far from it, there's a lot of obstacles between your car and the checkpoints! The game is divided in 6 stages and features 3 different difficulty levels:

GAME A is for beginners. You will want to choose this when you play the game for the first time.
GAME B is for advanced players. The game is quite hard to finish in this mode.
GAME C is for crazy players. In this mode you will have serious problems to beat the game!
During the race, you should try not to hit the borders of the road. Beware of the other cars, because they sometimes will try to push you to the border and make you crash. Another important issue is the fuel. You should try to collect all the fuel recharges that you can during the game. They are represented by the pink hearts.

You can also play the game with 2 players at the same time in split screen mode!


In 2003 the people from Retro Remakes organized a remake competition for the first time. The idea was to create a remake from scratch in a short amount of time.
We decided to participate with a remake of the MSX game Road Fighter: a simple racing game that would be doable before the deadline and still be fun to play (oh the nostalgia!).

In the end we met the deadline (barely!) and sent in our entry. When finally the results came in, we finished 7th out the 83 entries. Not too bad for a 2 month project :)


New version by Andrey A. Ugolnik (see "Resources" above) :

The changes I made

• Crashes fixed;
• Linux, macOS and Web version;
• Surface operations highly optimized;
• Simple and stupid Asset system added;
• Code refactored, source code and resources hierarchy fixed;
• Move to C++11 standard;
• Cmake as build system;

How it was

The game's source code was available on the Brain Games website. This I took advantage of. I notified the clone author about my work. It's funny, but he was glad and said that he was waiting for the completion of work on the web-version.

The first thing I did was a small refactoring of the code, so that the game would be compiled by a modern compiler with the "modern" version of SDL-1.2. Next, I refactored the code-a fairly large chunk of work. Although there is nothing complicated in this, but the process takes a long time. You need to divide all the code into logical parts and bring them to a readable kind (my favorite VIM and clang-format help me here). After that, I had to correct the code of the sge library, which was required by the game. Next, I made a port game for Linux and macOS, and after half a year, gathered with forces, finished the port of the game for the Web.

The main problems encountered

With the version for the Web had to tinker. At first, the game did not want to work at all - it's because the main loop should be "somewhat" different for Emscripten (and indeed for any properly done architecture).

The next problem was cleaning the screen (rather, filling it with black) - you need to clean the screen not just with "zero", but with "zero" with alpha set to 0xff.

Then the game hovered at the download level (later it turned out that the game did not hang, but just very long booted). I had to make a lot of optimizations. Basically, they all involve direct access to the SDL surface. I solved this problem quite simply - got rid of Lock / Unlock inside the cycles.
In the game there is a situation where the car after a collision begins to twist and you need to draw a strip from the "braking" tires on the asphalt. There was a misfortune - a very long line drawing. Which, in addition, have never been cleared, even if they were already outside the screen. Simply taking out the lock out of the loop and clearing the list of lines solved the problem.

At the same time, he slightly altered the work with the file system, finalized the initialization of the video and audio system, the loading of music and sounds. Changes have turned out very much, most I already do not remember. Those interested can take the original version of the game (the very first commit) and compare it with the current master-brunch.

Maybe I will get together with the forces and add support for maintaining the state of the game for the web version. It is not difficult to do this - synchronization of the "local" FS before reading from it. IDBFS is great for this, but now I'm too lazy to do it.

Download and play

The game is available on Bitbucket - Road Fighter sources (see "Dev site" on "Resources" section above).

Game for the browser - Road Fighter for Web (neat, about 40 MB) (see "Road Fighter for Web" on "Resources" section above).


🌍️ Wikipedia :

Road Fighter (ロードファイター Rōdo Faitā) is a racing arcade game developed by Konami and released in December 1984. It also was the first racing game from Konami. The goal is to reach the finish line within the stages without running out of time, hitting other cars or running out of fuel (fuel is refilled by hitting a special type of car). The game also spawned two sequels in its time, Midnight Run: Road Fighter 2 in 1995 and Winding Heat in 1996, respectively. A Japan-only rebooted sequel was also released in 2010, 14 years after Winding Heat.

(...)

📕 Description [fr]

Un remake du jeu d'arcade éponyme (de KONAMI), une course de voitures où tous les coups sont permis, par la Road Fighter remake Team, initié par Santi Ontañón Villar (Brain Games), portage Linux par Manuel Bilderbeek, travail additionnel par Carlos Donizete Froes (coringao), Road Fighter par Konami.

Road Fighter Remake est un remake libre et multi-plateforme du jeu d'arcade éponyme (KONAMI, 1984), une course de voitures en vision objective 2D, solo (IA)/multi (2 en hotseat, en écran partagé), où tous les mauvais coups sont permis, avec pour objectif d'atteindre le checkpoint de chaque étape (6 étapes) dans les temps impartis sans tomber en panne d'essence. Le jeu comprend 3 niveaux de difficulté (A à C). Le joueur doit non seulement éviter les bords de la route mais aussi ses adversaire qui tentent de l'y pousser, et éviter la panne sèche en collectant du carburant (cœurs roses).

Le jeu est divisé en 6 étapes (stages). Pour chaque étape, l'objectif est d'atteindre le point de contrôle (Checkpoint) avant que votre voiture ne tombe en panne d'essence. Facile? Vous pourriez être amené à le penser, mais les obstacles sont nombreux entre votre voiture et les points de contrôles :
• Voitures verte: ces conducteurs malchanceux sont sur votre route,
• Voitures bleu: vos adversaires, vous pouvez généralement aller plus vite qu'eux. Mais n'en soyez pas si sûr, ils pourraient vous surprendre!
• Voitures rose: les voitures suicidaires. Elles essayerons de vous rentrer dedans lorsque vous les dépassez.
• Les camions: vous feriez bien de les éviter.
• L'eau: freine votre voiture.
• L'huile: fera déraper votre voiture.
• Pierres: essayez de ne pas vous écraser contre une pierre ... si vous pouvez!

Au cours de la course, vous devez veiller à ne pas heurter les bords de route. Mais certaines voitures tenterons de vous y pousser...
L'autre chose importante concerne le carburant. Dans la mesure du possible vous devez tenter de collecter tous les bidons de carburant. Ils sont matérialisés par des cœurs rose.


Comment jouer

Dans Road Fighter, vous conduisez une voiture dans une course à la mort qui vous oppose à un groupe de conducteurs fous. Votre objectif ? Atteindre la fin du point de contrôle avant de tomber en panne d'essence. Cela vous semble facile ? Loin de là, il y a beaucoup d'obstacles entre votre voiture et les points de contrôle ! Le jeu est divisé en 6 étapes et comporte 3 niveaux de difficulté différents :

JEU A est pour les débutants. Vous voudrez choisir ce niveau lorsque vous jouerez au jeu pour la première fois.
JEU B est pour les joueurs avancés. Le jeu est assez difficile à terminer dans ce mode.
JEU C est pour les joueurs fous. Dans ce mode, vous aurez de sérieux problèmes pour battre le jeu !
Pendant la course, vous devez essayer de ne pas heurter les bords de la route. Méfiez-vous des autres voitures, car elles essaieront parfois de vous pousser vers le bord et de vous faire tomber. Une autre question importante est le carburant. Vous devez essayer de collecter toutes les recharges de carburant que vous pouvez pendant le jeu. Elles sont représentées par les cœurs roses.

Vous pouvez également jouer à 2 en même temps en mode écran partagé !


En 2003, les gens de Retro Remakes ont organisé un concours de remake pour la première fois. L'idée était de créer un remake à partir de zéro en un court laps de temps.
Nous avons décidé de participer avec un remake du jeu MSX Road Fighter : un simple jeu de course qui serait faisable avant la date limite et qui serait toujours amusant à jouer (oh la nostalgie !).

En fin de compte, nous sommes arrivé à la date limite (tout juste !) et avons soumis notre entrée. Quand finalement les résultats sont arrivés, nous avons terminé 7ème sur les 83 entrées. Pas trop mal pour un projet de 2 mois :)

Nouvelle version par Andrey A. Ugolnik (voir la section "Resources" ci-dessus) :

Les changements que j'ai faits

• Crashs corrigés;
• Version Linux, MacOS et Web;
• Opérations de surface hautement optimisées;
• Ajout d'un système d'Asset simple et stupide;
• Code refacturé, code source et hiérarchie des ressources corrigés;
• Passé à la norme C ++ 11;
• Cmake comme système de construction;

Comment c'était

Le code source du jeu était disponible sur le site de Brain Games. J'en ai profité. J'ai informé l'auteur du clone de mon travail. C'est drôle, mais il était content et a dit qu'il attendait l'achèvement du travail sur la version web.

La première chose que j'ai faite a été une petite refactorisation du code, afin que le jeu soit compilé par un compilateur moderne avec la version "moderne" de SDL-1.2. Ensuite, j'ai remanié le code - un travail assez important. Bien qu'il n'y ait rien de compliqué là-dedans, mais le processus prend beaucoup de temps. Il faut diviser tout le code en parties logiques et les rendre lisibles (mes outils préférés, VIM et clang-format, m'y aident). Après cela, j'ai dû corriger le code de la bibliothèque sge, qui était requise par le jeu. Ensuite, j'ai fait un portage du jeu pour Linux et macOS, et après une demi-année, rassemblé avec des forces, j'ai terminé le portage du jeu pour le Web.

Les principaux problèmes rencontrés

Avec la version pour le Web a dû bricoler. Au début, le jeu ne voulait pas fonctionner du tout - c'est parce que la boucle principale devrait être "quelque peu" différente pour Emscripten (et en fait pour toute architecture correctement faite).

Le problème suivant était de nettoyer l'écran (plutôt, de le remplir de noir) - vous devez nettoyer l'écran non seulement avec "zéro", mais avec "zéro" avec l'alpha réglé à 0xff.

Ensuite, le jeu s'est bloqué au niveau du téléchargement (plus tard, il s'est avéré que le jeu ne s'est pas bloqué, mais a juste démarré très longtemps). J'ai dû faire beaucoup d'optimisations. Fondamentalement, elles impliquent toutes un accès direct à la surface SDL. J'ai résolu ce problème assez simplement - en me débarrassant de Lock / Unlock à l'intérieur des cycles.
Dans le jeu, il y a une situation où la voiture après une collision commence à se tordre et vous devez dessiner une bande des pneus "de freinage" sur l'asphalte. Il y a eu un petit souci - un dessin de ligne très long. Qui, en outre, n'ont jamais été effacées, même si elles étaient déjà en dehors de l'écran. Le simple fait de retirer le verrou de la boucle et d'effacer la liste des lignes a résolu le problème.

En même temps, il a légèrement modifié le travail avec le système de fichiers, a finalisé l'initialisation du système vidéo et audio, le chargement de la musique et des sons. Les changements ont été très nombreux, la plupart dont je ne me souviens déjà plus. Les personnes intéressées peuvent prendre la version originale du jeu (le tout premier commit) et la comparer avec le master-brunch actuel.

Peut-être que je vais rassembler les forces et ajouter un support pour maintenir l'état du jeu pour la version web. Il n'est pas difficile de le faire - synchronisation du FS "local" avant de le lire. IDBFS est génial pour cela, mais maintenant je suis trop paresseux pour le faire.

Télécharger et jouer

Le jeu est disponible sur Bitbucket - Road Fighter sources (voir "Dev site" dans la section "Ressources" ci-dessus).

Jeu pour le navigateur - Road Fighter for Web (soigné, environ 40 MB) (voir "Road Fighter for Web" dans la section "Ressources" ci-dessus).

🚧️ Installation ➜ 🚀️ Launching [fr]

📄️ Installation à partir du source

• (✘ v. 1.0-1269 / ecfa9dd2) Si vous souhaitez quelque-chose de très récent (versions de développement) et/ou qu'il n'y a pas de binaire disponible pour votre distribution/architecture (32/64-bits), la compilation du source est une bonne idée, voir un passage obligé.

▸ Installation des dépendances (en dépôt) :
• Installez au préalable le(s) paquet(s) suivant(s) : sdl2

▸ Téléchargement du source (sur GitLab) :
☝️ Nota : Évitez le téléchargement du source via les liens https, car ils ne fournissent pas les dépendances
Version stable, dans le répertoire souhaité, lancez : $ git clone -b "Nom_de_la_release" --recursive https://gitlab.com/coringao/roadfighter
(Nom_de_la_release : à remplacer par le nom d'une release valide indiquée sur la page de développement : sur GitLab, dans la section Tags, le nom du titre est valide).
ou Version récente (non stable), dans le répertoire souhaité, lancez : $ git clone --recursive https://gitlab.com/coringao/roadfighter

▸ Compilation :
• Dans son répertoire racine lancez :
$ make
(ou, pour accélérer la compilation, "$ make -j8" si vous disposez d'un processeur 8 threads, à adapter pour vous)
↪ vous obtenez le(s) binaire(s): (n'a pas fonctionné pour moi)


🚀️ LANCEMENT DU JEU:

• En console dans son répertoire racine lancez (ou cliquez sur ce binaire si vous l'aviez rendu exécutable d'un clic droit sur le fichier): $ ./(n'a pas fonctionné pour moi)


⌨️🖱️🎮️ CONTRÔLES:
(extrait du site)

Cursor up : Previous menu item
Cursor down : Next menu item
Cursor left : Steer left; previous menu
Cursor right : Steer right; select menu item
Space : Accelerate; select menu item
F-1 : Pause
ALT+ENTER : Switch between full-screen and window mode
F12 : Quit

🕵️ Test [fr]

🕵️ Test (svn 20080717):

🎯️ Objectif : Initialisation de l'entrée, tests et premières impressions.

L'écran n'est pas très grand (env. 10cm en 1280x800) néanmoins sa réalisation est parfaite (graphisme, son, gameplay).
Un bon jeu.


🕵️ Test (version Web) :

🎯️ Objectif : Mise à jour de son fonctionnement/évolution.

Elle fonctionne bien, permettant de jouer à ce jeu à partir d'un onglet de votre navigateur.

‣ 🌞️ J'ai aimé
• Une belle réalisation (graphisme, son, interface)
• Permet de jouer au choix à partir d'un binaire Linux disponible sur son PC ou à partir du navigateur
• Le jeu est libre et open source !

‣ 🌤️ Axes d'amélioration
• Rien à signaler.

🧭️ Conclusion :

🕵️ Impression globale : 👍️
👏️ ❤️ Un grand bravo et merci à la Road Fighter Team, mais aussi à Andrey A. Ugolnik pour le gros travail concernant cette nouvelle version !


🕵️ Test (✘ v. 1.0-1269 / ecfa9dd2) par goupildb (config. : Manjaro 64-bit) :

🎯️ Objectif : Mise à jour de son fonctionnement/évolution.

Sa compilation plante sur : "src/auxiliar.cpp:87:33: erreur: ne peut convertir « bool » en « SDL_Surface* » dans le retour
87 | mask==0) return false;
| ^~~~~
make: *** [Makefile:52 : src/auxiliar.o] Erreur 1"