Forums » StepMania Development » [SM 5.1] New noteskin format and modifier system

I'll modify the code so that the stepstype is passed in along with the button list. So it won't be necessary to fetch the stepstype from GAMESATE.
This section lists all the button names in the new system. Stepstypes meant for different controllers should use different button names.


You may have noticed that the player number is missing from the new format. I haven't decided yet how to handle routine mode. I'm considering adding another actor type that would be an overlay on top of the actor. So when the notefield needs to render a tap for player 1, it draws the normal tap, then draws the player 1 overlay on top. That way, it's easier to extend a noteskin to cover 3, 4, or more players, because you only have to make more overlays. Does that seem like a good idea?
< cybik> til Kyzentun fixes bugs for breakfast
--
< maxvg1> shakesoda: then why do i still play lol
<@shakesoda> because you're an ITG player. And thus, a masochist
--
<@shakesoda> Kyzentun: I think you might need to put down the meshes for a bit
Reply
dance-threepanel should have UpLeft/Down/UpRight, not Left/Down/Right.
See https://www.youtube.com/watch?v=nRiyExvQC3k

You may have noticed that the player number is missing from the new format. I haven't decided yet how to handle routine mode. I'm considering adding another actor type that would be an overlay on top of the actor. So when the notefield needs to render a tap for player 1, it draws the normal tap, then draws the player 1 overlay on top. That way, it's easier to extend a noteskin to cover 3, 4, or more players, because you only have to make more overlays. Does that seem like a good idea?

Nice idea, but in pump, whole arrows are colored by player number. So I think normal tap is unnecessary in routine mode.

Last edited: 5 October 2015 11:52pm

Reply
I don't like pump's approach because it means the notes can't be quantized. Quantizing means coloring the arrows to show where they are in the beat. 4ths are red, 8ths are blue, and so on.
With an overlay instead, notes can be quantized, and the overlay can be do something like put a glowing outline around the note for each player. The same noteskin can easily work in both normal play and routine mode. In normal mode the overlay isn't used, and the noteskin doesn't need special code to detect which mode it's in.
Pump's way of handling routine mode notes just seems like a mistake to me, so I don't see why we should imitate it.
< cybik> til Kyzentun fixes bugs for breakfast
--
< maxvg1> shakesoda: then why do i still play lol
<@shakesoda> because you're an ITG player. And thus, a masochist
--
<@shakesoda> Kyzentun: I think you might need to put down the meshes for a bit
Reply
Not to mention that the overlay could just be an entirely separate graphic if you really wanted a noteskin that worked like Pump routines.
Reply
Not to mention that the overlay could just be an entirely separate graphic if you really wanted a noteskin that worked like Pump routines.
That's a good point. I'll have to add an option to hide the normal note so that a noteskin that wants to do that doesn't render every note twice.

< ter2> okay another question: is 5.1 still going to have hard-coded stepstypes?
Probably. Given how much work it's been to change the noteskin format, and how few people are actually interested in the change: loading stepstypes from data doesn't seem worth the effort to implement.
I could change the one part I linked to load from lua, but changing the rest of the code base would be an adventure.
< cybik> til Kyzentun fixes bugs for breakfast
--
< maxvg1> shakesoda: then why do i still play lol
<@shakesoda> because you're an ITG player. And thus, a masochist
--
<@shakesoda> Kyzentun: I think you might need to put down the meshes for a bit
Reply
After some work on overlay system, I realized that it would not work so well for 3D notes, and decided not to do it. I'm currently looking for better ideas for routine mode.

Ideally, the noteskin system should allow notes that are quantized (colored by the timing), and playerized (colored by the player they are for). I'm hoping for a system where having notes playerized and quantized does not require the noteskin to multiply the number of quantizations by the number of players.

For the interim, I'm going to implement a system where the notes can be playerized or quantized, but not both. When the notes are playerized, the quantizations in the state map will be treated as entries for different players.

One of the ideas so far is to use color masks to playerize the notes. This means making a second texture for the notes, where the alpha value at each pixel tells the engine how much player color to apply there. Then the noteskin specifies a list of player colors. When a note is rendered, the system applies the mask with the color for the appropriate player. The theme can also set the player colors to use.
This example uses red and green for the player colors to make it clear where they are being applied by the mask.
This is the color mask used in the example. It's just a test to make sure the system applies the mask correctly, not an attempt to make a mask that looks good.
< cybik> til Kyzentun fixes bugs for breakfast
--
< maxvg1> shakesoda: then why do i still play lol
<@shakesoda> because you're an ITG player. And thus, a masochist
--
<@shakesoda> Kyzentun: I think you might need to put down the meshes for a bit
Reply
The StepMania 5.1 Alpha has been released so that people can start porting noteskins. Read the docs, don't be like Karai, who asks questions that are explained in the first 5 sentences.

Last edited: 31 October 2015 6:40am

< cybik> til Kyzentun fixes bugs for breakfast
--
< maxvg1> shakesoda: then why do i still play lol
<@shakesoda> because you're an ITG player. And thus, a masochist
--
<@shakesoda> Kyzentun: I think you might need to put down the meshes for a bit
Reply
Is it possible to do something like this, where the scratch in "beat" mode is under the notes? It'd be nice for doubles since there's pretty much zero chance of all lanes + scratch at the same time(and for singles or the odd double chart that has them it could be fixed by having 8 note-sized lanes and rendering scratch under all of those).

And yes, I'm aware that 10+2 is broken, so I'd probably just do this for other beat modes for now.
Reply