It’s December already. Time flies so fast. What are your resolutions for 2022? There is still time for another blog post this year, so I will ask this question again.
Today, let’s talk about the third part of the process to get songs into the game – the charts a.k.a. level design. Without doubt, I am most involved in this part as I have been the sole charter of the game right now. Not to mention, I also have to code to get this part up and running too.
I will skip the basics of charting and almost the entire coding part to shorten this blog post, which should already be long enough otherwise. This blog is not a “how to make a chart” as there are plenty of tutorials out there for your favorite game. I’d just like to detail a bit on the process of getting the chart playable in the game. But still, I will give you some basic glossary for some terms:
Where better to start this discussion than the chart editor itself? Yes we do have an editor to make everything clear enough. Emphasis on the enough as it is the fate of most internal tools around – most are usually good for internal use, not so much for external use.
For starters, there are a lot of stuff I intended to have their own interfaces (note components) but I figured I could just use hotkeys and save the trouble. Ended up having less clicks too. As a tradeoff, I have to use a keyboard with numpads and it kept me out of many possible mechanical keyboard options. I haven’t played PC rhythm games in a while so I could happily take that tradeoff, I guess.
In the image above, you can set the slide direction using numpad keys. Yes, you can use the dropdown over there but it’s not efficient to do so.
For things like ray directions in which multiple directions are applicable this is even more obvious. The initial idea is to create a button that brings you to a new UI where you can set the 8 directions but that’s… so inefficient.
I straight up said that you can just set them with hotkeys (again, numpad keys) here.
Keep in mind that “Rays” are the initial term here. I think we can call them as… note lines? I mean, the game is called SparkLine so we can use terms that’s more suitable to the game.
The options on the right would be too much to explain one by one although some are self-explanatory. A lot of dropdowns, a lot of buttons… while “Hit SFX” should be pretty obvious, stuff like “number of beats shown” probably not so much.
The time it takes to complete a chart differs by its difficulty (of course) and the complexity you want.
I usually take about 2-3 hours to complete a Normal chart and somewhere double of that for the Hard ones. The tricky charts will take a lot of playtesting so that I don’t end up confusing myself too much. However, it is mentally exhausting to playtest those kinds of charts so I don’t want to make too many of them, haha.
Take this Macropolis chart I posted last week as an example of a tricky one.
I have to be careful in making this chart so that it doesn’t become needlessly frustrating to play. There is a visual cue on which Hold note you need to release faster, and it does implement cross-hand segments although I toned it down for now. Overall, a lot of memorizing will be involved in mastering this chart.
Overall, this chart took about 2-3 days to make and polish. For something like this, the polishing section took about 30-40% of the total time. In contrast, Fluffy x Dreamy’s Master chart (an easy and simple 12) took about 4 hours to make. But as of late no charts take more than 3 days to complete. That includes the level 14s that are obviously more complicated to make.
Macropolis will be playable in the beta test. I think it will take some time for you to get used to the chart but I think it’s fun!
So let’s assume that you get the chart done, after that you need to make it playable in the game.
I think a lot of games put their charts directly inside the game builds and it’s fine for security purposes at least. But, when the charts are still in WIPs you should not do that. As the changes in the charts because even more specific as we iterate through it, it doesn’t make sense to waste time rebuilding the entire game for the sake of changing a single note.
So what’s the solution to this? Well, making the charts update-able without rebuilding of course! The chart editor is able to upload the edits to a server, which can then be picked up by the game. The upload implementation is still crude, but it works… for now.
The song data here is editor-only, although it has BPM data that will be given to each individual charts of the song. You are probably wondering about the three upload chart buttons. I’m happy to explain to you one by one about it.
Here’s a diagram to help illustrate the different charting stages.
It should be noted that only admins (me) are able to upload to staging and production. This is to prevent just about anyone from tampering with the official charts.
On a formal environment, I will review each individual charter’s charts on staging custom environments, all of which I could grab easily from a single internal build. After that I will merge your charts to staging for everyone to test and finally, when the time comes I’ll put them on production for everyone to play.
At the moment… I am the sole charter, so some processes can actually be skipped. On a single charter environment, I probably can skip the staging custom part but it’s good to prepare for the future.
Some time ago I have said I would like to open charting applications after closed beta test is done (more on that later).
I decided against it. The reasons why are detailed below.
This is applicable to both sides. You cannot expect to master the tool in about 1-2 weeks and already create a chart that’s up to standard. In fact, I expect that your first chart(s) will undergo major revisions, perhaps even more than once. By my estimation, if you are doing this in your free time, the adaptation period may reach 2-3 months or even more. Do you wish to wait for this long to start contributing? For most people, I’d wager they would answer no and that’s fine.
Moreover, if you have never played the game before, you probably don’t know what I expect from you. While it’s not a super revolutionary concept, I still believe it’s quite different to what you see in the market and has its own charting “meta” you have to follow. This is why I said before that I wanted to open charting applications after the beta test is concluded.
However, after pondering through things again… It looks like it may be better that I suffer and be “in the trenches” for a while.
To preface this section, I think the charting tool is already okay for mutual use, but there are still some… quirks that I could bypass due to my own way of charting. Most chart editors have a frame-by-frame note density check (usually made horizontally) which I skipped because… it’s already there somewhere else. So, I don’t have to make one for myself.
I am using ArrowVortex to map out the beat positions. For Normal and usually the Hard charts too, I can straight up convert .sm files to a SparkLine chart, minus the map positioning. However, at that point half the job’s already done.
I have been charting in Stepmania since the DDream days and that’s at least a decade ago. I see things that I already can use, I feel it’s not good to reinvent the wheel. It’s probably a bit unusual for an official game to essentially say the charts are made from something like this first, but it is what it is.
This works because I use this particular set of tools already. But what if you don’t? That’s the problem right there.
So to summarize the reasons for cancelling the upcoming charting applications – It takes time to learn the charting tool and meta AND to adapt to the current quirks of the tool. With an expectation that you’d need 2-3 months to start actual contributions in light of our target release date of Q2 2023, accepting charters may even end up hindering that release date. And not to skirt around another important issue – money is also a consideration for this decision.
In the end, there are a lot of “it is what it is” things in the chart editor. I can work with and around it efficiently. I also deliberated on some of the things posted in this blog. Mostly in the “am I telling too much?” kind of worry.
Also, I would like to notify you that the blog posts may be posted on Tuesdays instead, so that I don’t have to work on Sundays to prepare for it. But if I am in the mood, then yeah, why not.
Okay, you probably have been waiting for this one.
I will say to you that yes, we are still on track to have it ready by this month. As it stands we should be able to give you the form by next week, and have the builds ready in the week after that. You will be required to join our Discord server to participate so if you haven’t done so already… Please do 🙂
Only thing left to do should be a somewhat proper authentication system so that your name doesn’t have to be WD-Debug. Other than that… a re-review of the charts I guess.
You will be able to upload, and encouraged to upload the contents of the build to Youtube and such. Nothing inside the build has to be hidden (except… the build itself, it’s a closed beta test) so of course I will really appreciate it if you’d like to make some noise in the scene for us!
I’ll be looking forward to your feedback and your videos, if you upload them. Until then, stay tuned. The time is almost there!