Version 8 of Bundle o' Starkits

Updated 2005-01-20 19:32:16

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

I tried to find out for myself, but I see this error when I try to run your starkit:

 invalid command name "option"
    while executing
 "option add *Text.wikimarkup "wikilinks urls style" user"
    (procedure "openAppLauncherOutline" line 3)
    invoked from within
 "openAppLauncherOutline [file join $::starkit::topdir applauncher]"
    (procedure "applauncher" line 31)
    invoked from within
 "applauncher"
    invoked from within
 "if {[llength $argv] == 0} {
    applauncher
 } else {
    set nestedkit [lindex $argv 0]
    set nestedkitmain [glob -nocomplain [file join $starkit::t..."
    (file "/volws/lwv28/ldatae/WWW/tkgamepack.kit/applauncher.tcl" line 68)
    invoked from within
 "source $starkit::topdir/applauncher.tcl"
    (file "./tkgamepack.kit/main.tcl" line 3)
    invoked from within
 "source ./tkgamepack.kit/main.tcl"
    ("uplevel" body line 1)
    invoked from within
 "uplevel [list source [file join $self main.tcl]]"

The problem is that your application launcher program is missing that

 package require Tk

that you mentioned having to add in a few games.

The reason your app is working is probably because you are using Windows. Unfortunately, this is one of the differences between Windows and non-Windows tclkits.

Brian Theado - Yep. Thanks for the report and I have added the package require Tk. Redownload and try again.

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.

NEM - I get an error on startup on Mac OS X:

 bad event type or keysym "grave"
   while executing
 "event add <<ShowAllAtCurrent>> <Control-grave>"
   ....
  (procedure "mapKeysToEvents" line 5)
   ....

This may well be a Mac OS X/Wishkit specific bug.


Category Games