Kissakae is japanesse for playing with paper dolls.
This is a very engaging thing for a large number of people who are not necessarily programmers.
The intriging thing becomes the content of the play and the story around the characters.
To me the programming seemed a interesting thing to stretch squeak to do. And the ability to read the already existing kiss files seemed a good way of of getting a lot of visual content into squeak easily.
This was the too-complicated-too-do but interesting-enough-to-try project that I used to motivate my jump into learning squeaks innards.
I though in my ignorance that it might be easy to port the simple kiss system into squeak in a somewhat strait forward way. I also thought that streaching squeak to accommodate the need of kiss would be good for it.
Kiss combines cels into objects which move as a unit. Sort of like a alignment morph.
Objects can be immovable, completely movable, inbetween sticky.
A sticky object just requires more attempts to pick it up.
The z-order of the cells is determined by there order of appearence in a configuration file.
A notable difference from squeak is that objects have cells that interleave.
For example a coat object will have cels both in front of and behind the doll object. So the coat can have a back and a front with the back dissappearing behind the doll while the front remains visible.
There is a graduation of specs for kiss with the later ones specifing more and more ways for the objects to interact and animate.
The early stages just set a timer to go off and handle the alarm by doing an action.
Typically the dolls will blink their eyes. Juggling things is common too.
The pieces of the project as I originally saw it entailed:
Find a way to read in the kiss formated files and create the appropriate squeak objects for the cels.
Assemble them according to the configuration file.
Find someone else hopefully to interface lha archives to squeaks zip archive.
kiss files are usually compressed into lha archives for portability an to keep the pieces together.
Find ways to modify an store modifications to a kiss file set.
Start adding the interactive stuff.
This was my jump in project and it got quickly shevled as I got in over my head. I also started to realize that squeak
wasn't gonna be easy to teach. Squeak limits itself to non-overlapping submorphs.
I kept finding it close but oh so far away from what I intended to do.
And there were always the distractions of all the bugs I found in the way. Wanting a good way to draw things I got annoyed (and motivated by the annoyance) in all the drawing glitches that squeak had. Fortunately I like solving a good puzzle and the bug were good goads to learning code and what the different classes did.
This is a future project.
The Big Kiss Page: http://www.otakuworld.com/kiss is a good place to start. Their entire collection used to be free. Economics caught up and they are now subscription. They will point you to the authors pages were much is available at the popular price. There are also links to loaders for all types of systems pc's macs etc.
I use a mac and the most recent loaders are on emk's page.
Including source for the mac stuff.
Kissakae things are compressed in lzh format so a program like MacLha is needed. (The original John Stiles program will expand lzh files into their own directory and then they can be tackled individually).
There are a few different aspects of this project that lend themselves to concurrency and the request for help is here by put out to any who would find these interesting or easy to help with.
A squeak interface to lzh is one. It would be useful and probably not to hard to get a ziparchive to do lha/lzh stuff too. Someone to take this on would be most appreciated. The emk sight has c source code for the lha loading portions of his kiss programs that might be a place to start. I've don't know where a formal specification of the variors lha/lhz compressions are. help here if you can.
There are a bunch of different levels of kiss. I am working from the bottom up. A cel loader/saver. And a kcf (pallette) loader/saver are basic. the cnf configuration file is next. And then to see how to use squeak to simulate the simplest kiss level of moving kiss objects around.