May 9, 2013, 01:24 PM | |
Project Carrot
![]() Project Carrot homepage GitHub: Project Carrot · PCAE · PCTC · PCLC Current project status (1/2017): Semi-active Slowly progressing, but also putting quite a bit of time into other things. Such as AGDQ'17 ![]() Good to see my million years old account still works ![]() I've been writing a JJ2 engine clone, titled Project Carrot for now, since this February. The plan is, of course, emulate the whole game without losing compatibility to old levels and tilesets while adding new features (like you can already have as many foreground and background layers as you want to). There are though some secondary features I have already decided to drop such as Caption tiles (likely to cause a lot of extra headache for little profit) and level password protection (source code being eventually open source would render any kind of protection useless because user could just check how the game decrypts the data for its own use). I decided against announcing the project here immediately back then as I'm painfully aware how game development by casuals works most of the time: announce a project, work on it for a week, forget it till eternity. So I've been holding this back for quite a while now, but as I'm still three months later still working on it, I thought it'd be great to show it off a bit. I recorded a short-ish overview of the current state of the engine and put it on YouTube. You can see it here. The second preview video was recorded in October 2013 and is available here, and the third video from May 2016 is likewise here. See the newest additions from the git commit history in the repository. ---- Once I feel the code is complete enough, the game will be available for download and the source code ![]() So, yeah. Any thoughts, ideas I should record for later, etc.? E: And of course, I need to express my gratitude to everyone who has been involved with taking apart the proprietary formats during the many years after the game was released. Making this would be a thousandfold harder without all the knowledge floating around ![]()
__________________
Last edited by Soulweaver; Jan 10, 2017 at 11:57 AM. |
May 9, 2013, 01:57 PM | |
Well, I'm sold! Some initial thoughts:
|
May 9, 2013, 01:59 PM | |
![]()
This looks very promising.
__________________
Mystic Legends http://www.mysticlegends.org/ The Price of Admission - Hoarfrost Hollow - Sacrosanct - other - stuff |
May 9, 2013, 02:34 PM | ||||||
Thank you for the kind thoughts and feedback
![]() Quote:
Quote:
Quote:
![]() ![]() Quote:
![]() Quote:
![]() Only personal observations. That means the physics might be off here and there.
__________________
Last edited by Soulweaver; May 9, 2013 at 02:50 PM. |
May 9, 2013, 02:52 PM | |||
Quote:
Quote:
|
May 9, 2013, 03:36 PM | ||||
Quote:
![]() Quote:
Quote:
![]() ![]() E: Oh, it seems we had a PM conversation back then at least. God, I can't stand to look at my posts, my English was so simple back then ![]()
__________________
|
May 9, 2013, 04:09 PM | |
Zero speed layers are used from time to time for HUDish effects... look at e.g. Tomb Rabbit or Another Story, though those naturally assume a 640x480 resolution.
Here's what deactivating does, using some very verbose names: Code:
object.pointerToBehaviorFunction = NULL; //The object is no longer is counted as active, and its location in memory may be overwritten at any later time. if (object.wasCreatedDirectlyFromTheLayer4EventMap()) { eventMap[object.xTileOfCreation, object.yTileOfCreation] = object.eventID; //e.g. 158 for a peach, whatever. For the most part this is //redundant, but it does mean that when an object created //directly from the event map changes event ID, e.g. a spring //crate changing into a green spring, that change will be //permanent even if the object is later deactivated. setEventMapBit(object.xTileOfCreation, object.yTileOfCreation, 11, false); //The event map, of course, is a series of thirty-two bit slots //for each tile in layer 4. The first eight bits are used for the //event ID. The next three are used for the difficulty and the //"Illuminate Surroundings" checkbox. The bit after that is //whether the the object created by the event at that tile //has already been created or not: setting it to false tells JJ2 //that the next time that tile comes into active memory, the //object should be created, since it hasn't been created already. } |
May 10, 2013, 01:43 AM | |
I watched your YouTube video and like what you did so far. I'm not into coding, nor do I know how JJ2's physics work. But I can only encourage progress on projects such as this. A remake of JJ2 such as OpenJazz is for JJ1 would make dreams come true and stuff like that.
![]() Perhaps consider talking to DJazz on these forums? And read through some of his findings he wrote on his WebJJ2 thread. I'm sure he has some interesting solutions on JJ2's physics that're reade to use! ![]()
__________________
Add SlazRabbit on Xbox Live if you want to play some GoW1/2/3/J or Destiny1/2. Jazz Jackrabbit 2 Forever!! Civilian Defence Force - Jazz2 Visual Fantasers ![]() |
May 10, 2013, 08:56 AM | ||||
Quote:
E: I looked at the first level and I can see how it works, but now I need to understand why it works that way ![]() Quote:
E: (De)activation routines have been implemented. Quote:
![]() ![]()
__________________
Last edited by Soulweaver; May 14, 2013 at 06:12 AM. |
May 16, 2013, 12:16 PM | |
It's nice to see someone working on a jazz jackrabbit game. But like you said most projects have died so far. So far your video shows you've made quite some progress, so i hope you don't give up where others did! If you do succeed i also hope this can help to attract more players to jj2. But untill then, keep up the good work
![]()
__________________
[13:07:13] *** Foly is on a KILLING SPREE! [13:07:14] *** you killed yourself [13:07:14] *** Foly was looking good but died instead... |
May 21, 2013, 06:14 AM | |
Keep it going! I Love this project to be finished.
I Have some questions... It would support more colours at the tilesets? We now living at modern world and 8 bit colours are NOT ENOUGH! It would possible to expand the tiles 1024 (4096 for TSF) limit? It looks too small and I love mixing 2 or more tilesets on 1 tileset.
__________________
Sega Satan somewhat |
May 23, 2013, 05:34 AM | |||
Quote:
![]() ![]() Quote:
![]() Essentially, all the tileset conversion process shown in the video does is that it generates two PNG images: one for the tiles and one for the mask. Naturally, an original tileset can thus be made using PNG images as well. Since PC runs in full colour, there are no restrictions on available colours (and while I haven't tested it with anything else but fully opaque and transparent, other alpha channel transparency values should be supported out of the box as well). The mask image meanwhile works sort of like binary collision map (white or any pixel with full transparency is unmasked, everything else is masked). Tilesets are also not confined to being 10 tiles wide anymore; how this will be handled in the to-be level editor is yet to be seen. The tile amount limit isn't nearly as strict anymore either. In theory, only the tileset image dimensions themselves limit the available number of tiles; the current temporary layer format I'm using allows up to 65536 static (first one still reserved for empty tile) and 65536 animated tiles, but that could be upped. Though, there's currently a yet unsolved graphics memory issue related to how SFML handles textures; i.e. large tilesets currently will fail to load on cheap GPUs because the image won't fit to a single texture vertically in their video memory. But if that is solved, then the max. tile amount can be raised significantly.
__________________
|
May 23, 2013, 06:53 AM | |
Wow, that is awesome! I mean, it's awesome anyway, but what you just said made it even more awesome(I would point out all the good things about the PNG format and RGB/Alpha, but anyone who doesn't know what all this means can just google it).
By the way, do you think it will be possible to have a high-resolution/HD mode, which would have double-sized sprites(Perhaps it could include an "animsHD.j2a" file, or something?), and allow tilesets with double-sized tiles? |
May 23, 2013, 08:16 AM | |
I... might sound somewhat harsh. I admit I dislike it when people admire another community member for creating another level previewer, again. Hopefully you realize this thing here is little more than a level previewer. Collision detection is no philosophy and everything else will have to be completely rewritten later on if you want it to work like JJ2. So yeah, I consider it hard to be excited about this so far and I'm just bothered by apparent lack of common sense in this thread, no offense to anybody.
I know this is not quite a constructive message and I was holding myself back from posting it until now. I'll try to compensate it with an honest offer to help; I consider myself familiar with a good number of quirks of JJ2, most of which you should learn if you want to replicate its mechanics correctly. Also, although you're obviously not coding the game in it, judging by your signature you may be interested in a piece of GML code I'm coincidentally in possession of that draws what pictured below, if just for reference. Use PMs.
__________________
I am an official JJ2+ programmer and this has been an official JJ2+ statement. |
May 23, 2013, 09:15 AM | |
Oh come on, it's clearly further along than any "level previewer" we've seen so far. There's item pickup, animations, lots of working events (vines, ammo, hurt), enemies, more-or-less accurate physics (you can shoot down items), sound effects, running/jumping/buttstomping... It's obviously not complete yet, but there's a substantial amount of gameplay implemented already, in a way that seems to mimic JJ2 fairly well so far.
|
May 23, 2013, 11:18 AM | |
I saw the above posts in this thread. I'm think this game or whatelse is promising but is a good idea the high color (16-bit) or true color (32-bit) and higher tilesets. I wish good luck for developing.
![]()
__________________
"Where I walk, I walk alone. Where I fight, I fight alone" Akuma from Street Fighter Alpha The Animation |
May 23, 2013, 11:51 PM | |
If you say so, Stijn. I just believe most of the presented features that aren't necessary for a level previewer to be a matter of one weekend, but what do I know.
__________________
I am an official JJ2+ programmer and this has been an official JJ2+ statement. |
May 24, 2013, 12:09 AM | ||
Quote:
![]()
__________________
Mystic Legends http://www.mysticlegends.org/ The Price of Admission - Hoarfrost Hollow - Sacrosanct - other - stuff |
May 24, 2013, 12:18 AM | ||
Quote:
Ether way, when does something stop being a "level previewer" and start being a "game engine"? Allowing you to navigate a level is a pretty big part of the game, after all. |
May 24, 2013, 12:22 AM | |
guys this is the STUPIDEST FIGHT
you BOTH are good at doing stuff and have promising projects should you care to continue developing them and we're proud of BOTH OF YOU and it's perfectly all right to have competing projects (I've done one! I think I kinda lost.) without being NASTY about it don't make me call this a bunny game, the JCF censors it so it's kind of difficult to do so |
May 24, 2013, 12:29 AM | |
Oh, thanks Violet, but to be honest I'm not developing anything and really don't intend to fight. Just took my own level previewer and added events and physics to it once Stijn mentioned this being more advanced. Then it took me the night to upload it to YT.
__________________
I am an official JJ2+ programmer and this has been an official JJ2+ statement. |
May 24, 2013, 02:13 AM | |||
Quote:
![]() I expect the demo you just put up there was also written in GML; bear in mind that Game Maker provides the whole framework for handling sprites, drawing and different events built-in, while I've built my own engine that implements most of that stuff from the ground up all by myself. The way objects are handled in GML (basically almost nonexistent encapsulation) and preferred use of globals also simplifies things a lot. Of course I could've started writing this in some game-centric engine like Game Maker or Stencyl but I wanted to use a more mainstream language to 1) learn C++ better, 2) make it easier for, erm, people with a better mindset to contribute later on, 3) not be too environment dependent (Qt, SFML, BASS all should work just fine in both Win, Mac and Linux). So, because of that decision, I'm required to write a lot more code that is specific to the engine but not necessarily the JJ2 experience. The TileMap class, which contains pretty much all tileset and layer handling (i.e. the core part of what would be a level previewer), doesn't even cover a fifth of the codebase ![]() As for the textured background algorithm, I might be interested later; implementing it now is not a high priority so I'll PM you when it becomes topical (unless I decide to write it myself). Quote:
![]() As for the lack of new bullet points under the link in the OP, I've been busy with the exams for the last two weeks but I hope to get back into writing code next week ![]() ![]()
__________________
Last edited by Soulweaver; May 24, 2013 at 02:44 AM. |
May 24, 2013, 03:12 AM | |
keep up the attitude and don't give up
this could be big
__________________
"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) |
May 24, 2013, 03:43 AM | ||||
Quote:
Quote:
Quote:
__________________
I am an official JJ2+ programmer and this has been an official JJ2+ statement. |
Jul 13, 2013, 05:05 AM | |
Do you plan for another video?
EDIT: What program do you use for the buttons on the title bar?
__________________
Sega Satan somewhat |
Jul 13, 2013, 12:18 PM | ||||
Quote:
![]() The title button software I'm using is Actual Title Buttons. Quote:
Quote:
![]()
__________________
Last edited by Soulweaver; Jul 13, 2013 at 12:32 PM. |
Aug 7, 2013, 05:34 AM | |
Remembering how I wanted to make the JJ2 clone same way you did
![]() The tileset would have the simular format but they are on zip file instead normal folder. Do you add support for Palette just for the GUI and sprites?
__________________
Sega Satan somewhat |
Aug 14, 2013, 08:18 AM | ||
Quote:
Packed level and tileset support is something I've looked into but haven't worked on yet at all; the actual format will stay as a folder with multiple files, but for distribution a single file approach is much nicer.
__________________
|
Sep 7, 2013, 07:34 PM | ||
Quote:
![]() I actually put together last month a narrated short video about the changes I've listed in the first post but never uploaded it since I came to the conclusion that I can't talk English spontaneously at all. Maybe I'll try again later or just scrap the narration.
__________________
|
Sep 28, 2013, 05:52 AM | |
Any news?
__________________
Sega Satan somewhat |
Sep 29, 2013, 06:25 AM | |
Nothing more than what's written on the first post; as said in the previous post, having trouble fitting everything on my schedule currently, hoping it'll turn out better later on.
__________________
|
Oct 17, 2013, 02:50 PM | |
http://www.youtube.com/watch?v=_uFeWwbaKcg
I posted a new video on YouTube showing all (or at least most of) the new tiny bits of code added since the last video in May. As said, I would've hoped to get more done in five months, but at least the project isn't dead ![]()
__________________
|
Oct 18, 2013, 01:25 AM | |
This looks so much like the original Jazz2! Absolutely amazing work. Keep doing this please!
![]()
__________________
|
Oct 22, 2013, 02:02 AM | |
I guess you've already read my YouTube commenting, but keep up the good work. I honestly didn't expect such a project to last this long!
![]()
__________________
Add SlazRabbit on Xbox Live if you want to play some GoW1/2/3/J or Destiny1/2. Jazz Jackrabbit 2 Forever!! Civilian Defence Force - Jazz2 Visual Fantasers ![]() |
Oct 22, 2013, 02:35 AM | |
Indeed, after pretty much all the previous projects we have seen got abandoned. So it's really quite a relief to see progress reports like this! All is looking very promising
![]()
__________________
|
![]() |
«
Previous Thread
|
Next Thread
»
Thread Tools | |
|
|
All times are GMT -8. The time now is 01:34 PM.
Jazz2Online © 1999-INFINITY (Site Credits). Jazz Jackrabbit, Jazz Jackrabbit 2, Jazz Jackrabbit Advance and all related trademarks and media are ™ and © Epic Games. Lori Jackrabbit is © Dean Dodrill. J2O development powered by Loops of Fury and Chemical Beats. Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Original site design by Ovi Demetrian. DrJones is the puppet master. Eat your lima beans, Johnny.