Music + DRM Part 2

Download Alpha and Omega v2.7.1.10.0
Binaries as Win32 Installer (3 MB)
Download Alpha and Omega v2.7.1.10.0
Source as Visual Studio 2010 Solution (28 MB)

Music 'n Stuff

XNA offers a decent support for music and sounds, but it is not very scalable by itself. We like to have some background-music playing that has an intro and a chunk that keeps looping untill the game decides to fade-out. We could create two audio segments, play the first, and start looping the second part when the first is done playing. This logic needs to be done in code and we need to make sure the transition between the two parts will not leave an audible gap. It can be done, but it quickly becomes messy. To manage all music and sounds we will use XACT which comes with XNA Game Studio. This application lets us easily manage a sound library including all parameters that may effect how it sounds (location, echo, doppler effect, ...)

XACT is not a tool to create and edit sounds, so we need to have some other program for doing that. The only program I have ever used is the opensource program Audacity. I always have been pretty happy with this program because it allowed me to do whatever I wanted. I have some knowledge using this program so I'll stick with it and google for better audio-editors if the need arises.

We have absolutely no money to spend on licenses for music or audio fragments. Just before I picked up my pen and paper to compose a music-peace that Mozart would have been jealous of, I realized that there must be a lot of licence-free music out there. So I downloaded a couple of numbers we could use to remove that awkward silence. My guess is that unoriginal music is better than no music at all. As test we've taken one number and split it into an intro and a loop-able block. After playing around a bit with XACT and importing the files into the Visual Studio solution we now have background music during the unicorn selection screens =D.

XACT only accepts WAV files as import format and when the project is compiled a compression is added. The songs adds about 1.2 MB to the binary release, but the WAV files are a whopping 28.2 MB. We do need these WAV-files, or the project won't be able to build. This made our source-release very big, so i'll think twice before adding any more music to the game.

DRM Part 2

The concept art shown in the previous post has now become a reality. With the soothing background music of "Skye Cuillin" it is almost as if we are in the magical lands of unicorns ourselves! Even the buttons make a nice 'click' sound. So professional!

The GUI part for the DRM is finished for now. We could make some improvements if we wanted, but that can wait for some future alpha-release. For the next page we need to make the DRM actually upload the images to this web server and- somehow store the votes.

What's Next

For the next release we need to make the DRM work. The following actions are required for us to realize this:

  • Figure out how we will store votes and build a decent voting system (including the ranking system).
  • Upload votes to the webserver and create/modify PHP-pages and the MySQL database to facilitate this.
  • Upload unicorns images to the server (Using the PHP-pages and database we created in our previous post).
  • Let the DRM system automatically download unicorn images from the web server to be used in the voting system.
  • Add code to the game to show the nag-screen if no payment has been made (and the trial period has expired).
  • Let the webserver send an email with verification link that needs to be clicked (and let the game poll to see if the address has been verified)

In later releases we will need to link DRM code to game-logic so it won't be easy to circumvent. We have mentioned before that we don't like to include PHP-source files in every source distribution. To keep the spirit of this opensourcyness, we'll add the server side code and database layout once, when the DRM code for this alpha release is done. For obvious reasons we will change passwords from config-files and add a different private key.

DRM - Part 1Unicorn Ranking System

line