Impressive music if it is home-made. Good job on that one
I second BurtPizza’s suggestions. .wav files are the most obese of the music file types, I’d recommend .ogg. The standard go-to library would be JOrbis: http://www.jcraft.com/jorbis/
That being said, a game launcher/auto updater can be as simple as a small window showing a progress bar and a status label. The idea is to store your update file / dependency files on a file server of some sort. This is most typically on a web server. All the updater will have to do is to download the game data files from the web server, before running the actual game.
How you approach this completely depends on in-depth you want to go with this launcher. Although I haven’t made too many of these, I’d imagine that a sophisticated auto-updating module will scan local files and validate them with a server (either web server or a specific versioning server. The game data is usually stored in parts, and they are downloaded separately. This means that when a new update rolls out to a big game, users will only have to update what is needed, than to re-download the whole game again. I’d imagine they achieve this by verifying a file checksum? Correct me if I am wrong.
To keep things very simple, the bare minimum you’ll need is a version ‘file’ that stores the value of the ‘latest version’ of your game and a zip file of your game data to be downloaded. The auto-updater will first read the version file, and compare the ‘remote’ version with the version of the game downloaded. If no local game data is found, or the game version is older than that on the server, then it proceeds to download the new files. Again to keep things simple, I’d zip all the required game files into one big zip and download that zip from the web server via auto-updater. In some sense it sort of destroys the purpose of an auto-updater since I’d imagine one of its biggest advantages is to download only what is needed, but hey, all great artwork begins with simple outlines, right?
To some extent the approach I’ve just mentioned is essentially the same as downloading the big jar on first go itself, but a growing number of games and other desktop applications are using self-updaters and/or online installers. It’s nice to have, since for game developers it saves player time downloading and upgrading their game manually.
That was a hell of a huge read, here are some links that may be useful. I’ve listed them in order of how I’d approach the problem:
P.S. You’ll need a separate Thread to handle the download process if you also want to update the progress bar as the files download. Otherwise the whole UI would freeze until the file download is done
Good luck!