Krabby Quest and Krabby Quest Emu Discussion

Discuss the games (no level solutions or off-topic, please).

Moderators: ~xpr'd~, tyteen4a03, Stinky, Emerald141, Qloof234, jdl

User avatar
Bisquick
Bronze Wonderlander
Posts: 22
Joined: Thu Nov 26, 2020 7:40 am

Krabby Quest and Krabby Quest Emu Discussion

Post by Bisquick » Wed Dec 02, 2020 1:24 am

Hello everyone,

I am the creator and currently the only contributer to KrabbyQuestEmu. To make it perfectly clear: this project takes all measures within my power to recreate Krabby Quest, using a modern engine, with a modular, customizable editor, all completely legally. KrabbyQuestEmu DOES NOT supply any copyrighted content, however it has all the tools needed to make the game usable with the Engine I made for it in Unity. In fact, this did not use any leaked source code of any Wonderland game either, to avoid any legal trouble.

This thread is meant to be a discussion, I'll be watching it answering any questions you all have, though I highly recommend joining my Discord and looking at my GitHub repo for the game, updated frequently!

https://github.com/JDrocks450/KrabbyQuestEmu
https://discord.gg/wvFPYSrGRu
User avatar
jdl
Rainbow SuperStar
Posts: 2883
Joined: Fri Jun 06, 2008 8:37 pm
Location: West Virginia, USA
Contact:

Re: Krabby Quest and Krabby Quest Emu Discussion

Post by jdl » Wed Dec 02, 2020 2:07 am

Welcome! I have updated the Krabby Quest thread and Wiki article to include a link to here.
Maybe I'm out of the loop, but I don't think any of the Wonderland games had their source code leaked.
WA went open-source but that's about it.

Anyway, in one of your Reddit images, I noticed that the buttons you step on use a new 3D button model instead of the original 2D flat textures (reminds me of the pressure plates in Chuck's Challenge 3D actually). How accurate to the original is the project going to be? There's nothing wrong with the new model, I'm just curious is all. :)
User avatar
Bisquick
Bronze Wonderlander
Posts: 22
Joined: Thu Nov 26, 2020 7:40 am

Re: Krabby Quest and Krabby Quest Emu Discussion

Post by Bisquick » Wed Dec 02, 2020 3:30 am

It's interesting you bring that up actually, I understand there are two ends of the spectrum: there are people who want an identical experience, and there are others who want it to be the same game, but with new features and updates.

I made the decision to keep the gameplay as accurate as possible, yet expand upon the original in other areas to meet a middle-ground of sorts. KrabbyQuestEmu only has an updated model for buttons as they are so integral to the gameplay I thought they should be more than a 2D image. Other than that, levels will look identical.

The menus are completely new, the map screen is fully 3D with a 3D version of the original map for players to interact with, making the game look more modern, and lively. I posted some pictures of that in the Discord I made and have linked them here as well. Honestly, I feel like this should cater to both ends since the menus are barely interacted with anyway.

Image
User avatar
Bisquick
Bronze Wonderlander
Posts: 22
Joined: Thu Nov 26, 2020 7:40 am

Re: Krabby Quest and Krabby Quest Emu Discussion

Post by Bisquick » Wed Dec 02, 2020 3:35 am

To follow up, here's gameplay of the level Patrick vs The Bullies in KrabbyQuestEmu:
Image
User avatar
jdl
Rainbow SuperStar
Posts: 2883
Joined: Fri Jun 06, 2008 8:37 pm
Location: West Virginia, USA
Contact:

Re: Krabby Quest and Krabby Quest Emu Discussion

Post by jdl » Wed Dec 02, 2020 5:21 am

That 3D map is impressive, and it's interesting to see the game in widescreen! Something seems off with how levels/textures look though.. I think it may be the lighting? Things seem a lot darker to me. Oh and nice touch adding water to the trenches.

Also, if you're interested, here are a few not-so-obvious things that were programmed into Wonderland that made its way into Krabby Quest:
- Alt+X+[numpad numbers] allows you to freely control and rotate the camera.
- Ctrl+F9 is a cheat code that allows you to skip the level (different from the spatulas).
- F8 takes a screenshot. It's saved as "screenshot.bmp" in the game directory.
- Pressing the Delete key when selecting a player profile will ask you if you want to delete it.
User avatar
Bisquick
Bronze Wonderlander
Posts: 22
Joined: Thu Nov 26, 2020 7:40 am

Re: Krabby Quest and Krabby Quest Emu Discussion

Post by Bisquick » Wed Dec 02, 2020 7:27 am

I'll remember to add those, as of now:
  • Holding Right-Click and dragging will move the camera in that direction, as soon as you let go, the camera will drift back to the player.
    The original way to move the camera by holding SHIFT(i believe?) is implemented into the game, although I never use it over RightClick
In other news, the API is now just about compatible with Stinky and Loof Level File V3,5,6. It has been verified against the level editors floating around the forum, to make sure it maintains parity. It can't save levels yet though.

Using a test level, I can verify that around 85% of objects are implemented into the Game. This was done using a Parameter System. where anyone using the KrabbyQuestEmu Editor can define level tiles and objects. The parameters allow content creators to change the way the objects behave, for example, marking a normally passable object as "unpassable" or changing how fast certain enemies might shoot/move.

Here is the editor, with the parameters viewer in view:
Image
User avatar
Bisquick
Bronze Wonderlander
Posts: 22
Joined: Thu Nov 26, 2020 7:40 am

Re: Krabby Quest and Krabby Quest Emu Discussion

Post by Bisquick » Wed Dec 02, 2020 7:32 am

Speaking on darker graphics, I've been noticing that as well.
In the original Krabby Quest, Bikini Bottom style levels used a much darker sand texture, this texture has been repurposed for the water in Sandy Beach style levels because otherwise, its darkness looked worse than if we just used the Sandy Beach texture for both styles of level, so I went ahead and did that. Though, through the use of parameters, you could easily switch the textures in less than a minute.
User avatar
Bisquick
Bronze Wonderlander
Posts: 22
Joined: Thu Nov 26, 2020 7:40 am

Re: Krabby Quest and Krabby Quest Emu Discussion

Post by Bisquick » Wed Dec 02, 2020 10:21 pm

Just pushed new code to the repo, some notable changes include:

Editor Improvement
  • Async Level Loading in Editor (finally)
  • Level Editor selection looks much better
  • Level header data viewer accuracy improved
Game Improvement
  • Skybox looks much better
Game Compatibility
  • Ice Started, False walls, Bully finishing touches,
  • Fix glitch with boxes in Water
StinkyFile (Krabby Quest EMU API) Compatibilty
  • Stinky file V3, 5, 6 support
  • +Level Time
  • +Custom Model
  • +Custom House
  • +Level ID
  • +Level Music
  • +Level Texture
  • +Level Background
Getting close to a release I'd say
User avatar
Bisquick
Bronze Wonderlander
Posts: 22
Joined: Thu Nov 26, 2020 7:40 am

Re: Krabby Quest and Krabby Quest Emu Discussion

Post by Bisquick » Fri Dec 04, 2020 9:14 am

Got a lot more features added, including a particle effects system making use of the Parameters system I mentioned earlier!
On top of that, Ice is now in the game with mostly correct behavior. Image of that is below it has a bonus reflective component for style :stinkycool:

Full patch notes can be found on my GitHub:

Game Improvement
+ Add Particle Effects
+ BlockDB updated to support more Parameters
+ AssetDB updated to show correct textures in Phosphor caves
+ BullyBehavior is now EnemyBehavior to allow for the other enemies to use existing functionality
+ Parameters for MotionSpeed and MotionCooldown have been added in preparation for more enemies
+ Level Intro animation added to reflect the original
+ Parameters system allows objects to change the way their particle effects are shown (barely)
+ Ice added, complete with reflections
+ Bug fixes

Thinking next up is getting Frogfish and Jellyfish in the game

Image
Image
User avatar
jdl
Rainbow SuperStar
Posts: 2883
Joined: Fri Jun 06, 2008 8:37 pm
Location: West Virginia, USA
Contact:

Re: Krabby Quest and Krabby Quest Emu Discussion

Post by jdl » Fri Dec 04, 2020 3:21 pm

Reflective ice is a really good idea, although the darker reflections in the image don't really make sense (to me, at least).

The new box destruction particle is cool too. It actually had me wondering how many different destruction particles are actually in the WDL games since I never really paid much attention before. It turns out almost all pushable objects use a grayish texture with an isosceles triangle shape (even link spheres), while Wooden Boxes use their own texture with a kite shape and TNT Barrels use the regular circle spark particles.
User avatar
Wonderman109
Rainbow MegaStar
Posts: 3530
Joined: Thu Jun 28, 2012 11:25 pm

Re: Krabby Quest and Krabby Quest Emu Discussion

Post by Wonderman109 » Sun Dec 06, 2020 1:14 am

I'm really impressed by this project! Nice work, Bis!
I do have to say I'm more on the 'preserve' side of the game spectrum than the 'new feature' side - particularly hoping that having 3D buttons doesn't mean Patrick and Spongebob will clip into them when standing on one. Other than that, looks great!
User avatar
Bisquick
Bronze Wonderlander
Posts: 22
Joined: Thu Nov 26, 2020 7:40 am

Re: Krabby Quest and Krabby Quest Emu Discussion

Post by Bisquick » Sun Dec 06, 2020 5:48 am

The reflection settings do need to be tweaked I agree, right now most of what you see is the skybox.

Yes the particle effects might as well be overhauled. They're kept in a texture atlas which I'm trying to get away from because it makes adding new particles more difficult, which is against the point of this project: to allow for easy customization. I reimplemented a bubble particle into the game for style and also because the original game had one, I just didn't find where the devs actually implemented it, so there's a nice touch added to the game.

There are actually many particles, in places you may not have looked -- A wooden box one, 3 colored triangles (beachball), a bubble, a star (krabby patty), a microsoft square thing (??), a blue force field looking thing, 4 colored plus signs, 250pts (bonus), and a white circle

As for the buttons, the animation for pressing them begins at a point where the clipping is not noticeable :)

Like I said most changes are done to make customization easier. Anyone making a custom series of maps can import map screen graphics, play with parameters on objects in the game to change things like enemy speed for example, change particle effects, etc. The editor was designed with this mind, I just have to finish it fully. Very interested to see how it plays out regardless!
User avatar
rainbowmon
Rainbow Keeper
Posts: 342
Joined: Thu Apr 17, 2014 6:31 pm
Contact:

Re: Krabby Quest and Krabby Quest Emu Discussion

Post by rainbowmon » Mon Dec 07, 2020 4:42 am

It's neat to see all this love for Krabby Quest - now if only it was still on sale. Getting an official copy legally isn't really possible anymore last I checked... And if you count it, then it's the only Wonderland game I don't have. *sigh*
Rainbowmon of the Care-Monic Spirits
User avatar
Bisquick
Bronze Wonderlander
Posts: 22
Joined: Thu Nov 26, 2020 7:40 am

Re: Krabby Quest and Krabby Quest Emu Discussion

Post by Bisquick » Mon Dec 07, 2020 11:21 pm

One of the other reasons for this project was because of how much troubleshooting I had to do to get the game working. There aren't that many solid resources that are easy for the average player to find if they run into a problem. On top of that, the DRM tacked on to the game is crazy bad. Playing it like this is a more user-friendly experience.
User avatar
Bisquick
Bronze Wonderlander
Posts: 22
Joined: Thu Nov 26, 2020 7:40 am

Re: Krabby Quest and Krabby Quest Emu Discussion

Post by Bisquick » Sun Dec 13, 2020 1:13 am

OK -- Today I'm gonna discuss the biggest challenge with KrabbyQuestEmu thus far, which I have been putting off since before the Game portion's development even started... Animations.

KrabbyQuestEmu extracts models from .B3D files using a Blender Add-on that wasn't made by me. I appreciate this guy's work and it helped wonders. That being said it had one huge limitation -- it could only extract mesh data from these B3D files. Therefore, the game this far has been almost entirely unanimated.

This makes the game pretty boring and unsatisfying, needless to say. Today, I finally took the first steps in reimplementing the original games animations! I want to take anyone curious along with me as well. The first thing we need to do is set up a roadmap of how we're gonna do it. The procedure, as it stands, is as follows:
  • Study the Blitz3D Open-source Code and analyze how these files are opened (which is what I'm detailing now)
  • Move from .OBJ files in the game to GLTF models (these support animation)
  • Enable the installer/game to extract these B3D models to GLTF
  • Make sure the engine can use these animations at appropriate times.
This is a lot of work needless to say, but I think I got this so let's continue!

I rewrote Blitz3D's B3D file loader code, this time in C#. I wrote the C# code being careful to only take what is necessary to recreating animation, therefore, meshes are ignored and bones and animation keyframes are kept so we can link these together.
Below is what the file contents look like when fully loaded and organized into a tree. (There are 43 different nodes in Spongebob's B3D file so I only could fit about 5 on screen)

Image

These nodes line up directly with the already extracted models we have been using. Thus, we should be able to ADD these animations in after extraction is finished to get everything working smoothly. With a little more polish this Blitz3D-C# loader should be completely accurate for animations. In theory this should work but I'm kind of out of my element here. Either way, after all this is done, I'd say release 1.0 is on the horizon and I can be done... phew
User avatar
jdl
Rainbow SuperStar
Posts: 2883
Joined: Fri Jun 06, 2008 8:37 pm
Location: West Virginia, USA
Contact:

Re: Krabby Quest and Krabby Quest Emu Discussion

Post by jdl » Sun Dec 13, 2020 2:19 am

I was wondering in the back of my mind how hard extracting the animations would be. Looks like it is indeed quite difficult.

No idea if this will help you at all, but the WASharp project uses the BlitzSharp3D library, which might be of use to you:
https://github.com/blitzimagine/BlitzSharp3D
User avatar
Bisquick
Bronze Wonderlander
Posts: 22
Joined: Thu Nov 26, 2020 7:40 am

Re: Krabby Quest and Krabby Quest Emu Discussion

Post by Bisquick » Sun Dec 13, 2020 3:53 am

Wish I had seen that before! Regardless it doesn't seem like they rewrote Blitz3D's code in C#, instead just quickly looking it seems they have an interop layer for using original Blitz3D functions written in C++. Rewriting the code from scratch still worked out I guess since now I know exactly how it works and the Unity Engine can make full use of it, so I guess it's not a loss.

Thanks for pointing that out though!
User avatar
Bisquick
Bronze Wonderlander
Posts: 22
Joined: Thu Nov 26, 2020 7:40 am

Re: Krabby Quest and Krabby Quest Emu Discussion

Post by Bisquick » Sun Dec 13, 2020 3:57 am

Had to update the initial post with this:

Image
I'm sorry but I love this :stinkyhappy:
User avatar
Bisquick
Bronze Wonderlander
Posts: 22
Joined: Thu Nov 26, 2020 7:40 am

Re: Krabby Quest and Krabby Quest Emu Discussion

Post by Bisquick » Sun Dec 13, 2020 7:10 am

OK update again on animations, we can preview their keyframes now which is great!

Image
This is the B3D explorer, the newest addition to KrabbyQuestTools (which I will probably move it to a separate project centered solely on Blitz3D work) which can open any B3D file and look at all animation-related components (to my knowledge currently).

Progress is going well, this is quite a learning experience. I'm going to investigate this more soon to make sure I didn't miss anything but this looks pretty legit to me from what work I've done myself.

[Info dump for nerds]
The tree on the left is mainly bones, the joints attached to the mesh. You can select an object that has an Animator attached to it to view on the right side. In Blitz, the animator holds on to all animation-related information for use later in code. The Animation Explorer extracts the bones that are children of the object with the animator, and that have animation tied to them as well. We can individually select animated objects to view the components of those animations: Position, Rotation, and Scale keyframes. Note that the amount of keyframes is based on the Animator's frame count property and therefore cannot be changed (at least not using this tool).
User avatar
Bisquick
Bronze Wonderlander
Posts: 22
Joined: Thu Nov 26, 2020 7:40 am

Re: Krabby Quest and Krabby Quest Emu Discussion

Post by Bisquick » Sun Dec 13, 2020 8:36 pm

In-Game, the animation points can now be used! Managed to switch from OBJ to GLB with relative ease aside from scaling problems.
Image
User avatar
Bisquick
Bronze Wonderlander
Posts: 22
Joined: Thu Nov 26, 2020 7:40 am

Re: Krabby Quest and Krabby Quest Emu Discussion

Post by Bisquick » Mon Dec 21, 2020 3:51 am

Image
Krabby Quest Tools can now make animation sequences, which is necessary to restoring animation to Krabby Quest Emu in the most correct way possible.
This part of the Editor never really needed to be made, since the original game would make these on launch every time the game was started and they're hardcoded in. (See: BlitzBasic: ExtractAnimSeq command for how it works exactly).

Point is, this tool now allows developers to specify the animation sequences BEFORE the game loads so we don't have to hardcode them. Added benefit we get from this is being able to name them too!
User avatar
Wonderman109
Rainbow MegaStar
Posts: 3530
Joined: Thu Jun 28, 2012 11:25 pm

Re: Krabby Quest and Krabby Quest Emu Discussion

Post by Wonderman109 » Tue Dec 22, 2020 2:04 am

So now there is room for custom animations...interesting.
User avatar
Bisquick
Bronze Wonderlander
Posts: 22
Joined: Thu Nov 26, 2020 7:40 am

Re: Krabby Quest and Krabby Quest Emu Discussion

Post by Bisquick » Wed Dec 23, 2020 1:55 am

Image
Blitz3D Animator -> Unity Animator Conversion

Basically, now the game can "compile" unity animators from any *.b3d file. Granted the Animation Sequences need to be recreating using the Blitz3D Animation Sequence Editor in KrabbyQuestTools (the Editor for KrabbyQuestEmu) however this is very easy and kinda fun so I don't see this as a horrible thing, just a minor inconvenience honestly.

Furthermore, this conversion is nearly entirely automatic, all of the animations are created for you so it just comes down to remaking the sequences like I said earlier. Honestly, I'm pretty happy with how this is coming along!

The more I work on this project, the easier it gets to expand to the other Wonderland games. Possibly after Krabby Quest is restored, we can look into those games next, as the fundamental ground work applies to all of the Wonderland games.
User avatar
Wonderman109
Rainbow MegaStar
Posts: 3530
Joined: Thu Jun 28, 2012 11:25 pm

Re: Krabby Quest and Krabby Quest Emu Discussion

Post by Wonderman109 » Thu Dec 24, 2020 8:22 pm

Sounds exciting, maybe even a revival/redux of the RTW port is on the table now.
User avatar
Bisquick
Bronze Wonderlander
Posts: 22
Joined: Thu Nov 26, 2020 7:40 am

Re: Krabby Quest and Krabby Quest Emu Discussion - Animations

Post by Bisquick » Sun Dec 27, 2020 11:46 pm

Image
Animations in-game, tied to actual behavior

After the long wait, and countless amounts of trial and error to restore animations directly from B3D files into a fully-compatible system with Unity-the wait is over! Now the tools that allow developers to take out parts of animations stored in original game files can work in tandem with the scripts in Unity that power the behavior of all objects in the game world. What this means is that now the way in which Animations are stored and read is much more human-readable, allowing contributors to have an easier time working on KrabbyQuestEmu if they choose to do so.

Here is the usage in Unity:

Code: Select all

//AnimationLoaders are created for all objects with animated properties enabled - which is detected by the editor.
var loader = GetComponent<AnimationLoader>(); //AnimationLoader interfaces with the KrabbyQuestEmu animation systems.

loader.PlaySequenceByName(Name: "CannonThrow", IsLooping: false); // plays cannon throw animation immediately and does not loop it.

loader.EnqueueSequenceByName(Name: "CannonIdle", IsLooping: true); // tells the animator to play the idle animation after the last animation and loops it.
Yeah, that's literally it.

Here are some of the many advantages we have achieved with the current strategy:
  • Animations are entirely accurate to the original game - keyframe for keyframe
  • Animations are smoother! Using Unity Curves, animation smoothing is applied by default.
  • AnimatorControllers are generated once in the Unity project for any animated objects... meaning developers can look over, edit, and save changes to the AnimatorControllers entirely in the Unity Editor.
  • AnimationClips are generated for each sequence in Unity. This means they too can be edited for any reason, and cause no noticeable load time increases.
  • Tools are built-in to KrabbyQuestTools, meaning that changing animation sequences is handled by the editor itself.
Currently, only the tentacle cannons and monsters are implemented with animated properties, as this is a manual process. More updates on those objects to come.

Thanks for reading, as always
User avatar
Wonderman109
Rainbow MegaStar
Posts: 3530
Joined: Thu Jun 28, 2012 11:25 pm

Re: Krabby Quest and Krabby Quest Emu Discussion

Post by Wonderman109 » Mon Dec 28, 2020 12:35 am

Wow! This is big news.
How much time does it take to do each animation though?
User avatar
Kamerson
Platinum Wonderlander
Posts: 99
Joined: Fri Jan 31, 2014 12:45 pm
Contact:

Re: Krabby Quest and Krabby Quest Emu Discussion

Post by Kamerson » Mon Dec 28, 2020 2:28 am

Wow, this project looks amazing! :stinkyhappy: It's great that you're restoring Krabby Quest to a playable state! Once you're finished, would I be allowed to livestream the game on my Twitch channel? I figure it'll be okay, but I just want to make sure.
Hi, I'm Kamerson! I'm a pretty experienced puzzle gamer! Check out my Twitch channel where I have livestreams every Monday and Friday, sometimes playing the Wonderland games!

https://www.twitch.tv/kamerson
User avatar
Bisquick
Bronze Wonderlander
Posts: 22
Joined: Thu Nov 26, 2020 7:40 am

Re: Krabby Quest and Krabby Quest Emu Discussion

Post by Bisquick » Tue Dec 29, 2020 11:26 pm

Animations are a process that requires simply plugging and playing at this point. The process is a little like this:
  1. Open a B3D file in Krabby Quest Tools
  2. Pick the object in the file to animate
  3. Pick any of the available animation points (leg, head, eyes, hand, etc.)
  4. Open the keyframe editor
  5. Select sections of the animation to turn into sequences
  6. Save
  7. (In the object's script in Unity) Use the code sample I showed above
  8. Object complete
It looks like a lot, but most of these steps take like, 10 seconds? It's really only the sequences that take time. Pretty remarkable stuff!

And yes of course you can stream it! :) But, I will warn you to wait until it is at least release version 1.0 (we're on around build 0.8-ish right now) so just a little more time before I could recommend showing it off.
User avatar
Bisquick
Bronze Wonderlander
Posts: 22
Joined: Thu Nov 26, 2020 7:40 am

Re: Krabby Quest and Krabby Quest Emu Discussion

Post by Bisquick » Tue Dec 29, 2020 11:33 pm

Oh and to add on to what I said the other day, this animation strategy DOES NOT mean I ship the game with these animations. Instead, they are generated on-demand once and loaded from file all times after that. Gotta cover all the bases here.
User avatar
Kamerson
Platinum Wonderlander
Posts: 99
Joined: Fri Jan 31, 2014 12:45 pm
Contact:

Re: Krabby Quest and Krabby Quest Emu Discussion

Post by Kamerson » Wed Dec 30, 2020 2:09 am

Oh wow, I didn't realize it was in a playable state! But yeah, I'll wait until v1.0 to play it :P
Hi, I'm Kamerson! I'm a pretty experienced puzzle gamer! Check out my Twitch channel where I have livestreams every Monday and Friday, sometimes playing the Wonderland games!

https://www.twitch.tv/kamerson
Post Reply