Jump to content
The Architect

Chip's Challenge Creator

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

I tried running this editor, but I got an error message:

Exception in thread "main" java.lang.UnsupportedClassVersionError: cccreator/BetaTest : Unsupported major.minor version 52.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:803)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:442)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:64)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:354)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:348)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:347)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:312)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

Do you have any idea what could be causing this?

Share this post


Link to post
Share on other sites

Most likely you do not have the latest version of Java (Java 8) installed.

The easiest way to see what version you have installed is to go to the Java website and click the big red "Verify Java version" button.

Unfortunately this doesn't work in all browsers (at least not in mine). If it can't detect your version, and if you're on Windows, you can do the following to check your version:

  • Type Win+R to bring up the Run dialog
  • Type "javacpl  -tab about" in the box and click "Okay"
  • A dialog should appear showing the version of Java installed on your system

Assuming one of these methods works, let me know what version you have, and I can tell more about the problem.

  • Upvote 1

Share this post


Link to post
Share on other sites

An update is now available, with some major bugfixes and a bunch of new features! You can get it here.

Some notable changes:

  • The CCX format is now fully supported for both importing and exporting
  • Teleport connections now show direction using arrows, and blue teleports show wiring-dependent connections
  • Elements are now laid out properly in the palette
  • Map editor tabbing has been added
  • The program now saves its settings between exiting and relaunching

See the Changelog.txt file for the complete list of changes.

Share this post


Link to post
Share on other sites

THE TILES

I like the way the tiles are sorted; even the "all tiles" section is easier to use than in the official editor. I also like how this editor makes it possible to put empty item blockers (much easier than resorting to a hex editor). And I discovered some tiles that I didn't even know I existed. Not just "unused" tiles, but also traps that start open, and directional blocks without any directions.

However, there are some unused tiles that the editor does not allow to place, and levels containing them do not display properly. These include the random tile, and the voodoo tiles from Enter the Void in TSAlpha.

 

DRAWING

While the official editor allows only one method for placing tiles, this one offers several. The "line" and "fill" features have been useful on a few occasions. The path maker is good in theory, and I used it often in CCEdit. However, there are a few bugs in its implementation here. When using force floors, I would expect crossings to turn into ice (like in CCEdit), but it doesn't happen. It is also problematic with train tracks. Example:

unknown.png

Left: drawn path

Middle: result

Right: expected result

(image by Jeffrey)

The path maker works fine with ice though.

At first, I was a bit confused by what appeared to be two wiring tools, until I figured out one was for CC1 button connections, and the other drew visible CC2 wires. I managed to wire a few levels using this tool, but I encountered an annoying bug: when I try to make a loop in wires, the editor hangs, and I am forced to kill the process. The editor also fails to open levels containing wire loops.

 

"VIEW" OPTIONS

I like how connections are shown; it makes it really easy to see which buttons link to which traps/clone machines/flame jets. The ability to see the scope of an area button/time bomb is also very useful. The ability to see creature paths is also very useful, like Alt+A in ChipEdit. And I absolutely love the ability to see the 10*10 viewing area in the game (it would be nice to have it enabled by default) this isn't really an issue now that settings are preserved :)

Seeing teleport order is also nice. My only complaint? When the level has a lot of green teleports, it's crazy...

unknown.png

(image by Tyler)

 

IMPORTING AND EXPORTING

At first, I was a bit confused by the export/import/save features, but once I figured it out, it all became simple. The editor saves in its native CCS format. Then, the CCS can be exported into a C2M, C2G or DAT file.

I didn't get any opportunities to use the "import" feature. When I did, it eseentially behaved like "open". I assume its main uses would be to import CCX data into a DAT levelset, and add extra levels to a CC2 levelset?

I used the "export" feature for two things: creating a playable CC2 level, and converting CC1 levels to CC2. I had no issues exporting from CCS to C2M.

Converting CC1 to CC2 was much easier than using DAT2C2G: just open the CC1 set, choose the level, and export. It worked very well in most situations and, unlike DAT2C2G, converted PGChip ice blocks properly. The lines indicating button wirings was also easier to process than the DAT2C2G warnings file. I was also pleasantly surprised that a level with a time limit larger than 1000 converted properly (although the CC2 game displays 999 while these extra seconds drain away, like with chips).

However, the export feature has a few bugs. When I tried converting a CC1 level that contains a lot of chips under locks, the C2M file contained simple locks. When I used shift+click to put custom floors under monsters, the resulting C2M file had the monsters on regular floor. Also, when I converted an entire levelset, the paths in the C2G file started at the root directory of the filesystem, instead of using relative paths I tested it again in the 0.2 release and it has been fixed :)

 

OTHER THINGS

The changelog for the 0.2 release mentions changes to the “replace” option. I'm a bit confused as to what this option is?

I really like how settings are now preserved after closing and re-opening the editor. Now, I don't have to navigate to the directory containing my CC2 set every time; it is right there from the moment I open the editor.

I was really excited by the clipboard feature, which would hopefully make it possible to copy some tiles from one level to another. Unfortunately, the editor often failed to cut or copy the selected tiles, simply outputting some weird code on the command line. This generally happens when there are monsters in the area being copied, but I have not been able to reliably reproduce this bug, unfortunately :(

 

CONCLUSION

The editor isn't perfect, but it is an improvement over the official editor. The “view” options, the simple conversion of CC1 to CC2, and the various drawing tools make this much more fun to use than the official editor. Thank you for coding this :)

Share this post


Link to post
Share on other sites

Thanks for the positive feedback! It's definitely helpful, plus I'm always happy to hear my work has been of benefit to someone. :)

I'd like to address some of your comments in more detail:

3 hours ago, chipster1059 said:

THE TILES

[...] there are some unused tiles that the editor does not allow to place, and levels containing them do not display properly. These include the random tile, and the voodoo tiles from Enter the Void in TSAlpha.

I've debated adding the "random tile", but it's really just a glitch, not even as "real" a tile as the invalid tiles from CC1, so I'm hesitant about officially supporting it. Are there many people interested in actually using it?

And I have no idea what you mean by "voodoo tiles". Another CC2 invalid tile thing?

 

Quote

DRAWING

While the official editor allows only one method for placing tiles, this one offers several. The "line" and "fill" features have been useful on a few occasions.

I'm curious: by "fill" do you mean the "box draw" tool, or the "flood fill" tool? The "flood fill" tool is one I'm particularly proud of, as I can see many potential uses for it and it's something none of the previous editors have offered. :)

Quote

The path maker is good in theory, and I used it often in CCEdit. However, there are a few bugs in its implementation here. When using force floors, I would expect crossings to turn into ice (like in CCEdit), but it doesn't happen. It is also problematic with train tracks. [...]

I'd forgotten how CCEdit treats force floor path crossovers. That would definitely be a good feature for CC Creator to have, and I'll look into adding it. Regarding train track crossovers, I'm aware of the awkwardness, but was limited by how I designed the path mechanism. There might be something I can do about it, though, and I'll look at it at the same time I look at the force floor pathing issue.

Quote

[...] when I try to make a loop in wires, the editor hangs, and I am forced to kill the process. The editor also fails to open levels containing wire loops.

Yeah, this was just reported in the Skype chat and I added it to the Known Issues list. I was certain I had designed a whole mechanism to avoid that possible problem, but it turns out I only designed it in my head. :D Anyway, the issue is now fixed in my alpha code, but I don't know when/if I'll release another beta update (I'd really like to be releasing the production version Soon!).

 

Quote

"VIEW" OPTIONS

[...] the ability to see the 10*10 viewing area in the game (it would be nice to have it enabled by default) [...]

It's supposed to be enabled by default, but I set it to default-disabled in my alpha version and apparently forgot to set it back for beta release. I just checked, though, and update 0.2 has it working properly.

Quote

Seeing teleport order is also nice. My only complaint? When the level has a lot of green teleports, it's crazy...

unknown.png

(image by Tyler)

(Leaving the image in the quote 'cause it's hilarious.... :D)

Unfortunately I couldn't think of any better way to draw green teleport connections, that accurately conveys the manner in which any green teleport in the level targets every single other green teleport in the level. I'm just hoping people don't make too many levels like the one depicted, where the super-connectivity is an issue. And of course, you have the option of making the connection metagraphics show only on mouseover. But I'm open to alternate suggestions if anyone has any.

 

Quote

IMPORTING AND EXPORTING

At first, I was a bit confused by the export/import/save features, but once I figured it out, it all became simple. The editor saves in its native CCS format. Then, the CCS can be exported into a C2M, C2G or DAT file.

This is largely correct, though I was concerned that it might be a little too weird for people to figure out without the still-under-construction help manual. I'm glad to see that's not the case. :)

I say "largely correct" because it's not actually necessary to save to the native format before doing an export: you can export from an unsaved project just as well, it just doesn't mark the project as saved (because most of the export options only export part of the project).

Quote

I didn't get any opportunities to use the "import" feature. When I did, it eseentially behaved like "open". I assume its main uses would be to import CCX data into a DAT levelset, and add extra levels to a CC2 levelset?

Yeah, those are two probable uses. The main point of the "import" feature is that it adds to the current project, whereas the "open" feature replaces the current project, losing any unsaved work in the process (and resetting the edit history).

Quote

[...] I was also pleasantly surprised that a level with a time limit larger than 1000 converted properly (although the CC2 game displays 999 while these extra seconds drain away, like with chips).

CC Creator supports the full possible range of time limits, common to MSCC, Tile World and CC2, which is 0-65535 seconds. Once compatibility testing is enabled, it will give a warning when an "undisplayable" time limit is set.

Quote

However, the export feature has a few bugs. When I tried converting a CC1 level that contains a lot of chips under locks, the C2M file contained simple locks.

Locks on top of chips is not a valid combination in C2M; the file physically can't handle it, so the buried chips are ignored. Once compatibility testing is enabled, it will warn you that that's going to happen.

Quote

When I used shift+click to put custom floors under monsters, the resulting C2M file had the monsters on regular floor. [...]

Shift+click puts the tile in the "buried" layer, which is not supported by C2M (nor Lynx-mode Tile World). You need to place the floor first, then the monster on top of it, just like in the original CC2 editor.

I've considered adding a separate input sequence, such as control+click, to place a tile in the "terrain" layer while preserving the creatures and objects on top of it. Would people find this feature useful?

 

Quote

OTHER THINGS

The changelog for the 0.2 release mentions changes to the “replace” option. I'm a bit confused as to what this option is?

BsYc7L2.png

Quote

[...]

I was really excited by the clipboard feature, which would hopefully make it possible to copy some tiles from one level to another. Unfortunately, the editor often failed to cut or copy the selected tiles, simply outputting some weird code on the command line. This generally happens when there are monsters in the area being copied, but I have not been able to reliably reproduce this bug, unfortunately :(

That's really weird. It sounds like the program is throwing an exception (that's what causes the message to be printed to the command line), but I have no idea why that would be happening. If it happens again, can you copy the message for me?

Share this post


Link to post
Share on other sites
3 hours ago, The Architect said:

I've debated adding the "random tile", but it's really just a glitch, not even as "real" a tile as the invalid tiles from CC1, so I'm hesitant about officially supporting it. Are there many people interested in actually using it?

And I have no idea what you mean by "voodoo tiles". Another CC2 invalid tile thing?

I don't know what other members of the community think about this; perhaps you could ask around on Discord?

As for the voodoo tiles, here is Tyler's explanation: "everything past the latch gates, beyond the normal logic gates themselves, can be made into a voodoo tile; i was supposed to write a hex editing tutorial like 2 years ago lmao. all the voodoo tiles act as floor and take the exact appearance of their 32x32 square (i.e. no animation, and the icons in the bottom right are clumped together)"

3 hours ago, The Architect said:

I'm curious: by "fill" do you mean the "box draw" tool, or the "flood fill" tool? The "flood fill" tool is one I'm particularly proud of, as I can see many potential uses for it and it's something none of the previous editors have offered. :)

I was talking about the "flood fill" tool I really like it :)

3 hours ago, The Architect said:

Unfortunately I couldn't think of any better way to draw green teleport connections, that accurately conveys the manner in which any green teleport in the level targets every single other green teleport in the level. I'm just hoping people don't make too many levels like the one depicted, where the super-connectivity is an issue. And of course, you have the option of making the connection metagraphics show only on mouseover. But I'm open to alternate suggestions if anyone has any.

The "show only on mouseover" option could fix this issue :) I can't really think of any other workaround apart from creating a menu entry for every single type of connection, which would have the side effect of creating a really long menu, which might not necessarily be a good thing.

3 hours ago, The Architect said:

I say "largely correct" because it's not actually necessary to save to the native format before doing an export: you can export from an unsaved project just as well, it just doesn't mark the project as saved (because most of the export options only export part of the project).

Yeah, those are two probable uses. The main point of the "import" feature is that it adds to the current project, whereas the "open" feature replaces the current project, losing any unsaved work in the process (and resetting the edit history).

CC Creator supports the full possible range of time limits, common to MSCC, Tile World and CC2, which is 0-65535 seconds. Once compatibility testing is enabled, it will give a warning when an "undisplayable" time limit is set.

Thank you for clarifying about these.  The "undisplayable" warning does sound like a good idea :)

3 hours ago, The Architect said:

I've considered adding a separate input sequence, such as control+click, to place a tile in the "terrain" layer while preserving the creatures and objects on top of it. Would people find this feature useful?

I would find such a feature very useful :)

 

I'm still a bit confused by the "replace" feature.  What makes it different from flood-filling the tile with floor?

 

3 hours ago, The Architect said:

That's really weird. It sounds like the program is throwing an exception (that's what causes the message to be printed to the command line), but I have no idea why that would be happening. If it happens again, can you copy the message for me?

I experienced the issue again just now, trying to copy these tiles:

1w8YVz2.png

Here is the resulting command line output:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at cccreator.MapModel.updateCreatureRoutes(MapModel.java:1447)
	at cccreator.MapModel.setEntity(MapModel.java:1242)
	at cccreator.MapModel.copyCell(MapModel.java:1672)
	at cccreator.MapModel.copyArea(MapModel.java:552)
	at cccreator.MapEditor$8.createTransferable(MapEditor.java:1047)
	at javax.swing.TransferHandler.exportToClipboard(TransferHandler.java:784)
	at javax.swing.TransferHandler$TransferAction.actionPerformedImpl(TransferHandler.java:1753)
	at javax.swing.TransferHandler$TransferAction.access$800(TransferHandler.java:1692)
	at javax.swing.TransferHandler$TransferAction$1.run(TransferHandler.java:1715)
	at javax.swing.TransferHandler$TransferAction$1.run(TransferHandler.java:1713)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
	at javax.swing.TransferHandler$TransferAction$2.run(TransferHandler.java:1730)
	at javax.swing.TransferHandler$TransferAction$2.run(TransferHandler.java:1728)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
	at javax.swing.TransferHandler$TransferAction.actionPerformed(TransferHandler.java:1727)
	at cccreator.CCCreator.copy(CCCreator.java:596)
	at cccreator.Actions$12.actionPerformed(Actions.java:562)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
	at javax.swing.AbstractButton.doClick(AbstractButton.java:356)
	at javax.swing.plaf.basic.BasicMenuItemUI$Actions.actionPerformed(BasicMenuItemUI.java:802)
	at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1663)
	at javax.swing.JComponent.processKeyBinding(JComponent.java:2882)
	at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:699)
	at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:706)
	at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:706)
	at javax.swing.JMenuBar.processKeyBinding(JMenuBar.java:677)
	at javax.swing.KeyboardManager.fireBinding(KeyboardManager.java:307)
	at javax.swing.KeyboardManager.fireKeyboardAction(KeyboardManager.java:293)
	at javax.swing.JComponent.processKeyBindingsForAllComponents(JComponent.java:2974)
	at javax.swing.JComponent.processKeyBindings(JComponent.java:2966)
	at javax.swing.JComponent.processKeyEvent(JComponent.java:2845)
	at java.awt.Component.processEvent(Component.java:6310)
	at java.awt.Container.processEvent(Container.java:2236)
	at java.awt.Component.dispatchEventImpl(Component.java:4889)
	at java.awt.Container.dispatchEventImpl(Container.java:2294)
	at java.awt.Component.dispatchEvent(Component.java:4711)
	at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1954)
	at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:806)
	at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1074)
	at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:945)
	at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:771)
	at java.awt.Component.dispatchEventImpl(Component.java:4760)
	at java.awt.Container.dispatchEventImpl(Container.java:2294)
	at java.awt.Window.dispatchEventImpl(Window.java:2746)
	at java.awt.Component.dispatchEvent(Component.java:4711)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
	at java.awt.EventQueue$4.run(EventQueue.java:731)
	at java.awt.EventQueue$4.run(EventQueue.java:729)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Share this post


Link to post
Share on other sites
34 minutes ago, chipster1059 said:

I'm still a bit confused by the "replace" feature.  What makes it different from flood-filling the tile with floor?

It affects every tile in the map, not just in a specific region.

 

34 minutes ago, chipster1059 said:

I experienced the issue again just now, trying to copy these tiles:

1w8YVz2.png

Here is the resulting command line output:

[...]

Thanks, that's a great amount of info! I already have a suspicion I know what the problem is.

  • Upvote 1

Share this post


Link to post
Share on other sites

CC Creator 0.3 is now available, with some new features plus fixes for a few major bugs. You can get it here.

Notable in this update:

  • Compatibility options can now be configured (compatibility testing is still not available).
  • The Export feature now confirms before overwriting existing files.
  • The Path tool has been modified to deal more intelligently with force floor and railroad crossovers.
  • The wire loop-freeze bug has been fixed, along with the bug that prevented copying a selection with monsters to the clipboard.

See the Changelog.txt file for the complete list of changes.

  • Upvote 1

Share this post


Link to post
Share on other sites

It's been a long time since I had news, so here's an informational update! I've added a control+click feature to insert a terrain without erasing the rest of the cell contents. Also, I'm working on dialogs to edit the properties of individual tiles. Here's a preview:

1dVFivH.png

RXkqM9j.png

pNxqGao.png

I hope to be able to release a program update with these features in the next couple weeks, so stay tuned.

  • Upvote 6

Share this post


Link to post
Share on other sites

This looks really awesome.  The ctrl+insert feature is going to be really useful.  The tile menu could be especially useful for managing railroad tracks, and multidirectional cloners :chipwin:

Share this post


Link to post
Share on other sites

for some reason, as of this morning I'm getting an "out of date" message >_<

OS is High Sierra (mac 10.13.6), I updated to latest version of Java (see screenshot below), updated to latest version of CCCreator (0.5), not sure why it's still whining at me, considering it literally worked yesterday :-/ 

 

outofdate.png

java.png

Share this post


Link to post
Share on other sites
1 hour ago, bobdabaron said:

for some reason, as of this morning I'm getting an "out of date" message >_<

OS is High Sierra (mac 10.13.6), I updated to latest version of Java (see screenshot below), updated to latest version of CCCreator (0.5), not sure why it's still whining at me, considering it literally worked yesterday :-/ 

 

outofdate.png

java.png

The current version of the program expired today.

You will need to wait for a new version.

Share this post


Link to post
Share on other sites

If you check the website, the previous beta session expired today.

I'm waiting to update the website while CCCreator is in the process of moving from Mike's site to the BitBusters site (see this post). In the meantime, I shared a copy with a new beta session on Discord. (Guess I probably should have mentioned that here.) Here's a copy of the Discord post with download link:

Quote

The Architect Yesterday at 4:52 AM

CCCreator is in the process of moving to the BitBusters website, but probably won't be there by tomorrow, which is when the current beta session expires. Therefore I am sharing this copy here.
This copy extends the beta session to September 1st. There are no other changes, and this is not an update from version 0.5, so no Changelog will be provided.
Enjoy!
https://cdn.discordapp.com/attachments/350042613254062091/572706934411624448/CCCreator.jar

 

Share this post


Link to post
Share on other sites
On 5/1/2019 at 4:48 PM, The Architect said:

If you check the website, the previous beta session expired today.

I'm waiting to update the website while CCCreator is in the process of moving from Mike's site to the BitBusters site (see this post). In the meantime, I shared a copy with a new beta session on Discord. (Guess I probably should have mentioned that here.) Here's a copy of the Discord post with download link:

 

new one works, many thanks :-D and yep, works on OS X!

Share this post


Link to post
Share on other sites

New home!

CCCreator is now hosted on the BitBusters.club website at: https://cccreator.bitbusters.club/

The version currently available for downloading at that location is still version 0.5, with no feature updates or bugfixes; however the beta session has been updated to Beta 2, which will last until September 1st, 2019.

All CCCreator content at the old site is now obsolete, and will be gone when Mike's site goes offline in the not-distant future (see this thread for details).

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×
×
  • Create New...