So, my development on the fruit catcher game has been slow as of late. Three reasons for this:
- Still a full time student (prioritize assignments/final exams)
- Continuously fleshing out the game idea/design on paper.
- I have to learn Python & PyGame for each new added functionality.
However, I have made a relatively big stride as of late. I’ve restructured my code in a more appropriate manner that reflects better gameplay during runtime on all three platforms (Ubuntu, Mac, Windows). Previously, my main game loop was pretty messed up. I mingled code that was meant to handle input and events with code that were meant to update game counters/states.
This caused some serious problems when blitting to the screen. For example, my particle system would disappear from the screen whenever I pressed an arrow key.
In this new code, I’ve also started numbering the versions to keep track of what I have changed and what needs improvement or is broken. I’ve added a simple scoring system that checks for collision between a fruit and the basket, and then adds 1 to the score. I’ve also added a new fruit! A banana! Yay for random fruits dropping out of one tree…
More importantly, multiple fruits drop down from the tree now. And they do this in random order (but not yet random speeds). One moment you may get all Apples, next maybe bananas, or both. At the time, I have only 5 fruits at any given time falling from the tree.
I am now looking into adding more fruits, randomizing fruit drop speeds and maybe (just maybe) adding joystick controls for input. Like using an Xbox 360 controller, or my Logitech Rumblepad 2, or my PS1 controller with the game. If I can successfully do that, that will probably be enough motivation for me to start designing a start menu and figure out how in the heavens do I change Pygame’s window resolution at will. In Ubuntu, and Linux in general, there is a joystick library that can handle all types of joystick input. I don’t know if such a thing exists on Windows and Mac yet.
Last, but not least, I got some new hardware for my desktop. Specifically, an Nvidia GTX 680 (ASUS DirectCU 2). I got this because I’ve become fed up with my AMD RadeonHD 6870’s Linux drivers. The non-stop windows tearing, lagging games, and slow to support the latest Xorg are all reasons behind this. While Nvidia users were enjoying performance increases with the new drivers, I instead got an error message saying “Your card is not supported by this driver”. I am aware AMD drops support for their older cards faster than Nvidia, but this is ridiculous. One generation behind their current cards, and already they leave me in the dust. So much for the 12.12 Catalyst driver. That was the last straw.
The 680 is a beast. Not only does it max out ALL my games at the moment (including BF3, Saints Row the Third, Serious Sam 3[Linux], Dungeon Defenders[Linux]), it does it without a sweat. To better perceive this, my AMD RadeonHD 6870 when idle will average 60 degrees Celsius. On full load, it will go up to 80 degrees Celsius (and become really noisy). What about my 680? It’s literally jaw dropping. The 680 when idle will average 30 degrees Celsius (ROOM TEMPERATURE FOR GOODNESS SAKE). On load, it goes up to 60 degrees Celsius at most so far. Not to mention I can barely hear my desktop now [all on 1080p gaming]. This has to be one of my most worthwhile purchases in a long time. My first ever Nvidia card was a OManli 9400GT and that wasn’t a very awesome experience. Graphics cards have really come a long way in just 3 years time.