Jump to content

Recommended Posts

The initial coding is sufficiently finished that I am finally ready to announce my new project: Chip's Challenge Creator (working title), the first unified editor for both Tile World and CC2, with script editing!

Below is a screenshot clip demonstrating my code's ability to load a familiar CC2 level and display it using the CC2 tileset:

 

nT6iNao.png

 

 

 

The plan is to write the first version in Java, for ease and speed of development. The Java program should work on most people's systems, and I hope later to port the program to C++ for more power and versatility.

 

Below is a list of the planned features for the editor. I invite everyone to look over the list, and reply with any requests for additions or modifications.

 

Initial Release Features

  • File Options
    • New - Starts a new project with an empty series.
    • Load - Loads a project from a file, or imports data to a new project (see Import).
    • Save/Save As - Saves a project to a file, prompting for a filename if necessary (always, for Save As).
    • Restore - Restores the project from the last load/save point (unavailable for a new project).
    • Import - Imports data into the project from a file (see Supported File Formats).
      • Import Level - Imports a single level from a level/levelset file.
      • Import Levelset - Imports a range of levels from a levelset file.
      • Import Script - Imports level script data from a script file (does not import any levels).
      • Import Series - Imports levels and level script data from a combination of level, levelset and script files.
    • Export - Exports data out of the project to a file (see Supported File Formats).
      The Export options prompt for a target format, and require the exported data to be compatible with the selected format (see Compatibility Mode).
      • Export Level - Exports the selected level to a level/levelset file.
      • Export Levelset - Exports the selected range of levels to a levelset file.
      • Export Script - Exports the script data of the selected level(s) to a script file (does not export any levels).
      • Export Series - Exports the selected level(s) and their script data to a combination of level, levelset and script files.
  • Edit Options
    • Undo - Undoes the last edit action
    • Redo - Redoes the last undone edit action
    • Cut/Copy - Copies the selected text/level/map area to the system clipboard.
      Levels and map areas are, if possible, presented in a format compatible with other CC editors, and additionally are presented as rendered images. 
      Cut additionally deletes the selected data.
    • Paste - Pastes text/levels/map areas from the system clipboard into the current project.
      Compatible with formats presented by other CC editors.
    • Clear - Erases the selected text/level/map area.
    • Select All - Selects the entire range of the active component, which can be a text field or the Map Editor.
    • Select Type - Selects every cell in the Map Editor containing an element of the specified type.
    • Fill - Places the current primary Drawing Element in every selected cell in the Map Editor.
    • Rotate Element - Rotates the current primary or secondary Drawing Element clockwise or counterclockwise.
  • View Options
    • Zoom - Controls the magnification/minification of the image in the Map Editor.
      • Zoom In - Zooms in by a magnification factor of 2
      • Zoom Out - Zooms out by a magnification factor of 2
      • Zoom Normal - Zooms to 100% magnification
      • Fit Window - Scales the map image small enough to show the whole map in the window.
      • Custom Zoom - Opens a dialog with a box to enter a custom zoom factor.
    • Always Show Metagraphics - Selects whether enabled metagraphics are always visible, or visible only on mouseover.
    • Element Connections - Selects whether connection metagraphics are drawn in the Map Editor for elements like fire jets, traps, cloners, and teleports.
    • Logic Node Connections - Selects whether connection metagraphics are drawn in the Map Editor for logic nodes.
    • Effect Areas - Selects whether area-of-effect metagraphics are drawn in the Map Editor for elements like area controls.
    • Creature Order - Selects whether creature-order metagraphics are drawn in the Map Editor.
    • Creature Paths - Selects whether creature path metagraphics are drawn in the Map Editor.
    • Player Starting Position - Selects whether the player starting position is highlighted in the Map Editor.
    • Viewport - Selects whether the in-game viewport area is highlighted around the cursor position in the Map Editor.
    • Compatibility Errors - Selects whether compatibility errors are highlighted in the Map Editor.
    • In-game Graphics - Toggles between editor graphics and graphics as seen in-game (outside of wizard-eye mode).
  • Series Options - Apply to all levels in the project series except where overridden in the Level Options.
    • Compatibility - Opens a window to select the compatibility mode(s) for the project series (see Compatibility Modes).
    • Properties - Opens a window to edit the properties of the project series.
    • Userdata - Opens a window to edit nonstandard userdata for the project series.
    • Errors - Opens a window to view details of all reported compatibility errors for the project series.
  • Level Options - Apply specifically to the currently-selected level in the Level Selector.
    • Add Level - Adds a new level to the project series, in the position immediately following the current level.
    • Delete Level - Deletes the current level from the project series (same action as Edit > Delete when the latter applies to the Level Selector).
    • Move Level Up/Down - Shifts the current level up or down by one in the project series order.
    • Move Level To - Prompts for a number and shifts the current level to the corresponding position in the project series order.
    • Previous/Next Level - Selects the level immediately before or after the current level in the project series order, and opens it in the active tab of the Map Editor.
    • Go To Level - Prompts for a level number, title, or password, locates a matching level in the project series, and if found selects it and opens it in the active tab of the Map Editor.
    • Compatibility - Opens a window to select the compatibility mode(s) for the current level (see Compatibility Modes).
    • Properties - Opens a window to edit the properties of the current level.
    • Hints - Opens a window to edit the hints for the current level.
    • Button Connections - Opens a window to edit the button connections for the current level.
    • Creatures - Opens a window to edit the creature order for the current level.
    • Scripts - Opens a window to edit the script data for the current level.
    • Userdata - Opens a window to edit nonstandard userdata for the current level.
    • Errors - Opens a window to view details of all reported compatibility errors for the current level.
  • Help Options
    • Editor Reference - Documentation for the program features.
    • Element Reference - A complete, detailed description of the CC element set.
    • About - Technical info about the program.
  • Tools - The built-in set of map editing tools.
    For all tools that place elements, the primary mouse button places the primary Drawing Element, while the secondary mouse button places the secondary drawing element.
    • Draw - Places an element under the cursor when the user clicks or drags the mouse.
      Shift+click places the element in the overlay layer.
    • Line - Draws a line of elements from where the user clicked to where the user released the mouse.
    • Box - Draws a filled rectangle of elements with one corner where the user clicked and the diagonally opposite corner where the user released the mouse.
    • Path - Like the Draw tool, but automatically rotates certain elements when the user changes direction, to make a continuous path.
    • Flood - Flood-fills a region of the map composed of a single element.
    • Wire - Lays wire between adjacent wirable elements.
    • Connect - Adds a button connection between the first-clicked and second-clicked elements (only works between traps/cloners and their respective buttons).
    • Toggle - Toggles all toggleable elements in the map.
    • Select - Selects a rectangle of map cells with one corner where the user clicked and the diagonally opposite corner where the user released the mouse. Additional cells can be added/removed from the selection individually with Ctrl+click.
  • Palette - The set of available elements, organized into tabs, with an additional All tab displaying the full element set.
    • Drawing Element - One of the elements currently selected from the palette for drawing in the Map Editor. Two elements can be selected at once, the primary and the secondary.
    • Cycle - A group of different entities of the same element (e.g. four different directions for a creature). When an element is selected as the primary Drawing Element, its cycle (if it has one) is displayed separately, and the user can select a specific entity within the cycle. The user can also rotate forward or backward in the cycle using the Rotate Element option.
  • Map Editor - Displays the map of the current level in a tabbed, scrollable, zoomable viewport with optional metagraphics (see View Options). Clicking on a cell within the viewport applies the current tool to that cell (see Tools). Multiple level maps can be open at once in separate tabs.
  • Level Selector - Lists the levels in the project series. Clicking a level selects it as the current level and opens its map in the active tab of the Map Editor.
  • Level Properties Editor - Allows the user to edit certain essential properties of the current level without bringing up a separate window (see Level Options > Properties).
  • Compatibility Mode - Represents the different versions of CC supported by this program. Elements and other data not compatible with the current mode(s) will be listed in the Compatibility Errors window (see Level Options > Errors), and highlighted in the Map Editor if View Options > Compatibility Errors is enabled.
    Multiple modes can be selected simultaneously, and every edit is checked against all currently selected modes.
    Additionally, when exporting data to a specific file format, the data is checked against the modes supported by that format (see ExportSupported File Formats).
    • MSCC - The classic port by Microsoft.
    • TW:MS - The mode of Tile World that emulates MSCC.
    • TW:Lynx - The mode of Tile World that loosely emulates the original Lynx version.
    • TW:Pedantic Lynx - The mode of Tile World that pedantically emulates the original Lynx version.
    • CC2 - The recently-released sequel.
    Note: the ice block patches for MSCC and Tile World are not supported as full compatibility modes; however, the program will allow MSCC- and TW:MS-mode levels containing ice blocks to be exported with only a warning. Attempting to export a Lynx-mode level with an ice block will produce an error.
  • Supported File Formats
    • Level Files - Contain a single level.
      • Chip's Challenge 2 Map - extension ".c2m"
        Used by CC2.
        Supports CC2 Compatibility Mode.
    • Levelset Files - Contain a series' levels without its script data.
      • Chip's Challenge Levelset - extensions ".ccl", ".dat"
        Used by MSCC, Tile World, and other CC editors.
        Supports MSCC, TW:MS, TW:Lynx, and TW:Pedantic Lynx Compatibility Modes.
    • Script Files - Contain a series' script data without its levels.
      • Chip's Challenge 2 Game - extension ".c2g"
        Used by CC2.
        Supports CC2 Compatibility Mode.
        Associates with multiple Chip's Challenge 2 Map files.
      • Chip's Challenge Extension - extension ".ccx"
        Used by Tile World (version 2).
        Supports TW:MS, TW:Lynx, and TW:Pedantic Lynx Compatibility Modes.
        Associates with a single Chip's Challenge Levelset file.
    • Project Files - The program's internal format for saving a whole project, including all levels and script data.

 

Possible Future Update Features

  • Edit Options
    • Edit History - Displays the user's entire edit history back to program startup, enabling selective undo.
  • View Options
    • Load Tileset - Prompts for the name of an image file to use as the program tileset. (Undecided whether this feature will allow custom tileset formatting or simply expect the same format as the CC2 tileset.)
  • Level Options
    • Generate Random - Generates an empty level consisting of just floors and walls arranged in randomized rooms. (Possibly with a later update adding options to add shapes of various elements like water.)
  • Test Options - Options related to playtesting the current level in some version of CC. (Undecided how to support the various different versions in a homogenous style. Need to explore whether external playtesting works in CC2.)
  • Tools
    • Auto-wire - Attempts to connect two wireable elements by automatically pathing the wire across the level.
  • Palette
    • Custom Palette - Allows the user to create a custom organization for the palette by adding, removing and editing tabs.
    • Mode-specific Palette - The palette only shows elements that are supported by the current Compatibility Mode.
  • Map Editor
    • Layers - Selects whether to show the upper or lower layer of the current level map, or both, in the Map Editor.
  • Solvability Test - Tests for basic problems that make a level unsolvable (too few chips, inaccessible exit, door with no matching key that has to be opened, etc.).
    Will not be able to find routes, or dynamically simulate movement or logic.

 

 

 

With the heavy coding out of the way, I may have the project finished in a month or two. Hopefully the community will find it useful for creating the next generation of awesome Chip's Challenge levels!  :chipwin:

 

  • Upvote 11

Share this post


Link to post
Share on other sites

Here's a preview of how the editor GUI will look. Obviously it's a work-in-progress, especially the map view, but this gives an idea of the general plan, if anyone's interested.  :)

 

Screen cap with the Levels tab in front:

 

cnjQ5Wj.png

 

 

Screen cap with the Elements tab in front:

 

(The elements will be getting a layout more like CCDesign's.)

25sVG8Z.png

 

 

Note that the icons are only placeholders. I could use a set of good-quality icons, if anyone would like to draw them or point me to a free online source.  :)

  • Upvote 3

Share this post


Link to post
Share on other sites

Well, I would have liked to have been able to release the editor for Christmas. :) Sadly, there have been unforeseen delays. Just want to let you all know that I'm still working hard on it, and may be able to release as early as sometime in January.
 
In the meantime, here's another screen cap demonstrating ways to use the tools that I've coded so far, as well as showing what the window looks like at a different size from that shown above.

2NYutT6.png
Notes:

  • The exits, Chip, and the RR Xing sign were placed using the Draw tool (1st from left on the toolbar)
  • The walls were placed using the Line tool (2nd left)
  • Yellow floors were placed using the Box tool (3rd left; walls were placed afterward)
  • Railroad was placed using the Path tool (4th left; yes, Path supports railroad as well as ice and FF!  :) )
  • Water was placed (with 4 clicks!) using the Flood tool (5th left)
  • Still working on the wire and button-connect tools...
  • The sharp-eyed among you may have noticed that the map view currently has no tabs. This is temporary - multiple open maps with tabbing is still the plan

 

 

 

By the way, I'm still interested in getting some help with the icons. Development will be much faster if I don't have to draw them all myself. ;)

  • Upvote 4

Share this post


Link to post
Share on other sites

By the way, I'm still interested in getting some help with the icons. Development will be much faster if I don't have to draw them all myself. ;)

Copy them from CCEdit. :teeth:

Share this post


Link to post
Share on other sites

Copy them from CCEdit. :teeth:

 

First of all, I don't want CC Creator to look like a CCEdit ripoff.  :P

Secondly, CCEdit doesn't have icons for all of the features that CC Creator has.

Share this post


Link to post
Share on other sites

nice nice nice!!!

I didn't see this but might have missed it;

a copy/cut/paste level feature would be nice, the kind which the old old, CCEdit had (or something similar)
 

 

also what's your stance on invalid tile combinations? For example placing a no symbol without items allowing new (unintended) behavior. Will this kind of thing be possible in this editor?

Share this post


Link to post
Share on other sites

a copy/cut/paste level feature would be nice, the kind which the old old, CCEdit had (or something similar)

 

All the CC1 editors have this feature, and CC Creator will be no exception.

 

 

 

also what's your stance on invalid tile combinations? For example placing a no symbol without items allowing new (unintended) behavior. Will this kind of thing be possible in this editor?

 

My general plan is that with some advanced editing, you can produce any kind of invalid combination you please.

 

However, elements like the forbidden sign and directionless frame blocks will be freely placeable by default. I see no reason to limit the kinds of puzzles you can make using them. :)

 

In contrast, elements like clone machines with multiple directions, while possible, are completely useless, so you'll need to do advanced editing to place such elements (if you really want them).

  • Upvote 1

Share this post


Link to post
Share on other sites

Just finished coding the systems to import levels from both C2M and CCL files! As a demo, I imported the first level of each of CC1 (Steam version), CC2, CCLP1, CCLP2, and CCLP3 into a single project and took screenshots. Since the images are large (the editor window is maximized), check them out on Imgur: http://imgur.com/a/Jm0dn.
 
There's still a ways to go; but I would estimate at this point more than 3/4 of the heavy work is now finished. :)

  • Upvote 2

Share this post


Link to post
Share on other sites

(Y):lol: sweet

 

I like the fact that you can see/set how many chips are required; a feature missing from the CC2 editor

Share this post


Link to post
Share on other sites

Time for another update!
 
I just finished adding the ability to select/fill/copy/paste sections of the map. Here's an image of a map where I pasted in the quadrants of my level "Olympic Games", rearranged from the original. The second image is the original, in CCEdit, from which I copied the data. (Warning: maximized screen caps.)

 

8aqkf2o.pngN9IH8H8.png

 

 

Present but not shown: undo/redo, plus a month's worth of work on internal logic for opening multiple maps in tabs. :D

 

 

Major work still to do:

  • View options, including zoom and metagraphics (creature paths, element areas-of-effect, etc.).
  • Dialogs to edit level and series properties, including story scripts.
  • Support for the C2G and CCX formats.
  • Help documentation.

But it's getting there!

 

  • Upvote 4

Share this post


Link to post
Share on other sites

Let me know if you want some help with the basic c2g format stuff. You probably know it better than I do given the information you compiled but I can tell you what I did for my program. 

Share this post


Link to post
Share on other sites

Thanks for the offer. I may take you up on it, once I'm ready to tackle that stuff. Looks like you've already figured out some stuff I hadn't thought to try. :)

Share this post


Link to post
Share on other sites

Well, I'm sorry, since I know you all really want this editor; but I'm afraid I'm going to have to put it on hold indefinitely. Life's just gotten too busy to make time for it.  :( I'm hoping I can get back to it sometime this year, but I can't make any promises.

 

Anyway, I had a few more screenshots lying around, so you can have a look at them. These are various dialogs that I had just started adding (warning: maximized images):

 

Pz93O12.pngMjIzrfK.pngJ8wIilj.png

 

 

 

April Fool!!!

 

 

 

Actually, the editor's coming along great! :) In fact, I'm thinking of doing some beta testing in a couple weeks. If you'd like to participate, please IM me here or on Skype.

 

 

  • Upvote 7

Share this post


Link to post
Share on other sites

As should be evident by now, my previous post was a joke, with the exception of the part in the spoiler box. :)

Thank you to those who have expressed interest in beta testing so far. You'll hear back from me in a couple weeks, once I have the program ready. Anyone else who'd like to volunteer, please IM me.

Share this post


Link to post
Share on other sites

Time for another update. I've made a fair amount of progress, despite getting sidetracked by CCLP4 voting and Real Life. Many of the editor's dialog windows are now finished, and I have screenshots of them below.

 

 

 

VDdbbPb.png

7c2Ymsl.png

jlZhkHe.png

GcQhRe8.png

kJF3Zcr.png

rbB5aJy.png

euZFttE.png

djxTHjg.png

 

 

 

I was hoping to have the editor ready for some beta testing a month ago, but as I said, other things got in the way. I did, however, get a good number of people interested in testing (thank you everyone who volunteered). The invitation is still open, if anyone else would like to join. I don't yet have a real timeframe for when testing will be.

  • Upvote 3

Share this post


Link to post
Share on other sites

Just a brief update to let you all know I have not forgotten nor abandoned this project. I took a break so I could focus on CCLP4; but with the set releasing today, I will be going back to work on the editor. Still hoping to release it sometime this year! :)

  • Upvote 4

Share this post


Link to post
Share on other sites

There are still many things to finish, but the enough features are complete that I am ready to start private beta testing for the editor!

 

The first beta release is scheduled for this Friday (August 18th) around 6 PM (EDT). I will be using a private Skype group to share files and gather feedback. Anyone who is interested in joining, please IM me on Skype for a group invite, preferably before Friday.

Warning: this initial release will be very much unfinished, so don't expect to be able to test every feature immediately.

 

For those interested, here's a rough list of what's still in the works:

  • File formats
    • CC Creator Project format (can save all Chip's Challenge data in one file)
    • CCX format
    • C2G format
  • Ruleset compatibility testing
  • View options
    • Zooming
    • Metagraphics (creature order, creature paths, etc.; button links are done)
    • Game-mode graphics
  • Map editor tabs
  • Documentation
    • User's manual
    • Element reference
  • Miscellaneous UI adjustments

 

  • Upvote 5

Share this post


Link to post
Share on other sites

Been a while since my last community update, and even longer since I posted screenshots, so here goes. (Warning: large images)

 

Zooming is now enabled! Here's a level at 50% zoom:

 

 

BdkDVmU.png

 
This is the Go To Level dialog in action:

 

 

UnUHvrQ.png

 

Here the map view is zoomed to Fit Window:

eJBuWSD.png

 
Same view with Game Graphics enabled:

 

 

I3P3Fae.png

 

Finally, a preview of the Creature Paths feature:

 

 

ZGAlRMg.png

 
 
 
As a reminder, beta testing is currently ongoing. Anyone who'd like to volunteer would be welcome (and thank you to those who have already volunteered)!
 
  • Upvote 4

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×