GJID - Le Bottin des Jeux Linux


🗃️ Specifications

📰 Title: GJID 🕹️ / 🛠️ Type: Game
🗃️ Genre: Puzzle 🚦 Status:
🏷️ Category: Puzzle ➤ Transport ➤ Sokoban ➤ Misc. 🍥️ Name:
🔖 Tags: Puzzle; Transport; Sokoban; Casual; Remake 📦️ Arch:
🐣️ Approx. start: 🍥️ On Deb repo:
🐤️ Latest: 2011-09-25 📦️ Deb:
📍️ Version: 3.0 📦️ RPM:
🏛️ License type: FOSS/Libre 📦️ AppImage:
🏛️ License: MIT/X11 📦️ Snap:
🏝️ Perspective: Third person 📦️ Flatpak:
👁️ Visual: 2D ⚙️ Generic bin.: ✓
⏱️ Pacing: Real Time 📄️ Source: ✓
👫️ Played: Single 🌍️ Browser-based:
🎖️ This record: 3 stars 📱️ PDA support:
🎖️ Game design: 👫️ Contrib.: Goupil & Louis
🎰️ ID: 11220 🐛️ Created: 2011-10-21
🐜️ Updated: 2021-01-13

🕸️ Links

[Homepage] [Dev site] [Screenshots] [WIKI]
[Changelog 1 2 3]

[Wikipedia (Sokoban) [fr] [en]]
[Free Gamer]

📕 Description [fr]

Une variante de Sokoban et un clone du jeu éponyme sous DOS (de John Remyn).

En l'an 32333, 2 citées robots sur la planète Nikarade prirent les armes l'une contre l'autre.
Toutes deux créèrent de larges complexes dans lesquels de puissants perturbateurs photons furent entreposés.
Après de nombreuses années d'une tension croissante de ces citées, l'une d'elle élut un autre leader qui tenta de ramener la paix entre les belligérants. Elles finirent par trouver un terrain d'entente en 32407 et s'entendèrent pour recycler une partie de leurs arsenaux respectifs.

Le problème était qu'aucun robot n'avait la moindre envie de descendre dans ces arsenauts pour accomplir cette dangereuse tâche.
Finalement un robot dénommé GJID proposa ses services. Ce n'était qu'un simple robot qui n'avait rien à perdre et la récompense était substancielle.

Vous incarnez GJID dont la tâche est de déplacer chaque caisse dans les réceptacles prévus à cet effet. Des labyrinthes complexes ne comptant que des portes à sens unique vous rendront la tâche difficile.
GJID n'est pas très puissant et ne peut donc déplacer qu'une caisse à la fois. De plus il ne peut que pousser les caisses, et non les tirer.
Lorsque vous aurez recyclé toutes les caisses du niveau vous devrez vous rendre à la porte de sortie pour passer au niveau suivant.

📕 Description [en]

A puzzle game involving moving crates through a complex maze into recycling bins. Clear each level to move on to the next.


This is a clone of the eponymous DOS shareware game written in 92 by John Remyn. I spoke with John in 95, when the first version of this clone was made. He admired the 8-bit graphics (original game was done in 4-color CGA) and did not object to its existence. His email address has since expired and the few contact attempts I've made recently hit dead ends. The DOS game was $10 shareware and I include the original registration form below, in case you want to track John down and give him money for the excellent level design that make this game what it is.

Aside from being an entertaining puzzle, I also release this game as an example of using the XCB library for making X applications.
XCB is the new lightweight replacement for Xlib that suffers from lack of documentation. This game demonstrates how to create small applications with it and also how to use RENDER for drawing text, tile sprites, and for hardware scaling of the 320x240 backbuffer.


In the year 32333 AD two robot cities on the planet Nikarade were arming themselves against each other. Both set up large complexes in which powerful photon disruptors were stored. After many years of increasing tension on of the cities elected another leader who attempted to make peace with the enemy. The cities finally agreed to an entente in 32407 and to recycle some of the created weapons

The problem was that no robot wanted to go down into the dungeons and accomplish this dangerous task. Finally, one robot named GJID came forward to take up the job. He was a simple robot and little to lose. Besides, there was a reward offered for the job.

In this game you play GJID, whose task is to move each crate into recycling bins. At times complex mazes and one-way doors can make this quite difficult. GJID is not very powerful and can only move one crate at a time. Also, he can only push the crates, not pull.

When you have recycled all the crates on the level you should use the exit door to move on to the next. This weapons complex has 14 levels for you to clear.


Original DOS shareware README follows.

It's been over 20 years, so the addresses are no longer valid and Galifir Developments no longer exists.

GJID 2.0 - A game by John Remyn.
Copyright 1990, 1992 Galifir Developments.

GJID is a fascinating puzzle game, which will keep you glued to the screen for quite some time. It combines intricate puzzles with straightforward gameplay in 14 challenging levels.

This game is shareware. You are encouraged to freely copy and distribute it, provided that no fee is charged beyond normal media duplication and shipping costs, and that no changes are made to the distribution archive contents. If you like this game, you are strongly encouraged to register it. You will receive the latest registered version of the game, along with a number of other (unregistered) games by the authors, on diskette. The registered version includes a level editorwhich allows you to create and modify GJID levels in a user friendly environment. For further information see the end of this file and the file ORDER.FRM.

---- Please register --------------------------------------------

Many hours of work have been put into this game. If you like it, please consider registering it. To encourage you to register, we offer you this for $10:

- The registered version of GJID, including a comprehensive level editor, which enables you to create your own levels. Designing new levels is even more challenging than playing them.

- The Solar Hockey League, a future sports simulation with fast and furious action. Play against one of the challenging computer teams, or compete with a friend (which is great fun).

- Hi-Q, a beautiful implementation of the classical board game. Not as taxing on the mind as GJID, and not so exhilarating as The Solar Hockey League, but showing some very nice 256 color VGA graphics. This game also supports SuperVGA graphics on many SVGA cards, using 256 color modes with resolutions of 640x400 or 640x480 pixels.

- Any other games which we may have developed since this release of GJID.

---- Technical Info and History ----------------------------------

Programming was started on this game in 1989. It was released through the Public (Software) Library in Houston in 1990. Now (in 1992) colors and small details have been improved, a comprehensive level editor has been created for the registered version and some real documentation has been written.

--- Ordering Information -----------------------------------------

Send cash (bills) in a double envelope or in an envelope with some paper (possibly the order form) wrapped around the bills. An international money order will probably cost you a fee comparable to the registration amount. You can also use American Express Travelers Checks. Please do not send coins or other checks. Send the money along with the order form, or the information asked in the order form if you don't have easy access to a printer, to the address below. Remember to add proper postage for delivery to Europe. Mail usually takes a few days to reach Europe from North America. We will respond within 3 weeks at least, but usually within a few days.

Comments, suggestions and bug reports are always welcome. For these, if you have access to Electronic Mail, you can use the following Internet address: hhanemaa@cs.ruu.nl

🚧️ Installation [fr]

Le source ne comprend aucune dépendance, il n'y a donc aucun paquet complémentaire à installer.
En console, lancez : $ ./configure && make


En console dans le répertoire racine du jeu lancez : ./gjid

TOUCHES / CONTROLS (extrait du site) :
Controls: Cursor keys to move
F1 show this help
F6 restart the level
F8 skip the level
F10 quit the game

🔍️ Test [fr]

🕵️ Test (3.0) :
La compilation plante sur notre installation avec les messages :
$ make
Compiling gjid.cc ...
Compiling level.cc ...
Compiling xapp.cc ...
Linking gjid ...
.o/xapp.o: In function `CXApp::Update()':
xapp.cc:(.text+0x8d): undefined reference to `xcb_render_composite'
.o/xapp.o: In function `CXApp::CreateWindow(char const*, int, int)':
xapp.cc:(.text+0xd4): undefined reference to `xcb_generate_id'
xapp.cc:(.text+0x100): undefined reference to `xcb_create_window'
xapp.cc:(.text+0x10b): undefined reference to `xcb_generate_id'
xapp.cc:(.text+0x125): undefined reference to `xcb_create_pixmap'
xapp.cc:(.text+0x130): undefined reference to `xcb_generate_id'
xapp.cc:(.text+0x144): undefined reference to `xcb_create_gc'
xapp.cc:(.text+0x156): undefined reference to `xcb_generate_id'
xapp.cc:(.text+0x16f): undefined reference to `xcb_render_create_picture'
xapp.cc:(.text+0x17c): undefined reference to `xcb_free_pixmap'
xapp.cc:(.text+0x18e): undefined reference to `xcb_generate_id'
xapp.cc:(.text+0x1a7): undefined reference to `xcb_render_create_picture'
xapp.cc:(.text+0x1d1): undefined reference to `xcb_change_property'
xapp.cc:(.text+0x1f0): undefined reference to `xcb_change_property'
xapp.cc:(.text+0x20f): undefined reference to `xcb_change_property'
xapp.cc:(.text+0x21e): undefined reference to `xcb_map_window'
.o/xapp.o: In function `CXApp::LoadImage(char const* const*)':
xapp.cc:(.text+0x3a4): undefined reference to `xcb_generate_id'
xapp.cc:(.text+0x3d1): undefined reference to `xcb_create_pixmap'
xapp.cc:(.text+0x40b): undefined reference to `xcb_put_image'
xapp.cc:(.text+0x41f): undefined reference to `xcb_generate_id'
xapp.cc:(.text+0x446): undefined reference to `xcb_render_create_picture'
xapp.cc:(.text+0x45e): undefined reference to `xcb_free_pixmap'
.o/xapp.o: In function `CXApp::DrawImageTile(CXApp::SImage const&, CXApp::SImageTile const&, int, int)':
xapp.cc:(.text+0x4e0): undefined reference to `xcb_render_composite'
.o/xapp.o: In function `CXApp::LoadFont()':
xapp.cc:(.text+0x503): undefined reference to `xcb_generate_id'
xapp.cc:(.text+0x51d): undefined reference to `xcb_render_create_glyph_set'
xapp.cc:(.text+0x620): undefined reference to `xcb_render_add_glyphs'
xapp.cc:(.text+0x667): undefined reference to `xcb_generate_id'
xapp.cc:(.text+0x682): undefined reference to `xcb_create_pixmap'
xapp.cc:(.text+0x693): undefined reference to `xcb_generate_id'
xapp.cc:(.text+0x6b2): undefined reference to `xcb_render_create_picture'
xapp.cc:(.text+0x6bf): undefined reference to `xcb_free_pixmap'
xapp.cc:(.text+0x6e3): undefined reference to `xcb_render_fill_rectangles'
.o/xapp.o: In function `CXApp::Run()':
xapp.cc:(.text+0x765): undefined reference to `xcb_send_event'
xapp.cc:(.text+0x7e5): undefined reference to `xcb_render_set_picture_transform'
xapp.cc:(.text+0x854): undefined reference to `xcb_flush'
xapp.cc:(.text+0x866): undefined reference to `xcb_wait_for_event'
.o/xapp.o: In function `CXApp::DrawText(int, int, char const*, unsigned int)':
xapp.cc:(.text+0x92e): undefined reference to `xcb_render_fill_rectangles'
xapp.cc:(.text+0x9b1): undefined reference to `xcb_render_composite_glyphs_8'
.o/xapp.o: In function `CXApp::~CXApp()':
xapp.cc:(.text+0x9dd): undefined reference to `xcb_disconnect'
.o/xapp.o: In function `CXApp::CXApp()':
xapp.cc:(.text+0xaf1): undefined reference to `xcb_connect'
xapp.cc:(.text+0xb49): undefined reference to `xcb_get_setup'
xapp.cc:(.text+0xba6): undefined reference to `xcb_setup_roots_iterator'
xapp.cc:(.text+0xbce): undefined reference to `xcb_get_keyboard_mapping'
xapp.cc:(.text+0xbe7): undefined reference to `xcb_render_query_version'
xapp.cc:(.text+0xc1b): undefined reference to `xcb_intern_atom'
xapp.cc:(.text+0xc39): undefined reference to `xcb_get_keyboard_mapping_reply'
xapp.cc:(.text+0xc43): undefined reference to `xcb_get_keyboard_mapping_keysyms_length'
xapp.cc:(.text+0xc4d): undefined reference to `xcb_get_keyboard_mapping_keysyms'
xapp.cc:(.text+0xc7f): undefined reference to `xcb_render_query_version_reply'
xapp.cc:(.text+0xc93): undefined reference to `xcb_intern_atom_reply'
xapp.cc:(.text+0xcb1): undefined reference to `xcb_screen_allowed_depths_iterator'
xapp.cc:(.text+0xcd9): undefined reference to `xcb_depth_visuals_iterator'
xapp.cc:(.text+0xcf7): undefined reference to `xcb_visualtype_next'
xapp.cc:(.text+0xd09): undefined reference to `xcb_depth_next'
xapp.cc:(.text+0xd20): undefined reference to `xcb_render_query_pict_formats'
xapp.cc:(.text+0xd2f): undefined reference to `xcb_render_query_pict_formats_reply'
xapp.cc:(.text+0xd3b): undefined reference to `xcb_render_query_pict_formats_formats_iterator'
xapp.cc:(.text+0xdaa): undefined reference to `xcb_render_pictforminfo_next'
collect2: ld returned 1 exit status
make: *** [gjid] Erreur 1