Page 1 of 2

[Semi-discontinued] osu!max

Posted: Tue Jun 07, 2016 7:59 pm
by Linkpy
Hello everyone.

I'm working on the first game of NeoShadow Studio : osu!max. This game is a mix between the well-known osu! and Volumax (which seems dead actually). I'm working on it's prototype the two last month, and I officially announce this game. It currently in early-development, so I only working on the engine right know, sorry. Like I said, this game takes the graphical parts of Volumax (the notes come to the right and go to the left) and the gameplay of osu! (Z + X for playing notes and the mouse or a graphical tablet for controlling the cursor).

It's kind of early to create this post but I create it anyway. I'll fill this post later with the information of my game.
For now, you can follow the development of this game here : https://neoshadow-studio.blogspot.fr/

Thanks and see you soon.

EDIT :
The project is discontinued.. Er, did I say discontinued ? No, I'll make osu!max in C++, using some of libraries created and maintened by NeoShadow Studio. Maybe you want to know why I stoped using Love2D :
  • I wanted something less dynamic : Lua is great. But, it's a pain for debugging. Dynamic variables add the fact of type checking.
  • A more powerful class system : Lua's metatable is, for me, not enough complete.
  • Operators : I wanted to use the C++ overloadable operators. Lua's (metatable) operators are too few, and is a pain to use it.
  • More speed, more protection : C++ offers me two thing that Lua don't have : C++ is way faster and C++ is easly obfuscated.
In the end, osu!max won't be open source (for now), but free. Using C++ add also more things : cross-platform build-system, etc. But I find the part of compilation quiet fun and awesome. So it doesn't brother me.

Thanks anyways.

Re: [WIP] osu!max

Posted: Wed Jun 08, 2016 12:27 am
by skyHights
Do you have any photos or code that you can show, or is it mostly an idea now?

Re: [WIP] osu!max

Posted: Wed Jun 08, 2016 7:26 am
by Linkpy
I thought I have my first working prototype but it seems I delete in. I used Godot Engine but there are a latency with the audio, that's why I stopped using it.

Currently, the only thing I can give you is this :
Image

I'm currently working on the unit tests using busted.

Re: [WIP] osu!max

Posted: Wed Jun 08, 2016 9:30 am
by Kingdaro
Uh... pretty much anything you use will have audio latency. It's the reason why most rhythm games include a setting to let the user configure a global offset to counteract that.

Re: [WIP] osu!max

Posted: Wed Jun 08, 2016 9:33 am
by Linkpy
I know. But the audio latency was important. It was near 50ms of latency between the play in the script and the real play of the sound.

Re: [WIP] osu!max

Posted: Wed Jun 08, 2016 1:09 pm
by Sulunia
That's why you usually use audio interpolation, since you use a timer and ease it's value with the reported position.
You can (sort of) manually track your music playhead position so as to avoid stuttering in your updates.

Check this out: viewtopic.php?f=3&t=82210#p198305
It can help a bit. Note that after easing, you'll have to subtract a global delay from the value, in the case, "songTime - globalOffset". Usually you should go with 32 or whatever latency you'll have.

Re: [WIP] osu!max

Posted: Wed Jun 08, 2016 2:56 pm
by Linkpy
Yes I know this. I used a simple easing algo, but, just like in osu!, I want a "feedback", a sound played when the player hit a note. The notes was synced with the music, no problem, but this feedback have a big latency. ^^

Edit : Someone worked on a osu! port in Godot Engine, just see the latency : https://www.youtube.com/watch?v=kB4fN6zyQD8

Re: [WIP] osu!max

Posted: Wed Jun 08, 2016 4:05 pm
by Sulunia
Linkpy wrote:Yes I know this. I used a simple easing algo, but, just like in osu!, I want a "feedback", a sound played when the player hit a note. The notes was synced with the music, no problem, but this feedback have a big latency. ^^

Edit : Someone worked on a osu! port in Godot Engine, just see the latency : https://www.youtube.com/watch?v=kB4fN6zyQD8
Oh boy, that's something to worry about. Maybe tied to the game update rate? Hmm..
But since you stopped using godot, you will use löve2d instead right?

Re: [WIP] osu!max

Posted: Wed Jun 08, 2016 4:08 pm
by Linkpy
Firstly, I checked on the Godot roadmap and I didn't see anything about the audio system. Then, I search for C# 2D game framework, and the only I find didn't work (and I didn't try XNA, since it's discontinued). I tried Unity 3D, but... I don't like it. It's too restrictive, unlike Godot Engine. So yes, I'll use Love2D and I program in Moonscript because I find it more clean and beautiful.

The first stage of the development is the engine. I want to "recreate" a very simple asset system and node hierarchy, and creating a "visual editor" for these two thing. And then I'll start the game it-self.

Re: [WIP] osu!max

Posted: Thu Jun 09, 2016 4:03 am
by zorg
In games that use music as a game mechanic, technically, you won't have latency between calling :play on a Source and it actually playing; the latency is between the input and the queried position returned of the playing music track. (It's still running after the position has been queried, so it'll never be perfect)
In other words, if you could have a way to know -precisely- where the playback is when an input event is received, and apply that position to a list of positions that are "hits", for example, then you could (with greater accuracy) calculate how much one missed such a "hit" event by... or how precise they were.