Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


breadbox last won the day on July 29 2015

breadbox had the most liked content!

Community Reputation

5 Bug

About breadbox

  • Rank
    LESSON 4


  • Country
    United States

Profile Information

  • Favourite Set
  1. Actually there are a lot more differences. I need to collect the information shared by everyone else and update that page.
  2. I would say that if that's the kind of program you want, you shouldn't use Tile World as a starting point. You can leverage the knowledge that it embodies, but there's just a few too many assumptions about CC built into the structure of the program. I never designed it with the idea of making it extensible, and that's not something you want to just bolt on after the fact. Ice blocks are a good example. Ice blocks add complication not because they're a new object, but the fact that any number of them can be pushed simultaneously completely blows the roof off of the upper limit to secondary effects. Right now, it's not possible to create a lengthy chain of side effects while computing the effect of a single move. (There is a bit of a chain, due in part to how blocks clone instantly.) So the code just handles it in an ad-hoc fashion. With the possibility of dozens of ice blocks being pushed in the course of a single move, that approach won't work any more. I'm not saying it would necessarily be hard to write a program to do it right, mind you. I'm just saying that if you're looking to make a Swiss army knife, then my finely crafted kitchen knife isn't a good place to start.
  3. I've been toying with the code a bit, and I'm going to release the current version as Tile World 1.3.2: http://www.muppetlabs.com/~breadbox/software/tworld/ Unlike the last one, this is a feature release instead of a bugfix release. Eric's comments got me thinking, and so I've stolen three features from TW2. First, I've added the <F> command to rotate the "random" force floor starting direction under Lynx. Second, I've added an init file for persisting user-controlled settings between runs. Right now it stores the volume control and the current levelset. The final new feature is a little bit of an experiment, and I'll be interested in getting people's feedback. I've added the ability to define messages between levels, as with the CCX files in TW2. Of course, TW2 actually displays a full-on HTML widget. Messages in Tile World 1.3.2, however, are just plain text. There's support for formatting paragraphs and line breaks, but that's it. That's good enough to support the gist of the messages that come with the CCLPxsets -- but of course that means that Tile World can't just use the existing CCX files directly. The message contents need to be extracted from the HTML and formatted appropriately. (Although the formatting for Tile World's new message files is really trivial.) I've translated over the message files for the CCLPs and uploaded them (along with the updated dac files to use them). You can download it from here: http://www.muppetlabs.com/~breadbox/pub/software/tworld/msgfiles.zip Unfortunately, I of course cannot distribute a message file for the texts from the original levelset. I do like the idea of having the ability to define interstitial messages (like the "decade" messages in the original game). Is it worth adding to Tile World, even though it's necessarily incompatible with TW2's CCX files? I'm curious what people think. In any case, I think 1.3.2 is worth downloading just for the volume setting being persisted.
  4. (Oh, and I would say that your use case is exactly the type of situation I had in mind when I added the environment variables feature to Tile World.)
  5. What went wrong is that you don't have the SDL development package. (You have SDL installed, but you don't have the support files that let you build something that uses SDL.) Running "sudo apt-get install libsdl1.2-dev" would fix that.
  6. You have a few options. You can set the environment variable TWORLDDIR to change the default directory tree for all shared files. So you could add something like this to your .profile (or .bash_profile or whatever you use): export TWORLDDIR=~/.tworld Note that this will create ~/.tworld/data, ~/.tworld/sets, and ~/.tworld/res, but your save files will still be in the top-level ~/.tworld directory, which is a little messy. But there's also a TWORLDSAVEDIR environment variable you can use, which will just change the default save directory. So you could do this: export TWORLDDIR=~/.tworld export TWORLDSAVEDIR=~/.tworld/save which would probably be the closest to what you want. You can use command-line options -D, -L, and -R (and optionally also -S) to override the default directories individually: tworld -D datadir -L setsdir -R resdir -S savedir To avoid having to type all that out, you could create a tworld shell script in your personal bin directory that looked something like this: #!/bin/sh DIR=~/.tworld tworld -D $DIR/data -L $DIR/sets -R $DIR/res -S $DIR/save Note that you can use the command "tworld -h" to see a full list of the command-line options, or "man tworld" to see more detailed documentation. Or the same documentation is available on the website. Finally, of course, you can compile Tile World yourself, and configure the default directories to be the way you want them to be. That's not as convenient, of course. For the record, Tile World's file layout follows the standard Unix behavior of putting universal data (the level sets, sounds and graphics) in a shared location, and the user-specific data (your solutions) in a user-specific location.
  7. Indeed! In this case "it ought to work" really means "someone ought to have noticed this".
  8. That's odd. 4.2 seconds is the maximum time length for a single entry in the replay data, but the replay format comes with a continuation marker in order to support longer time periods. And many replays included in the CC1 levels use it (BEWARE OF BUG, for an obvious example). It ought to work.
  9. I can understand that point of view, but that certainly wasn't my goal when I set out to write Tile World. Right now, the stuff that is under "pedantic mode" are extensions to the original rules. Things like permitting arbitrary trap wirings or thin walls to the north are things that the original game couldn't do at all.
  10. It does. And that's a bit of a pickle. Normally I would roll out a fix for this entire class of bugs, but I hate to completely ruin the point of two (or more?) levels in CCLP1 by doing so. These two levels could be fixed in Lynx just by moving Chip one square over, so that he starts out on the force floor in front of the object (key or exit), instead of on the object itself. But then that breaks the MS version of the level. So Chip would have to be moved two squares away. That's not ideal, but it's the best idea I've had so far. Any other ideas?
  11. Well, the same thing happens on the original Lynx game as well. But that's only because the right-hand tank COMPLETELY DISAPPEARS. What the heck happened to that other tank? It got lost in the transporter buffer and never found it's way back out. But I assume that the "teleport-stacking" bug is actually meant to refer to Chip's ability to use a teleporter even when something is parked on top of it? That's probably not correct.
  12. So "clone desynchronization" is just "release boosting" under a different name, if I understand you correctly. It's the same effect in both cases. (Basically: when initiating an involuntary move due to a button press, the first frame happens when the button is pushed.) I actually did write up a description of release boosting back when I first figured it out, but it was just a post I made to the annexcafe newsgroup, and I never saved a copy of it anywhere else. Perhaps I should have. This was the big bug that I fixed for the 0.5 release. I spent hours examining the game running under Handy before I figured out what was going on.
  13. Those are both good features, and I should add them. I never got past the inertia of having to add another settings file to TW just for the volume. Also I don't know what was up with my computer back then, but having the volume default to maximum is really unpleasant on my current hardware. Maybe if my old computer hadn't been so quiet I would have added this feature from the beginning. (Or at least picked a better default.)
  14. Thanks, Eric. There's a lot of stuff here, and I'll need to find a block of time to aggregate it all. I assume "release boosting" refers to the skipped frame that happens when a creature leaves a clone machine or a beartrap. I don't know what "clone desynchronization" refers to (though I'm glad it's not a glitch in Tile World). random8 also referred to a "teleport-stacking glitch" -- which glitch is that? Thanks for the note about starting out on an item! I'll add it to the Tile World bug list. I'm surprised by your "full first second" comment. Didn't the Lynx always give you a full first second?
  15. Actually, why not have this in its own topic? I would love to see a list of the differences between the original Lynx ruleset and the new CC1 ruleset, and it's clearly not a small subject. As for the existing bugs in Tile World's Lynx emulation -- you specifically mention Chip-stuck-in-teleport and differences in block-slapping -- I still don't have a good understanding of what the actual rules are around those behaviors. If someone can define exactly what happens under which situations, that would really help.
  • Create New...