The ultimate-smash-friends development team is happy to announce a new version of the project, coming with lots of improvements , and, at last, what did not happened in a long time a new synchronized version between all the supported platforms (Linux/Windows/MacOsX).
To sum up changes since the last version, we should start by noticing a big improvement on Artificial Intelligence (which is starting to give me a hard time to win, which is a good thing ), the correction of a bug of installation on windows/seven (log file misplaced, crashing the app :]), and a better windows installer (proposing optional installation of dependencies (python/pygame/numpy), which are necessary to play.
Without waiting more, links to the various packages!
I have just finished to make the Windows installer (with aspidites work :p) with a standalone binary. Since we have never released a Windows version with the .exe and the installer, we need tester for it…
I suppose the last post should have been titled “Premature Windows Release” and not “Prelimenary Windows Release” because it simply did not install correctly. About a week ago I created another Windows installer and tested it heavily accross multiple virtual machines. After that and some feedback from other team members, I fixed a couple of issues that were not related to the installer at all that caused the game to crash if audio couldn’t be initialized. From those fixes and a couple of other windows-friendly tweaks v.0.0.9 was born.
I’m not going to gaurantee that it is perfect, but I will gaurantee files get installed where they are supposed to this time. This release also re-introduces the debian binary packages. Keep in mind that this installer does not automatically install Python or PyGame, so you will need to have those installed first. Some of the devs are looking into adding that feature to the installer, but please don’t mark my works or hold your breathe.
At this point, the only platform that USF is not confirmed to run on is Mac OS X, and that is only due to a lack of resources.
Today I finished packaging version 0.0.8. While the usual suspects are still there (source archives, Arch Linux PKGBUILDs, and when tshirtman or xapantu get the time debian packages), what users wil notice is that we’ve finally got a Window’s executible released! The only caveat is that I have only a Windows XP virtual machine, so the packag available is only gauranteed to work on that version of Windows. so the package hasn’t been tested on other versions of Windows. If you should have problems, building executibles for other versions of Windows is trival and simply takes the following command:
c:\Python26\python.exe setup.py bdist_msi
Which puts an MSI installer in the newly created dist directory.
It would appear that bdist_msi and bdist_wininst are broken by design. As such, the previously published command is useless. I am currently in the proccess of creating an installer with InnoSetup, so hopefully this horror story will turn into a love story.
There has also been a bit of code refactoring, AI work by xapantu, as well as the addition of a Pyramid level designed by samuncle:
Well, technically the config system isn’t that new, considering it was created a while back. However, it wasn’t until recently (thanks to xapantu and tshirtman) that the system was capable of being fully integrated into USF. This accomplishes a few different things:
Only 1 configuration file to maintain. Before, it was neccessary to modify sound.cfg, config.cfg, and keyboard.cfg. Now there is a single config named user.cfg (Though technically, the game can be configured with the GUI).
New config options no longer break user configs. Before, every time the config options were added, you had to delete your old config file. Now the new config options are automatically integrated meaning your changes aren’t clobbered
Cross-platform support. The config is now saved in a sane spot, depending on which platform you are running in. In fact, if you decide to run USF locally, your home directory won’t be polluted by unneccessary config files
Creating new config options no longer breaks users configs. Simply add your configuration option to system.cfg, and if the user hasn’t already done so, their user.cfg will be updated accordingly.
Easy access to all config options. The Config class automatically creates a new dictionary for each section in the config file (currently general, audio, keyboard). Adding a new section will create a new dictionary. Assigning a new config value is as simple as assigning a new value to a dictionary key: config.section['option'] = value (eg config.audio['SOUND_VOLUME'] = 0
The new config class is smart enough to do duck typing on configuration values. In the example above, sound volume would automatically be converted to an integer.
New Build System
I’ve leveraged the power of Python’s built-in distutils module to create a setup.py that will automatically, given the correct command line parameters, create source tar.gz and zip packages, rpm packages, and deb packages. I was attempting to make this script generate exe files for Windows uses, but I have hit a road block that I can’t seem to get around: files don’t install to the correct location. For Mac OS X, I don’t have access to such a machine, and as far as I understand it, it’s not feasibly possible to run Mac in a virtual machine, so I haven’t come up with a solution for that platform.
I have thoroughly tested the produced source tarbals (which are great for creating packages for Arch Linux, Gentoo, etc), and tshirtman has had some success building debian packages with it (he’s using them on Ubuntu), but we have yet to test the RPM packages, though I suspect we will not run into any problems on that distro.
If you have any experience with distutils and Windows or Mac, please don’t hesitate to contact one of us or post a comment. We definately want USF to be accessible to everyone, not just Linux users.