Brain Party is a puzzle-solving, brain-stretching game that comes with
36 minigames designed to push your brain to its limits, testing memory,
logic, mathematics, reactions and more.
This game was written for Apple's iPhone, and you can buy it in the
App Store for $0.99 - in fact, doing so helps support me a little!
Because I used non-free music in the iPhone release, this version uses
new music - see the CREDITS file for more information.
Compiling from source
I haven't used any fancy tools, so all you need to do to build Brain Party
is run "make" and give it a few minutes. If you have a multi-core CPU, try
"make -j4" to get a speed boost.
You will need the development libraries for SDL, SDL Mixer, SDL TTF, SDL GFX,
SDL Image and OpenGL. Obviously you will also need a C++ compiler like G++.
v0.61 - April 21st 2010
- Fixes lack of return value in Short Sudoku and messages (Vincent Petry)
- Fixes possible bug in Memory Maths (Vincent Petry)
- Fixes minor text problems (Thomas Perl)
v0.6 - April 15th 2010
- Fixes memory leaks with text
- Fixes secrets sometimes not being unlocked
- Minor code changes to bring a Windows port closer
v0.5 - March 5th 2010
- First release.
Reading the source
Brain Party was originally written for Linux in C#, using Mono and SDL.NET.
It was then ported to Windows Mobile 5.0, which also uses C#, but has only
the .NET Compact Framework. From there, it was ported to the Xbox 360 (and
that port is still available through the Microsoft Indie Games store), which
also uses C# and the .NET Compact Framework, plus the XNA Framework.
From there, the game was ported to the iPhone, which meant rewriting it in
Objective C++ and OpenGL. Some of the code was taken from the X360 version
as it had been polished; other code was taken from the WinMo code, because
it was already built for touchscreens.
The Brain Party you have now descends from the iPhone build. All the code
that was Objective C++ is now plain C++.
The reason I'm telling you all this is because, if you look at the code,
you'll see it's packed with ideosyncrasies. That's because the ports I've
done were usually done in less than a week, so rather than rewriting
everything from scratch I've usually just implemented shims that accomplish
the same thing. In other places, I've sorely missed functionality that was
available elsewhere, so I've re-implemented it myself.
So, the advice is this: look at the code if you want to. But, whatever you
do, don't learn from it - it's the dirtiest C++ you'll ever see.
This will be rectified over time. Possibly.
If you'd like to contribute to Brain Party, great! Get in touch with me at
email@example.com and we'll talk. Code, graphics, sound effects, music,
etc are all welcome. If you spot any bugs, drop me a line with some sort of
helpful error message - ie, what I have to do to reproduce the error - and
I'll get on the case.