[Semi-discontinued] osu!max

Show off your games, demos and other (playable) creations.
User avatar
Linkpy
Party member
Posts: 102
Joined: Fri Aug 29, 2014 6:05 pm
Location: France
Contact:

[Semi-discontinued] osu!max

Post by Linkpy » Tue Jun 07, 2016 7:59 pm

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.
Last edited by Linkpy on Thu Jul 28, 2016 3:23 pm, edited 1 time in total.
Founder of NeoShadow Studio. Currently working on the project "Sirami".
github / linkpy

User avatar
skyHights
Citizen
Posts: 78
Joined: Mon Aug 25, 2014 12:14 pm

Re: [WIP] osu!max

Post by skyHights » Wed Jun 08, 2016 12:27 am

Do you have any photos or code that you can show, or is it mostly an idea now?
Learning to Löve.

User avatar
Linkpy
Party member
Posts: 102
Joined: Fri Aug 29, 2014 6:05 pm
Location: France
Contact:

Re: [WIP] osu!max

Post by Linkpy » Wed Jun 08, 2016 7:26 am

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.
Founder of NeoShadow Studio. Currently working on the project "Sirami".
github / linkpy

User avatar
Kingdaro
Party member
Posts: 395
Joined: Sun Jul 18, 2010 3:08 am

Re: [WIP] osu!max

Post by Kingdaro » Wed Jun 08, 2016 9:30 am

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.

User avatar
Linkpy
Party member
Posts: 102
Joined: Fri Aug 29, 2014 6:05 pm
Location: France
Contact:

Re: [WIP] osu!max

Post by Linkpy » Wed Jun 08, 2016 9:33 am

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.
Founder of NeoShadow Studio. Currently working on the project "Sirami".
github / linkpy

User avatar
Sulunia
Party member
Posts: 201
Joined: Tue Mar 22, 2016 1:10 pm
Location: SRS, Brazil

Re: [WIP] osu!max

Post by Sulunia » Wed Jun 08, 2016 1:09 pm

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.
Don't check my github! It contains thousands of lines of spaghetti code in many different languages cool software! :neko:
https://github.com/Sulunia

User avatar
Linkpy
Party member
Posts: 102
Joined: Fri Aug 29, 2014 6:05 pm
Location: France
Contact:

Re: [WIP] osu!max

Post by Linkpy » Wed Jun 08, 2016 2:56 pm

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
Founder of NeoShadow Studio. Currently working on the project "Sirami".
github / linkpy

User avatar
Sulunia
Party member
Posts: 201
Joined: Tue Mar 22, 2016 1:10 pm
Location: SRS, Brazil

Re: [WIP] osu!max

Post by Sulunia » Wed Jun 08, 2016 4:05 pm

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?
Don't check my github! It contains thousands of lines of spaghetti code in many different languages cool software! :neko:
https://github.com/Sulunia

User avatar
Linkpy
Party member
Posts: 102
Joined: Fri Aug 29, 2014 6:05 pm
Location: France
Contact:

Re: [WIP] osu!max

Post by Linkpy » Wed Jun 08, 2016 4:08 pm

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.
Founder of NeoShadow Studio. Currently working on the project "Sirami".
github / linkpy

User avatar
zorg
Party member
Posts: 2733
Joined: Thu Dec 13, 2012 2:55 pm
Location: Absurdistan, Hungary
Contact:

Re: [WIP] osu!max

Post by zorg » Thu Jun 09, 2016 4:03 am

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.
Me and my stuff :3True Neutral Aspirant. Why, yes, i do indeed enjoy sarcastically correcting others when they make the most blatant of spelling mistakes. No bullying or trolling the innocent tho.

Post Reply

Who is online

Users browsing this forum: No registered users and 6 guests