osu icon indicating copy to clipboard operation
osu copied to clipboard

Add "Zoomed" mod

Open o-dasher opened this issue 2 years ago • 40 comments

This mod is based on a concept i made up myself. The game reduces your "FOV (Field of View)" and you move your cursor across the playfield "Blind traveling" across the playfield.

https://user-images.githubusercontent.com/88356162/184784763-c50d9bec-b03f-41ea-a843-24099bf6fff4.mp4

A few notable changes included with this pr is the exposure of a mouse position in ParallaxContainer this is used because the Blind Travel mod changes the background parallax so it is more "immersible" when using auto mod. and the exposure of OsuScreenStack's parallaxContainer.

I am pretty new to pull requests so any heads up will help and ~I don't have c# experience so feel free to correct me~ but personally everything feels sane.

Update

The mod now is called "Zoomed" The game zooms in the screen to your cursor, tracking it accordingly. The game scales the zoom even further the more you raise your combo.

o-dasher avatar Aug 16 '22 02:08 o-dasher

  • The naming of this mod isn't great. It seems like it should draw from feeling like an FPS or tracking the cursor. "Blind" is too generic and doesn't really explain what the mod does at all.
  • The transition after breaks seems weird and jarring. I'd probably make it much smoother or remove it altogether.
  • The default tweening you have applied means there's a chance the screen won't track on fast jumps and the user will have to try and click off-screen circles. Is that the intention? If not, you might want to make it track more stringently. Also feel weird that the default value is also the minimum.

peppy avatar Aug 16 '22 03:08 peppy

playtested this a bit, as i thought it has issues with bounding on tablets ( and apparently on mouse now that ive tried it) , im perosnally fine with offscreen circles i think its interesting learning them, but not being able to hit circles at all because you run up against the playfield border is no fun at all. i think it should remain as it right now but allowing you to extend out of your main tablet area to the whole playfield size, this ofcourse poses an issue for full area players but i think thats a compromise that will have to be made

this is what i mean by the way in case its not clear : osu_2022-08-16_17-00-52

mk56-spn avatar Aug 16 '22 14:08 mk56-spn

And we can't forget about the mobile players who just want to tap the circles directly.

nagi-desuuu avatar Aug 16 '22 15:08 nagi-desuuu

And we can't forget about the mobile players who just want to tap the circles directly.

very good point but i think theyll have to make do with playfield scaling cant see how else one could work it out, kind of like how no scope will never really work on mobile

mk56-spn avatar Aug 16 '22 15:08 mk56-spn

Would "Cursor Focus" be a good naming?

o-dasher avatar Aug 16 '22 18:08 o-dasher

Something like "Zoomed In" (similar to peppy's suggestion) would probably be better imo.

Flamiii avatar Aug 16 '22 19:08 Flamiii

for reference, McOsu has an fps mod which doesn't have any delay in the screen tracking, which to me seems more reasonable https://youtu.be/-o32vwQoyv4

Walavouchey avatar Aug 16 '22 19:08 Walavouchey

Defaulting to zero delay would be my preference. It can still exist as a setting to give customisation.

peppy avatar Aug 17 '22 03:08 peppy

Defaulting to zero delay would be my preference. It can still exist as a setting to give customisation.

I just did a Zero Delay local version and the screens feels too shaky, i am not sure but if you want i guess it is ok

o-dasher avatar Aug 17 '22 04:08 o-dasher

I've done a (mostly rider-automated) code style pass because your naming, styling and everything between was wrong.

Please check the contribution guidelines and read more existing code to make sure you get things right in the future.

I'm not reviewing this further because you've made changes outside the mod class (to ParallaxContainer and the likes). I haven't understood why this is required yet, but if it is, it should be in its own PR and tested separately.

Mod PRs should only touch the mod class.

peppy avatar Aug 17 '22 04:08 peppy

I've done a (mostly rider-automated) code style pass because your naming, styling and everything between was wrong.

Please check the contribution guidelines and read more existing code to make sure you get things right in the future.

I'm not reviewing this further because you've made changes outside the mod class (to ParallaxContainer and the likes). I haven't understood why this is required yet, but if it is, it should be in its own PR and tested separately.

Mod PRs should only touch the mod class.

I am sorry for the naming of everything before, i should had paid more attemption for that and used a proper ide.

I modified the other classes because i was trying to do a increased parallax effect according with zoom, but tbh after testing it for a bit it kinda feels off anyway.

o-dasher avatar Aug 18 '22 01:08 o-dasher

I've pushed some initial fixes but I still have issues with this mod.

  • Why is the combo adjust a bool rather than something closer to what ModMuted does (set the final combo count)? I'd argue it should always scale with combo since that feels like more fun, and just change the settings to more closely match what Muted is doing.
  • I'm not sure about this giving silver S/SS. Probably need opinions from others.

peppy avatar Aug 20 '22 06:08 peppy

Maybe put it in the Fun category for now? (as per a pull request I couldn't find)

nagi-desuuu avatar Aug 20 '22 16:08 nagi-desuuu

Personally i wouldn't be opposed to this giving a silver S/SS as long as traceable and Blinds do so as well, considering those are far closer to HD and FL and more "traditional" mods than this

mk56-spn avatar Aug 20 '22 17:08 mk56-spn

Maybe put it in the Fun category for now? (as per a pull request I couldn't find)

The mod is already on the fun category though (on this pull request of course).

o-dasher avatar Aug 20 '22 18:08 o-dasher

The CI errors come from an outdated mod interface, should i merge master into this pr?

o-dasher avatar Aug 24 '22 04:08 o-dasher

There is zero chance this is doing what you intend it to do.

JetBrains Rider 2022-08-24 at 05 17 42

Are you using an IDE?

peppy avatar Aug 24 '22 05:08 peppy

There is zero chance this is doing what you intend it to do.

JetBrains Rider 2022-08-24 at 05 17 42

Are you using an IDE?

You are right, and yes i am using a ide (Visual Studio 2022), it didn't warn me about that though :(

o-dasher avatar Aug 24 '22 20:08 o-dasher

The combo zoom logic is completely broken in case you forgot to test this at all.

peppy avatar Aug 29 '22 17:08 peppy

I've rewritten stuff to be okay to my eye. Would be interested in some feedback on the values / how this actually feels.

Having the view not centered on the cursor is a bit weird. Maybe that should be a setting; maybe the default, not sure.

peppy avatar Aug 29 '22 17:08 peppy

I've rewritten stuff to be okay to my eye. Would be interested in some feedback on the values / how this actually feels.

Having the view not centered on the cursor is a bit weird. Maybe that should be a setting; maybe the default, not sure.

  • My complaint about the cursor being bound by the screen hasnt been addressed so many maps wont be possible on high delay for now, and by many i mean anything with any considerable jumps

  • From a organisation pov in terms of customisation this is much better

  • im still against 0 delay being the default since its so unfun compared to having some delay ( even having the flashlight level of delay as a base would be much more pleasant) but i guess thats not the end of the world since it is customisation

is this wild flailing around of the blinds in BLZM intended ?

https://user-images.githubusercontent.com/74463310/187296893-37c2bbf0-9729-4dad-ac6c-7ce8d05068e2.mov

mk56-spn avatar Aug 29 '22 19:08 mk56-spn

Use 1.0 as start zoom and 2.0 as final. изображение The map starts for me without any hitobjects at all. Cursor is not visible. изображение You won't fail, hp just drains to zero and map plays to the end. Result screen won't appear, player will just freeze on last frame. изображение Tested with 2 more beatmaps, the same.

UPD: managed to break it somehow with other values by just playing. All the objects disappeared. Player stopped on last frame.

UPD2: i found exact way to break it: just move the cursor so all hitobjects would be offscreen, it will freeze immediately:

https://user-images.githubusercontent.com/53872073/187316998-73373d07-e451-4d60-aa35-0a5f330c7e8d.mp4

probably something related to playfield lifetime management, i.e. not visible => not updated

Feodor0090 avatar Aug 29 '22 23:08 Feodor0090

A proposal here: background should "parallax" too. Ideally, differently from playfield to save background<>playfield movement.

Feodor0090 avatar Aug 30 '22 01:08 Feodor0090

Use 1.0 as start zoom and 2.0 as final.

I agree with 1.0 starting (almost set this originally) but not sure about 2.0 final. It's pretty crazy.

peppy avatar Aug 31 '22 05:08 peppy

I've adjusted things a bit further. It feels pretty good now. I think we should get this in the hands of players for further feedback.

peppy avatar Aug 31 '22 06:08 peppy

@smoogipoo requesting a very light review of this (just testing gameplay is fine) to make sure there's nothing you abhorrently disagree with.

peppy avatar Aug 31 '22 06:08 peppy

Visual pass:


At 1.95x zoom (and 2x zoom), the playfield keeps scaling in to what I assume is the final scale even though I have delay and final zoom at combo set to 0. This happens with both autoplay on and off:

https://user-images.githubusercontent.com/1329837/187623315-39397572-18de-4e97-a2bf-eed6c26da18c.mp4


At 2x zoom, this is completely broken with autoplay:

DON'T WATCH IF EPILEPTIC

https://user-images.githubusercontent.com/1329837/187622259-21a11487-9fe1-4e9f-b08e-9b0763c8e8bc.mp4 Purposefully adding this text here to require manual click on video.

smoogipoo avatar Aug 31 '22 07:08 smoogipoo

So basically that's the same feedback loop I was looking to avoid, but it turns out to not be so simple to do so (the RulesetInputManager seems to somehow be inside the playfield...?).

To explain, the mod is moving the playfield, which means even with a stationary cursor, the cursor's actual position will change based on the repositioning / scaling.

Will go back to the drawing board. May have to unapply the playfield's transform matrix.

peppy avatar Aug 31 '22 08:08 peppy

A proposal here: background should "parallax" too. Ideally, differently from playfield to save background<>playfield movement.

I implemented this originally but doing that is out of scope of this pr because it would require to change some classes that are out of the mods scope, but this could be done in a separate pr.

o-dasher avatar Sep 01 '22 04:09 o-dasher

So basically that's the same feedback loop I was looking to avoid, but it turns out to not be so simple to do so (the RulesetInputManager seems to somehow be inside the playfield...?).

To explain, the mod is moving the playfield, which means even with a stationary cursor, the cursor's actual position will change based on the repositioning / scaling.

Will go back to the drawing board. May have to unapply the playfield's transform matrix.

That's one of the main challenges i had to fight while trying to make a setting for the cursor to be centered, it would be a really nice option but thinking on a way to actually make this implementable is hard

o-dasher avatar Sep 01 '22 04:09 o-dasher