PDA

View Full Version : JCS+??


Darkhog
Nov 30, 2017, 11:17 AM
Not sure if it should go in the JJ2+ threads, so I'll leave it there. I think that instead of working on external, third-party level editors like many people did, e.g. with WebJCS and others, why the programmers behind these projects can't take a clue from JJ2+ and just make a JCS mod in similar way to what JJ2+ does with JJ2? Most code would stay the same (no need to rewrite stuff like level loading/saving routines, for example), but areas where JCS is weak could be improved. Perhaps it could even be done as part of JJ2+.

I'd make following changes to the JCS, for example:
- Easier way to make animated tiles, such as a window that opens after you double click an animated tile where you can add, remove and rearrange frames.
- Fixing help system so it properly opens the help file
- Built-in AngelScript editor (syntax highlight and code completion are optional, but recommended) for JJ2+

If JCS+ would be done as part of JJ2+ this would make it possible to stop with weird JCS hacks for features not supported by it, like Text|AngelScript 1 thing. Instead, proper new events could be created. Perhaps it could also allow for editing function by opening aforementioned code editor and jumping to the line the function is on directly from the select event window.

Unfortunately I don't have enough knowledge on either reverse engineering or the JCS' data structures, so I can't do this, but I know there are people here who have necessary skills.

Stijn
Nov 30, 2017, 11:50 AM
Are you aware of MLLE (https://www.jazz2online.com/downloads/7291/-/)?

Darkhog
Nov 30, 2017, 01:34 PM
Yes, but it's not JCS and as such there's no guarantee that it won't crash on some obscure level that doesn't crash JCS or the JJ2. It suffers from the same issues most of these projects, both replacements for JCS and the engine: potential incompatibilities with existing levels, having to reinvent the wheel regarding code (as in, you need to rewrite everything JCS does that doesn't need to be rewritten if "plus" route would be taken), different workflow if the program didn't take into account some obscure shortcut some people might've used and it also doesn't look as cool as JCS does.

Seren
Nov 30, 2017, 02:27 PM
Not sure if it should go in the JJ2+ threads, so I'll leave it there. I think that instead of working on external, third-party level editors like many people did, e.g. with WebJCS and others, why the programmers behind these projects can't take a clue from JJ2+ and just make a JCS mod in similar way to what JJ2+ does with JJ2? Most code would stay the same (no need to rewrite stuff like level loading/saving routines, for example), but areas where JCS is weak could be improved. Perhaps it could even be done as part of JJ2+.

I'd make following changes to the JCS, for example:
- Easier way to make animated tiles, such as a window that opens after you double click an animated tile where you can add, remove and rearrange frames.
- Fixing help system so it properly opens the help file
- Built-in AngelScript editor (syntax highlight and code completion are optional, but recommended) for JJ2+

If JCS+ would be done as part of JJ2+ this would make it possible to stop with weird JCS hacks for features not supported by it, like Text|AngelScript 1 thing. Instead, proper new events could be created. Perhaps it could also allow for editing function by opening aforementioned code editor and jumping to the line the function is on directly from the select event window.

Unfortunately I don't have enough knowledge on either reverse engineering or the JCS' data structures, so I can't do this, but I know there are people here who have necessary skills.

Yes, but it's not JCS and as such there's no guarantee that it won't crash on some obscure level that doesn't crash JCS or the JJ2. It suffers from the same issues most of these projects, both replacements for JCS and the engine: potential incompatibilities with existing levels, having to reinvent the wheel regarding code (as in, you need to rewrite everything JCS does that doesn't need to be rewritten if "plus" route would be taken), different workflow if the program didn't take into account some obscure shortcut some people might've used and it also doesn't look as cool as JCS does.

Hello, I am a JJ2+ programmer and my stance on this matter is as follows:

No.

Best regards.

Violet CLM
Nov 30, 2017, 02:46 PM
Look, I...

...

I have no idea how you think this is a sensible idea.

Darkhog
Nov 30, 2017, 02:51 PM
The same reason JJ2+ team though JJ2+ was one instead of reimplementing it from scratch.

Stijn
Nov 30, 2017, 03:18 PM
But MLLE is already here. You can go use it to make levels with right now. Whether it's worth the effort to re-implement basic JCS functionality is a moot point since either way that effort has already been spent. MLLE is functional, more compatible and flexible than JCS, and it's even open source. At this point in time figuring out how to hook into JCS would be re-inventing the wheel, since there's a perfectly functional editor that can do more than JCS already.

Anyway, ideas are a dime a dozen. Go start a JCS+ project if you prefer it to MLLE, if others agree with you they'll surely follow your example and contribute.

Darkhog
Nov 30, 2017, 03:52 PM
JCS looks cool. MLLE looks just like another windows app.

Not to mention MLLE may produce levels inopenable with JCS (or JJ2 for that matter) whlle levels made with JCS will always make levels that can be opened and played properly. Also JCS is included with the game and MLLE is not. I wouldn't even bother with Plus if it wasn't directly on gog.

Stijn
Nov 30, 2017, 04:10 PM
Not to mention MLLE may produce levels inopenable with JCS (or JJ2 for that matter) whlle levels made with JCS will always make levels that can be opened and played properly.
You keep saying this, but unless you actually have a reason for expecting this to be the case based on MLLE's current performance, it's just vague fearmongering twaddle.

Really, your arguments amount to "JCS looks cooler" and while that is indisputably true, it's also not super relevant. It's probably more productive to fork MLLE and make it look fancy than to stick with JCS for the sole reason that it looks nice.

Violet CLM
Nov 30, 2017, 04:34 PM
Okay, let's be fair though. MLLE <em>does</em> sometimes produce levels that are not universal in their openability. There are two reasons for this, broadly speaking.

1: It's <em>supposed to</em>. The last few releases of MLLE have seen it adding a bunch of JJ2+-exclusive features, like custom palettes, recolored sprites, infinite layers, and infinite tilesets. If JCS tried to open such a level, it would have no idea what to do with it, and would only corrupt its data... so MLLE makes sure JCS can't open them.
2. MLLE has bugs. It does nobody any good to pretend this is not the case. The current one I'm wrestling with <small>(you can help, if you like, it's open-source)</small> is that the zlib library I'm using is occasionally spitting out incorrectly compressed byte sequences based on [I have absolutely no idea why this happens]. Fortunately this happens only very rarely, though reliably when it does occur, but it has happened.

But here's the thing. There is no reason to think that editing JCS&mdash;once you overcame, as Stijn alluded to, the <em>enormous</em> startup cost involved with that&mdash;wouldn't be any different. It'd still be us same people writing the code and making the exact same mistakes we do or would with MLLE. Just because a JCS+ started out as JCS doesn't mean it wouldn't be modified to do different things as time goes on&mdash;otherwise there'd be no point in at all. Switching from MLLE to a JCS+ in no way would eliminate human error.

(As for MLLE's color scheme, that's because <a href="http://www.tachyonlabs.com/sam/jjhq/images/earlyjcs1.png">the level editor that Epic Games actually used to make Jazz 2 looked just like that.</a> JCS's pinkpurple makeover was just to make it fancier for the players. But I'd love to see a more colorful MLLE if you felt like forking it, like Stijn said; it's just never been a priority for me.)

Also, fun fact: it's possible to create .j2l files that <em>unpatched</em> JJ2 can open just fine, yet if <em>JCS</em> saves them, they get corrupted or lose information.

Darkhog
Nov 30, 2017, 04:34 PM
And the MLLE is such a stable editor. So stable, in fact, that it crashes right at the start and doesn't even display parallax correctly, unlike JCS.

https://pastebin.com/NsMEg69k

Such a stable and properly working editor indeed.

//edit: And if you're wondering, the level I've opened was a bog-standard "my first level", just starting position, some background tiles to avoid trail effect and an exit sign. Not even a single enemy.

Jelly Jam
Dec 1, 2017, 01:49 AM
MLLE is already good and Violet will (hopefully!) keep working on it. So none of the things you said will stay an issue forever.

djazz
Dec 1, 2017, 02:27 AM
I should continue my work on WebJCS someday...

Slaz
Dec 1, 2017, 03:00 AM
I should continue my work on WebJCS someday...

I was just about to mention WebJCS here. I've made 2 levels entirely with the original version of WebJCS, and had no compatibility issues with any 1.23 or 1.24 version of JJ2 or the original JCS. While it doesn't have Plus compatibility other than JCS.ini properties, it does have the unique ability of collaboration with multiple people editing on the fly.

It also looks somewhat like the original JCS if that's of any value.

I'm still hosting a public non-collab version on my server that you can use to load and save files locally, as long as the tileset is present on the server: http://jj2.nl:1998

Primpy
Dec 1, 2017, 03:48 AM
I should continue my work on WebJCS someday...

I highly encourage you to do so. WebJCS is much more comfortable to use than MLLE and regular JCS, at least in my point of view. It has a few tweaks *cough* Not being able to run the level *cough*, fixing those would greatly improve the level creation experience.

Darkhog
Dec 1, 2017, 10:49 AM
I'm still hosting a public non-collab version on my server that you can use to load and save files locally, as long as the tileset is present on the server: http://jj2.nl:1998

I wonder what would it take to wrap it inside something like nodewebkit so it can work as a stand-alone app.

Slaz
Dec 1, 2017, 11:12 AM
I wonder what would it take to wrap it inside something like nodewebkit so it can work as a stand-alone app.


You may be able to use Nexe (https://github.com/nexe/nexe) for that, although I do not have experience with that.

Violet CLM
Dec 2, 2017, 05:37 PM
And the MLLE is such a stable editor. So stable, in fact, that it crashes right at the start
This only happened for users with specific setups, and it could always be remedied in ten seconds if they asked. But the update I uploaded to J2O today should fix it altogether.

and doesn't even display parallax correctly, unlike JCS.
Try clicking the "Parallax" button or reading the mentions of "Parallax" in the J2O download description.

Darkhog
Dec 3, 2017, 12:22 PM
Yes, clicked it, it went to the "button pressed" graphic, no other effect whatsoever. But I guess since it's crashes anyway (see the pastebin), it's too buggy to use anyway. Will check the update to see if it fixes it.

//edit: Seems to work nice. Though when I've clicked the tileset with ctrl key... What's the proper channel to give feedback on MLLE?

Violet CLM
Dec 3, 2017, 01:11 PM
to be sure, the Parallax button will only have a visible effect in levels that have more than one layer

Darkhog
Dec 3, 2017, 01:28 PM
I know. But I'm using layers (I have to anyway at least for layer 8 or the trail will be present) and it did nothing in the previous version. Seems to work now though.