Register FAQ Search Today's Posts Mark Forums Read
Go Back   JazzJackrabbit Community Forums » Open Forums » Beyond Jazz Jackrabbit 2


djazz djazz's Avatar

JCF Member

Joined: Feb 2009

Posts: 257

djazz is OFF DA CHARTdjazz is OFF DA CHARTdjazz is OFF DA CHART

Apr 24, 2013, 01:17 PM
djazz is offline
Reply With Quote

Might aswell start this thread too, along with WebJCS.

Over the past years I have been trying to "remake" JJ2 from scratch, using web tachnologies. Here's some brief history:

It started out as a simple layer viewer of the level Triton Armory by PurpleJazz. The layers was rendered to png images using PHP. Then a simple script changed the CSS background-position attribute to move the layers. It was a very static viewer, and it only worked with one level. You can try it here:

Then I continued to build on that, adding a player (green square) and a somewhat failed attempt to do collision detection and physics. It is playable though, with music and simple sound effects. Springs are hardcoded. See it here:

Then there was the version I'm most proud of. It is based on HTML5 Canvas and it features the main menu with JJ2 font rendering. Selecting New Game loads ISLAND LEVEL WITH ISLANDS by EvilMike. A PHP serverside script reads the J2L and J2T files and generates the level as tileset image and JSON info for layer tiles, animated tiles, event positions and other level info. It then renders the level, and you can play it as Jazz. The physics here are much better than in the previous version, but still only tile-based, so you can't walk up slopes etc. You find that version here:

Then I started all over from scratch again, I wanted an as pure clientside game as possible. I only made the level renderer part, complete with animated tiles, ambient lighting and textured background. I suggest lowering the quality of or disable the textured background for more smooth rendering. This is also a great attempt, but I soon gave up on it. It is impressive to see though the high fps count with textured bg disabled, considering it's just 2D canvas. I'm proud of the main menu background animation here, as with the previous version. It just uses the J2O background and rotates it. Try it here:

Then, I started working on a new version of WebJCS. I wanted to use WebGL for the tile rendering as I knew that would be the best choice for a future WebJCS/WebJJ2. It falls back to 2D canvas if WebGL isn't supported. Try it live here:

Recently I made a utility that lets you join JJ2 servers and chat in them. It was a test to see if Chrome apps are capable of the kind of TCP/UDP the JJ2 protocol requires. I made my own network manager so that the same code can run as a Chrome app and a semi-native app using node-webkit. It was a success! It also can download and play the music in the level that's being hosted, if it's in MP3 or OGG format. Read more about/download it here:

And now, a few days ago I started (from scratch, again) a new attempt to remake JJ2 for the web. I started playing with the Anims.j2a file again. I have previously made parsers for it to view the animations and listen to the sound effects, but I knew I could do it even better, and together with WebGL for rendering.
So I hereby present you my latest crazy creation: JJ4: A sprite odyssey. Exploring the galaxy of the holy sprites. (warning: trippy)
I was impressed at the solid 60 fps framerate and the fluid animation. And that it parses and extracts every single frame from the Anims.j2a file within 2 seconds! I'm convinced that rendering-wise the web does not hold back.

If I were to combine all versions of WebJJ2, it would look pretty awesome, but with poor gameplay. I don't want to revive the old code, that is very badly structured, that was made for one purpose: experimenting with the technology at the time and learning how JJ2 file formats work.

I had very fun building the sprite renderer, but my free time is limited by college studies. I'll put the code up on github as usual, in case anyone want to help me out.

I don't know why I'm writing this long post, but there you go :P

Edit: Github repository:
WebJCS 2 (new and in progress)
WebJCS 1 (old but complete)
SGIP Simple Games in Progress list
Level Packer v2 - With a GUI!
PHP Tileset Compiler

Last edited by djazz; Apr 24, 2013 at 01:31 PM.
DoubleGJ DoubleGJ's Avatar

JCF Member

Joined: Sep 2002

Posts: 3,049

DoubleGJ has disabled reputation

Apr 25, 2013, 01:51 AM
DoubleGJ is offline
Reply With Quote
haha I love the sprite thing. and it works in Firefox!

I have no knowledge that could come of use, unfortunately... but I hope you will find good help.
"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)
Obi1mcd Obi1mcd's Avatar

JCF Member

Joined: Feb 2010

Posts: 692

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

Apr 25, 2013, 02:19 AM
Obi1mcd is offline
Reply With Quote
Yeah I can't contribute anything either, apart from a "This looks great so far".
But I'll certainly be interested in seeing how you go with this!
Define 'normal'.
Violet CLM Violet CLM's Avatar

JCF Éminence Grise

Joined: Mar 2001

Posts: 10,862

Violet CLM has disabled reputation

Apr 25, 2013, 03:03 AM
Violet CLM is offline
Reply With Quote
I wonder how simple it would be just to port over some of the physics code directly from JJ2 (or its plus equivalents, as the case may be). For me, the biggest hangup would probably be that it's javascript, but then you don't seem to mind that...

future, html5, remake, webjj2

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 10:13 PM.