forum

opsu! - an open-source osu! client (UNOFFICIAL)

posted
Total Posts
344
Topic Starter
euphyy_old


Site: http://itdelatrisu.github.io/opsu/
Releases: https://github.com/itdelatrisu/opsu/releases/


About
opsu! is an unofficial osu! client written in Java using Slick2D and LWJGL, wrappers around the OpenGL and OpenAL libraries. The only requirement to run opsu! is a Java Runtime Environment (JRE), so it's cross-platform compatible (tested on Windows, OS X, and Ubuntu). fluddokt has also ported the project to LibGDX, so opsu! will also run on Android (and theoretically iOS, but that's untested). More details can be found on the opsu! web page or the GitHub readme page.

Running
If you've installed osu! in the default program folder, opsu! will run from anywhere: just execute opsu-{version}.jar and you're set. Otherwise, you can either set the paths manually in the configuration file (.opsu.cfg, generated when the program starts) or run opsu! from the working directory. There's a built-in beatmap downloader, and any OSZ archives placed in the SongPacks directory will be automatically unpacked.

Game options can be accessed by clicking the "Other Options" button in the song menu. You'll likely need to change the "Music Offset" value if hit objects are out of sync (this might involve a bit of playing around -- it's a known issue, sorry!).

Project Goals & Contributing
Update: This project has reached a relatively stable point, thanks to all the user contributions I've received -- please keep sending them in! If you have any interest in the project, feel free to contact me by opening an Issue on GitHub, and I'd love to hear your thoughts.

Credits
The majority of images included in opsu! are taken from user-released skins, and their names are listed in the credits file in the repository. I also referenced the Wojtkosu and osu! web projects when writing portions of the code. fluddokt also contributed significantly to the project. Lastly, I want to thank peppy for allowing me to share this here.

Screenshots
See this page.

License
This software is licensed under GNU GPL version 3. You are free to change and redistribute it, but only under the terms of the license. The full text can be found here.
akrolsmir
Pretty amazing work! A lot more polished than I expected for a first release. Some issues that stood out the most!

- The cursor looks kinda sloppy, like someone drew a halfhearted circle in MS Paint. Perhaps grab one from an existing skin?
- Are hitsounds implemented? It's pretty jarring to play without the instant feedback they provide
- The bursts are really distracting -- they look just like approach circles, and stay on the screen for far too long, cluttering it up imo

In terms of directions to take this project: instead of aiming for feature parity with osu!, perhaps aim to fill in the niches? That is to say, experimental features that the current dev team isn't interested in exploring. For example, a hold slider, or a global approach rate? A good source (well, more like a firehose) of suggestions would be from the Feature Requests forum.

Anyways, I'm excited to see where this project goes! Java is near and dear to my heart; I might be interested in contributing when I find the time :)
Topic Starter
euphyy_old
Thanks for the feedback!
  1. Hardware cursors seemed really buggy in Slick2D when I tried earlier, but I'll give it another shot when I have time.
  2. I personally never played using hitsounds, so that was at the bottom of my to-do list XD. It's the next thing I'll look at, so I'll hopefully have those implemented soon.
  3. You can disable the (lighting) bursts in the options, or swap them out with something else in the jar. I'm hoping to eventually support skinning (at least partially), but there's no way to override the default resources yet without physically replacing them in the jar (which isn't hard to do, but annoying).
Also, feel free to create issues in the repository; it'll be easier to stay organized that way.
FieryLight
Hmm, I can't seem to be able to open the .jar at all. Nothing pops up when I try to open it (though the .cfg and .log are created). I don't think it's Java because OsuStreamSpeed.jar works fine for me. Windows 7 here if that matters.
Topic Starter
euphyy_old
Is there any error message in the log? (This is a total guess, but if you're running Java 6, the supplied jar won't run since it's built using JDK 7.)
FieryLight
Version 7 Update 55.

My log says:

Sun Jun 29 23:28:52 PDT 2014 ERROR:** Uncaught Exception! **
Sun Jun 29 23:28:52 PDT 2014 ERROR:For input string: "8.3"
java.lang.NumberFormatException: For input string: "8.3"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Byte.parseByte(Unknown Source)
at java.lang.Byte.parseByte(Unknown Source)
at itdelatrisu.opsu.OsuParser.parseFile(OsuParser.java:263)
at itdelatrisu.opsu.OsuParser.parseAllFiles(OsuParser.java:85)
at itdelatrisu.opsu.Opsu.main(Opsu.java:118)
- Marco -
Can't open if i pasted on my osu! folder

Mon Jun 30 09:35:40 CEST 2014 ERROR:Unable to determine Slick build number
Mon Jun 30 09:35:40 CEST 2014 ERROR:Resource not found: icon16.png
java.lang.RuntimeException: Resource not found: icon16.png
at org.newdawn.slick.util.ResourceLoader.getResourceAsStream(ResourceLoader.java:69)
at org.newdawn.slick.AppGameContainer.setIcons(AppGameContainer.java:527)
at itdelatrisu.opsu.Opsu.main(Opsu.java:115)
Mon Jun 30 09:35:40 CEST 2014 ERROR:Error while creating game container.
Mon Jun 30 09:35:40 CEST 2014 ERROR:Failed to set the icon
org.newdawn.slick.SlickException: Failed to set the icon
at org.newdawn.slick.AppGameContainer.setIcons(AppGameContainer.java:530)
at itdelatrisu.opsu.Opsu.main(Opsu.java:115)
Topic Starter
euphyy_old
@FieryLight
Ah, okay. x_x That's an error with the parser; seems like someone mapped a floating point value for OverallDifficulty, which is documented as an integer (so osu! either supports floats or rounds them... it didn't come up in my ~1000 local maps). I'll push a fix for that soon. For now, if you just want to try the app, change the songs directory in the configuration file and copy a couple of maps into that new location. Sorry for the inconvenience.

@marcostudios
Honestly, I'm not sure why that happens--perhaps someone who's worked with Java's class loader can say more about it. All the machines I've tested on seemed to read resources within the jar... maybe you can try extracting all the images (.png and .jpg) from the root of the jar, which is messy but should definitely work.
Marcin
Float support was added in v13 version of .osu file.
Topic Starter
euphyy_old

Marcin wrote:

Float support was added in v13 version of .osu file.
Thanks for the info. That's for all difficulty fields, then?
Marcin
Yes, all difficultiy settings
Topic Starter
euphyy_old
- Marco -

euphyy wrote:

@marcostudios
Honestly, I'm not sure why that happens--perhaps someone who's worked with Java's class loader can say more about it. All the machines I've tested on seemed to read resources within the jar... maybe you can try extracting all the images (.png and .jpg) from the root of the jar, which is messy but should definitely work.
I forgot to say this happens when i insert opu.jar in my osu! folder but when it has his folder outside osu! it works
Howl
this. is. gold.
Oinari-sama
Oh wow, it just works! Great start!

Hope to see more features in the future :D
Howl
hm, saw now that track loading at the beginning really takes a lot of time, expecially for some marathon songs, and that's a pain. Also, played a bit with the files into the jar with winrar to make some sort of similiar to my skin, and also played some maps, I have to say a few things:
- Would be great to have a more effecient "slider loader". That's just a little note. Because I noticed that some sliders go really crazy with the velocity.
- The cursor is rendered pretty badly. From what I saw, it's rendered by changing the cursor of the machine with the cursor in the jar file. Please avoid that. Instead try making an image under the cursor, the cursor of the machine not displayed on the window of opsu! so the cursor can be displayed more well. Of course, this is just a suggestion, If this isn't possible in java, don't mind this point :P
- Marco -
Also can you do like killing a second opsu if wrongly opened? my ram was full because of that :<
Topic Starter
euphyy_old
I implemented sound effects today, and also limited the program to a single instance. You'll need an accurate Music Offset for the hit sounds to be in sync. I'm currently experimenting with cursors, and will probably push an update tomorrow.
Agka
Wow, this is very impressive, indeed.
ErunamoJAZZ
oh nice... but need a lot of work, :P
Flanster
Heh pretty cool, nice work :P
The menu sprites are pretty sexy!
Sieg
not quite on topic but
peppy was planning to open-source osu!?
Marcin
Yes, peppy is planning on open sourcing osu!.
Howl
inb4 so this is useless, right?
Marcin
Why would it be, its great opportunity to learn programming for person making it. Also open sourcing osu! is gonna take long time so...
Topic Starter
euphyy_old
New Release: v0.2.0

Features:
  1. Sound effects and hit sounds implemented.
  2. Basic support for user skins.
  3. Support for non-native cursor images.
  4. Dynamic main menu backgrounds.
Fixes:
  1. Floating-point difficulty values are now working.
  2. Block multiple instances of the program from running.

Marcin wrote:

Why would it be, its great opportunity to learn programming for person making it.
I agree! :3
xasuma
When I double clicked it it created the two files. But nothing else happens.
My game is installed in the normal directory, here is a screenshot of the 2 files if it helps.
I am probably doing something wrong.
Howl

Marcin wrote:

Why would it be, its great opportunity to learn programming for person making it. Also open sourcing osu! is gonna take long time so...
I agree too, I was just thinking what Sieg could probably answer after having someone confirming that osu! was going to be open source.
chong601

euphyy wrote:

Dynamic main menu backgrounds.
Best feature ever 2014
Topic Starter
euphyy_old

xasuma wrote:

When I double clicked it it created the two files. But nothing else happens.
My mistake, I shouldn't have assumed that there'd be no mistakes in the *.osu files. Here's a quick fix: http://www.mediafire.com/download/bjirg ... 12b83a.jar (812b83a)

If anyone has specific unofficial features they'd like to see, please post them!
XinCrin
Awesome . I'd like to check it , but I can't open it :c
Full Tablet

XinCrin wrote:

Awesome . I'd like to check it , but I can't open it :c
Any error? How much time have you waited since opening it?

It takes about 1 hour to load (with no indication it is loading besides the process and the hard drive activity) with ~85,000 beatmaps, and when closing the client and opening it again it takes another hour (loads everything again). Can it use a database so it doesn't have to load all maps at the beginning?
XinCrin
I forgot to edit my post and update java :p . It's already fixed

opsu works fine , It opens inmediately o:
Topic Starter
euphyy_old

XinCrin wrote:

Awesome . I'd like to check it , but I can't open it :c
Are any files created? If so, are any errors generated in the log? Glad it works. Also, I love your skin. :3

Full Tablet wrote:

It takes about 1 hour to load (with no indication it is loading besides the process and the hard drive activity) with ~85,000 beatmaps, and when closing the client and opening it again it takes another hour (loads everything again). Can it use a database so it doesn't have to load all maps at the beginning?
Interesting. I only have around 1000 beatmaps on my computer, but the parser takes consistently less than 1 second to finish for me. Admittedly, the parser isn't implemented very efficiently, but an hour is really terrible -- maybe the JVM is slowing it down, but that's a guess. I don't really think I should be looking into databases at the moment, since it'd sidetrack me too much (and correct me if I'm wrong, but I don't think too many others are experiencing this issue). I'll try to keep this issue in mind, but I can't offer any immediate solution (other than just pointing the song path elsewhere). x.x

Is anyone else getting grossly long loading times? (And for how many maps?)
pop102
Wait so, since this is now open source, what kinds of things we can do with osu? Or what will people be making or doing with it?
xasuma
I downloaded the quick fix, but it still does nothing. I am using win 8.1 64 bit.
Topic Starter
euphyy_old
New Release: v0.2.1

Features:
  1. New "Game Options" screen divided into tabs.
  2. New options: hitsound volume, dim level, hide perfect hits, override song background.
  3. Visual tweaks: score animation, reverse arrow rotations, additional "Auto" mod images.
Fixes:
  1. Game not loading OsuFile for maps in a song group. (critical, since v0.2.0)
  2. Additional parser checks for invalid lines.

xasuma wrote:

I downloaded the quick fix, but it still does nothing. I am using win 8.1 64 bit.
The same error, or a new one? The patch fixed the error in the logs, so you shouldn't be experiencing the same issue.

pop102 wrote:

Wait so, since this is now open source, what kinds of things we can do with osu? Or what will people be making or doing with it?
This is an unofficial version; you'll have to wait longer for osu!'s source to be released.
xasuma
I get this http://pastebin.com/q1aBRSg4

I updated java to Version 7 Update 60 . And this is as of the newest release up here ^
|
FieryLight

euphyy wrote:

xasuma wrote:

When I double clicked it it created the two files. But nothing else happens.
My mistake, I shouldn't have assumed that there'd be no mistakes in the *.osu files. Here's a quick fix: http://www.mediafire.com/download/bjirg ... 12b83a.jar (812b83a)

If anyone has specific unofficial features they'd like to see, please post them!
Well, what I was really hoping to see was a lot more control in skinning. E.g.: Force background to be a certain picture, Able to control colour of approach circle without it changing to that of the hitcircle, etc.
Topic Starter
euphyy_old

xasuma wrote:

I get this http://pastebin.com/q1aBRSg4
Oh, I see--I kept skimming over that line x.x. Try this: http://www.mediafire.com/download/dymjp ... 0.2.1a.jar

FieryLight wrote:

Well, what I was really hoping to see was a lot more control in skinning. E.g.: Force background to be a certain picture, Able to control colour of approach circle without it changing to that of the hitcircle, etc.
I already added the first suggestion (it's in the game options -> gameplay, reads "playfield.png"). As for skinning though, I don't think it makes much sense for me to expand options because osu! won't support them. D:
xasuma
Now it worked! Thanks ^^

And it's pretty good. Im sure you are aware of it's limitations now, and I am looking forward the a more polished/finished version in the future. Very nice job on this. You get a cookie! :)

Also , might be just me, but it's terribly hard to get good accuracy on it. I actually couldn't get more than 90% on a song. Any song.
But nonetheless, keep up the good work! :)
yuanzongli
The Java file doesn't do anything else except creating a *.cfg and *.log file in the osu path folder(where I put the *.jar file).

The *.log is showing this:
Sat Jul 05 01:21:46 JST 2014 ERROR:Unable to determine Slick build number
Sat Jul 05 01:21:46 JST 2014 ERROR:Resource not found: icon16.png
java.lang.RuntimeException: Resource not found: icon16.png
at org.newdawn.slick.util.ResourceLoader.getResourceAsStream(ResourceLoader.java:69)
at org.newdawn.slick.AppGameContainer.setIcons(AppGameContainer.java:527)
at itdelatrisu.opsu.Opsu.main(Opsu.java:137)
Sat Jul 05 01:21:46 JST 2014 ERROR:Error while creating game container.
Sat Jul 05 01:21:46 JST 2014 ERROR:Failed to set the icon
org.newdawn.slick.SlickException: Failed to set the icon
at org.newdawn.slick.AppGameContainer.setIcons(AppGameContainer.java:530)
at itdelatrisu.opsu.Opsu.main(Opsu.java:137)

the *.cfg is showing this:
# opsu! configuration
# last updated on Saturday, July 05, 2014

BeatmapDirectory = C:\Games\osu!\Songs
Skin = C:\Games\osu!\Skins
Port = 49250
ScreenResolution = 3
FrameSync = 0
FpsCounter = false
ScreenshotFormat = 0
NewCursor = true
DynamicBackground = true
VolumeMusic = 30
VolumeEffect = 20
VolumeHitSound = 20
Offset = -150
DimLevel = 30
ForceDefaultPlayfield = false
HitLighting = true
ComboBurst = true
PerfectHit = true

The version I'm using is 0.2.1. I tried other versions but same thing happens.
Vykori

euphyy wrote:

xasuma wrote:

I get this http://pastebin.com/q1aBRSg4
Oh, I see--I kept skimming over that line x.x. Try this: http://www.mediafire.com/download/dymjp ... 0.2.1a.jar
it's still not opening for me :(
here's my log http://puu.sh/9XWU1.txt
Avail_old_1

NikWillOrStuff wrote:

here's my log http://puu.sh/9XWU1.txt
Check your task manager, you apparently have it running twice..
lanodan
When i've tried to use it it doesn't extract the .osz files so I've tried with unar(open almost every archive).

For users of debian-like systems(Ubuntu, Mint, …):
$ sudo apt-get install unar
$ cd ~/Songs
I Assume Songs is in your home directory.
$ unar path/to/file.osz
(if you use a graphical file manager with most of them drag and drop in the terminal window paste the filepath)
Topic Starter
euphyy_old
New Release: v0.3.0

Features:
  1. Added support for loading beatmap skins.
  2. Added a module for unpacking OSZ archives.
  3. Added a splash screen for loading resources.
  4. Added options for global fixed difficulty settings (CS, HP, AR, OD).
  5. Added some missing keyboard shortcuts.
Fixes:
  1. Corrected "Hard Rock" difficulty modifiers.
  2. Further fixes in beatmap parser.

lanodan wrote:

When i've tried to use it it doesn't extract the .osz files so I've tried with unar(open almost every archive).
Thanks for the post! I've added OSZ unpacking now, so you can place any song archives in the root folder and they'll be automatically unpacked into the song directory. (You can change the OSZ loading directory in the configuration file.)

NikWillOrStuff wrote:

it's still not opening for me :(
here's my log http://puu.sh/9XWU1.txt
If another program on your computer is using port 49250, try changing opsu!'s port in the configuration file. It's more likely that there's another program instance running, though.

yuanzongli wrote:

The Java file doesn't do anything else except creating a *.cfg and *.log file in the osu path folder(where I put the *.jar file).
My mistake, apparently the JAR won't run from the program folder. I couldn't figure out why this happens, but will let you know if I come across anything in the future. The program should still run from elsewhere.

Full Tablet wrote:

It takes about 1 hour to load (with no indication it is loading besides the process and the hard drive activity)
The splash screen displays the current progress, so this shouldn't be as large of an issue now.
irissystem
I've reported an issue on GitHub related to game sounds not loading correctly.
Raymonf
This is genius. Absolutely genius.


But didn't JLayer have a MP3 playing function?
- Marco -


there is this problem with HR

Also there is a problem with my hp bar and ranking pannel (those color are my 300/100/50s)



Topic Starter
euphyy_old

ch1zuru wrote:

I've reported an issue on GitHub related to game sounds not loading correctly.
See my reply in the issue. In summary, I attempted to fix the crashes, but getting Java Sound to actually work in Linux seems near-impossible.

iceblade112 wrote:

But didn't JLayer have a MP3 playing function?
It does, but library's players have minimal functionality (e.g. no built in methods for seeking, getting track position, pausing, setting volume, etc.). It seems possible to stream decoded frames into OpenAL, but I really don't know how I'd do it.

marcostudios wrote:

there is this problem with HR

Also there is a problem with my hp bar and ranking pannel (those color are my 300/100/50s)
I fixed the positioning of the mod icons in 331f374. I'm not sure how osu! is able to position scorebar-colour, since I couldn't find any patterns in dimensions of the scorebar images (if you know anything, that'd be helpful). As for the ranking panel, I can't tell what the problem is...
show more
Please sign in to reply.

New reply