CS community meta discussion

Jul 26, 2024 at 10:28 PM
Still at it
"All your forum are belong to us!"
Join Date: Sep 22, 2012
Location: Hell
Posts: 612
Pronouns: She/It
we simply do not have what other communities have and we will never.
There will be if people actually try and make things easier to get into. I think this is too defeatist and isn't going to get us anywhere.
Many communities that start these types of initiatives generally have a much easier time with growth because the "interesting stuff going on" is all aggregated and put in the forefront. So would-be cave story fans get to see the big mods, contests, and other stuff that happens more passively.
Discord itself has stuff like this for public servers but obviously the goal here is to keep things as integrated and easy-to-understand as possible because it just makes things easier.

Sorry if I seem heated by the way but I feel like you're missing the point of how collaborative activity like this would also benefit the public interest in this game. All of these things being cointegrated in more meaningful ways could be a good interim step while the people who want to try making a launcher go work on that.

A "Mimiga Times" or something with a funny name like that, paired with good coordination and stuff would help bridge that gap a lot quicker. So something better can be done slowly over time in the background while we've got something actually useful that helps solve the whole "Black Box" thing in the meantime.

Edit:
For something like that I would be able to help get things moving. I've spent a while learning investigative journalism and my other job is training AIs. I would be able to work out a plan, some assets, and routines for people that'd be involved (it'd be mostly minor but the goal would be consistency) and It'd be mostly low effort on everyone's parts if done correctly.
 
Last edited:
Jul 26, 2024 at 11:11 PM
Deliverer of Sweets
Bobomb says: "I need a hug!"
Join Date: Jul 20, 2015
Location: Under sea level or something
Posts: 804
Age: 26
Pronouns: 菓子
Jul 26, 2024 at 11:13 PM
Senior Member
"Wahoo! Upgrade!"
Join Date: Oct 18, 2016
Location: Somewhere deep in the depths of Minnesota...
Posts: 51
Pronouns: he/him
Okay, understood, I agree that a more public viewing of mods and creative works would be cool but I think that we're unable to do it in the same vein other communities could.

I think a good start would be to make the modding side of the community more visible, make a tab on this website that has resources to create mods, a link to Doukutsu Club, a link to the CSMC, and a link to the new wiki (not the old one, the new one).

Another step would be to get mods more out there, bigger mods and projects to streamers and stuff if they are interested and have them check them out if they want to. As mentioned earlier, Enlight plans to send another, more curated pack of actually finished and higher quality mods to Vinny Vinesauce in December. Personally, I plan to email Vinny about my mod (DripQuest DX) when it's finished, since he played the original and seemingly enjoyed it and I thought it'd be neat to at least send something I've been working on for more than a year to a big streamer to check out (I'm also a pretty big Vinesauce fan so it'd just be a cool thing) If we could do this but with bigger and more impressive mods, it might get people interested in modding and it may inspire them. It obviously doesn't have to be Vinny specifically, it can be anyone as long as they have any semblance of interest.

I think it's probably a good idea to give up on the suggestion that Nicalis and Pixel are gonna do anything with Cave Story. Even if we give them "financial incentive", Pixel just isn't interested and it'll only end poorly if Nicalis decides to do anything without Pixel's permission (I don't think they will but we shouldn't push them to consider it).

A mod loader that connects directly to Doukutsu Club like Thunderstore or CurseForge or whatever may seem like a good idea but that depends on if Enlight wants to do it and if people will even use it. But I think something worth noting is that, in order for things to get big, people need to KNOW about it. The Mod Loader, whatever it ends up being, needs to be 'advertised'. It's also worth noting that Cave Story is not Unity. Cave Story is not Minecraft. Cave Story is not Doom, and Cave Story is ESPECIALLY not Super Mario 64. Making a mod loader that injects CS Mods into Cave Story like others do won't be as easy since most CS mods that aren't dependent on CS+ are all separate exes. The Mod Loader would need to load an exe from the folder. I think you know this but I'm bringing it up again because it's still worth noting.

As for a more open ended and moddable version of Cave Story itself, the idea to make a Godot recreation of CS that is more open ended in the same vein as D-RS is a good idea, I support that, but all it will do is just add another engine to a list of engines. And what if Nicalis gets involved again? It'd be nice if they were more open about letting people do stuff like this but it's still a risk. Granted, I think a good idea would be to create a engine that is similar to Cave Story in Godot or even Unity or something, sharing physics and behaviors and stuff, that is inspired by Cave Story rather than directly based on it. That will avoid trouble because it'd be different enough to not put the community in hot water.
 
Last edited:
Jul 26, 2024 at 11:20 PM
Still at it
"All your forum are belong to us!"
Join Date: Sep 22, 2012
Location: Hell
Posts: 612
Pronouns: She/It
The DLC, the infrastructure.
It's like the ultimate independent game....................

The reason I suggested a Godot remake is literally because:
My company contributes to Godot too, so anything we fix will be fixed for you guys and the stuff we learn in trying to make Harpy Star could be relayed directly to you guys to get the engine to be as accurate to Cave Story as possible. Because OSS is fucking awesome like that. Also because GD is still a bit buggy in some areas.

It might need to be approached similarly to D-RS because of the dmca situation so I uhhh don't know what to say about that.

Also the editor is just infinitely nicer than Booster's lab will ever be imo.
It will require retrofitting a lot of CS into Godot somehow but I think it should be a background project that gets chipped away at by people who'd be able to actually do that.

Edit:
Accuracy shouldn't entirely be the priority in a godot port though. I think it should be a more systems-driven rewrite of certain aspects of CS that way it's just... not shit to make stuff for. Like geobox if geobox actually cared about replicating the game's mechanics accurately.
 
Last edited:
Jul 26, 2024 at 11:31 PM
Senior Member
"Wahoo! Upgrade!"
Join Date: Oct 18, 2016
Location: Somewhere deep in the depths of Minnesota...
Posts: 51
Pronouns: he/him
Well, if you work so closely with Godot and can contribute to it, why don't you do it? You seem to know exactly what you want to do and I know you are talented enough to do it so what's stopping you from showing us an example of what you are saying?
 
Jul 26, 2024 at 11:38 PM
Still at it
"All your forum are belong to us!"
Join Date: Sep 22, 2012
Location: Hell
Posts: 612
Pronouns: She/It
Me and Alula have been busy with other business stuff, like I said earlier in the thread. Now's just not a very good time for us to commit to more coding projects specifically because very soon here I'm gonna be swamped with a lot more shit to do because the workflow is cyclical like that and I've gotta move soon.
But I do want to at the very least let people know that options like this are logistically worth it.

She and Bio have both attempted similar things in the past (Bio had ported CS's movement to GD at one point) but right now we've got to get our demo out because material conditions demand that comes first unfortunately.
 
Jul 26, 2024 at 11:54 PM
Senior Member
"Wahoo! Upgrade!"
Join Date: Oct 18, 2016
Location: Somewhere deep in the depths of Minnesota...
Posts: 51
Pronouns: he/him
I don't really know who else in the community would have the talent or motivation to do it though. I'm all for a Godot Cave Story recreation for the sake of having a more open ended engine to work with (bonus points if we could even make it work with tsc) but I can't be the one to make it because I'm not skilled enough. That's another thing: someone's gotta have the motivation to even do something like this and I don't know who really cares enough to step up to the plate
 
Jul 27, 2024 at 1:17 AM
Still at it
"All your forum are belong to us!"
Join Date: Sep 22, 2012
Location: Hell
Posts: 612
Pronouns: She/It
I don't really know who else in the community would have the talent or motivation to do it though. I'm all for a Godot Cave Story recreation for the sake of having a more open ended engine to work with (bonus points if we could even make it work with tsc) but I can't be the one to make it because I'm not skilled enough. That's another thing: someone's gotta have the motivation to even do something like this and I don't know who really cares enough to step up to the plate
I think public advocacy is at the very least helpful in motivating people.

Well, it depends. There's a lot of people who work with CSE2 now and D-RS isn't too far removed from it, just with slightly different conventions in spots. So anything from one codebase would at least be identifiable in another. That could be a good reference tool to use.
I'm pretty certain Godot could run C# or something too. So cross-referencing the java port might be useful as well as from what I've been told it's literally just MS's bootleg Java.

I think Arnozi and some others in the community have been practicing Godot but I don't know if they want to do that.
But I think the Godot community would be hyped as hell to see a game ported to it. So I think we could atleast push it in the public Godot servers once it's in a viewable state.

But I think pointing at people is not helpful given this is shit I unfortunately, know how to set up.
So here's how I'd go about it.
  • You can make literally anything a scene. Because SCENES are what Godot loads. Well that and nodes / sprites. You could actually just place a png in a room and Godot would be like "sure ok" and just place a flat pane in the room. NPCs, GUI stuff, Enemies, etc. That will all have to be a scene. In game maker the equivalent would be objects, rooms, etc. but those are mostly able to all be the same thing in Godot.
  • Godot is always a 3D engine. 2D stuff is just 3D stuff pretty much.
  • None of pixel's formats would need to be read but TSC. Even that could be put into Godot's filesystem directly. That said I think TSC could be very easily outdone but I think people would want to transition into a new scripting language more gradually so keeping the format the same would help at least. Script parser would function basically the same as far as I can tell.
  • To make stuff like GUI code or any other asynchronous code that'll run independent of the game's tick rate it's best to nest the actual game scene inside the "GUI scene" this way you don't have to load in more than necessary when transferring between levels and can do the particle swipe transition / message boxes.
  • Character "sprite states" will need to be handled using Godot's built in animation system. Idk how to translate CS's animation speeds to Godot's but Godot operates on FPS (I set it to 100fps then use very specific speeds that way I basically just have MS timings. It's more accurate.)
  • Entity IDs could be thrown out for the most part. NPC.TBL would be able to be replaced with an "entity index" and if you want to go further wtih the TSC replacement you could just skip the "use an index as a middleman" and let people just throw new entities in maps without needing to do all the setup. It'd be a much faster process.
  • Collision may have to be handled from scratch if you want accuracy. I personally feel that CS's default collision system is a bit jank and Godot would be a huge upgrade but I know that slope elevators have been a thing. You can still have things have unique interactions with specific tile types though, but Godot has its own format for this that's more robust than the one CS uses.
  • Text rendering will have to be redone like it was in other engines. Godot's text renderer is powerful enough already that you could very easily recreate the visual appearance of CS's text accurately.
  • Try to replace the "npc.tbl" using Godot's built in stuff to let you configure instantiated scenes. You can set each NPC to have custom spawn parameters just like how they would in CS itself. This would potentially mean if you wanted accurate NPC spawning you'd want generic enemy spawner objects that are configured just like the original one. The main "drawback" is that placing enemies in the correct spots would be hell unless someone makes software to automate the map porting process (which is doable)
  • You can directly link collision and tiles in the tilemap. The tilemap can hold collision, spawn objects, etc. It's more than enough on its own to be a better substitute for cs's.
  • Animations should be reimplimented using Godot's built-in animation system because CS's animation system is very questionable.
  • Don't use canvas layers unless 100% necessary they suck and make me want to kill myself. They make rendering the viewport unnecessarily complicated for no reason.

And the one that stumped me for the longest time:
HITSCANS, SOUND EMITTERS, AND OTHER THINGS LIKE THAT ALL HAVE TO BE ADDED TO A SCENE AND TRIGGERED, NOT "SPAWNED"


Your typical setup for let's say, the player, would resemble something like this (This is what we need to do for ours. This is still heavily wip but you can see what things will be here pretty easily.
1722038476722.png

This will be dragged into another scene, and bam. There's your entity.
Combined with a good TRES file you can set up parameters that integrate into the code easily. This way there's no magic numbers anywhere!
1722038623018.png

Our setup for physics is a bit more complicated than CS's right now so porting the player physics parameters directly into this would literally just be a matter of copy and pasting numbers, etc.
Iirc we just have our player script load this when the room loads and right now we're trying to make it faster by having the player be a persistent object that exists between the "GUI" scene and the "Room" scene, that way we can implement loading zones and also not have to lag the game by loading all the player shit all at once. I wouldn't be surprised if this is why the NIS port needed loading screens, because of something similar regarding the filesystem of the game. Their games still suffer from loading issues too... dood.

The filesystem being ported into Godot's filesystem would mean you'd just be dragging scenes into other scenes at that point to recreate the room.
Make sure you enable and configure 'Use Grid Snap', it's extremely important for making a tile-based game like Cave Story in Godot.

Character sprites would need to be separated out into individual, transparent pngs so they could be animated using the built in animation system. This means EVERY single sprite in the game would need to be made unique EXCEPT for tilesets. It sounds like a hassle but it actually makes editing the game's sprites directly with aseprite becomes INFINITELY easier.

Alula's made pxtone support for Godot already so that could be useful (You could also just load wav and ogg files if necessary), yeah this means pixel's proprietary sound effect format won't work by default but Orgmaker would though I'm not sure if it should be an ACCURATE orgmaker port given how buggy it can be.

Edit :
Also Godot doesn't have built in tiled background rendering so you need to literally code it to spawn a bunch of sprites to make things tile, it's really annoying but they also did add batching to the renderer recently so it's not TOO bad.
 
Last edited:
Jul 27, 2024 at 4:15 AM
me when bro says be holly and jolly for $20
"Life begins and ends with Nu."
Join Date: Jun 27, 2013
Location:
Posts: 2852
Age: 30
Pronouns: She/Her
My past comes back to haunt me.
Never expected to actually see potential demand for picking this back up given how terrible it is.
We just gotta fix it up, make sure the downloads don't replace the JSON file with an XML file, Jade suggests starting a github on it as well, if you're into that.
 
Jul 27, 2024 at 6:02 AM
Senior Member
"Wahoo! Upgrade!"
Join Date: Oct 18, 2016
Location: Somewhere deep in the depths of Minnesota...
Posts: 51
Pronouns: he/him
I think we should delete the old wiki completely honestly so that the new one is easier to find. I genuinely think all of the information that is important is already on the new wiki and the old one sucks and will only make finding the better, newer one harder.
 
Jul 27, 2024 at 6:11 AM
Senior Member
"Wahoo! Upgrade!"
Join Date: Oct 18, 2016
Location: Somewhere deep in the depths of Minnesota...
Posts: 51
Pronouns: he/him
The old fandom one? I could see if I could find the google account for it.
Yeah, that one. Apparently Fandom makes it so it's always the top result for results on stuff like Google, so deleting it completely hopefully would be pretty beneficial
 
Jul 27, 2024 at 6:18 AM
Still at it
"All your forum are belong to us!"
Join Date: Sep 22, 2012
Location: Hell
Posts: 612
Pronouns: She/It
I sent a wiki closure request to Fandom, they're very anal about shutting down wikis but I'll let you know if I get an email back from them.
 
Jul 27, 2024 at 6:48 AM
Junior Member
"Fresh from the Bakery"
Join Date: Sep 13, 2020
Location:
Posts: 10
Pronouns: she/her
I think public advocacy is at the very least helpful in motivating people.

Well, it depends. There's a lot of people who work with CSE2 now and D-RS isn't too far removed from it, just with slightly different conventions in spots. So anything from one codebase would at least be identifiable in another. That could be a good reference tool to use.
I'm pretty certain Godot could run C# or something too. So cross-referencing the java port might be useful as well as from what I've been told it's literally just MS's bootleg Java.
Okay well, I'm gonna be honest, remaking Cave Story again is probably the stupidest idea ever and I don't get why you keep pushing this idea.

What you suggest requires a MASSIVE amount of effort no one will invest time into, because it doesn't give as many benefits in return as you think.

CSR took a couple of months of development before being abandoned.

CSE2-accurate started in January 2019 according to git, got finished to be fully playable a month or two later, and kept getting accuracy fixes even up to September 2020. Note, how the community was very involved in its development and I understand why people still use that over my engine.

doukutsu-rs started in August 2020 and was finished around January 2022, and that's also only because multiple people were involved (I was close to giving up because the effort to remake the entirety of Cave Story was very overwhelming, and I didn't see much community involvement in my project compared to CSE2, because why if former exists?)

Godot is always a 3D engine. 2D stuff is just 3D stuff pretty much.
This point is less relevant than you think and it isn't a special thing or really relevant to Godot, it's just how nearly every modern video game works to provide decent performance.

It is also is already applicable to every Cave Story implementation that uses a 3D API directly (doukutsu-rs, CSE2 branches with OpenGL or those proprietary console inventions, even every port of Nicalis' Cave Story+ as well). You'd just need some extra code to add rendering of 3D meshes if you needed it, that's it.

Godot also completely separates CanvasItem and Spatial nodes. It's not special in any way. You can build Godot with 3D support completely disabled if you want to get smaller executable size.

None of pixel's formats would need to be read but TSC. Even that could be put into Godot's filesystem directly. That said I think TSC could be very easily outdone but I think people would want to transition into a new scripting language more gradually so keeping the format the same would help at least. Script parser would function basically the same as far as I can tell.
I think that in the scope of Cave Story modding, it'd be a huge disadvantage as most people would rather prefer an easy migration path in/out. Guess why CSMP has not much interest from CSMC (and it doesn't even improve any of the formats in a good way).

Animations should be reimplimented using Godot's built-in animation system because CS's animation system is very questionable.
It sucks because it's very basic. NXEngine did improve it, but I don't think anyone has ever used the SIF editor. doukutsu-rs stuck to the shitty vanilla system for NPCs for compatibility reasons.

Character sprites would need to be separated out into individual, transparent pngs so they could be animated using the built in animation system. This means EVERY single sprite in the game would need to be made unique EXCEPT for tilesets. It sounds like a hassle but it actually makes editing the game's sprites directly with aseprite becomes INFINITELY easier.
Godot supports sprite sheets, and it'd be preferable to do it using them because doing less texture switching would improve sprite batching.



I think you're focusing too much on implementation details and completely missing out on actually engaging and motivating the community.

Encourage more people to build new things and better tools. On top of things that we already have.
 
Last edited:
Jul 27, 2024 at 7:17 AM
Still at it
"All your forum are belong to us!"
Join Date: Sep 22, 2012
Location: Hell
Posts: 612
Pronouns: She/It
Well I think the launcher discussion at the very least got Serri and Mint to consider that again. So that's happened. I've given a lot of thoughts already on the nature of the way the community's user retention is primarily hinged around Discord and Reddit which are very notorious for being the Least Likeable Parts Of The Internet Next To Twitter at times.
I've laid out a bunch of other shit that could be done but there's really only so much that can be done in just changing forum / discord structure before it feels like "Too much"
I still feel strongly that some means to stop the whole black-box problem and improve the modding sites would do this place a lot of favors.

As I said earlier in the thread a port is something that would be chipped away at not something actively done every single second because nobody in their right mind should be binging that process whatsoever. I don't think this is something we'd see remotely soon if at all, but I still think it's something worthwhile though.
 
Last edited:
Jul 27, 2024 at 7:29 AM
Deliverer of Sweets
Bobomb says: "I need a hug!"
Join Date: Jul 20, 2015
Location: Under sea level or something
Posts: 804
Age: 26
Pronouns: 菓子
Jade suggests starting a github on it as well, if you're into that.
Well I think the launcher discussion at the very least got Serri and Mint to focus on that again.
I'm open to posting the source but I think I really want to fix a million things first and delete the update feature because I believe it's a security hazard.
It's not like it's an amazing tool anyway.
 
Jul 27, 2024 at 7:33 AM
Still at it
"All your forum are belong to us!"
Join Date: Sep 22, 2012
Location: Hell
Posts: 612
Pronouns: She/It
Github is useful for turning shit code into decent code over really long periods of time lol.
 
Jul 27, 2024 at 8:14 AM
Deliverer of Sweets
Bobomb says: "I need a hug!"
Join Date: Jul 20, 2015
Location: Under sea level or something
Posts: 804
Age: 26
Pronouns: 菓子
I do want to mention that either way with the current state of Doukutsu Club it's not as easy to get mods or grabbing the latest version or anything without essentially making a specialized browser.
Though the least i can do is allow people to link the Doukutsu Club page of the mod before posting the source.
 
Jul 27, 2024 at 6:23 PM
Junior Member
"Wow! The more I drink of this magical beverage, the more games I can play! Wheee!"
Join Date: May 26, 2022
Location:
Posts: 28
Honestly, reading through these last few posts, I still don't see the point of creating a whole-ass launcher for Cave Story mods. I thought one of the main appeals of CS mods is that, being based off of a freeware game, you could just distribute the executable and everything and it would be ready right out of the box. You can't really get much more easy to understand than downloading a zip file and clicking on the program to run.

Let's not forget that existing mod executables vary from freeware to modified freeware to NX-engine to CSE2 to d-rs... this move would basically entail throwing out a good chunk of legacy mods, should the launcher choose to go for a patch-based method like Jade seems to be describing. Also, why a patch-based method? It's not like Nicalis is DMCAing us for hosting the original freeware version of the game, and even for CSE2, while they took down the source code, I have not seen a single instance of a mod that uses CSE2 being taken down even on that fateful day in 2020.

Plus, if we want to have our downloaded mods be up-to-date or showcase snazzy new mods, would a newsletter not suffice? Or, for mods you've already downloaded, an option on the website to be messaged each time an update is published?
 
Jul 27, 2024 at 6:34 PM
me when bro says be holly and jolly for $20
"Life begins and ends with Nu."
Join Date: Jun 27, 2013
Location:
Posts: 2852
Age: 30
Pronouns: She/Her
Honestly, reading through these last few posts, I still don't see the point of creating a whole-ass launcher for Cave Story mods. I thought one of the main appeals of CS mods is that, being based off of a freeware game, you could just distribute the executable and everything and it would be ready right out of the box. You can't really get much more easy to understand than downloading a zip file and clicking on the program to run.
I mean, the executable per mod is also downloaded, what it really does is open said executable. It'd be ridiculous to do something like those "36-in-1" bootleg games. Really all it does it download the game from the links posted by the creator rather than host it all by itself (although it would make an amazing idea if a collection like DoubleThink's repository or a website more similar to the now-defunct Doukutsu Uploader were utilized).
 
Back
Top