[Brian Theado] 20Jan2005 - Inspired by the wealth of Tcl/Tk games available at [sdarchive] and elsewhere, I wrote some code that can be used to browse and execute a bunch of applications all bundled together into a single starkit. I bundled together over 60 games in a just over 2MB starkit that can be downloaded from http://tkoutline.sourceforge.net/tkgamepack.kit. Run the program and see a hierarchical list of Tcl/Tk games. Click on the game title to launch it. Click on the game's url to find more information. Add the title of a game to the command line and that game will be run directly. [http://tkoutline.sourceforge.net/tkgamepack.png] '''Implementation details.''' * Each game is itself an unmodified starkit. Each starkit's vfs resides as a subdirectory of the main directory of the Game pack starkit * Each game is launched in its own slave interpreter. * Most of the starkits were pulled unmodified from [sdarchive]. I found a couple of dozen more games on the wiki and at [tclapps] that I starkitified and added in. Some of these needed a "package require Tk" added. * I did have to modify one game [dots and boxes] because it was trying to do some things with the console that didn't work in a slave interpreter. * The interface for selecting games is an outline from [tkoutline]. The full functionality of tkoutline is also available (see the miscelleneous category) just because it is there. * I find the interface to be a bit cluttered, but using an outline was the easiest way for me to get this working (and I am motivated to make use of my own code). * Adding new games involves adding new text to the launcher outline (using the full version of tkoutline) and adding a new starkit vfs. ''Way cool! I've wondered for a long time when someone would take the initiative on this ;) -[jcw]'' ---- [LV] As of Feb 23, 2005, the game pack contains over 60 games or ''toys''. [LV] So, if people come up with additional script only games, how would they go about requesting the code be added? [Brian Theado] - putting a request here seems like a good start. Here are what seems to be some additional games. However, I am not certain whether any of these match what you already have, perhaps by a different name. [A little Go board] [A little Morse trainer] [A simple memory game] [A text adventure game engine] [Alphabet Wheel] [another Asteroids] [Asteroids] [Babbleback machine] [Cellular automata] [Life] [Life in Snit] [Chess] [Chess in Tcl] [Domino] [Hanoi Towers] [Hearts] [iKnow: a pocket quiz] [isolation] [Jigsaw Puzzler] [Ludo] [Magic Cards] [Monopoly] [Pingpong] [Ramble] [Sailplane Flying Game] [Space Game] [Sudoku] [Tangram] [The Gallows game] [The word-chain game] [Tilt Mazes] [TkAlign4] [tkchess] [TkPool] [vector.tk] [Vertigo - a little Tk game] I don't know whether there are others which could be included or not. ---- [LV] So each time I select a game, a new starkit will end up in the real world flat directory where the starkit resides? Is there no way to run the starkits from where they are in the bundle? [Brian Theado] - I guess I didn't explain the implementation well enough. It is a single file and stays a single file. All the games run from within the starkit. ---- '''Error reports''' [[Removed information about package require Tk error that has been fixed]] [UKo] 2005-02-23: What are these fixed errors about? There still is an error ''can't find package Tk'' every time a game is launched -- if wishkit (8.4.9) is used on Mac OSX. The problem is in the initial auto_path of a slave interpreter. This doesn't contain an entry for the path where the Tk-shared-library can be found (it's not the same place as for the Tcl-shared-library). A workaround is to set the complete path after cloning a new interp in function runSlaveKit: + $s eval [list set auto_path $::auto_path] $s eval [list set argv $args] ---- Discussion about keysym error (which has been fixed) moved to [Cross platform keysyms]. ---- If you get an error like "couldn't open setup.tcl, no such..." when launching a game like [Felipe Voloch] reported, then try getting the latest version of tclkit. Any tclkits built in 2004 or later (and probably some in 2003) contain the fix for launching starkits in slave interpreters. ---- [Category Games]