Register FAQ Search Today's Posts Mark Forums Read
Go Back   JazzJackrabbit Community Forums » Open Forums » JCS & Scripting

MLLE - Playing catch-up with DJazz

Reply
 
Thread Tools
Violet CLM

JCF Éminence Grise

Joined: Mar 2001

Posts: 11,047

Violet CLM has disabled reputation

Jun 25, 2011, 10:12 PM
Violet CLM is offline
Reply With Quote
MLLE - Playing catch-up with DJazz

MLLE, short for Multi-Layer Level Editor, is an alternative to JCS that I am currently developing. It allows opening, viewing, editing, and saving of levels compatible with any version of the Jazz 2 engine, including Battery Check, Animaniacs: A Gigantic Adventure, and all OEM versions of Jazz 2 itself, as well as free conversion among those versions. It allows the creation of levels for JJ2+ that use multiple tilesets, custom palettes, and various other features. It is also intended to eventually subsume the functions of Reworder and make various other improvements on the JCS featureset.

You can download the most recent (December 14th, 2017) test release here.
__________________

Last edited by Violet CLM; Dec 14, 2017 at 06:11 PM.
Stijn

Administrator

Joined: Mar 2001

Posts: 6,965

Stijn is a splendid one to beholdStijn is a splendid one to beholdStijn is a splendid one to beholdStijn is a splendid one to beholdStijn is a splendid one to beholdStijn is a splendid one to beholdStijn is a splendid one to behold

Jun 27, 2011, 02:03 PM
Stijn is offline
Reply With Quote
Until someone comes along and kindly explains what this is all about I'll just assume you took a screenshot of JCS running on a really large screen. Not really worth a thread.
cooba

JCF Veteran

Joined: Jan 2004

Posts: 7,814

cooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of light

Jun 27, 2011, 02:26 PM
cooba is offline
Reply With Quote
But JCS doesn't show events on the parallax display
Violet CLM

JCF Éminence Grise

Joined: Mar 2001

Posts: 11,047

Violet CLM has disabled reputation

Jun 27, 2011, 07:08 PM
Violet CLM is offline
Reply With Quote
Quote:
Originally Posted by cooba View Post
But JCS doesn't show events on the parallax display


Update: hard to show with a screenshot, but all animation properties are now working properly. Next up, reading data3 from .j2t files for those .1% of tilesets with pure black pixels.
__________________
Sean

JCF Member

Joined: Oct 2010

Posts: 720

Sean is a forum legendSean is a forum legend

Jun 27, 2011, 07:11 PM
Sean is offline
Reply With Quote
It's possible he used a screen-shot of the editing display and superimposed it onto the parallax display in an image editor. Not too hard if you know how to get rid of the Jazz Blue.
__________________
drop by my SoundCloud or something if you want, it's my life's pride
Seren

JCF Member

Joined: Feb 2010

Posts: 868

Seren is a name known to allSeren is a name known to allSeren is a name known to allSeren is a name known to allSeren is a name known to allSeren is a name known to all

Jun 28, 2011, 02:27 AM
Seren is offline
Reply With Quote
Quote:
Originally Posted by Unknown Rabbit View Post
Next up, reading data3 from .j2t files for those .1% of tilesets with pure black pixels.
Was I the one who inspired you to do that?

I guess we can also expect built-in Reworder functions and full support of meta-animations? And let me ask, is there or will there be something indicating which layer are certain tiles on? Like, every other layer than the one being worked on becoming translucent? It can get really confusing in levels with many layers of the same scrolling speed. When I was working in a level editor of some other game, I often found myself erasing all the work I've just done because of finding out I was working on a background layer all the time instead of the sprite layer. That issue wouldn't be as annoying in here, because JCS has the "B" key (that other one didn't have a copy paste option), but it's a good idea to get rid of it anyway, for the sake of user friendliness.
__________________

I am an official JJ2+ programmer and this has been an official JJ2+ statement.
Violet CLM

JCF Éminence Grise

Joined: Mar 2001

Posts: 11,047

Violet CLM has disabled reputation

Jun 28, 2011, 02:43 AM
Violet CLM is offline
Reply With Quote
Well, I knew you'd like it, but really I'm more interested in invisible masked tiles that aren't invisible in JCS. Assuming I know what you mean by "meta-animations," they're in -- they're really very simple to program -- and other stuff will happen as time goes on. I've considered transparencing non-active layers, or at least ones farther front than the active layer (so 1-3 when editing 4, say), but for now I think the easier option is just to have a simple JCS-like mode with only one layer visible at a time, if only because I actually know how to program that. :# Reworder functions will make it in at some point, though don't be surprised if I release a prototype before getting there.
__________________
cooba

JCF Veteran

Joined: Jan 2004

Posts: 7,814

cooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of light

Jun 28, 2011, 05:08 AM
cooba is offline
Reply With Quote
Quote:
Originally Posted by Sean View Post
It's possible he used a screen-shot of the editing display and superimposed it onto the parallax display in an image editor. Not too hard if you know how to get rid of the Jazz Blue.
My, good thing you're a Photoshop expert!

What else do you have in so far, Violet?
Stijn

Administrator

Joined: Mar 2001

Posts: 6,965

Stijn is a splendid one to beholdStijn is a splendid one to beholdStijn is a splendid one to beholdStijn is a splendid one to beholdStijn is a splendid one to beholdStijn is a splendid one to beholdStijn is a splendid one to behold

Jun 28, 2011, 07:15 AM
Stijn is offline
Reply With Quote
So yeah, someone explain what this is about?
Obi1mcd

JCF Member

Joined: Feb 2010

Posts: 692

Obi1mcd is OFF DA CHARTObi1mcd is OFF DA CHARTObi1mcd is OFF DA CHART

Jun 28, 2011, 08:21 AM
Obi1mcd is offline
Reply With Quote
JCS+, or something thereabouts.
__________________
Define 'normal'.
cooba

JCF Veteran

Joined: Jan 2004

Posts: 7,814

cooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of light

Jun 28, 2011, 12:01 PM
cooba is offline
Reply With Quote
Quote:
Originally Posted by Stijn View Post
So yeah, someone explain what this is about?
Perhaps... a new level editor, as judging from the title, or the screenshot, or the posts following the OP?
Violet CLM

JCF Éminence Grise

Joined: Mar 2001

Posts: 11,047

Violet CLM has disabled reputation

Jun 29, 2011, 01:12 PM
Violet CLM is offline
Reply With Quote
Perhaps so! What else do I have in... really, what you see is what I've got. It reads and stores every last bit of data from a .j2l and its .j2t (even if I don't know what some bytes are for), displays eight layers at the proper parallax speeds relative to one another and scrolls around (with autospeed not yet implemented), reads and displays event names from JCS.ini, and is not remotely interactive. Data3 is in; next I should add support for 1.24 and 1.10o levels, and then saving, and also speed up the drawing function at some point before things get much more complicated.
__________________
Jgke

JCF Member

Joined: Sep 2006

Posts: 974

Jgke is an asset to this forumJgke is an asset to this forum

Jun 29, 2011, 03:27 PM
Jgke is offline
Reply With Quote
Quote:
Originally Posted by Unknown Rabbit View Post
and then saving
This is an useless feature, please concentrate on useful stuff.
Violet CLM

JCF Éminence Grise

Joined: Mar 2001

Posts: 11,047

Violet CLM has disabled reputation

Jul 3, 2011, 08:44 PM
Violet CLM is offline
Reply With Quote
Still no saving, but here's an early render of a version I neglected to mention in the last post: .lvl and .til files from Animaniacs: A Gigantic Adventure! Events aren't being read properly because AGA uses an earlier version of the .j2l format which has a much more complicated event structure, but graphically it looks good. TSF, 1.10o, and Battery Check are all working fine too.

ETA: oh yes, and this pretty much puts the kibosh on all edited JCS screenshot theories.
ETA2: A line of code for your amusement:
Code:
for (byte k = 0; k < 4; k++) alphaAtlas[i % 10 * 128 + i % 1030 / 10 * 40960 + j % 128 + j / 128 * 1280 + k] /*= alphatile[j + k]*/ = (k == 3) ? (j2l.J2T.TransparencyMaskJJ2_Style[Array.BinarySearch(j2l.J2T.TransparencyMaskOffset, 0, (int)j2l.J2T.data3Counter, j2l.J2T.TransparencyMaskAddress[i])][j / 4] == 1) ? ((transp) ? (byte)192 : (byte)255) : (byte)0 : pixel[k];
ETA 3: Code got longer:
Code:
for (byte k = 0; k < 4; k++) alphaAtlas[i % 10 * 128 + i % 1030 / 10 * 40960 + j % 128 + j / 128 * 1280 + k] /*= alphatile[j + k]*/ = (k == 3) ? (((source == TransparencySource.JCS_Style) ? J2T.TransparencyMaskJCS_Style : J2T.TransparencyMaskJJ2_Style)[Array.BinarySearch(J2T.TransparencyMaskOffset, 0, (int)J2T.data3Counter, J2T.TransparencyMaskAddress[i])][j / 4] == 1) ? ((transp) ? (byte)192 : (byte)255) : (byte)0 : (((source == TransparencySource.JCS_Style) ? J2T.TransparencyMaskJCS_Style : J2T.TransparencyMaskJJ2_Style)[Array.BinarySearch(J2T.TransparencyMaskOffset, 0, (int)J2T.data3Counter, J2T.TransparencyMaskAddress[i])][j / 4] == 1) ? pixel[k] : (i == 0 && k == 0) ? (byte)72 : PinkTransparentColors[k] ;
__________________

Last edited by Violet CLM; Jul 21, 2011 at 09:34 PM.
Sean

JCF Member

Joined: Oct 2010

Posts: 720

Sean is a forum legendSean is a forum legend

Jul 4, 2011, 12:42 AM
Sean is offline
Reply With Quote
Quote:
Originally Posted by cooba View Post
My, good thing you're a Photoshop expert!
lol noob. I use Paint.NET.
__________________
drop by my SoundCloud or something if you want, it's my life's pride
Violet CLM

JCF Éminence Grise

Joined: Mar 2001

Posts: 11,047

Violet CLM has disabled reputation

Jul 20, 2011, 11:58 PM
Violet CLM is offline
Reply With Quote
Nothing is finalized, and there's a whole lot of missing functionality (e.g. displaying the tileset, any editing tools at all), but I managed to embed the level display in an editor window, so that's progress! Progress with working scrollbars, no less!
__________________
Obi1mcd

JCF Member

Joined: Feb 2010

Posts: 692

Obi1mcd is OFF DA CHARTObi1mcd is OFF DA CHARTObi1mcd is OFF DA CHART

Jul 21, 2011, 02:54 AM
Obi1mcd is offline
Reply With Quote
A save as image function too? This is looking great, can't wait for a functioning release.
__________________
Define 'normal'.
DoubleGJ

JCF Member

Joined: Sep 2002

Posts: 3,049

DoubleGJ has disabled reputation

Jul 21, 2011, 03:06 AM
DoubleGJ is offline
Reply With Quote
If I can make a suggestion, I would appreciate an option to turn off the darkening of tiles where events are, so that only the text remains.
__________________
"So unless I overwrote my heart with yours, I think not. But I might have." - Violet CLM

Two Games Joined releases:
Control / Splinter (twin singles)
|| Ballistic Bunny (EP)
||
Beyond (maxi-single)
|| Beyond: Remixed (remix EP)
|| Inner Monsters OST (mini-album)
||
Shadows (album)
Sean

JCF Member

Joined: Oct 2010

Posts: 720

Sean is a forum legendSean is a forum legend

Jul 21, 2011, 04:42 AM
Sean is offline
Reply With Quote
Well I'll be, I want this thing.

Gimme now.
__________________
drop by my SoundCloud or something if you want, it's my life's pride
Jgke

JCF Member

Joined: Sep 2006

Posts: 974

Jgke is an asset to this forumJgke is an asset to this forum

Jul 21, 2011, 05:48 AM
Jgke is offline
Reply With Quote
It will contain a possibility to edit text strings from the event viewer, right?
Violet CLM

JCF Éminence Grise

Joined: Mar 2001

Posts: 11,047

Violet CLM has disabled reputation

Jul 21, 2011, 10:56 AM
Violet CLM is offline
Reply With Quote
Obi1: Not implemented yet by any means, but I don't imagine it'll present any serious difficulty since I'm already rendering levels at any resolution at all and the two are pretty much the same.
DoubleDJ: Right now the way I'm doing the event text makes that more difficult than it should be, but said way is also getting increasingly unsustainable the more I think about it, so hopefully I'll find a way to make that possible. It won't show up against all backgrounds very well, but I guess that's why it would be an option. EDIT: Stopped derping and started rendering the different difficulty levels by appealing directly to GL.Color4, rather than wasting time generating every texture four times, so now I feel much more comfortable continuing to use textures for event names. Consider this an easy addition!
Jake: Not a high priority, but sure, that can happen. I think something similar is in that big thread full of interface suggestions.

I'll probably put up a downloadable version once the very most basic level editing functionality is in place, mostly just to get reports of whether it messes up loading or saving any particular level, since I'm only really testing it on a pretty small set and conceivably there's something I just haven't thought of. From there, priorities will continue along the lines of replicating everything else JCS does and then building off of that, aside from certain features that just complement each other well (no point in adding an Undo button and then not adding Redo until some time later). Version changing is the exception so far because it has to be well integrated with saving.

ETA: If anyone wants to be super duper helpful, I don't know how Animaniacs events work, nor the structure of 1.00g/h .LEV files at all, but would love to write code supporting them given some proper specs.

ETA2: A question for y'all. As you've probably noticed, tile 0 uses a different color in JCS than the transparency of every other tile. However, the difference is between 72,48,168 and 79,48,168, and that's really small. Would it be best to make a more dramatic difference, leave the colors as is, or make all transparency look the same?
__________________

Last edited by Violet CLM; Jul 21, 2011 at 03:51 PM.
Sean

JCF Member

Joined: Oct 2010

Posts: 720

Sean is a forum legendSean is a forum legend

Jul 21, 2011, 05:52 PM
Sean is offline
Reply With Quote
I think you should make tile 0 all black in the tileset display.
__________________
drop by my SoundCloud or something if you want, it's my life's pride
Violet CLM

JCF Éminence Grise

Joined: Mar 2001

Posts: 11,047

Violet CLM has disabled reputation

Jul 21, 2011, 08:47 PM
Violet CLM is offline
Reply With Quote
I really do not find that attractive at all.
__________________
Sean

JCF Member

Joined: Oct 2010

Posts: 720

Sean is a forum legendSean is a forum legend

Jul 22, 2011, 05:12 AM
Sean is offline
Reply With Quote
What... only in the tileset display, not the editing display. Or did you program it differently?
__________________
drop by my SoundCloud or something if you want, it's my life's pride
Violet CLM

JCF Éminence Grise

Joined: Mar 2001

Posts: 11,047

Violet CLM has disabled reputation

Jul 22, 2011, 12:37 PM
Violet CLM is offline
Reply With Quote
In JCS, at least, the same transparency color scheme is used for both tileset and level display, and that's definitely the simplest to program, but a black square certainly could be hacked in. That said, I think the best approach is consistency, since it's reassuring when the tiles you select look the same as the tiles you place. Also the Jazz purple is a pretty rare color as far as tileset design goes, whereas black... well...
__________________
WhiteBlaster

JCF Member

Joined: Apr 2008

Posts: 58

WhiteBlaster has disabled reputation

Jul 22, 2011, 03:28 PM
WhiteBlaster is offline
Reply With Quote
I have really no idea how difficult it would be, but what about making it changeable by the user? I mean, the colours would be the same normally, but the user could set an option to put them in contrast...
__________________
Mercatura musicae delenda est.

There is a flame untamed
Deep in my heart
Unyielding, pure Ain Soph
'tis measureless
Our right divine:

Aspire to all horizons
To seek nature ov things
Retreat within yourself
To find the primal breath

Behemoth - Transmigrating Beyond Realms ov Amenti
Violet CLM

JCF Éminence Grise

Joined: Mar 2001

Posts: 11,047

Violet CLM has disabled reputation

Jul 22, 2011, 05:09 PM
Violet CLM is offline
Reply With Quote
Oh, yeah, I could do that too. This is going to have such a glorious .ini file at this rate.
__________________
Sean

JCF Member

Joined: Oct 2010

Posts: 720

Sean is a forum legendSean is a forum legend

Jul 22, 2011, 08:10 PM
Sean is offline
Reply With Quote
Or you put an alternating white and grey checkerboard in place of tile 0. It's the generally accepted depiction of transparency.
__________________
drop by my SoundCloud or something if you want, it's my life's pride
Obi1mcd

JCF Member

Joined: Feb 2010

Posts: 692

Obi1mcd is OFF DA CHARTObi1mcd is OFF DA CHARTObi1mcd is OFF DA CHART

Jul 22, 2011, 10:45 PM
Obi1mcd is offline
Reply With Quote
I'm fine with the standard purple, but giving users a choice would be good.
__________________
Define 'normal'.
Sean

JCF Member

Joined: Oct 2010

Posts: 720

Sean is a forum legendSean is a forum legend

Jul 23, 2011, 08:20 AM
Sean is offline
Reply With Quote
I guess choice is always nice.
__________________
drop by my SoundCloud or something if you want, it's my life's pride
Jgke

JCF Member

Joined: Sep 2006

Posts: 974

Jgke is an asset to this forumJgke is an asset to this forum

Jul 23, 2011, 09:04 AM
Jgke is offline
Reply With Quote
Let people choose a picture for the transparent tile, problem solved :P
minmay

JCF Member

Joined: Aug 2002

Posts: 1,186

minmay is immeasurably awesomeminmay is immeasurably awesomeminmay is immeasurably awesomeminmay is immeasurably awesomeminmay is immeasurably awesome

Jul 23, 2011, 10:59 AM
minmay is offline
Reply With Quote
comment: you have such a wonderful variety of terrible, awful tilesets. i hope you still have the green pikachu one.

question: will this end up compatible with linux? will it at least be runnable on wine? i guess you probably don't know, that's fine.

i dearly look forward to making ridiculous animated crap not being a pain in the butt. thanks in advance.

one feature i would personally like that i don't believe has been mentioned: the ability to show tile masks at the same time as their graphics (by overlaying the mask with 75% transparency or somesuch).
Violet CLM

JCF Éminence Grise

Joined: Mar 2001

Posts: 11,047

Violet CLM has disabled reputation

Jul 23, 2011, 12:02 PM
Violet CLM is offline
Reply With Quote
I think Mac/Linux compatibility will be possible, but I haven't started in on it yet. One thing I believe I'll need to do is make it a lot clearer what endianness I expect when working with the .j2l and .j2t files.
Animations: Yeah, I don't really know how that's going to work, so I'll probably look through the giant idea thread for interface suggestions. People apparently don't like sliders, and you should be able to delete animated tiles without messing up all the lower ones, but I don't presently know what else should happen on that front.
Masks: That's an interesting idea and I'll see how it would look.
__________________
Violet CLM

JCF Éminence Grise

Joined: Mar 2001

Posts: 11,047

Violet CLM has disabled reputation

Aug 1, 2011, 11:33 AM
Violet CLM is offline
Reply With Quote
Another interface question, y'all: JCS uses Control+V to toggle displaying events (and similarly Ctrl+M for masks). Does anyone use this shortcut? I'd really be more comfortable with Control+V meaning "paste," and finding some other key combo for toggling event display, although nothing else would be quite as intuitive.

ETA: actually, screw it. Paste wouldn't be a useful hotkey anyway.
__________________

Last edited by Violet CLM; Aug 1, 2011 at 01:25 PM.
DoubleGJ

JCF Member

Joined: Sep 2002

Posts: 3,049

DoubleGJ has disabled reputation

Aug 1, 2011, 12:41 PM
DoubleGJ is offline
Reply With Quote
Never used these shortcuts myself, though I am aware they exist.
__________________
"So unless I overwrote my heart with yours, I think not. But I might have." - Violet CLM

Two Games Joined releases:
Control / Splinter (twin singles)
|| Ballistic Bunny (EP)
||
Beyond (maxi-single)
|| Beyond: Remixed (remix EP)
|| Inner Monsters OST (mini-album)
||
Shadows (album)
cooba

JCF Veteran

Joined: Jan 2004

Posts: 7,814

cooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of light

Aug 1, 2011, 01:39 PM
cooba is offline
Reply With Quote
It wouldn't hurt to add Ctrl+C and Ctrl+V as alternatives to grab and paste for newer users, I think.
Obi1mcd

JCF Member

Joined: Feb 2010

Posts: 692

Obi1mcd is OFF DA CHARTObi1mcd is OFF DA CHARTObi1mcd is OFF DA CHART

Aug 1, 2011, 10:00 PM
Obi1mcd is offline
Reply With Quote
I wasn't aware they existed, so it should be fine to replace. Perhaps Ctrl-N for the events, since it's next to M.
__________________
Define 'normal'.
Violet CLM

JCF Éminence Grise

Joined: Mar 2001

Posts: 11,047

Violet CLM has disabled reputation

Aug 1, 2011, 10:39 PM
Violet CLM is offline
Reply With Quote
Ah, but Ctrl+N is New (Level), and that's actually a fairly standardized usage.

Anyway, I'm putting that off by working on the event selection window. This time around, you'll get to define your own personal event tree (although of course the old JCS categories will come as default). Also you can't type things that aren't numbers in the edit boxes; fun stuff! Not totally sure what to do with that stupid Illuminate Surroundings checkbox; maybe I'll just leave it in in hopes that blur will someday make it work for events besides Extra Live.
__________________
Obi1mcd

JCF Member

Joined: Feb 2010

Posts: 692

Obi1mcd is OFF DA CHARTObi1mcd is OFF DA CHARTObi1mcd is OFF DA CHART

Aug 1, 2011, 10:42 PM
Obi1mcd is offline
Reply With Quote
Oh, whoops, forgot entirely about New.
__________________
Define 'normal'.
DoubleGJ

JCF Member

Joined: Sep 2002

Posts: 3,049

DoubleGJ has disabled reputation

Aug 2, 2011, 04:11 AM
DoubleGJ is offline
Reply With Quote
Quote:
Originally Posted by Unknown Rabbit View Post
Also you can't type things that aren't numbers in the edit boxes; fun stuff!
So in JCS you can? I never noticed :B
__________________
"So unless I overwrote my heart with yours, I think not. But I might have." - Violet CLM

Two Games Joined releases:
Control / Splinter (twin singles)
|| Ballistic Bunny (EP)
||
Beyond (maxi-single)
|| Beyond: Remixed (remix EP)
|| Inner Monsters OST (mini-album)
||
Shadows (album)
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On

Forum Jump

All times are GMT -8. The time now is 03:02 PM.