Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

Thesnakerox

14
Posts
3
Topics
1
Followers
A member registered Oct 30, 2021

Recent community posts

We can only hope they’ll fix the game’s latency soon, because they knew it was a problem since long before Week 6 was released…

Really? I never learned how to crack the browser version of Week 7 open, so that’s good to know!

Hopefully they’ll make more improvements to the game’s inner workings down the road. They still have yet to release a version with an offset setting though, which, like I said, should come standard with any rhythm game…

Kade Engine was not made to tweak the things about FNF that Kade doesn’t like. It was made to tweak the things about it that are objectively poor game design.

In other words, Kade Engine makes the game better. And anyone who’s played both Kade Engine and the base game and noticed the fine details will probably agree.

Not to mention the fact that engines such as Kade Engine, Psych Engine, Mic’d Up, and Forever Engine exist in the first place. Four different modders found the base game so deeply flawed that they felt compelled to do something about it.

The modders are basically doing the Funkin’ Crew’s job for them at this point.

So! The brief bout of drama between KadeDev and Kawai Sprite has come and gone, and last I heard, Kade and Kawai Sprite are on good terms now. For the uninitiated, just do some looking around on the /r/FridayNightHighJinks subreddit and you’ll find the context. However, there are some things Kade and Kawai Sprite said that struck me. Kade started by saying:

Cam and Emma can’t carry the fucking game all by themselves. Seriously, I’d recommend getting actual programmers. If y’all are human, then please tell me you have a team of programmers too. Ones with experience.

To which Kawai Sprite responded:

Compared to an actual AAA title the coding in this game is nothing crazy. […] I believe in my friend.

Don’t worry though, soon enough when the update is out, you can take my friend’s work from GitHub and tweak the things you don’t like about it to boost your ego, and sell it yourself.

The reason this struck me is because I do think Kade could have used better wording in what he said, sure. But behind all of that…he’s right. Or at least, I agree with him.

Before I explain why though, I should note that whenever I discuss the game’s inner workings, I’ll be talking strictly about the Week 6 update. That’s the latest version that’s currently downloadable here on Itch, and therefore it’s the latest version I can currently dive deeper into the inner workings of.

Anyway…first off, Kade Engine was not made to tweak the things about FNF that Kade doesn’t like. It was made to tweak the things about it that are objectively poor game design.

The first example of this that immediately comes to my mind is the addition of an offset setting in Kade Engine to combat FNF’s inherent latency problem. I won’t spend an entire paragraph explaining what latency is again, but basically all you need to know is that an offset setting is a quality-of-life feature that should come standard with any rhythm game, and it makes latency a moot point. Kade added an offset setting to FNF with Kade Engine, while the Funkin’ Crew still have yet to add it to the base game, despite the fact that they knew latency was a problem since long before Kade Engine was released.

The second example that comes to my mind is the way the game’s file hierarchy is structured. I go into this in much more detail in this Reddit post, but basically Kade Engine’s file hierarchy is better optimized than the base game’s file hierarchy because it cleans up one of the biggest messes present there. You can look at my file hierarchy post for more details if you want to know more.

Other things that Kade Engine fixes include the font in the story mode tracklists actually having spaces so Philly Nice can actually be called “Philly Nice,” the hit engine not being absolute dogshit, the chart editor being slightly less dogshit, a proper results screen at the end of a song in freeplay mode, and even though it’s still pretty hard to get mods working in Kade Engine, it is easier than doing it in the base game.

Secondly, I frankly call bullshit on the notion that the coding in FNF is nothing crazy compared to an actual AAA game. Because there actually is a AAA game that is very comparable to FNF, and that is Guitar Hero III: Legends Of Rock, which I’ll be calling GH3 for short.

Some of you may have no background with rhythm games and FNF was your first experience with them, so here’s a quick rundown of GH3. GH3 is a game where you press buttons to hit notes in time with the music in the game. The more notes you hit, the more points you get, and your goal is to hit enough notes that you don’t fail the song you’re playing. If you pass a song, you can then play the next one. There are also animated characters in the background that move in accordance with what you’re playing.

Does that sound familiar at all? It should, because FNF follows the same basic concepts as GH3. There are some differences that we could argue about till the end of time, such as the fact that GH3 has a proprietary controller while you can play FNF with any old keyboard, but to argue about those differences is to miss my point.

Here’s the big kicker though: GH3 is a AAA game, but with The Full-Ass Game’s stretch goals, FNF will actually have MORE content in it than GH3.

GH3’s story mode has a total of 41 songs spread across 8 levels. FNF’s story mode, on the other hand, has a planned total of 135 songs spread across 45 levels (or weeks as they’re called in FNF). That’s more than three times as much content as GH3. There are also plans to add other things that GH3 has, such as cutscenes for every level/week, local multiplayer, different playable characters, and online leaderboards. And to top it all off, there are plans to add things that GH3 doesn’t have, such as unique gameplay mechanics (save for the boss battles, the mechanics are pretty much the same throughout all of GH3’s songs), easy custom song integration (GH3’s custom song integration is pretty limited), and an API that makes modding the game easy (GH3 can only be modded through an extremely complicated process that uses external software).

So…it’s not just gonna be art and music. The Funkin’ Crew will have a lot to do in terms of programming as well.

Therefore, I actually agree with Kade’s point that they need to have an entire team of programmers working on the game in addition to their artists and musicians.

On top of that, why not have some seasoned rhythm gamers playtest the game and give feedback on it as well? That way, when The Full-Ass Game is eventually released, all the other seasoned rhythm gamers will stop bashing FNF for having inferior mechanics.

Oh, yes! I forgot that Animate is actually capable of generating XML files for spritesheets!

However, I think the process of coding the cutscenes would still be incredibly meticulous and time consuming; the XML file only dictates which areas of the spritesheets represent the various parts of the characters. They still need to use tons of code to position, scale, and orient those parts. This is evident in the fact that if you import a new character into the game (or an already existing character is on the wrong side), that character is very often not in the position you want them to be in by default–they are either floating or halfway buried in the ground.

I didn’t know Week 7 will be bundled with the release of Week 8 though…we’ll just have to see where that goes, I guess.

Yes, they would be able to reuse the code for every cutscene in the game…if it wasn’t for the approach that they appear to be taking according to Tech Rules. They would have to code which parts of which spritesheets go where…and do that for every single frame of the cutscene.

The bulletin board and flipbook analogies in the original post can also apply to the process of implementing a cutscene, but another analogy I can give is trying to make an animation in Command Prompt vs in Adobe Animate. The approach the Funkin’ Crew appear to be taking is akin to using Command Prompt to make the animation, whereas Adobe Animate would probably be the more sensible option.

So if they find a way to make the spritesheets work for the cutscenes, they’re still going to have to program each cutscene basically frame by frame. So maybe the time taken to figure out how to do it will be shaved off for subsequent cutscenes, but programming in every individual frame of each cutscene would still be extremely time consuming.

Basically what kreep said. I was initially hoping these posts would reach the Funkin’ Crew, but I’m going to continue to post them here to raise awareness within the general playerbase.

That’s my thinking at this rate.

Haxe’s main selling point is that games compiled by it can be made into Windows executables, macOS apps, mobile apps, HTML5 interactives, Flash interactives, and more. But to be compatible with so many different platforms, you have to sacrifice a lot of features that make…well, a good game. If the Funkin’ Crew want to cram all the content they’re promising into The Full-Ass Game, I think pulling that off in Haxe would be a stretch.

We can also compare FNF to other rhythm games, such as Clone Hero. Clone Hero was built in Unity, and it is an excellent rhythm game–light years ahead of FNF in terms of optimization and gameplay, to the point that every avid Guitar Hero player mains it.

Friday Night Funkin’ in its current state is a poorly constructed and poorly optimized mess, and I believe that this is largely due to the limitations of HaxeFlixel, the engine being used to build this game.

That’s really the bottom line of this post. If you want to hear me elaborate, keep reading. If not, feel free to leave and have a good rest of your day or night.

Anyway, for those who are sticking around…why is FNF a poorly constructed, poorly optimized mess? Well, there are quite a few reasons, which I will detail in this topic and possibly more topics in the future if you want to continue to see me tear this game apart.

Last topic, I talked about the game’s file hierarchy, how each song’s data is organized, and how it’s all a hot mess. For this topic, at the request of user kreep, I’m going to talk about something that not only is directly related to Haxe’s limitations, but is something that you all might care a little more about. And that something is…

Why is Week 7 not downloadable here on Itch yet? It’s been months since it came out on Newgrounds!

Well, everyone, YouTuber Tech Rules has a guess that I think is most likely the answer.

He says a lot in the segment that I’ve linked, so I’m gonna try to break it down. The first thing you should know is that Haxe does not have native support for playing video files on desktop versions of games compiled in it. This means that just having a video file for each cutscene play, which would probably be the simplest way to implement the cutscenes, is completely off the table. So how do the Funkin’ Crew plan to fix this problem?

Tech Rules speculates from some game assets he found that for the desktop version of FNF, the game itself will animate Tankman speaking and such frame by frame using spritesheets. To give an analogy for this, try to imagine having a bunch of photos scattered across your floor. You then pick one or two photos up, pin them to a bulletin board on the wall for a moment, then take them down and put them back where they were before repeating the process with more photos. Now try to imagine doing that 30+ times per second. That’s basically what your computer and the game would be doing if the cutscenes were implemented in this way.

Now to give an analogy for playing a video file…well, just picture yourself flipping through a flipbook. Nice and easy, right?

The problem is, Haxe is simply not capable of doing the latter thing, even though it would probably be easier on lower-end computers that try to run this game. And this is a major problem.

If The Full-Ass Game is going to have 45 weeks, and the Funkin’ Crew are having this much trouble giving FNF’s desktop client Week 7’s features…that should be a massive red flag against Haxe! The fact that adding just one week’s worth of new features to the desktop version of the game is taking so long means that something about building this game in Haxe is not working out.

Let’s say the Week 7 update was to be made downloadable here on Itch today. That means that it will have taken about 6 and a half months since the Newgrounds release for that to happen. If we assume that delay was caused solely by the amount of effort it took to implement the cutscenes, and every week after Week 7 were to have cutscenes that would take the same amount of effort to implement, The Full-Ass Game would take about 247 months to finish, or about 20 years and 7 months.

I don’t think any of us are willing to wait that amount of time. And that estimate is not even accounting for the addition of the new songs, charts, or other features the Funkin’ Crew are promising.

So in short: Week 7 is not downloadable here on Itch yet because Haxe is not capable of the simplest approach to the cutscenes. The Funkin’ Crew are trying to get them working on the desktop version of FNF, but given how long it’s taking, they’re probably having a funkton of trouble finding a good way to do it.

Like last time, I’m going to end off with a poll, for anyone who may be interested in learning more about how broken this game really is. If you are interested, let me know which of the following you want to hear about next:

  • How dogshit FNF’s chart editor is (Seriously, it needs to change–it’s so terribly designed NinjaMuffin himself hates it)
  • Why modding this game is so difficult, even with several different modding engines existing (It’s because this game will have a major freakout at the smallest thing being wrong)
  • Why you may not always be getting Sicks even though you’re hitting the notes in time (It’s not because you’re bad–it’s another problem with the game)

Additionally, if you have any questions or want further clarification, let me know and I’ll get back to you whenever I can!

I am planning on eventually making an open letter to the FNF Team about the game’s issues. However, I figured more players should be made aware of them too; FNF doesn’t even come close to having everything a rhythm game can offer in its current state.

Already done, actually. Twice.

This post was inspired by that brief drama between Kawai Sprite and Kade actually lol

But tbh I agree with Kade. However, what he said would probably have had more impact if he explained what's wrong with FNF in greater detail like I'm doing.

(1 edit)

TL;DR: The way this game's song files are organized is a mess, and as long as it stays that way, the FNF Team will never be able to deliver on their promise of easy custom song integration for The Full-Ass Game.

(1 edit)

Friday Night Funkin' in its current state is a poorly constructed, poorly optimized mess, and I believe that this is largely due to HaxeFlixel's limitations.

That's really the bottom line of this post. If you want to hear me elaborate, keep reading. If not, feel free to leave and have a good rest of your day or night.

Anyway, for those who are sticking around...why is FNF a poorly constructed, poorly optimized mess? Well, there are quite a few reasons, which I will detail in this topic and possibly more topics in the future if you want to continue to see me tear this game apart.

What I'd like to point out in this topic is the game's file hierarchy, and how each song's data is organized. In a lot of rhythm games, a song contains three different types of data: Audio data, chart data, and metadata. The audio data is what you hear, the chart data is what you press the keys in time to, and the metadata is information such as the song's name. A song's metadata in FNF could include which characters are on each side and which background is shown, for example.

On The Full-Ass Game's Kickstarter page, the FNF Team promise easy custom song integration. Now, for most rhythm games that have this as a feature, each song would have its own folder that contains its audio, chart, and metadata in it. You can then drop that folder into another folder that the game will read from.

However, this is not how FNF does it.

In FNF, each song's data is split across three separate locations. The audio data is stored in one folder, the chart data is stored in another folder, and then the metadata is hardcoded into the game's executable. This means that if you want to add a custom song to the game, you have to locate the folder where all the audio data is stored and drop your custom song's audio data there, then locate the folder where all the chart data is stored and drop your song's chart data there, and finally use special third party software to crack open the game's executable and edit the code to add your song's metadata to it.
Each song's metatdata being hardcoded into the game's executable is also the reason why if you've messed with the chart editor and tried to change a song's name, the game just crashes when you try to play the chart.

Worse, this means that every time you load a song to play it, the game has to navigate to three different file locations to fetch all the data needed to enable you to play that song. For those of you who may be experiencing slow load times when selecting a song to play, this could very well be the culprit.
We can put this into perspective with a real life analogy too. Let's say you need to get three things for something you want to build. Would you rather have those three things scattered across different locations in your home, or have them sitting together in one place for you to conveniently find and pick up?
The former is sorta what your computer has to go through when loading a song's data in FNF. The latter is what your computer does when loading a song's data in most other rhythm games.

Now, you might think that I'm talking about this as if it needs to be fixed ASAP. But that's because...it does need to be fixed ASAP!
If FNF's file hierarchy is restructured so each song's data is stored in a single folder rather than being scattered across three, this will not only allow the devs to deliver on their promise of easy custom song integration early, but it will also save them a lot of headache in the future, when the game has a total of 60+ songs bundled with it (The stretch goals that have been met on The Full-Ass Game's Kickstarter mean this game will have a total of 45 weeks, or 135 songs).  When they're at that point and they need to add a new song, adding that song could potentially be as easy as simply dropping a data package into the right file location, and then maybe having the game rescan that location for new content.

I'm also going to really quickly compare this game to Clone Hero, which I believe is a flawless example of custom song integration (and funnily enough, the FNF Team give Clone Hero a shoutout in the game's specialThanks.txt file). To add a custom song to Clone Hero, literally all you have to do is grab the data package for your custom song, drop it into the appropriate folder, and then tell the game to rescan that folder so it can find that newly imported song. Better yet, a Clone Hero song's metadata is stored on an easily editable INI text file, so if you notice that the metadata is messed up for some reason, you can just open the file and change it.

So in short: The way this game's song files are organized is a serious detriment to its development in the long run, and if this problem goes unfixed for too much time, it could end in The Full-Ass Game either never being finished or flopping upon release.

I'm going to end off with a poll, for anyone who may be interested in learning more about how broken this game really is. If you are interested, let me know which of the following you want to hear about next:
- How dogshit FNF's chart editor is (Seriously, it needs to change--it's so terribly designed NinjaMuffin himself hates it)
- Why Week 7 is still not downloadable here on Itch yet (It's because of Haxe's limitations)
- Why you may not always be getting Sicks even though you're hitting the notes in time (It's not because you're bad--it's another problem with the game)

Additionally, if you have any questions or want further clarification, let me know and I'll get back to you whenever I can!