Version 31 of Bundle o' Starkits

Updated 2005-02-23 18:19:59 by lwv

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 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.

LV As of Feb 23, 2005, the game pack contains over 60 games or toys.


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