PDA

View Full Version : WebJCS


djazz
Aug 21, 2011, 01:37 PM
New version: http://www.jazz2online.com/jcf/showthread.php?p=471684#post471684

http://i.imgur.com/wGKXc.png
Download WebJCS from Chrome Web Store here (https://chrome.google.com/webstore/detail/aknledcfpmoikjolpgdpadhmhnbemnjd).

WebJCS is a fanmade version of Jazz Creation Station running in a web-browser.
Currently the only supported browser is Google Chrome (http://www.google.com/chrome), but I'd like to support more browsers, such as Firefox.
Some reasons why this isn't cross-browser:

It is using special APIs only available in Google Chrome (such as the FileSystem API).
It requires fast graphics rendering (Chrome renders twice as fast as FF).
It requires some of the latest ES5 (http://en.wikipedia.org/wiki/ECMAScript), HTML5 (http://www.w3.org/html/logo/) and CSS3 (http://www.css3.info/) features.
Chrome's JavaScript engine, V8, is (with my experience) the absolute fastest JS engine available.
The browser needs to render the page correctly, when in standards mode.
You can run it as app in Chrome and it's easy to install it from the Chrome Web Store (https://chrome.google.com/webstore).


When the basic JCS functionality is done, I can start add new features, such as the first idea of a web-based JCS: Collaborative level editing.

Things to do next: Bugfixes (Saving don't always work, for example), an interface to select events, changable level properties, better help-string editor, editable JCS.ini, better filesystem browsing with features like rename, delete, sort, and other settings.

Want to suggest a feature to a new version of JCS? Use this (http://www.jazz2online.com/jcf/showthread.php?t=15794) thread. Only post WebJCS related questions/posts in this thread.

djazz
Aug 22, 2011, 09:32 PM
A new stable version (https://chrome.google.com/webstore/detail/aknledcfpmoikjolpgdpadhmhnbemnjd) (1.1) of WebJCS has been released!

Some new features:

Level and tileset loading now runs on the main thread instead of it's own. This is much faster because it don't have to send the level/tileset data back and forth.
I created a colorpicker and with it you can change the standard blue backgrounds to your own.
Layer properties should be fully working.
You can clear a layer by pressing the [x] button.
Scrollbars have been tweaked, should now work as you expect them to ;)
I tried to change the layout from flexible box model to tables, but failed. It is now using JavaScript to calculate the sizes of tileset, layer, anims and parallax view when resizing or when draging the anim/parallax toolbars.
The events are now stored in a separate array (same as the one in data2). Before, events were stored in each tile, and those could be drawn on other layers or get overwritten.


Enjoy ;-)

djazz
Aug 23, 2011, 03:14 PM
Version 1.2 is released, which features a fully functional Level Properties dialog.. with realtime as-you-type HelpString-previews! (If you find any bugs with coloring etc.. please let me know)

The screenshot shows how the preview works:
http://i.imgur.com/flNy8.png (https://chrome.google.com/webstore/detail/aknledcfpmoikjolpgdpadhmhnbemnjd)

WebJCS now has 34 users! :)

Oh, if you have problem running it with Chrome 13, try Chrome Canary (http://tools.google.com/dlpage/chromesxs). It installs alongside your current Chrome and WebJCS works better there. It's a highly experimental version of the browser, so be careful.

Violet CLM
Aug 23, 2011, 04:15 PM
Very, very pretty. Concerns:
I would suggest adding a button to summon up the text spacing character, since it's hardly going to be on most people's keyboards.
"Homecooked" is not really the best label.
Min. and Start lights needn't be limited to the 0-100 (=0-64) range.

djazz
Aug 24, 2011, 05:01 AM
I would suggest adding a button to summon up the text spacing character, since it's hardly going to be on most people's keyboards.
I added buttons for #, § and |.

"Homecooked" is not really the best label.
I replaced it with "Hide level in Home Cooked Levels list" (same as what JCS says).

Min. and Start lights needn't be limited to the 0-100 (=0-64) range.
The value is now from 0 to 127 (=0-81, roughly).

cooba
Aug 24, 2011, 07:29 AM
DJazz asked me if I had any ideas about making MCEs easier to put together, so here goes:

By know, you already know how the generating event's ID affects the created object's placement:

<img src="http://chaos.foxmage.com/cooba/mcepixels.png" />

Using event 32 (in this case, Lori Start, thanks to JJ2+) will thus move the object 32 pixels to the right from its origin:

<img src="http://chaos.foxmage.com/cooba/mcemove.png" />

Now, imagine that you're me and you want to make a slightly complex bunch of MCEs like this:

<img src="http://chaos.foxmage.com/cooba/mcecomplex.png" />

My suggestion is: make the editor put a marker showing where the object will appear in game.

<img src="http://chaos.foxmage.com/cooba/mcemarker.png" />

This would be useful to have, considering how it took me like 10 minutes to get this particular example MCE to appear correctly.

<img src="http://chaos.foxmage.com/cooba/mcemarker2.png" /> <img src="http://chaos.foxmage.com/cooba/mceingame.png" />

Violet CLM
Aug 24, 2011, 11:27 AM
That's not bad, but I'm wondering when you'd a) need to know the exact column the event ends up being generated in but b) imprecisely enough that a vertical line will be sufficient. The only two times I can think of that I've been concerned with the exact column like that are a) five event MCEs, necessarily and b) something that's going to interact with the masking somehow, and I'm not sure a vertical line would be enough. Obviously those are just simplified examples, but why else would you ever use numbers besides 32, 64, 96, and 127?

djazz
Aug 28, 2011, 06:29 AM
A work in progress:
http://i.imgur.com/BBq1n.png

Sean
Aug 28, 2011, 09:30 PM
Nice to have the event number right next to the event name.

djazz
Aug 29, 2011, 10:07 AM
I have released a new version of WebJCS (https://chrome.google.com/webstore/detail/aknledcfpmoikjolpgdpadhmhnbemnjd), featuring select event-dialog and some bugfixes.

If you find any bugs, don't wait and report them here.

http://i.imgur.com/lO5Zn.png

New hotkeys: E, Ctrl+E and Shift+E for events. Also, rightclickmenus for tileset and layer views.

50 users!

Obi1mcd
Aug 29, 2011, 10:16 AM
I think I may get Chrome just for this.
The search box for events is a nice touch, by the way.

djazz
Sep 19, 2011, 01:00 AM
Chrome 14 has been released in the stable channel! You can now enjoy WebJCS again :)

Violet CLM
Sep 20, 2011, 08:31 AM
All right, I updated Chrome and tried this out. Just scrolling around in Haunted1, it looks great, though I haven't done any extensive testing to make sure everything's saved properly and such. B and such are working perfectly. One issue I had is that Ctrl+E in Chrome puts a question mark in the omnibox and this blocks the Grab Event behavior. I suspect you are much more versed in Chrome than I am; how do I turn off this behavior?

One thing I'm personally doing differently than in JCS is the default settings for Layer 3: I'm not sure I've ever once used the 1.5/1.5 speeds, so I initialize it as 256/64 and 1/1, just like Layer 4. If you're trying for 100% accuracy, ignore me, but I find it more useful that way.

I'm not sure how I feel about the up/down buttons for animated tiles. All references to the relevant animations within the level remain the same, so that clicking the buttons functionally changes which animated tiles are used at specific places in the level. I had expected the buttons would only rearrange the animations for aesthetic purposes, that is, allowing the user to sort related animations together without changing the level itself. On the other hand, I'm not sure if either approach is more "right" in any meaningful way? What purpose do you plan on the functionality serving, as it is presently implemented?

Are animated tiles properties not implemented yet, or could I just not figure out how to bring up the window?

I was able to mess up the animated tiles somehow, causing big question mark tiles to appear in place of certain frames, but I'm not yet sure of the exact set of steps. I'll get back to you.

The event selection window looks great. I know from experience that there's some tricky stuff there, although I suppose it's a lot simpler without trying to hack in AGA support, and it seems to match JCS behavior quite well. The only issue I notice -- and it's an "issue" only in that JCS does it differently, not in that it's necessarily wrong -- is that when you hover over a generator event, the description at the top is different than the one JCS offers. You have the event name be the event being generated and include the parameters numerically, whereas JCS calls it a "Generator" but gives the name of the event being generated as the first parameter in place of the actual ID. I don't know if this was a conscious decision or not so I thought I should point it out just in case.

Seren
Sep 20, 2011, 08:58 AM
I'm not sure how I feel about the up/down buttons for animated tiles. All references to the relevant animations within the level remain the same, so that clicking the buttons functionally changes which animated tiles are used at specific places in the level. I had expected the buttons would only rearrange the animations for aesthetic purposes, that is, allowing the user to sort related animations together without changing the level itself. On the other hand, I'm not sure if either approach is more "right" in any meaningful way? What purpose do you plan on the functionality serving, as it is presently implemented?
Imagine you have accidentally deleted some animated tile in the middle of a huge list of e.g. 100 animations (because you're working on an animation-based level =P). Thanks to the arrows you won't have to delete all the following ones to get the level back to normal, you'll just create that deleted animation again and return it to its place. I admit it's not a great example, because it needs a level maker to make a mistake in the first place, I can't think of anything better though.

And yes, I know I wasn't the one asked, but I tried to figure out the reason for placing those arrows before already, so I thought I'll share my conclusions.

djazz
Sep 20, 2011, 10:18 PM
... though I haven't done any extensive testing to make sure everything's saved properly and such.
Saving seems broken, I don't know what the problem is yet. It's probably the compressing function that's not behaving as expected.

One issue I had is that Ctrl+E in Chrome puts a question mark in the omnibox and this blocks the Grab Event behavior. I suspect you are much more versed in Chrome than I am; how do I turn off this behavior?
Just press F11 to run in fullscreen or open the app as windowed (rightclick the app in the new tab page). There may be some way to override default behaviour which I'm at the moment are not aware of.

Are animated tiles properties not implemented yet, or could I just not figure out how to bring up the window?
Currently unimplemented.

I was able to mess up the animated tiles somehow, causing big question mark tiles to appear in place of certain frames, but I'm not yet sure of the exact set of steps. I'll get back to you.
The question mark appear when an animated tile could not be found in the animation list. Keep in mind it also can appear in another animation because of the "CRAZY ANIMS" behavior (animations as frames).

The only issue I notice -- and it's an "issue" only in that JCS does it differently, not in that it's necessarily wrong -- is that when you hover over a generator event, the description at the top is different than the one JCS offers. You have the event name be the event being generated and include the parameters numerically, whereas JCS calls it a "Generator" but gives the name of the event being generated as the first parameter in place of the actual ID. I don't know if this was a conscious decision or not so I thought I should point it out just in case.
I could add something stating it's a regenerating event, yes, but I also want the name of the event and the same parameters to be shown, not just "Generator" and replacing the event parameter with the name that JCS do.

@Sir Ementaler & Unknown Rabbit about anim-arrow sorting
I got the idea about arrows and that someone might find it useful. Use it or not use it, your choice :)

Love & Thunder
Sep 28, 2011, 06:13 PM
I installed Chrome to use this(I normally use Firefox), but Chrome required me to register and give them my Phone Number, so I gave up and uninstalled Chrome, it's a shame though, because I'd love to try this out. :(
Oh well. Good luck with this, and let me know when it supports Firefox!

Troglobite
Sep 28, 2011, 07:28 PM
I installed Chrome to use this(I normally use Firefox), but Chrome required me to register and give them my Phone Number, so I gave up and uninstalled Chrome, it's a shame though, because I'd love to try this out. :(
Oh well. Good luck with this, and let me know when it supports Firefox!

Google probably already knows your phone number anyway. And besides, their motto is Don't be Evil. So you know you can trust them with all your deepest secrets.

Obi1mcd
Sep 28, 2011, 10:16 PM
Phone number?? I didn't give them a phone number. Or at least I don't think I did.

KRSplat
Sep 28, 2011, 11:28 PM
Google tends to ask for a phone number for verification when you make a new account, I remember doing it when I made my Gmail but not afterward for Chrome or anything else.

Obi1mcd
Sep 28, 2011, 11:36 PM
Ah, ok. That makes sense.

minmay
Oct 17, 2011, 10:18 AM
Just wanted to say, thanks for making this. A recent change of operating system made the JCS animated tiles and parallax view inaccessible, the former of which puts a cap on levelmaking, as you might imagine. So without having this alternative, I wouldn't be able to make any levels until I get enough intelligence to fix this issue.

Jgke
Oct 17, 2011, 10:33 AM
What OS are you using?

minmay
Oct 18, 2011, 04:50 PM
Ubuntu 11.10, upgraded from 11.04. To be more specific about the JCS issue, it has a tendency to think its window is larger than it is (I had this on some versions of Windows too), which results in it putting those two views outside of the area you can interact with.

Jgke
Oct 18, 2011, 08:27 PM
Hmm.. Have you tried using a virtual desktop with wine?

minmay
Oct 19, 2011, 11:11 AM
Yes, it doesn't do anything in particular. Messing with window manager settings, the best I can get is access to the bottom row of tiles. If you want to continue this, please make another topic or PM me, I don't want to choke up this one with unrelated stuff.

EDIT: Problem just went away. Resizing the window so it's bigger than my actual display offers access to the Animated Tiles/Parallax Display windows, which can then be moved into a reasonable position. I really should have thought of that earlier.

djazz
Nov 14, 2011, 09:21 AM
Hey again!

I have changed quite much under the hood in WebJCS since last update, not much visual changes. The WebJCS app on Chrome Web Store will remain there, as I can't upload this on the store because of some new features and technologies.

DOWNLOAD HERE! (http://djazz.se/files/WebJCS+Node.zip) (hosted on my own webserver, djazz.se)

What is new?

Levels and tilesets are loaded from your drive, no longer need to manually add j2l and j2t files
Saving works!
You can play your level without saving it
I have replaced the FileSystem API with HTTP calls to a mini-webserver, that also handles decompressing of j2l/j2t, launching JJ2 (Run) and Chrome. The mini-webserver is written in JavaScript and is powered by Node.JS (http://nodejs.org/).


How to run WebJCS
Unzip it in any folder, not necessarily in your Jazz2 folder.
Edit the file settings.ini to match your configuration, such as path to Jazz2 folder for finding level/tilesets, command to run when you want to Run your level and the path to your Chrome install.
Then make a shortcut to the WebJCS.bat file, as you would do with any program/file you want a shortcut to.
Run it!

Click for larger screenshot:
http://i.imgur.com/GJOtu.png (http://i.imgur.com/Yck4t.png)

Violet CLM
Nov 14, 2011, 10:04 AM
Your save code's looking pretty solid there! You do seem to be checking for events on animated tiles now, you're calculating DoesLayerHaveAnyTiles on saving, and it looks like you're even counting flipped tiles (even within animated tiles), even though that section of data1 was only added to the wiki yesterday. Fast work! Issues I've noticed so far:
In JCS, if your selected tiles come from the tileset, the blank tile (0,0) will always paste, even if you're not holding down shift. You only have it paste if you're holding shift or if it's the sole tile in the selection.
The "saved files" list seems to have some sort of maximum length, since it only gets as far as R.
You don't do a password check.

djazz
Nov 14, 2011, 10:22 AM
Your save code's looking pretty solid there! You do seem to be checking for events on animated tiles now, you're calculating DoesLayerHaveAnyTiles on saving, and it looks like you're even counting flipped tiles (even within animated tiles), even though that section of data1 was only added to the wiki yesterday. Fast work!
Yeah I was getting AVs with flipped tiles, so i checked the J2L spec and found something new! Nice!

In JCS, if your selected tiles come from the tileset, the blank tile (0,0) will always paste, even if you're not holding down shift. You only have it paste if you're holding shift or if it's the sole tile in the selection.
Must have forgotten that, thanks. I think the old/early versions of WebJCS had the JCS behavior there. I haven't reused any code from the old versions, I want this to be fresh.

The "saved files" list seems to have some sort of maximum length, since it only gets as far as R.
Fixed in latest Node.JS.

You don't do a password check.
That's right. What do one want to protect btw? One's Super Awesome Multi Combo Event?
Ofc, it could be nice for Singleplayer levels, that once you finish, you get the password and can see how whatever-in-the-level was made. Need more arguments though.

Violet CLM
Nov 14, 2011, 10:53 AM
I dunno, but about 20% of levels are passworded, so that's a not insignificant number of users to worry about.

djazz
Nov 14, 2011, 10:49 PM
The "saved files" list seems to have some sort of maximum length, since it only gets as far as R.
This seems fixed in latest version of Node.JS v0.6.1, try download again, I have included the updated executable. I had this issue before too, it seems fixed now.

djazz
Nov 15, 2011, 08:43 AM
You can now edit the event list, you can also make as many categories you want for your events.
I have included a JCS.ini file I made just for WebJCS.
Also added an option for "Tile Cache (http://www.jazz2online.com/jcsref/node.php?node=79&mode=id&menu=topics) lines" (drawn above tiles), check it out!
If you got any ideas of what i should prioritize next? I'm open for suggestions :)

Violet CLM
Nov 15, 2011, 09:26 AM
Animations, perhaps? There doesn't seem to be a properties editing window yet, and as far as I can tell, you haven't implemented the random adder amplitude for frame wait. (And depending on how you've been doing animations so far, implementing it may require you to recode a significant portion of them.) Also anything you could do to speed up startup time would be much appreciated.

minmay
Nov 15, 2011, 01:29 PM
Wait wait wait. The random adder thing actually does something? I wish I'd known that, oh, about ten years ago...

djazz
Nov 15, 2011, 01:39 PM
Animations, perhaps? There doesn't seem to be a properties editing window yet, and as far as I can tell, you haven't implemented the random adder amplitude for frame wait. (And depending on how you've been doing animations so far, implementing it may require you to recode a significant portion of them.) Also anything you could do to speed up startup time would be much appreciated.
There is now an Animation Properties window, open it by rightclick on an animation. I haven't planned about Random Adder, but if it turns out simple I could implement it. I'm doing animations by calculating time offset, I guess JJ2 don't do this.
About startup-time I don't think I can do much more. Reading 100-200 tilesets just to get version and title is slow :P
http://i.imgur.com/U4KvA.png

Wait wait wait. The random adder thing actually does something? I wish I'd known that, oh, about ten years ago...
From the JCS help:
Random adder amplitude for frame wait
This value is used to make the wait between animation cycles semi-random. A random number in the range [-1..1] will be multiplied with the random adder amplitude value and added to the amount of frames to wait between cycles. So, if the amount of frames to wait is 10 and the random adder values is 4, the animating tile will wait anywhere between (10-4=) 6 and (10+4=) 14 frames after each animation cycle.

Violet CLM
Nov 15, 2011, 01:49 PM
Reading 100-200 tilesets just to get version and title is slow
*1125
Even so, it shouldn't be that slow... you only need the first 222 bytes or so of each file, after all, unless javascript is just inherently limited in that direction.

JCS does it that way, but not JJ2. A simple modulo won't do the trick for random amplitude at all, since the length of the sequence can potentially change every time it restarts.

djazz
Nov 15, 2011, 10:51 PM
In JCS, if your selected tiles come from the tileset, the blank tile (0,0) will always paste, even if you're not holding down shift. You only have it paste if you're holding shift or if it's the sole tile in the selection.
Fixed
Also made so that when you shrink a layer, it displays a warning/confirm box.

djazz
Nov 16, 2011, 03:03 AM
Even so, it shouldn't be that slow... you only need the first 222 bytes or so of each file, after all, unless javascript is just inherently limited in that direction.
I have now updated it so that it only reads the 50 needed bytes from the header. 50 bytes after copyright (180).

djazz
Nov 16, 2011, 08:00 AM
Triplepost yay!

Anyways, here are some more bugfixes and features:


Warp-lines!! :D
Lines are drawn between a Warp and Warp Targets with same ID. See the image below for more information. It's toggleable in the settings and requires [Events] to be visible.
You can set event parameters to zero. Some if-statement failed. Strange nobody found this :P
Fixed a bug with Animation Properties showing up for the wrong animation.
Fixed a bug where flipped frames could cause AVs.


Here's a download link: http://djazz.mine.nu/files/WebJCS+Node.zip

http://i.imgur.com/QNHSC.png

djazz
Nov 18, 2011, 02:24 PM
J2O download: http://www.jazz2online.com/downloads/6796/webjcs/

FQuist
Nov 18, 2011, 03:15 PM
Nice work!

Jgke
Nov 19, 2011, 02:43 AM
Suggestion, an arrow or two to tell the direction of the warp? Like W-->--Wt
It would help showing if the events aren't visible (and make it clearer with multiple warps and warp targets near each other)

djazz
Nov 20, 2011, 09:40 AM
Suggestion, an arrow or two to tell the direction of the warp? Like W-->--Wt
It would help showing if the events aren't visible (and make it clearer with multiple warps and warp targets near each other)

I made so that lines gradient from green to red, adding arrows will get cluttered.
Also some other new stuff, like layer-panning.

http://www.jazz2online.com/downloads/6796/webjcs/

djazz
Nov 21, 2011, 12:41 AM
How to used flipped tiles for destruct/stomp/collaps/trigger scenery
Not only flipped tiles but also flipped animations!

This only works with WebJCS.

The result:
http://i.imgur.com/MvGlW.png

Behind the scenes:
http://i.imgur.com/0aHWs.png

If you want flipped animations for your destruct/etc-scenery, just edit Anim 1.
To place animations as frames, place the cursor where you usually would, hold Ctrl and click the animation you want to use. Hold F to make it flipped.

In future versions of WebJCS i will probably do so you don't have to put that extra tile (Anim 1) manually. For now, you can place it ANYWHERE in the level, for example behind some layer 3 scenery.

Screenshots of WebJCS running on Windows XP and Ubuntu 11.04 (click for larger version):
http://i.imgur.com/HCEoz.png (http://i.imgur.com/yaisb.png)

http://i.imgur.com/tgCyH.png (http://i.imgur.com/GYrL5.png)

Violet CLM
Nov 21, 2011, 10:18 AM
Sounds like you might know something about how to prevent nested animations from crashing TSF? Care to share?

RedMser
Nov 24, 2011, 06:35 AM
I think it's (or not) a bug, but if you Save the map when trying to use Tile Cache (e.g. for Triggers in background) it won't really work.
Are you planning to add a feature to make Tile Cache stuff easier (Such as you can place Triggers in layer 8 and it automaticly places the Tile Cache tiles.)?

Also what about adding a shortcut for changing the tiletype to normal (e.g. making fog and want to remake it back to normal, then you have to spam rightclick, so what about holding e.g. shift+n to change all back to normal)?

djazz
Nov 25, 2011, 09:19 AM
First level made with WebJCS collaboration released!
http://www.jazz2online.com/downloads/6806/asinine-armory/
Thanks to Sean and MSD.

djazz
Nov 30, 2011, 01:53 PM
I made a short demo of WebJCS on youtube:
<iframe width="640" height="360" src="http://www.youtube.com/embed/ksVPCN9XxAc?rel=0&amp;hd=1" frameborder="0" allowfullscreen></iframe>

djazz
Dec 1, 2011, 11:55 AM
Undo and redo functions are now working! Expect a new version soon!

Only stuff drawn in the layers view can be undone/redone. Undo is also disabled for collaborations, gets tricky with multiple people drawing (on maybe same spot).

Edit:
Made a G+ page for WebJCS, see it here:
https://plus.google.com/107569713951933401034

djazz
Dec 2, 2011, 08:12 AM
WebJCS 1.2 released, download here: http://www.jazz2online.com/downloads/6796/webjcs/

djazz
Dec 3, 2011, 10:40 AM
WebJCS 1.2.1 released:
Fixed a major bug related to undo/redo.
Animations, tile types and level properties now gets synced while editing in realtime.
New hotkeys for Run, Save As and Open. I can't override Ctrl+N, so it's Alt+N.

Well, 5th post in a row :P

Sean
Dec 3, 2011, 03:32 PM
C-c-c-c-c-c-c-combo breaker!

Love how it's all gone so far, and I will be posting up a review once the final version is released!

One thing to note:

I run JJ2 and my normal JCS from a pendrive, and so the path for JJ2 is not consistent. I tried setting the JJ2 path in settings.ini to have two possibilities since they will be the most occuring ones:

1=F:\Applications\Jazz 1.23\Jazz2\
2=G:\Applications\Jazz 1.23\Jazz2\

I then ran WebJCS, but the tilesets didn't show up. Since the drive letter of my pendrive at the time was G:\, I quit and swapped the paths around in settings.ini so that G:\ got scanned first. The tilesets still didn't show up. Once I removed the F:\ drive from settings.ini though, it worked. Maybe add a clause for missing paths?

It should be worth noting at the time that F:\ is a FAT32 partition to swap files between Mac and Windows, and that no Applications folder exists there, much less a Jazz folder.

djazz
Dec 6, 2011, 09:03 AM
Sean's post

Fixed.

Here's something I'm making for next version (you can't see it, but the lizards are animated).
I made a PHP script to create a simplified JSON version of Anims.j2a, with only the images. JavaScript then renders the data.
Thx Neobeo!
http://i.imgur.com/3smIE.png (http://i.imgur.com/3smIE.png)

Neobeo
Dec 6, 2011, 09:43 AM
Now all that's left to do is to run the JJ2 engine in the parallax view \o/.

Jgke
Dec 6, 2011, 09:44 AM
Yeah, let's wait for it to be released!

cooba
Dec 6, 2011, 12:01 PM
It's looking alright but can you perhaps make that optional?

Stijn
Dec 6, 2011, 12:04 PM
How do you find out at what position to draw the object sprite? And what happens with events like the Bolly Boss?

djazz
Dec 6, 2011, 11:04 PM
It's looking alright but can you perhaps make that optional?
There's a switch, "Events", on the Parallax View toolbar, just as there is for the layer view.

How do you find out at what position to draw the object sprite? And what happens with events like the Bolly Boss?
All sprites/animations are centered on the position of the event for now. I won't make anything physics/mask related, it would be too slow. For example horizontal springs won't get flipped near a masked tile on their right side.
As for multi-sprite/multi-anim events such as Bolly Boss, CTF Base etc. I will have to make special cases. Also, some animations require palette index changing, such as gems to make gems all colors.

Jgke
Dec 7, 2011, 01:17 AM
For example horizontal springs won't get flipped near a masked tile on their right side.

Why :(

djazz
Dec 7, 2011, 01:42 AM
Why :(

...it would be too slow.

I'm not trying to rebuild the JJ2 engine into WebJCS :P

Jgke
Dec 7, 2011, 02:17 AM
There aren't that many springs in levels. Couldn't you do something per-spring?

cooba
Dec 7, 2011, 04:24 AM
There's a switch, "Events", on the Parallax View toolbar, just as there is for the layer view.Ah, missed it.There aren't that many springs in levels. Couldn't you do something per-spring?Save and Run?

Jgke
Dec 7, 2011, 04:43 AM
But KDE crashes with save + run when I stop JJ2...

Neobeo
Dec 7, 2011, 06:09 AM
There aren't that many springs in levels. Couldn't you do something per-spring?


A horizontal spring is flipped if and only if the pixel at (-17, 15) is unmasked and the pixel at (47, 15) is masked. The reference point (0,0) is given by the top-left corner of the tile on which the spring event is placed.

You'd really only need to check two pixels.

djazz
Dec 7, 2011, 09:32 AM
You'd really only need to check two pixels.
Oh, thanks neobeo! Next WebJCS gets good-looking horizontal springs! It's not perfect, but it should work 99% of the use cases.
http://i.imgur.com/9dDVP.png

With these animations, when compressing all files, it grows above J2O's 2Mb limit, so I'll probably start host it on my site again. Soon.
Also, the multisprites Bolly Boss, Floating Lizard and CTF Base all look pixel perfect! All poles work! Moths gets correct type. Ceiling springs. Gems not in weird colors!

cooba
Dec 7, 2011, 09:47 AM
Psst, your red springs are floating two or three pixels too high.

djazz
Dec 7, 2011, 10:06 AM
Psst, your red springs are floating two or three pixels too high.
No gravity, no physics, no JJ2 engine.

cooba
Dec 7, 2011, 11:12 AM
Well, if you can figure out how to render a flipped horizontal spring, you can probably figure out how to display a regular spring at the bottom of its tile.

GoldRabbit
Dec 7, 2011, 02:13 PM
blah blah

wat

Stijn
Dec 7, 2011, 03:39 PM
Well, if you can figure out how to render a flipped horizontal spring, you can probably figure out how to display a regular spring at the bottom of its tile.

This is actually a lot harder than it would seem. The hotspot/coldspot/whatever it was called that is stored for each sprite is not consistent (or at least not in any way I've been able to find) so you need to either implement some crude physics simulation (find mask beneath object spawn point) or store the offset at which to start drawing for each individual event.

Neobeo
Dec 7, 2011, 11:58 PM
Most objects have their sprite drawn at (15, 15). There are a small number of exceptions. In partcular, for springs:
Ceiling springs are drawn at (15, 11).

Also, for objects that "fall to the ground" at the start, these are divided, for whatever reason, into two classes:
First type: Tuf Turt, Lizard, Hatter, Dog, Skeleton, Turtle, Lab Rat, Sucker, Helmut, Fat Chick, Demon, Monkey, Stand Monkey, Eva, Warp, Birdy, Crab, and a bunch of bosses. These fall by checking every pixel underneath a certain "starting point" which is calculated using a mix of frame size and hotspot values and stops when it hits a mask.

Second type: Steam, (Vertical, Non-Ceiling) Springs, Sign posts, Monitors, Crates, Big Rock, Big Box, Dragon, Fencer, Moth. These fall by moving a certain "starting point" down 4 pixels until it hits a mask. This point is calculated by using a mix of frame size, hotspot and coldspot.

Toni_
Dec 8, 2011, 01:49 AM
What the hell? 1.23 source code? You have it?

Sean
Dec 8, 2011, 02:55 AM
No, he's just stating what it does. No one in this community has the source code, if we had we'd immediately share it.

Jgke
Dec 8, 2011, 02:56 AM
Problem, JRU?

cooba
Dec 8, 2011, 04:43 AM
Shut up about the source code in the WebJCS thread please

djazz
Dec 8, 2011, 05:44 AM
Well, if you can figure out how to render a flipped horizontal spring, you can probably figure out how to display a regular spring at the bottom of its tile.

Once again, thank you neobeo! :cool:

http://i.imgur.com/5S5Gf.png

djazz
Dec 9, 2011, 01:20 AM
You can now preview different ambient light levels in the Parallax View!
Steady and pulze lights works at the moment. Flicker is harder, but i could just put a less luminating circle for them
You can change the preview-level by dragging the slider on the parallax's toolbar.

Screenshot:
http://i.imgur.com/ZP9Ao.png
(ignore the 5 in top left corner, just debugging how many lights that are visible)

Jgke
Dec 9, 2011, 01:54 AM
Woo @ the level!

Sean
Dec 9, 2011, 06:10 AM
Now all that's left... is the release.

djazz
Dec 9, 2011, 07:00 AM
Now all that's left... is the release.
It's on my server (http://djazz.mine.nu/files/WebJCS+Node.zip), until an admin can put it on J2O (http://www.jazz2online.com/downloads/6796/webjcs/), as it's bigger than 2 Mb.

djazz
Dec 17, 2011, 03:12 AM
Me, Cirno and Sir. Ementaler made a screencast of realtime level collaboration in WebJCS! Enjoy!

<iframe width="640" height="360" src="http://www.youtube.com/embed/zwpZVtzSLPs?hd=1" frameborder="0" allowfullscreen></iframe>


ÐJazz: green springs are better
SE': Racist.
ÐJazz: :D

Grytolle
Dec 17, 2011, 04:39 AM
pwn.

Ktos.
Dec 17, 2011, 12:27 PM
Oh, thats looking interesting, but that level could use some eyecandy. Maybe I'll try to check if you are doing anything sometimes. Also, for some reason my WebJCS doesn't work properly, I mean, I can't open it via shortcut. It says that it can't find specified path(Even when I specified correct path in settings.ini). Is that possibile that this program can't read some specific letters like, for example, polish "ś"?

Also, how to force that thing to save in my jj2 directory(I have got only "save as" option available)? Bah.


Oh, I had to edit one more time because yes, this program can't read polish characters.

"B" key doesn't work with 200% zoom.

EvilMike
Dec 17, 2011, 02:03 PM
Me, Cirno and Sir. Ementaler made a screencast of realtime level collaboration in WebJCS! Enjoy!

<iframe width="640" height="360" src="http://www.youtube.com/embed/zwpZVtzSLPs?hd=1" frameborder="0" allowfullscreen></iframe>

This is really cool, makes me want to get back into jj2 level making.

djazz
Dec 20, 2011, 10:10 PM
Textured background!
http://i.imgur.com/aH6LN.png
Coming soon!

Only works for you with WebGL support.

Sean
Dec 20, 2011, 10:58 PM
And here we were, thinking WebJCS was finished.

Violet CLM
Dec 20, 2011, 11:10 PM
What does that do to the FPS? I recall it slowing things down fairly significantly in WebJJ2.

djazz
Dec 21, 2011, 01:40 AM
What does that do to the FPS? I recall it slowing things down fairly significantly in WebJJ2.

That was 2D context, not hardware accelerated. WebGL is OpenGL and it runs on your GPU. Alone, the textured background get 60 fps

Violet CLM
Dec 21, 2011, 07:55 AM
Excellent.

Love & Thunder
Dec 23, 2011, 06:34 AM
When I open it, it doesn't let me select any Tilesets, and any levels I try to open with it say "Tileset not found". I set it up properly and everything.

Sean
Dec 23, 2011, 06:43 AM
Or did you? Are you running an old version? Because I had that problem once and DJazz fixed it with a new update. Granted, I don't actually know what your settings.ini file contains.

Love & Thunder
Dec 24, 2011, 09:20 AM
[server]
port=8000
; Autoclose tries to detect if the client closes.
; In that case, the server closes too
; Set to false to disable (good for debugging, bad for collaboration)
autoclose=true
; Set to true to enable collaboration
; You need to forward the port to your computer
; with your router. Then give your external IP
; to others to join. For example:
; http ://123.345.567.789:8000/
collaboration=false

[folders]
; Paths are looked in the order numbered
; Start on 1, then 2 and so on...
; If two files found have the same filename,
; the first file found will be used.
;
; Note: When you run your level, make sure
; the tileset is in the same folder as your Jazz2.exe
1="C:\Program Files\Jazz Jackrabbit 2 - The Secret Files"
; Wine (Linux) path (replace <username> with your username):
; 1=/home/<username>/.wine/drive_c/Games/Jazz2/

[paths]
; The path to the Jazz2 executable to run
; In my case, I use JJ2+
; %1 gets replaced by the level's filename upon run.
run="C:\Program Files\Jazz Jackrabbit 2 - The Secret Files\Jazz2.exe" %1
; For Wine (Linux), replace <username> with your username.
; run="/home/<username>/.wine/drive_c/Games/Jazz2/Jazz2+.exe" %1
;
; The path to Google Chrome, used to load up the app automaticly
; The following works in Windows Vista and Windows 7, not Windows XP
chrome="C:\Users\Robo4900\AppData\Local\Google\Chrome\Appl ication\chrome.exe"
; chrome=
; Following command is for Linux. Short and simple, isn't it?
; chrome=google-chrome
That is what my settings.ini file says. Enjoy. :) Oh, and WebJCS is in "C:\Program Files\WebJCS", if that's any help.

EDIT: Almost forgot to mention that I'm running the latest version.

Sean
Dec 24, 2011, 09:40 AM
The easiest thing to do would be to put WebJCS in your Jazz 2 folder. I'm not sure if it actually changes anything, but mine works fine and WebJCS is in the same folder. I don't really see any problem with it either. Maybe DJazz will be able to answer your question.

cooba
Dec 24, 2011, 09:44 AM
I had this problem too but now it works just fine and I don't remember how I got the error in the first place.

(This is the least useful post ever but at least you can look at my sig)

Jgke
Dec 24, 2011, 10:09 AM
; 1=/home//.wine/drive_c/Games/Jazz2/
DJ <3

djazz
Jan 5, 2012, 04:21 AM
I'm just toying around with the tile cache. At the moment you can't use this like Reworder, but I'm getting there...
This only previews how the tilecache will look like upon saving.
You can toggle it on/off from the Settings dialog.

Click for large image:
<img src="http://i.imgur.com/ZwCNA.png" width=800> (http://i.imgur.com/ZwCNA.png)

Toni_
Jan 5, 2012, 11:09 AM
I'm not familiar with "Reworder". Could you explain me what is this about?

Jgke
Jan 5, 2012, 11:15 AM
Reworder is a program that allows you to, for example, use triggers on foreground layers.
Ask again if you want technical details.

Violet CLM
Jan 5, 2012, 11:23 AM
Reworder is a program that allows you to, for example, use triggers on foreground <strike>scenery</strike> layers.
Less ambiguous.

Its main use is being able to use any animated tile as trigger scenery, even if it's in another layer or already has another event on it. It also works with destruct scenery, buttstomp scenery, collapse scenery, etc., but trigger scenery is almost certainly most common. However, it has a very limited interface, relies on awkward external files, and its function would better be properly integrated into a level editor.

EvilMike
Jan 5, 2012, 06:00 PM
Cool webjcs is adding support for this. Usually you have no reason to do such low-level editing, but it can be handy for a few tricks. I used tile cache trickery in a level once (Light Switch) and it wasn't really easy, even with Reworder (save the level in jcs = you gotta run reworder all over again).

Jgke
Jan 6, 2012, 01:59 AM
EM, did you know that Reworder has macros? :p

EvilMike
Jan 6, 2012, 04:55 AM
EM, did you know that Reworder has macros? :p

Yeah but they are extremely cumbersome.

Love & Thunder
Jan 6, 2012, 07:12 AM
This sounds so awesome. :D It would be nice to be able to use crazy awesome things like what you've just said. In a level I'm making, I need something in the foreground(Layer 3) to change(Trigger Screnery via a Trigger Crate), but I can't figure out how to get it working.

Jgke
Jan 6, 2012, 08:43 AM
Yeah, you have to use Reworder (http://www.jazz2online.com/downloads/5621/reworder-v09/) to do it. It's a bit complicated, you can PM me if you can't figure out the readme.

Love & Thunder
Jan 6, 2012, 07:35 PM
No thanks, I'll wait for the WebJCS implumentation. :) I don't want to have to open up Reworder every time I save/edit my level. XD

Toni_
Jan 8, 2012, 06:37 AM
Thank you guys. Good job DJazzy!

Sean
Jan 25, 2012, 08:31 AM
Hey DJazz, maybe you could put in an 'X' in the animation window that functions the same as JCS's? I'm running Windows off a Mac using Boot Camp, and as such I have no 'Delete' key assigned, which forces me to save the level, copy and paste it in my Jazz folder, delete the tile in normal JCS, then save and reopen in WebJCS. Quite cumbersome.

djazz
Mar 27, 2012, 02:05 AM
Hey DJazz, maybe you could put in an 'X' in the animation window that functions the same as JCS's? I'm running Windows off a Mac using Boot Camp, and as such I have no 'Delete' key assigned, which forces me to save the level, copy and paste it in my Jazz folder, delete the tile in normal JCS, then save and reopen in WebJCS. Quite cumbersome.

Added the feature on my hosted WebJCS, will soon release new version.

More features for next version:

You can disable textured background, without editing layer 8.
You can take "screenshots" of the parallax view. See image below.
Added a better FPS counter in bottom right corner of parallax view.


<img src="http://i.imgur.com/tK4BK.png" width=640> (http://i.imgur.com/tK4BK.png)

Haven't been working on WebJCS for quite a while, as I'm busy with other stuff.

djazz
Nov 29, 2012, 02:36 PM
Was too long ago I updated WebJCS. The current code is bad structured, so I don't want to continue on it. Therefore, I started from scratch, AGAIN! This must be the 5th JCS I'm making or so. Have a teasing screenshot:

http://i.imgur.com/jz4ed.png

It's using node-webkit so it will have direct access to your filesystem, if run as a native app. You don't have to install Google Chrome/Chromium to use it! It is running in it's own chromium-based webkit enviroment.
I will make it so you can use it in the browser, like it is now, with collaboration. At the moment it's only layout and scrollbars, nothing fancy yet.

I will put the code on github soon, on this URL: https://github.com/daniel-j/webjcs/
At the moment there's an experimental webjcs version there but it'll get replaced by this new one.

Love & Thunder
Nov 30, 2012, 03:55 AM
That sounds awesome! Hopefully, you'll be able to get it stable and working soon. :D

KRSplat
Dec 1, 2012, 07:44 AM
<img src="http://i.imgur.com/tK4BK.png" width=640> (http://i.imgur.com/tK4BK.png)

Btw, what level is this? It looks :god: ing great :D

djazz
Dec 1, 2012, 08:38 AM
@KRSplat

http://www.youtube.com/watch?v=zwpZVtzSLPs

http://www.jazz2online.com/downloads/6827/visceral-tower-collab/

Ninja
Dec 13, 2012, 05:10 AM
I'm extremely inactive these days, but the fact that this WebJCS thing exists is fucking amazing to me. Looks great, good work.

djazz
Dec 13, 2012, 05:16 AM
Thanks Ninja :D


I haven't got much free time at the moment to work on WebJCS etc.. would be cool if someone want to help out programming, all code is on github! :p

Falcury
Mar 16, 2013, 08:41 AM
I tried out WebJCS recently and I must say, I'm very much impressed with the program! I'm hoping to use it for a small collaboration project, but we're having some technical difficulties getting it to work properly...

WebJCS won't let us save levels. When we try, it just endlessly hangs on "Saving level...". It doesn't matter whether collaboration mode is enabled. We're both on Windows 7 using the latest version of Chrome. What are we doing wrong? Is anyone having the same issues?

djazz
Mar 18, 2013, 05:44 AM
WebJCS won't let us save levels. When we try, it just endlessly hangs on "Saving level...". It doesn't matter whether collaboration mode is enabled. We're both on Windows 7 using the latest version of Chrome. What are we doing wrong? Is anyone having the same issues?

Does this work? It works for me: http://djazz.mine.nu:8010/

I have forgot to update the j2o/github version and only updated the live version. I recall that newer Chrome versions have a new API for creating binary files, and that's probably the issue you're facing. I have uploaded the most recent code to j2o, it should work: http://www.jazz2online.com/downloads/6796/webjcs/

I really want to rewrite WebJCS from scratch because of the bad structured code it's based on (the main file is almost six thousand lines long).

djazz
Mar 19, 2013, 07:18 AM
Here's a little dilemma I'm facing:

Should WebJCS be accessible through a web browser like any other web-app/webpage?
Or should it be something you install on your computer, that will have direct access to your local J2L/J2T files?

The former would mean it will work as it does today (http://djazz.mine.nu:8010/), it runs on a small self-contained webserver and is accessible over the web using a web browser (Chrome/Firefox supported).

The latter, more native approach, would mean better offline support. Only one program to keep track of, no extra webserver. I could implement proper Save/Save as functionality and it will be a cross-platform program (packaged in an .exe, if possible).
It will be based on node-webkit (https://github.com/rogerwang/node-webkit). This in turn would increase the size of WebJCS to about 50-70 MB, because of all the webkit dependencies. It will still be "WebJCS", because it's built with the web technologies (HTML5, node.js, CSS3..)
I have also heard that some are afraid to use Chrome/Chromium only to use WebJCS, because they are afraid of Google. This would also solve that issue.
Here's a screenshot of how the "native" WebJCS could look like:
<img src="http://i.imgur.com/jz4ed.png" width=320>

The current development (latest) code for WebJCS 2.0 uses the classic webserver method:
https://github.com/daniel-j/webjcs/tree/dev
Live demo: http://djazz.mine.nu:8011/
It looks like this atm:
<img src="http://i.imgur.com/WLcH7P1.png" width=320>

New features that I'd like to see in WebJCS v2.0:

WebGL rendering (if supported)
Improved speed/performance
Cleaner code, easier to extend/modify
Improved collaboration
To be continued...


I'm also pretty busy at the moment with studies/college, so I don't have as much time to work on this project as I would like to. The current WebJCS release (v1.3.3) is quite sluggish/slow, because it isn't optimized for speed.
I am working on this all by myself. Any help would be highly appreciated. :)

What do you think? What would you use (native/web)?
Any new features that you would like to see in v2.0?

Stijn
Mar 19, 2013, 09:25 AM
It should be available via web, as it's clearly built with technology meant for web and packaging it in such a way that it works natively is, as you say yourself, not the most convenient thing for both developer and user. If you want to make a native app, it seems to me you'd be better off using a programming language/development environment geared to that.

Love & Thunder
Mar 19, 2013, 12:41 PM
I'm with Stijn.
Although it would be nice to have a native program that is like JCS but better, WebJCS would probably work the best on the web.

djazz
Mar 20, 2013, 01:42 PM
I've merged the user interface from the "native" version with the web version.

You may notice some changes from the traditional JCS:
The select box for Tile Type, Events, Mask and (none) have been replaced with four toggle buttons, Image, Mask, Tile Type, and Events. If both Image and Mask buttons are pressed down, you will get the masked view but with the image visible above it, intersected with the mask. It fades when you switch the view ;) See below or try the demo!
Todo next: a class/manager for the layer view.

Live demo: http://djazz.mine.nu:8011/

http://i.imgur.com/h4v2FD4.png

JangoCF
Jan 12, 2015, 06:44 PM
Hey DJazz,

Looks like a sweet program from what I've seen so far. Have looked at some videos. Pretty gud stoof.

Can't get logging in to work. The instant I assign myself a name, the console spits out the message "JangoCF (Shrooblord) left: Connection dropped by remote peer." Do you have any ideas on what could be causing this?

djazz
Jan 13, 2015, 01:10 PM
Hey DJazz,

Looks like a sweet program from what I've seen so far. Have looked at some videos. Pretty gud stoof.

Can't get logging in to work. The instant I assign myself a name, the console spits out the message "JangoCF (Shrooblord) left: Connection dropped by remote peer." Do you have any ideas on what could be causing this?

I added you on Skype.
I think it's because this code is too old for newer web browsers, causing the WebSocket connection to fail.
With "the console" do you mean the one on the webpage or in the terminal window? Any other messages?

I really want to rewrite WebJCS from scratch, but with a full-time job it's hard to find enough time for it.

Slaz
Jan 14, 2015, 02:45 PM
btw, I'm still happily using WebJCS 1.3.3 on my home network, and it still works perfect on my Chromebook as well. Collab is turned off here so I don't know if that still works. Keep in mind though, company/school networks are usually strictly firewalled which may also cause problems with Websocket.

Just so you know that there are more people appreciating this project! ;)

djazz
Jan 12, 2017, 08:08 AM
Sneak peek of WebJCS 2.0, a work in progress. Playing with layer view modes.

YouTube video: https://youtu.be/0Gtq5QnjlJw

http://i.imgur.com/Emcxn5G.gif (https://youtu.be/0Gtq5QnjlJw)

djazz
Jan 24, 2017, 09:40 PM
You can try out the latest build of WebJCS 2 (only tested in Chrome/Chromium) here: http://webjcs.djazz.se
If tiles look messed up, try disabling the WebGL renderer in File > Preferences, then reload page.

Not much to do yet except scrolling, zooming and changing layer view modes. I'm working on it!

Slaz
Jan 25, 2017, 01:22 AM
The noted features work for me with WebGL on in the latest versions of Chrome and Safari. X-Ray view plays nice in action!

Darkhog
Jan 25, 2017, 09:42 AM
Please do test with Firefox as well. Some people don't want to use memory hog called Chrome.

//edit: and please put it up on GitHub or something. So it can be developed faster by more people and so someone else can host it if for some reason you won't be able to do so in the future (I don't think we want to lose such a great tool, do we?).

Seren
Jan 25, 2017, 10:09 AM
and please put it up on GitHub or something. So it can be developed faster by more people and so someone else can host it if for some reason you won't be able to do so in the future (I don't think we want to lose such a great tool, do we?).

So, almost like, the link called "WebJCS on Github" that's already present in the Help menu?

djazz
Jan 25, 2017, 12:43 PM
Please do test with Firefox as well. Some people don't want to use memory hog called Chrome.

//edit: and please put it up on GitHub or something. So it can be developed faster by more people and so someone else can host it if for some reason you won't be able to do so in the future (I don't think we want to lose such a great tool, do we?).
Seems to run fine in Firefox right now.
Later, you will be able to download and install WebJCS as a regular program. If you're on Arch Linux/Manjaro/Antergos, you can install it from the AUR (https://aur.archlinux.org/packages/webjcs-git/).
When running it standalone it uses Electron (http://electron.atom.io/). It also have read and write access to files directly on your drive, just like JCS.

Github link: https://github.com/daniel-j/webjcs

Some help with development would be very appreciated! I have been doing this solo for too long.

djazz
Jan 31, 2017, 02:24 AM
You can now edit the tiles and save it to J2L.
Use B to select tiles in the layer view. It's not perfect yet, will make it work like in JCS. Animations can't be selected atm, only from tileset and layer.
There is also a separate mask togglebutton for the layers.
Horizontal and vertical tile flipping is supported (use plus to see result).
New WebGL renderer that should be more robust and compatible.
Layer properties and level properties dialogs have been added.

https://i.imgbox.com/YNbs8IBl.png

https://youtu.be/ObbvMaaMkF4

djazz
Feb 5, 2017, 07:36 AM
Added a feature unique (as of date) to WebJCS 2: You can offset layer by N pixels! JJ2+ have support for it but no level editor has. See a demo here: https://youtu.be/DRkI-KRsR7o

https://i.imgbox.com/FLoLIT2h.png
Probably not a good idea to use on layer 4, because mask and events don't get moved. Use this to for example offset layer 5 by half a tile.

EDIT: Turns out it is an undocumented JJ2+ feature. Ah well, plus only then!

Darkhog
Feb 7, 2017, 05:13 AM
Nice progress! But since in the end it will be just another exe app, what's the point in doing it in html5 if it won't be actually fully usable on the web? Wouldn't making it as an SDL or Allegro app be better? Or if you don't like C++ for some reason, C# with Monogame?

cooba
Feb 7, 2017, 05:46 AM
undocumented JJ2+ featurehttps://www.jazz2online.com/jj2plus/plus-angelscript.html#jjlayer::xOffset

djazz
Feb 7, 2017, 06:02 AM
Nice progress! But since in the end it will be just another exe app, what's the point in doing it in html5 if it won't be actually fully usable on the web? Wouldn't making it as an SDL or Allegro app be better? Or if you don't like C++ for some reason, C# with Monogame?
I know JavaScript and web tech. I do not know other languages that well. If I were to port it it would use Qt5/C++ since that is what Tiled (http://www.mapeditor.org) is written in, which is quite similar. Similarly, Project Carrot, the open source JJ2 engine, uses Qt5 and SFML. It is important for me that the editor runs well on all platforms.

Advantages to it being web is that you can quickly share a link to invite to collaboration without them having to download and install the application. Easy access is important I think.

The only features that the web version will miss out on is local file system access and the ability to run the level in JJ2 by hitting Ctrl+R.

djazz
Feb 8, 2017, 04:08 AM
Basic collaboration have been implemented! To try it, go to http://webjcs.djazz.se and click Collab > Join/create session in the menu. Enter a name for the session and click OK. Open another browser window and repeat the steps, make sure you use the same session name. Or invite a friend. When you close all pages the session gets destroyed automatically. Only drawing tiles are synced for now!

Starting a new session will use the current level you are editing. Joining an already created session will overwrite your current one with the one from the server!

Marijn
Mar 5, 2017, 08:43 AM
Djazz, or consider a nodejs/electron build if you want to build a standalone app, it required little porting and runs any common os today.

Zerg
Apr 24, 2021, 01:52 AM
Hey, do you know if this is still working?
I've tried running it after port forwarding, setting up rules in the firewall, and changing the settings.ini(s). This is what happens, from any pc I try it when I try to connect to any other pc:
C:\JazzJackrabbitTSF>.\node server.js
Starting server on port 8100
Note: The server is not passworded
Sat, 24 Apr 2021 09:37:12 GMT: Zerg joined
Sat, 24 Apr 2021 09:37:12 GMT: Zerg left: Connection dropped by remote peer.

I've found that this last error message is from a node module/ this file: https://www.jazz2online.com/downloads/files/23393/websocketconnectionjs/info/

Love & Thunder
Apr 24, 2021, 06:11 AM
You're better off using MLLE (https://www.jazz2online.com/downloads/7291/multilayer-level-editor-v215/) instead these days.

Zerg
Apr 24, 2021, 11:54 AM
Is it possible to use MLLE for online collaborations?

Violet CLM
Apr 24, 2021, 12:45 PM
Sadly it is not.