Man Linux: Main Page and Category List


       tworld - Tile World


       Tile  World  is  a reimplementation of the game "Chip’s Challenge". The
       player controls Chip, navigating him through his challenges. The object
       of  each  level  of  the game is to find and reach the exit tile, which
       takes you to the next level. The levels contain many different kinds of
       obstacles,  creatures  both  hostile and indifferent, tools, protective
       gear -- and, of course, chips.


       The main display shows Chip in the  current  level  and  his  immediate
       surroundings.  To  the  right  of  this  display  is  shown  the  basic
       information about the current level. The most important data shown here
       are  how  many  seconds are left on the clock, and how many chips still
       need to be collected. (On some level the clock does not  show  a  time.
       These levels have no time limit.)

       The object of every level is to find and reach the exit before the time
       runs out. The exit is frequently (but not always)  guarded  by  a  chip
       socket.  To  move  past  the  chip  socket, Chip must collect a certain
       number of computer chips; the amount needed is different in each level.
       As  you  play  a  level, the information display on the right shows the
       number of chips that still need to be collected in order  to  open  the
       socket.  (Remember that getting enough chips to open the chip socket is
       only a subgoal, not the main goal. Some levels do not require any chips
       to be collected; some levels have no chip socket at all.)

       Also  occupying  many  of the levels are other creatures. Most (but not
       all) of them move about in simple, predictable  patterns,  and  without
       regard  for Chip’s presence. The creatures know enough to avoid running
       into each other, but a collision  with  Chip  is  fatal.  The  complete
       taxonomy  of  creatures  is: tanks, balls, gliders, fireballs, walkers,
       blobs, teeth, bugs, and paramecia.

       In addition to the socket and  the  main  exit,  there  are  also  four
       different kinds of doors. These doors can be opened with the right kind
       of key. The doors and the keys are color-coded -- red, green, blue, and
       yellow -- so you can tell them apart. Like the chip socket, a door that
       has been opened stays open. Keys are picked up simply by stepping  upon
       them.  The  key disappears from the map and appears in your possession.
       Keys in your possession are displayed on the  right-hand  side  of  the

       Besides  keys  and  chip, there are also four kinds of special footgear
       that Chip can collect. Like keys, boots can  be  picked  up  simply  by
       walking  over  them.  (There is no limit to the number of boots you can
       have.) These boots permit Chip to walk across four different  kinds  of
       surfaces,  just as if they were normal flooring. Fire and water are two
       kind of tiles that are normally fatal to Chip, but fire boots and water
       boots  will  permit  safe passage across these. Stepping onto ice sends
       Chip sliding at high speed unless he has a pair of ice boots.  Finally,
       there  are  force  floors that push Chip along in a specific direction;
       these can be counteracted with force boots.

       Two other types of surfaces are more useful to Chip, in that they  keep
       other creatures out. These are dirt and gravel, and they are special in
       that Chip is the only one who can walk  on  them.  However,  when  Chip
       steps onto a dirt tile, it is cleared away and becomes normal flooring.
       Gravel, on the other hand, is permanent.

       There are numerous other objects scattered around the  various  levels,
       which  Chip  can  interact with, although he cannot pick them up. Bombs
       are one kind of object which should always be avoided, as they  explode
       when  stepped  on.  The  thief  tile  should also generally be avoided;
       entering this tile  will  cause  Chip  to  lose  any  footgear  he  has

       Dirt  blocks  are  large,  movable  squares of dirt. Chip can push them
       about, and use them to wall off areas or  to  safely  detontate  bombs.
       Furthermore,  if  a block is pushed into water, the tile will turn into
       dirt (which will  become  normal  flooring  when  Chip  steps  on  it).
       Finally,  note  that  blocks  can  sometimes be resting on top of other
       objects, both helpful (such as a key) and harmful (such as a bomb).

       Some levels have teleports. Entering a teleport causes Chip  to  vanish
       and instantaneously reappear at another teleport.

       Even  some  of  the  walls can demonstrate surprising behavior. The so-
       called blue walls can either be actual walls, or  empty  mirages.   The
       only  way for Chip to tell which is which is to attempt to walk through
       one. There are also popup walls -- Chip  can  walk  across  these  only
       once, for they turn into walls as he walks over them.

       There  are  four  different  types of pushbuttons. Like keys and boots,
       they are color-coded. Stepping on a pushbutton activates it.

       The green buttons control the toggle walls. Toggle  walls  have  dotted
       green  outlines, and they change between being open (passable, like any
       other floor) and open (unpassable, a wall).  When  a  green  button  is
       pressed,  the  closed toggle walls are opened and the open toggle walls
       are closed.

       Brown buttons control bear traps. Anything that  wanders  into  a  bear
       trap  will  be  stuck  there  until the brown button connected to it is

       Blue buttons exercise some control over the  tanks.  Normally,  a  tank
       moves  directly  forward until it hits an obstacle, whereupon it stops.
       But when a blue button is pressed, all tanks turn  around  180  degrees
       and begin moving again.

       The  objects  with  the  most  potential for help and hindrance are the
       clone machines, which  are  controlled  by  red  buttons.  Every  clone
       machine contains a dirt block, a tank, or some other creature. When the
       clone machine’s red button is pressed,  a  duplicate  of  whatever  the
       clone machine contains is created and set loose.

       Once  in a while there will also be hint buttons. These have a question
       mark displayed on them. When Chip steps onto a hint button, a short bit
       of  information  will  be displayed in the lower right-hand area of the

       Here are some general hints for successful play:

       * When moving dirt blocks around, take care  not  to  shove  them  into
         corners where you can’t get them out again.
       * On some of the more mazelike levels, you may need to sketch out a map
         in order to solve it.
       * Many of the creatures move in specific patterns (for example, as with
         the tanks mentioned above).
       * A  number  of  the objects in the game will affect other creatures in
         the same way they affect Chip.
       * Remember that if you get trapped somewhere, you can always use Ctrl-R
         to restart a level.
       * When  you  find  a level to be unusually difficult, take some time to
         examine it carefully. Make sure  you  truly  know  what  options  are
         available  to  you.  In  any case, keep trying. Occasionally the game
         will give you the opportunity to skip a level that seems too hard.


       Every level has a four-letter password. The password  for  a  level  is
       shown  in the information display at the upper-right of the window. The
       obstensible purpose of passwords is to allow you  to  come  back  to  a
       level.  Howver,  normally you will never need to remember passwords, as
       Tile World will automatically store the passwords for you. However,  if
       you  somehow  manage to learn the password of a level that you have yet
       to achieve, you can use the password  to  gain  early  access  to  that


       For  each  level in a set that you complete, the game awards 500 points
       times the level’s number. Furthermore, if the level is timed, an  extra
       10  points  is added for every second left on the clock when you finish
       the level. You can thus sometimes improve your score  by  returning  to
       already-completed levels and playing them again.


       During  game  play,  the  arrows are the most important keys; they move
       Chip through the level. The keys 2 4 6 8 on the numeric keypad can also
       be used for the same purpose. Other keys have the following functions:

       Bkspc  pauses the game; press any key to resume play.

       Ctrl-H same as Bkspc.

       Ctrl-N stops the current game and moves forward to the next level.

       Ctrl-P stops the current game and moves back to the previous level.

       Q      quits the current level.

       Ctrl-R starts over at the beginning of the current level.

       ?      pauses  the game and displays a list of topics for which help is
              available within the program.

       V      decreases the volume level. (If the volume level is  reduced  to
              zero,  then the program will display sound effects textually, as

              increases the volume level.

       At the start of a level, before game play  begins,  the  following  key
       commands are available:

       Q      returns to the list of available level sets.

       Spc    starts  the current level without moving (i.e., standing still).

       N      moves to the next level.

       P      moves to the previous level.

       PgUp   moves ahead ten levels.

       PgDn   moves back ten levels.

       G      displays a prompt and accepts a  password,  then  jumps  to  the
              level with that password.

       Tab    plays back the best solution for that level.

              verifies the best solution for that level. If the solution is no
              longer valid (e.g. because the  level  has  been  altered),  the
              solution will automatically be deprecated.

       Ctrl-I same as Tab.

              same as Shift-Tab.

       O      toggles between even-step and odd-step offset.

              (Lynx-mode only) increments the stepping offset by one.

       Ctrl-X deprecates  the  best  solution  for that level. If the level is
              then succesfully completed again, the  saved  solution  will  be
              replaced  with the new one, whether or not it had a better time.

              deletes the saved solution for that  level.  If  confirmed,  the
              solution will be immediately removed from the solution file.

       S      displays  the  list  of  known levels and the score for each, as
              well as the overall score for the  level  set.  The  score  list
              display  also  permits  changing the current level by moving the
              selection and pressing Enter.

       Ctrl-S displays the list of solution files in the save directory  whose
              names  start with the name of the current level set. From here a
              different solution file can be selected.

       ?      displays a list of topics for which help is available within the

       At  every  point  in  the  program,  the  Q  key will abort the current
       activity and return to the previous display.

       Finally, the program can be exited at any  time  by  pressing  Shift-Q.
       (Ctrl-C or Alt-F4 will also force an immediate exit.)


       Tile  World  contains  emulators  for two different versions of "Chip’s
       Challenge". They are referred  to  as  the  Lynx  ruleset  and  the  MS
       ruleset.  The Lynx ruleset recreates the original implementation of the
       game, and the MS ruleset recreates the version that was implemented for
       Microsoft Windows (cf HISTORY).

       The  most notable difference between the two rulesets is that in the MS
       ruleset, movement between tiles is  instantaneous,  whereas  under  the
       Lynx  ruleset  motion  occurs  across  several  "ticks". (This probably
       reflects the fact that the latter ran on dedicated hardware, while  the
       former  ran  on  33  MHz  PCs  under a non-preemptive multitasking OS.)
       Although the basic mechanics of  the  game  are  the  same  under  both
       rulesets,  there are also a host of subtle differences between the two.

       Each level set file includes a flag that indicates which ruleset it  is
       to  be  played under. Some level sets can be played under both rulesets
       (most notably, the original set of levels), but this is the  exception.


       Level  sets  are  defined  by  data files. By convention these file are
       named with a .dat extension. Typically the  name  proper  contains  the
       author’s  first  name, last initial, and a single digit -- for example,
       EricS1.dat. (The digit is used to give the sequence in case the author,
       for whatever reason, stores their creations in more than one file.)

       When  a  new  data  file  is obtained, it may simply be copied into the
       level set directory (cf DIRECTORIES), and Tile World will then make  it
       available for playing.

       An  alternate  method is to use a configuration file (see CONFIGURATION
       FILES below).


       tworld is normally invoked without arguments.  The  program  begins  by
       displaying  a  list  of  the available level sets. After a level set is
       chosen, the program jumps to the first unsolved level to begin play.

       The available command-line options  are  enumerated  in  the  following
       table.  (Windows  users:  The options that cause the program to display
       information on standard output actually go to a file  named  stdout.txt

       -a     Double  the  size  of  the  audio  buffer.  This  option  can be
              repeated, so for example -aaa would increase  the  audio  buffer
              size eightfold.

       -b     Do a batch-mode verification of the existing solutions and exit.
              Levels with invalid solutions are displayed on standard  output.
              If  used  with  -q, then nothing is displayed, and the program’s
              exit code is the number of invalid solutions. Can also  be  used
              with -s or -t to have solutions verified before the other option
              is applied. Note that this options requires  a  level  set  file
              and/or a solution file be named on the command line.

       -D DIR Read level data files from DIR instead of the default directory.

       -d     Display the default directories used by the program on  standard
              output, and exit.

       -F     Run in full-screen mode.

       -H     Upon  exit, display a histogram of idle time on standard output.
              (This option is used for evaluating optimization efforts.)

       -h     Display a summary of the command-line syntax on standard  output
              and exit.

       -L DIR Look for level sets in DIR instead of the default directory.

       -l     Write  a  list  of  available  level sets to standard output and

       -n N   Set the initial volume level to N, 0 being silence and 10  being
              full volume. The default level is 10.

       -P     Turn  on  pedantic mode, forcing the Lynx ruleset to emulate the
              original game as  closely  as  possible.  (See  the  Tile  World
              website  for more information on emulation of the Lynx ruleset.)

       -p     Turn off all password-checking. This option  allows  the  normal
              sequence of levels to be bypassed.

       -q     Run  quietly.  All sounds, including the ringing of the terminal
              bell, are suppressed.

       -r     Run in read-only mode. This guarantees that no changes  will  be
              made to the solution files.

       -R DIR Read resource data from DIR instead of the default directory.

       -S DIR Read  and  write solution files under DIR instead of the default

       -s     Display the  current  scores  for  the  selected  level  set  on
              standard  output  and  exit.  A  level  set must be named on the
              command line. If  used  with  -b,  the  solutions  are  verified
              beforehand, and invalid solutions are indicated.

       -t     Display  the  best  times for the selected level set on standard
              output and exit. A level set must be named on the command  line.
              If  used  with  -b,  the  solutions are verified beforehand, and
              invalid solutions are indicated.

       -V     Display  the  program’s  version  and  license  information   on
              standard output and exit.

       -v     Display  the  program’s  version  number  on standard output and

       Besides the above options, tworld can accept up to  three  command-line
       arguments:  the name of a level set, the number of a level to start on,
       and the name of an alternate solution file. If the name of an installed
       level  set  is  specified,  then  Tile World will start up in that set,
       skipping the initial level set selection.

       If the specified level set is not a  simple  name  but  is  a  pathname
       (relative  or  absolute), then Tile World will use that level set only,
       without requiring that it first be  installed.  No  solutions  will  be
       saved unless an explicit solution file is also supplied on the command-
       line. (If the command-line only specifies a solution  file,  then  Tile
       World will look up the name of the level set in the solution file.)


       Configuration files are used to override some of the settings in a data
       file, or to set values not  provided  for  by  the  data  file  format.
       Configuration  files  are  by convention named with a .dac extension. A
       configuration file is stored in the level set directory in the place of
       the   data   file,   which  then  goes  into  the  data  directory  (cf

       The configuration file is a simple text  file.  The  first  line  of  a
       configuration file must have the following form:

       file = DATAFILE

       where  DATAFILE is the filename of the data file. (Arbitrary whitespace
       is permitted around the equal sign, but there cannot be any  whitespace
       embedded  at  the  beginning of the line.) After this initial line, the
       configuration file can contain any of the following lines:

       usepasswords = y|n

       This line permits password-checking to be enabled/disabled when playing
       the levels in the set. The default is y.

       ruleset = ms|lynx

       This line allows the configuration file to override the ruleset setting
       in the data file. This is mainly useful in the case where one level set
       is  playable  under  either  ruleset  (as is the case with the original
       level set).  The  author  can  then  provide  one  data  file  and  two
       configuration files to make both versions available.

       lastlevel = levelnum

       This  line marks an arbitrary level as being the last level in the set.
       The game will stop when this level is completed, instead of  proceeding
       to  the  next  level.  (Note  that if the data file contains any levels
       beyond this one, they will only be reachable via a password.)

       fixlynx = y|n

       This line is specifically for use with the original level  set.  It  is
       not  generally useful, and is described here only for completeness. The
       chips.dat file that  MS  distributed  with  their  version  of  "Chip’s
       Challenge"  contained  a  few minor differences from the original level
       set as appeared on the Lynx. A positive value for this entry  instructs
       the  program to undo those changes, so that the original Lynx level set
       is obtained. (The changes made in the MS version were: an  extra  level
       was  added;  four passwords were garbled; and four or five levels’ maps
       had minor alterations.)


       Tile World  loads  various  resources  at  runtime  from  its  resource
       directory  (cf  DIRECTORIES).   These  resources  include the program’s
       font, graphic images, and sound effects.  The  actual  file  names  are
       determined  by  the  contents  of  a file named rc (short for "resource
       configuration", not "runtime commands") in the same directory.

       The rc file is a plain text file, and contains lines of the form

       resource = filename

       where resource is a symbolic resource name, and filename is the name of
       a file in the resource directory.

       The  resources can be set differently depending on the ruleset that the
       program is using. A line in the rc file of the form

       [ ruleset]

       indicates that the lines that follow only apply when that ruleset is in
       effect (where ruleset is either MS or Lynx). Resources that are defined
       before any such line apply to both  rulesets,  and  are  also  used  as
       fallbacks if a ruleset-specific resource could not be loaded. (The font
       and the text-color resources  also  need  to  have  ruleset-independent
       values,  as  these  are  needed  when displaying the initial file list,
       before a ruleset has been chosen.)

       A line of the form

       TileImages = FILENAME

       identifies the file that provides the images used  to  draw  the  game.
       These  images  are  stored  in  a  Windows  bitmap. (See the Tile World
       website for more information about this resource.)

       A line of the form

       Font = FILENAME

       identifies the file that provides  the  program’s  font.  The  font  is
       stored  as  a  Windows  bitmap.  (See  the  Tile World website for more
       information about this resource.)

       A line of the form

       UnsolvableList = FILENAME

       identifies the filename for the  database  of  unsolvable  levels.  See
       DATABASE  OF  UNSOLVABLE  LEVELS  below for more information about this
       file. Note that this  resource  must  be  defined  independent  of  the
       ruleset, or else it will be ignored.

       Four resources define the colors used in rendering text:

       BackgroundColor = RRGGBB
       TextColor = RRGGBB
       BoldTextColor = RRGGBB
       DimTextColor = RRGGBB

       The  value of RRGGBB is a string of six hexadecimal digits defining the
       red,  green,  and  blue  values  of  the  color  (as  with  the   color
       specification  used  in  HTML  or  X Windows, but without the preceding

       The remaining resources all define the game’s sound effects. The sounds
       are  stored as Microsoft RIFF files (so-called wave files).  Unlike the
       tile images, each sound effect is  defined  as  a  separate  file.  The
       complete list of symbolic resource names is as follows:

       Sounds used in both rulesets

       * LevelCompleteSound
       * ChipDeathSound
       * BlockedMoveSound
       * PickupToolSound
       * ThiefSound
       * TeleportSound
       * OpenDoorSound
       * SocketSound
       * SwitchSound
       * BombSound
       * SplashSound

       Sounds used only under the MS ruleset

       * TickSound
       * ChipDeathByTimeSound
       * PickupChipSound

       Sounds used only under the Lynx ruleset

       * TileEmptiedSound
       * WallCreatedSound
       * TrapEnteredSound
       * BlockMovingSound
       * SkatingForwardSound
       * SkatingTurnSound
       * SlidingSound
       * SlideWalkingSound
       * IceWalkingSound
       * WaterWalkingSound
       * FireWalkingSound

       (Note  that  the symbolic names for the shared and MS-only sounds match
       the names in the entpack.ini file used by the Microsoft program.   This
       makes it easy for someone with a copy of Microsoft’s "Chip’s Challenge"
       to use the sound effects that were provided with that  version  of  the


       Of  the  many  thousands  of  user-created  levels  that  are  publicly
       available, there are some that are not possible to  complete.  Some  of
       these  are  intentionally  so  (e.g. requiring the player to deduce the
       password to the next level). The remainder, however, are simply due  to
       poor  design,  and  there is typically no indication that attempting to
       solve these levels is fruitless.

       To help alleviate this, Tile World comes with a database of levels that
       have been identified by the community to be definitely unsolvable. When
       the player visits a level that appears in this database, a  warning  is
       displayed,  and  the  password  to  the  next  level  is  automatically

       The main database of  unsolvable  levels  is  stored  in  the  resource
       directory. In addition, a player can keep a separate database in a file
       of the same name in the directory for solution files. If present,  Tile
       World will use the information from both of these files.

       The  offending  levels are identified by content as well as by name and
       number, so that updated  versions  will  no  longer  be  identified  as
       unsolvable.  See  the Tile World website for more information about the
       format of this file, and to check for updates to the database.


       Tile World uses four different directories for storing external  files.
       The  following  list  enumerates  the  directories  and describes their
       purpose.  The  default  directories  that  the  program  uses  can   be
       configured  at  compile  time.  The  directories can also be changed at
       runtime via command-line  options  and/or  environment  variables  (see

       Sets   This  directory  is  used  to hold the available level sets. The
              files in this directory are either data files  or  configuration
              files. (default for Linux: /usr/local/share/tworld/sets)

       Data   This  directory  is  used  to  hold  the  data  files  that  are
              referenced  by  configuration   files.   (default   for   Linux:

       Res    This  directory  stores the graphics and sound files used by the
              program. (default for Linux: /usr/local/share/tworld/res)

       Save   This directory is used for saving solution files.  (default  for
              Linux: ~/.tworld)


       Two  environment variables can be used to override the program’s built-
       in defaults for which directories to use. They are as follows:

              Specifies a top-level directory, in which the program will  look
              for the resource, level set, and data file directories.

              Specifies a directory for saving solution files.


       Tile World is copyright (C) 2001-2006 by Brian Raiter.

       This program is free software; you can redistribute it and/or modify it
       under the terms of the GNU General Public License as published  by  the
       Free  Software Foundation; either version 2 of the License, or (at your
       option) any later version.

       This program is distributed in the hope that it  will  be  useful,  but
       without   any   warranty;   without   even   the  implied  warranty  of
       merchantability or fitness for  a  particular  purpose.   See  the  GNU
       General Public License for more details.

       Please send bug reports to


       "Chip’s Challenge" was created by Chuck Sommerville, and was originally
       written for the Atari Lynx handheld game console. ("Tile World" was his
       working  title  for the game.) "Chip’s Challenge" was published by Epyx
       (the company who designed the Lynx before selling the rights to  Atari)
       in  1989,  and  was among the first set of games made available for the

       "Chip’s Challenge" was subsequently ported to several other  platforms:
       MS-DOS,  Microsoft  Windows (16-bit), Amiga, ZX Spectrum, Atari ST, and
       the Commodore 64. (A NES port was also planned, but never completed.)

       The Windows port was different from most (perhaps all?) of  the  others
       in  that  it  was not done by the original team at Epyx. Instead it was
       done by Microsoft and sold as part of Windows Entertainment Pack 4 (and
       later as part of Best of Windows Entertainment Pack). In the process of
       recreating  the  game  for  the  16-bit  Windows  platform,   Microsoft
       introduced a surprising number of changes to the mechanics of the game.
       Some were clearly intentional, some  were  done  through  ignorance  or
       indifference, and others were simply bugs in the program.  The programs
       in WEP4 came pre-installed on many PC computers sold during the  1990s,
       which is part of the reason why this particular version became the most
       popular. A small but fanatically loyal community of  adherents  to  the
       game  connected  via a MSN chatroom (and later through the internet). A
       few members of this community managed to decipher the format of the  MS
       game’s  data  file,  and  John K. Elion subsequently created a freeware
       level editor, called ChipEdit. As a result there are now dozens of  new
       level sets, created by fans of the game and all freely available.

       Atari  discontinued support for the Lynx in 1994. When Epyx went under,
       the rights to their games were  purchased  by  Bridgestone  Multimedia.
       Responding  to  the  success  of  "Chip’s Challenge", Chuck Sommerville
       created a sequel  ("Chip’s  Challenge  2").  The  sequel  included  the
       original  game  as  a proper subset, and the company held the rights to
       both games. Bridgestone Multimedia, who  has  now  become  Alpha  Omega
       Publications, unfortunately did not see fit to actually release "Chip’s
       Challenge 2", and by now it is highly unlikely that  it  ever  will  be
       released.  Since Chuck Sommerville no longer has rights to either game,
       and Microsoft no longer sells either of the  Entertainment  Packs,  the
       original "Chip’s Challenge" is no longer available except by purchasing
       a used copy of one of the aforementioned  Entertainment  Packs  (or  by
       downloading an illegal copy).

       In  2001,  the  author began writing "Tile World" with the intention of
       recreating a version of the MS game for  the  Linux  platform.  At  the
       encouragement  of  Chuck  Sommerville,  this  project  was  expanded to
       include the goals of recreating the original Lynx  game  as  well,  and
       also making the program work under MS Windows in addition to Linux.


       "Chip’s  Challenge"  has  seen  several  incarnations. Each had its own
       graphical rendering, and thus many of the objects in the game are known
       by  more  than one name. For example, the four types of boots in the MS
       version of the game were known as fire  boots,  flippers  (for  water),
       skates (for ice), and suction boots (for force floors). In the original
       Lynx version, however, they were not even boots -- the four tools  were
       fire shields, water shields, cleats, and magnets, respectively.

       Several  of  the  creatures  have  seen a variety of names. The list of
       creatures given in OVERVIEW OF THE GAME corresponds to the  MS  version
       of  the  game.  In  the  original  Lynx  version,  the  paramecia  were
       centipedes instead. In still other versions of the game,  gliders  were
       referred  to as ghosts or sharks, fireballs were flames, and teeth were
       called frogs. (You will also occasionally see bugs referred to as bees,
       and walkers referred to as dumbbells.)

       Finally, the thief tile was called a spy in the MS version.

       None  of  this  information is needed in order to play the game, but it
       helps to explain the titles of some of the user-created levels.