lumpbloom7 / sentakki Goto Github PK
View Code? Open in Web Editor NEWAn attempt to recreate maimai gameplay within osu!lazer
License: MIT License
An attempt to recreate maimai gameplay within osu!lazer
License: MIT License
In the game, the touch screen no longer seems to be above the specified decision area. When an object is tapped, it is not possible to identify and accurately determine whether or not the object was hit. The slider's sliding judgement is very strange and you can't get it right every time! I hope it can be improved.
During gameplay the very slight colour change between a held slider and a missed slider is unnoticeable and can be confusing for the player.
Single notes/slides have cyan color.
Twins have yellow color.
But all BREAKs, both single and twins are orange. This reduces the readability, especially for slides.
I don't think that adding one more colour would work. Maybe, change the appearance of "approach lines" somehow for twins to make them more visible?
Hello, I would like to ask about several matters that bugs me being driven away from the actual "sentaku".
I know this is a convert, what I want to ask is "Isn't a very short slide notes are rather impossible in general?". iirc the original one had around 2~8 ticks.
Is this specific for sentakki
itself?
As what I know that post-tap and the slide animation starts 1 beat interval, I'll assume the interval difference in here is not by bpm?
Also the plan of Slide note will be always attached to Star-skinned Tap as one entity or you could allow the possibility of being UTAGE memes?
I think thats the thing I would like to ask, thanks!
Example (sølips EX):
Proposed fix from Bloom:
--- a/osu.Game.Rulesets.Sentakki/UI/Components/HitObjectLine/LineLifetimeEntry.cs
+++ b/osu.Game.Rulesets.Sentakki/UI/Components/HitObjectLine/LineLifetimeEntry.cs
@@ -61,7 +61,7 @@ public void UpdateLine()
var hitObject = HitObjects.First();
- Colour = hitObject.Break ? Color4.OrangeRed : hitObject.DefaultNoteColour;
+ Colour = hitObject.NoteColour;
Rotation = hitObject.Lane.GetRotationForLane() - 45;
}
else if (HitObjects.Count > 1)
This is primarily to enable DIY maimai machines to be able to have their own button lighting effects, but may also be beneficial for other purposes such as RGB rave parties or whatnot. (Mr. Keane's machine being a notable example of a machine with led lighting)
Sentakki could broadcast certain events, such as touch events, note judgements and so on using a standard format. Listeners can then process them and perform actions with the information given. (maybe to turn on a certain light somewhere)
I need to look up on how IPC should work, since I have never done something like that before. (maybe pipes? idk)
Fresh install of osu!laser 2021.608.0 and sentakki 2021.608.0 on Windows 10 21H1
Relevant section of log file included below.
2021-06-08 23:28:06 [verbose]: Screen changed → Editor
2021-06-08 23:28:06 [error]: An unhandled error has occurred.
2021-06-08 23:28:06 [error]: System.ArgumentException: Only beatmaps in the osu, taiko, catch, or mania rulesets can be encoded to the legacy beatmap format. (Parameter 'beatmap')
2021-06-08 23:28:06 [error]: at osu.Game.Beatmaps.Formats.LegacyBeatmapEncoder..ctor(IBeatmap beatmap, ISkin skin)
2021-06-08 23:28:06 [error]: at osu.Game.Screens.Edit.EditorChangeHandler.UpdateState()
2021-06-08 23:28:06 [error]: at osu.Game.Screens.Edit.TransactionalCommitComponent.SaveState()
2021-06-08 23:28:06 [error]: at osu.Game.Screens.Edit.EditorChangeHandler..ctor(EditorBeatmap editorBeatmap)
2021-06-08 23:28:06 [error]: at osu.Game.Screens.Edit.Editor.load(OsuColour colours, OsuConfigManager config)
2021-06-08 23:28:06 [error]: --- End of stack trace from previous location ---
2021-06-08 23:28:06 [error]: at osu.Framework.Allocation.BackgroundDependencyLoaderAttribute.<>c__DisplayClass6_0.<CreateActivator>b__4(Object target, IReadOnlyDependencyContainer dc)
2021-06-08 23:28:06 [error]: at osu.Framework.Allocation.DependencyActivator.activate(Object obj, IReadOnlyDependencyContainer dependencies)
2021-06-08 23:28:06 [error]: at osu.Framework.Graphics.Drawable.load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies)
2021-06-08 23:28:06 [error]: at osu.Framework.Graphics.Drawable.Load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies, Boolean isDirectAsyncContext)
2021-06-08 23:28:06 [error]: at osu.Framework.Graphics.Drawable.LoadFromAsync(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies, Boolean isDirectAsyncContext)
2021-06-08 23:28:06 [error]: at osu.Framework.Graphics.Containers.CompositeDrawable.loadComponents[TLoadable](List`1 components, IReadOnlyDependencyContainer dependencies, Boolean isDirectAsyncContext, CancellationToken cancellation)
2021-06-08 23:28:06 [error]: at osu.Framework.Graphics.Containers.CompositeDrawable.<>c__DisplayClass17_0`1.<LoadComponentsAsync>b__1()
2021-06-08 23:28:06 [error]: at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
2021-06-08 23:28:06 [error]: --- End of stack trace from previous location ---
2021-06-08 23:28:06 [error]: at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
2021-06-08 23:28:06 [error]: --- End of stack trace from previous location ---
2021-06-08 23:28:06 [error]: at osu.Framework.Graphics.Containers.CompositeDrawable.<>c__DisplayClass17_2`1.<LoadComponentsAsync>b__4()
2021-06-08 23:28:06 [error]: at osu.Framework.Threading.ScheduledDelegate.RunTaskInternal()
2021-06-08 23:28:06 [error]: at osu.Framework.Threading.Scheduler.Update()
2021-06-08 23:28:06 [error]: at osu.Framework.Graphics.Drawable.UpdateSubTree()
2021-06-08 23:28:06 [error]: at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
2021-06-08 23:28:06 [error]: at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
2021-06-08 23:28:06 [error]: at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
2021-06-08 23:28:06 [error]: at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
2021-06-08 23:28:06 [error]: at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
2021-06-08 23:28:06 [error]: at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
2021-06-08 23:28:06 [error]: at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
2021-06-08 23:28:06 [error]: at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
2021-06-08 23:28:06 [error]: at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
2021-06-08 23:28:06 [error]: at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
2021-06-08 23:28:06 [error]: at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
2021-06-08 23:28:06 [error]: at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
2021-06-08 23:28:06 [error]: at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
2021-06-08 23:28:06 [error]: at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
2021-06-08 23:28:06 [error]: at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
2021-06-08 23:28:06 [error]: at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
2021-06-08 23:28:06 [error]: at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
2021-06-08 23:28:06 [error]: at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
2021-06-08 23:28:06 [error]: at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
2021-06-08 23:28:06 [error]: at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
2021-06-08 23:28:06 [error]: at osu.Framework.Platform.GameHost.UpdateFrame()
2021-06-08 23:28:06 [error]: at osu.Framework.Threading.GameThread.ProcessFrame()
2021-06-08 23:28:06 [verbose]: Unhandled exception has been allowed with 0 more allowable exceptions .
A rather dumb oversight on my end.
In #86 I changed all of the animations from manual lerping in Update()
to using drawable transforms in UpdateInitialTransforms()
, but neglected to re-implement the Hidden and FadeIn mod behaviors.
On the bright side, this gives me the opportunity to rethink how Hidden and FadeIn would work :)
With my intention for sentakki to be a viable option for DIY maimai machines, it is important that there are options to ease the use of sentakki on those machines.
Currently the playfield is hard locked to the center of the screen, either forcing DIY-ers to accommodate that in fullscreen, or to resort to using windowed mode.
Having an option to finetune the playfield position would allow for greater accessibility and leniency for DIY machines.
title is a bad explanation, sorry. Releasing a slider overly early plays the tail hitsound, even though it should technically count as a miss and so not play a hitsound. It leaves the end hitsound misplaced and confusing.
For some reason I have yet to investigate, turning on the experimental mod, regardless of the chosen subsettings, will always cause Touch notes to be generated.
Hi. When I try to play sentakki on a map before playing, the message shows as following:
When I look on the log, I notice one of the line missing its dependency.
2023-05-17 23:04:06 [error]: System.MissingFieldException: Field not found: 'osu.Game.Rulesets.Objects.HitObject.SampleControlPoint'.
Is there anything wrong with sentakki or what? Lazer build is currently at 2023.513.0-lazer.
When a proxied drawable is reset many times, either via rewinding or AnimationDuration changes, the proxy will break in an unusual way, causing obvious visual artifacts.
The first sign of it breaking is the proxied drawable having messed up depths, even though the comparison function should compare using the DHO's start time.
The second sign of breakage is the DotPiece of Hold and Tap notes breaking as well, even though they have no transforms that could cause it, and their parent drawable is still showing as normal.
These visual errors never fix itself throughout the rest of gameplay.
Removing the proxying completely avoids the issue, but then creates the problem where one lane is visibly above another.
Maybe try to add the slider things across the screen from the real maimai? I feel like that would improve the game, even if it is only on mobile.
EDIT: Maybe add a setting to toggle it.
Hello! How (or if) Can I enable Multitouch?
Doesn't have any mechanical impact on gameplay, but it does add visual spectacle.
happens to everyone
the heads of sliders are copying the hitsounds used by the tails of the sliders, rather than using their own hitsounds.
I made hitwindows constant by setting the min, max and avg to be the same. This in turn rendered the difficulty adjustment redundant as this ruleset doesn't utilize any of the other difficulty values as well.
Should allow mirroring of the X and/or Y axes.
version: d98119c
the game will hard crash when loading any song for play. probably due to map conversion.
I have mouse buttons enabled and still I can't do touchscreen. why?
I don't think that this is actually beatable.
A check for slides so they won't pass the same points on playfield is necessary.
There are cases when sliders intersects that moving stars pass near-the-same point on screen at the same time. This is beatable because you don't have to follow the stars precisely, but still confusing.
Also, it's offtopic in this issue, but i want to ask you add more slides paths. Especially complicated ones, like on 2nd screenshot. It will make the ruleset much more interesting to play.
hi, this is my first time writing an issue here so please be gentle on me
i think the note entry animation duration name in the settings should be changed to note speed (or something simirar)
Thank you for creating this impressive maimai simulator!
Can you please post your project to ppy's custom ruleset directory ppy/osu#5852? So more players can find your ruleset.
Some of the touch notes may suddenly appear/disappear when it is proxied.
Disabling proxying seems to return everything back to normal.
parentSlide.SlideNodes.IndexOf(node)
returns the correct future index of the node negated in the test scene, but always returns "-1" during gameplay regardless of children count.
Left and right mouse buttons acting as keys 1 and 2 seems logical.
Slide path usually appears underneath other every other note type, since their paths take up a good portion of the screen, and may obstruct them.
While playing the sentakki gamemode with the experimental mod and touch notes enabled, anytime that the star-like object appears it begins to grow before osu!lazer quickly freezes and then crashes.
This first happened on an unreleased map that I was testing, but I was able to replicate is with other maps, for example this map from the internet beatmap pack Vol. 1 (https://osu.ppy.sh/beatmapsets/332436#osu/755258) Crashes at around 13% on the "Baraatje123's Juicer" difficulty.
I've uploaded the runtime.log, which appears to be the only important one for this. It specifies "System.NullReferenceException: Object reference not set to an instance of an object." as the error. I am running the latest version of osu!lazer, 2020.1204.0.0, and the latest version of the sentakki ruleset.
heres the log
1708609744.runtime.log
Needed to be able to replicate some maimai quirkiness.
I want to allow wielding in sentakki because in physical Maimai, there's seperate buttons that allow you to wield (in touch too.). It's so annoying that in spinning thrill note (like on The disapperance of hatsune miku MAS.) you can't wield. and you have to touch rapidly (no one do that in Maimai, I think).
Touch notes have a special property that prevents them from blocking input, but is unable to prevent themselves from being blocked by other DrawableHitObjects.
Potential solutions I can think of:
1. Adjusting the note duration based on the current playback speed
2. Adjusting note animation to use the approach rate of beatmaps, which avoids the problem of needing to manually set animation speed, but removes a adjustable option that was present in Maimai
3. Ignore the problem and consider it a feature.
i thought it would be really. really good for Spinner in this ruleset
When spinner approaches Spin Text Appears above and you need to Spin it It will spin The Circle things entirely
im really bad at describing things im sorry :c
title explains it
replication:
create normal map
place down the spinner thing (idk what its called)
hold the end like you're changing the length
scroll using mouse
(not)profit
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.