{"id":13408666,"url":"https://github.com/fastrgv/WorldCupSokerban","last_synced_at":"2025-03-14T13:31:53.553Z","repository":{"id":60016580,"uuid":"55075468","full_name":"fastrgv/WorldCupSokerban","owner":"fastrgv","description":"This is a soccer-themed, 3D sokoban puzzle game that runs on Windows, OSX and most Linux distros;  featuring voice of Andres Cantor!  Includes moderately capable, interactive autosolver.","archived":false,"fork":false,"pushed_at":"2024-08-27T00:03:17.000Z","size":4873,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-08-28T02:26:32.073Z","etag":null,"topics":["3d","ada","game","gnu-linux","soccer","sokoban","windows"],"latest_commit_sha":null,"homepage":"","language":"Ada","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fastrgv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-03-30T15:39:23.000Z","updated_at":"2024-08-27T00:03:20.000Z","dependencies_parsed_at":"2024-05-02T20:58:19.819Z","dependency_job_id":"6540897c-5aab-43b5-8bf1-2854837caffd","html_url":"https://github.com/fastrgv/WorldCupSokerban","commit_stats":null,"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastrgv%2FWorldCupSokerban","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastrgv%2FWorldCupSokerban/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastrgv%2FWorldCupSokerban/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastrgv%2FWorldCupSokerban/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fastrgv","download_url":"https://codeload.github.com/fastrgv/WorldCupSokerban/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243584400,"owners_count":20314751,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d","ada","game","gnu-linux","soccer","sokoban","windows"],"created_at":"2024-07-30T20:00:54.456Z","updated_at":"2025-03-14T13:31:53.539Z","avatar_url":"https://github.com/fastrgv.png","language":"Ada","funding_links":[],"categories":["Games"],"sub_categories":["Continuous Integration"],"readme":"![screenshot](https://github.com/fastrgv/WorldCupSokerban/blob/master/female.jpg)\n\n\n\n# WorldCupSokerban\nThis is a soccer-themed, 3D sokoban puzzle game that runs on Windows, Mac OS-X and GNU Linux\n\nClick on the large 7zip file under releases for all source \u0026 binaries, or try this link:\n\nhttps://github.com/fastrgv/WorldCupSokerban/releases/download/v3.6.10/sb3mar25.7z\n\nType \"7z x filename\" to extract the archive.\n\n* On OSX, Keka works well for 7Z files. The command-line for Keka is:\n\t* /Applications/Keka.app/Contents/MacOS/Keka --cli 7z x (filename.7z)\n\n\n\n#### GitHub Note: Please ignore the \"Source code\" zip \u0026 tar.gz files. (They are auto-generated by GitHub). Click on the large 7z file under releases to download all source \u0026 binaries (Windows \u0026 Linux). Then, type \"7z x filename\" to extract the archive. \n\n\n\n===================================================================================\n\n\n\nalternate download link:\n* https://sourceforge.net/projects/worldcupsokerban/files/latest/download\n\nvideo soker-ban girl:\n* https://youtu.be/No_ElhmToqw\n\n\n# World Cup Sokerban\n\n----------------------------------------------------------------\n\n## What's new:\n\n\n\n\n**ver 3.6.10 -- 3mar2025**\n\n* Updated \u0026 improved 3 sok-solvers.\n\n\n**ver 3.6.9 -- 01jan2025**\n\n* Fixed embedded solver box4. Now called hbox.\n* Added \"+\", \"-\" number-keypad keys to adjust timeout.\n\n\n## See complete revision history at end of file.\n\n\n## WorldCupSokerban Description\nThis is a soccer-themed, 3D sokoban puzzle game that includes 3 embedded solvers.\n\nIt has undo (u) and restart (r) functions.  Comes with many puzzle files, each typically having dozens of \"levels\".  The next (n) and previous (p) keys move between levels.  The (Lshft) and (Rshft) keys move between the different puzzle files (there are currently 60).  The (z) key creates a setpoint (reZero) so that subsequent restarts restore that setpoint.\n\nTo move the \"pusher\" use the arrow keys, ijkl keys, or wasd keys.  The objective is to kick all the red and blue balls into the goal nets.  Notice that these strange soccer balls roll in two perpendicular directions only!\n\nThe (=)-key or the (,)-key or the (.)-key trigger embedded solvers that helps you when you get stuck.  You can single-step to a final solution, or to just part way toward the solution, in order to give you a hint. This feature is essential to learning to solve on your own.\n\nNote: all 3 solvers can fail if the puzzle is too large or difficult, so the default timeout is 10 seconds.\n\nThe mouse can be used to control the game viewpoint.  The mouse wheel adjusts the eye distance;  a left button drag changes view angle;  a right button click restores the default view settings.  \n\nWorks on PCs running Windows, OSX, or GNU/Linux.\n\n\n--------------------------\n## Features:\n * laptop friendly;\n * user definable puzzles;\n * many predefined puzzles ranging from easy to nearly impossible;\n * Windows, OSX, GNU/linux binaries included;\n * full source code;\n * uses OpenAL for the sounds, GLFW3 for input \u0026 window management;\n * fully OpenGL 3.3 core profile Ada code;\n * includes 3 \"live\" embedded autosolvers that help you to learn;\n * no installation\n * no dependencies\n * simply unzip in your Downloads directory, and run.\n * or unzip onto a USB flash drive [w/same file format] and run.\n\n----------------------------------------------\n## Embedded Autosolver Function\nThree autosolvers are now embedded within this application so that pressing the (\"=\")-key at any time initiates an attempt by the primary solver [puller] to solve the present state of the current puzzle within a limited amount of time.  If successful then you will see an onscreen prompt to continue to press the same key to single-step toward the solution.  Otherwise you will see no such prompt.  These embedded solvers are good for small and dense layouts;  but not so good at large, sparse, or difficult puzzles.\n\nSimilarly, the 2nd alternate solver [ibox] is initiated with the (\",\")-key.\nThe 3rd alternate solver [hbox] is initiated with the (\".\")-key and is the most capable.\n\nThus, you can give yourself a headstart toward a correct solution by limited use of this feature.  Once you think you can solve it yourself, stop using the equal-key and proceed manually.  This really helps when you cannot see what your next move should be.\n\nEmbedded autosolver failure might imply the present state of the puzzle is impossible to solve, or simply that the autosolver failed due to time constraint, or insufficient capability.\n\n\nThe default **timeout** used by embedded solvers is adjustable using the (+)-key or (-)-key on the number keypad to increment or decrement by 10 seconds per press. This is the time to wait for the internal autosolvers before giving up. The default is 10 seconds.\n\nAlso, the default **method** used by embedded solver Hbox [ (.)-key ] can now be reset using the k-key, where k is 0..5.\n\n### Summary:\nsolver keys [within parentheses]:\n\n*\t(=) bfs#1 [iplr; best for small puzzles]; \n*\t(,) bfs#2 [ibox; medium]\n*\t(.) hbox [most capable];\n*  (0..9) sets hbox method [details below]\n*\t(+) increase timeout (numKeypad)\n*\t(-) decrease timeout (numKeypad)\n\n\n\n### 10 method options for hbox:\n\n* 0 \"quickest\" using 6 heuristics+inertia\n* 1 \"move-efficient\" +inertia\n* 2 suppress hungarian estimator (for dense puzzles)\n* 3 like 0 but single-step\n* 4 like 0 but using only 5-heuristics\n* 5 like 0 but using 1-heuristic (meth10)\n* 6 like 1 but using 1-heuristic (meth11)\n* 7 like 2 but using 1-heuristic (meth12)\n* 8 like 3 but using 1-heuristic (meth13)\n* 9 like 4 but using 1-heuristic (meth14)\n\nFor further details see:\n\n* https://sourceforge.net/projects/hbox4/ (4 is correct)\n\n\n\n\n## External Autosolvers\nThere are three external autosolvers without time constraints, and larger memory constraints.\nThere are many large or sparse puzzles the first two solvers cannot handle, but they are pretty good at solving the small dense ones. Hbox is the most capable.\n\nTo run type:  [exeName puzzleFile LevelToSolve]\n\nEG on windows type:\n\n\texternal_solvers\\iplr3r.exe games\\pico_22.sok 3\n\n...to solve the 3rd level in file pico_22.sok.\n\nEG on linux type:\n\n\texternal_solvers/hbox_gnu games/pico_22.sok 3\n\nEG on OSX type:\n\n\texternal_solvers/ibox3r_osx games/pico_22.sok 3\n\n\n\n----------------------------------------------\n## what is special about this project?\nIt uses the Ada programming language and modern OpenGL methods, with textures, shaders and uniforms.  Compiles and runs on Windows, OSX, GNU/Linux systems.\n\nFocusing on portability, transparency, and open source freedom, this project relies exclusively on F.O.S.S. tools:  a thin GLFW3 binding, a thin OpenGL binding, a PNG reader by Stephen Sanguine \u0026 Dimitry Anisimkov, OpenAL Audio with a homebrew binding, and a GNAT compiler.\n\nThe linux-build can run on multiple Linux distros!\nThe Windows build can run on Win10 + Win11.\n\nI am short of testers, and would appreciate any feedback...\nOpen source Ada developers are welcome to help improve or extend this app.\nDeveloper or not, send comments, suggestions or questions to:\nfastrgv@gmail.com\n\n\n\n-----------------------\n## Setup \u0026 Running:\n\nMac/OSX users should read \"osx-setup.txt\".\nWindows users should read \"windows-setup.txt\".\n\nUnzip the archive.  \n\n* On Linux \u0026 Windows, 7z [www.7-zip.org] works well for this. The proper command to extract the archive and maintain the directory structure is \"7z x filename\".\n\n* On OSX, Keka works well for 7Z files. The command-line for Keka is:\n\t* /Applications/Keka.app/Contents/MacOS/Keka --cli 7z x (filename.7z)\n\nAfter the archive is unzipped...\n\n------------------------------------------------------------------------\nOpen a commandline terminal, and cd to the install directory.\n\nYou will see a new directory, that may be renamed.\n\nUsers should then cd to the install-directory, then, at the command line, type the executable name to start the game.\n\n\n------------------------------------------------------------------------\nMac users type:\n\n* sokerban_osx\n\n------------------------------------------------------------------------\nWindows users type \n\n* sokerban.bat \n\nfrom the installation directory. Or to set the standard default of 10 seconds wait before giving up for internal solvers type:\n\n* binw64\\sokerban.exe 10.0\n\n------------------------------------------------------------------------\nLinux users can type:\n\n* sokerban_gnu\n\nHere too, \n\n* sokerban_gnu 30.0 \n\nsets internal solver wait to 30 seconds.\n\nYou can also run the windows EXEs on Linux under wine thusly:\n\n* wine cmd \u003c sokerban.bat\n* wine binw64/sokerban.exe\n\nNote: I suggest that Windows users DO NOT try running the linux executables under WSL [Windows Subsystem for Linux]; that mode is not supported. Simply use the windows version.\n\n**If an older Linux system complains that /dev/dsp/ cannot be opened, prepend the command with \"padsp\",EG:  \"padsp (ExeName)\".**\n\n\n\n------------------------------------------------------------------------\n\nThe install-directory should contain subdirectories named \"data\", \"libs\", and \"games\".\n\n\nThe linux executable must have access to ./libs unless your system already has the libraries it contains.  Then, at the command line type:\n\n* sokerban_gnu\n\nRemember, the WASD or IJKL or arrow keys control movements.\n\nView Controls:\n\n* Your mouse can pan [up/down] \u0026 zoom\n* mouse-button-box-click:  shows possible destinations for box\n* mouse-button-goal-click: possible matching boxes\n\nAlso, the keyboard controls are:\n\n* (c) zoom Closer\n* (f) zoom Further\n* (o) zoom default\n* (PgUp) move viewpoint North\n* (PgDn) move viewpoint South\n* (/) tilt upward\n* (\\\\) tilt downward\n* (=) try to autosolve (method #1 = iplr3r =\u003e fewest moves)\n* (,) try to autosolve (method #2 = ibox3r =\u003e fewest pushes)\n* (.) try to autosolve (method #3 = hbox =\u003e most capable)\n* (h) HELP\n* (b) Male Avatar (Boy)\n* (g) Female Avatar (Girl)\n* (0..9) set solution method for hbox, where :\n\t* 0 \"quickest\" using 6 heuristics+inertia\n\t* 1 \"move-efficient\" +inertia\n\t* 2 suppress hungarian estimator (for dense puzzles)\n\t* 3 like 0 but single-step\n\t* 4 like 0 but using only 5-heuristics\n\t* 5 like 0 but using 1-heuristic (meth10)\n\t* 6 like 1 but using 1-heuristic (meth11)\n\t* 7 like 2 but using 1-heuristic (meth12)\n\t* 8 like 3 but using 1-heuristic (meth13)\n\t* 9 like 4 but using 1-heuristic (meth14)\n\nYou can download my hbox stand-alone sokoban solver for greater details:\n\n* https://sourceforge.net/projects/hbox4/    (4 is not a typo)\n\n\nOther controls, as indicated by the help screen:\n\n* (esc) to quit\n* (u) to undo a move\n* (r) reset to the setPt;   \n* (enter) restart puzzle\n* (n) next-level in current file\n* (p) previous-level in current file\n* (L-shift) previous file\n* (R-shift) next file\n* (z) reZero the setpoint\n\nNote also that a specific sokoban file may be loaded by naming it on the terminal window command line with the following syntax:\n\n* [sokerban] sokfilepath maxlevels startlevel\n\nwhere [sokerban] can be \n\tsokerban_gnu, sokerban_osx or binw64\\sokerban.exe\n\nFor example on linux you could type\n\n* sokerban_gnu games/original_50.sok 50 2\n\nto tackle level 2 from the original_50 sokoban file.  In this single-file mode, you can still use the next-level(n) \u0026 previous-level(p) keys, however, the next/previous files (R-shift/L-shift) keys are disabled.\n\n\n================================================================\n## Build Requirements:\n * a recent GNAT Ada compiler;\n * OpenGL 3.3 (or better) and a graphics card that supports it.\n\n\n\n================================================================\n## Build instructions:\n\ncccgnu.sh/cccosx.sh/ccc.bat are the build scripts for the autosolvers \"hbox\", \"iplr3r\" and \"ibox3r\".\n\n\nThe following build scripts work for GNU Ada [with its own g++],\nwhich are in the ~/buildScripts/ directory:\n\n\n-------------------------------------------------------\n* msWin64 =\u003e setpath64.bat + wbuildall.bat\n\nPlease read ~/docs/gnuAdaOnWindows.txt.\n\n\n------------------------------------------------------\n* Mac/OSX =\u003e obuildall.sh\n\n------------------------------------------------------\n* GNU/Linux =\u003e lbuildall.sh  \n\nutilizes the relocatable libraries that I deliver in this bundle under ./libs/.  I use this to build the gnu/linux executable that I deliver named sokerban, which should run in the presence of ./libs.\n\n------------------------------------------------------\nIf the delivered linux binary does not run...\n\nif you have wine installed, this should work:\n\n* wine binw64/sokerban.exe\n\nOR you can:\n\n* Manually install GNU Ada compiler. See \"gnuAdaOnWindows.txt\".\n* Rerun the compile script lbuildall.sh.\n\n\n\n\n\n---------------------------------\n## License:\n\nThis app is covered by the GNU GPL v3 as indicated in the sources:\n\n Copyright (C) 2025  \u003cfastrgv@gmail.com\u003e\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You may read the full text of the GNU General Public License\n at \u003chttp://www.gnu.org/licenses/\u003e.\n\n\n---------------------------------\n## Media Files:\n\n### General Note\nThe particular choice of sound and image files delivered are not essential to the function of the game and are easily replaced.  This software is primarily intended as a tutorial example of modern OpenGL methods.  The only requirements are that sounds be in WAV format and images be in PNG format.\n\nIt is my intention to use media with copyrights or licenses that are compatible with GPLv3. Please notify me if you believe there is an incompatibility, and it will be removed ASAP, eg a CC-by-NC license is NOT GPL compatible.\n\n\n\n### SoundFiles\nAndres Cantor sound downloaded from YouTube and trimmed with FFMPEG.  Kick sound is from freesound.org so is covered by the Creative Commons CC0 License;  see the file creativeCommons.txt.\n\n### ImageFiles\n...for textures were freely [no copyright indications] available on google images.  Files for text-textures were created using gimp and are also covered by the GNU GPL v3 license.  The pusher man is modified from a skin by Anders Widell, so thanks to Anders for that.  An alternate pusher is also available that was obtained from OpenGameArt.org and created by felixschuett with a CC0 license.\n\n\n----------------------------------------------\n## Download Site for all my games:\nhttps://github.com/fastrgv?tab=repositories\nhttps://www.indiedb.com/members/fastrgv/games\nhttps://fastrgv.itch.io\nhttps://sourceforge.net/u/fastrgv/profile/\nhttps://gamejolt.com/@fastrgv/games\n\n## Tags:  sokoban, puzzle, soccer, football\n\n\n## Older Revision History:\n\n**ver 3.6.8 -- 16dec2024**\n* Updated hbox4 to hbox5.\n* Updated embedded solver.\n* updated OpenAL sound code.\n* Updated memory checks for hbox5 to be more cautious.\n\n**ver 3.6.7 -- 4jan2024**\n* Fixed some errors and improved all embedded and external autosolvers.\n\n**ver 3.6.6 -- 16dec2023**\n* Added north/south view controls: PgUp/PgDn.\n\n**ver 3.6.5 -- 14dec2023**\n* Removed stadium view.\n* Simplified view controls so pan+zoom provides all views.\n* Fixed problem with the embedded ibox solver not respecting time limit.\n\n**ver 3.6.4 -- 13dec2023**\n* Upgraded hbox4 solvers, embedded \u0026 external.\n* Created a \"stadium\" view alternative to the \"overhead\" view.\n* Replaced the granite with a hedge boundary.\n\n**ver 3.6.3 -- 7oct2023**\n* New OSX build without bundle, \u0026 built without using Xcode.\n* Updated splaytree code for solvers.\n\n**ver 3.6.2 -- 24sep2022**\n* Removed w32 build because embedded solvers need maximal memory.\n* Now using simpler-to-setup GNU Ada for Win64.\n\n**ver 3.6.1 -- 16sep2022**\n* Now using GNU Ada rather than defunct AdaCore compiler.\n* Added several new puzzle groups including Loma.\n\n**ver 3.6.0 -- ddmmm2021** (not delivered)\n* Updated all GLFW libs to newer [static] version, \u0026 scripts.\n* Removed cc-by-nc-licensed puzzles due to incompatibility with GPLv3.\n\n**ver 3.5.9 -- 29oct2021**\n* Improved adaOpenAL binding code...sokerban is now buildable with [GNU Compiler Collection] GNAT, as well as all AdaCore versions.\n* Updated glext.lib.\n\n**ver 3.5.8 -- 14oct21**\n* 1-key now restores Original puzzle.\n* Added standard close window event handler.\n* Improved undo function.\n* Updated libraries.\n\n**ver 3.5.7 -- 24mar21**\n* Repaired Rt.MouseBtn function to un-highlight [only].\n\n**ver 3.5.7 -- 4mar21**\n* Added 3rd embedded solver accessed by (,)-key.\n\n**ver 3.5.6 -- 20feb21**\n* Upgraded to using OpenAL sound.\n* Updated existing autosolvers.\n* Added more capable hbox4 autosolver.\n* Added visual aid that shows \n\t* possible destinations when a box is clicked.\n\t* possible sources when a goal is clicked.\n\n**ver 3.5.5 -- 27oct20**\n* Elliminated SFML-audio entirely.\n* Greatly simplified build process.\n\n**ver 3.5.4 -- 20sep20**\n* Updated all glfw libs to v3.3.2.\n* Added \"sokerban.bat\" for Windows users.\n\n**ver 3.5.3 -- 10jun20**\n* Improved coding to read WAV file while \"protected\".\n* Added onscreen feedback message when saving setpoint.\n\n**ver 3.5.2 -- 3apr20**\n* Improved linux sound system with no latency:  an Ada WAV-player using an Ada binding to the ALSA sound library.\n\n**ver 3.5.1 -- 14mar20**\n* Fixed broken Windows executables;\n* Linux build now uses Ada tasking to reduce kick sound latency.\n\n**ver 3.5.0 -- 20jan20**\n* Significantly improved linux portability;\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffastrgv%2FWorldCupSokerban","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffastrgv%2FWorldCupSokerban","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffastrgv%2FWorldCupSokerban/lists"}