A few weeks ago I was assigned a final project. The final project could be anything as long as it’s written in Python. So I chose to make a game. Needless to say, I had no regrets.
In those 3 weeks, I achieved far more than I could ever hope to if I had made something smaller. The game is written with Pygame, a library I had not even touched in more than a year, and upon touching it, I just took right off. In fact, my progress was so astounding I simply put the tutorial aside on part 2 and started looking at the documentation directly.
My first challenge was collision detection. I am not a master in algorithms, but since I was doing pixel/mask-based collisions, I had to calculate the angle of reflection out of a collision. The problem was that I had to detect walls and edges based on the map's collision mask in order to interpolate some sort of line to calculate an angle out of. After a ton of tweaking and even writing a "decision table," I said screw it, let's try something simpler. And so collision detection remains a major issue in the game, but at least it does not totally prevent gameplay and addition of other features.
After adding the camera and wall collisions, I worked on collisions with other entities... then I refactored... and then I finally began implementing features that would make the game "soccer." That was a week ago. I fixed up the game to meet deadline one, the final project for one of my classes in my summer engineering program. Simply talking about the game excited the teacher; she decided to give me a 105 for absolute overkill of a project.
Today, I was working for about 4 hours on splitscreen multiplayer, since I will not be able to finish network multiplayer by deadline two (tomorrow), when I am presenting the project along with a 36x48 poster to some representatives from Rackspace (big business here in the city).
Since all of you know that a picture is worth a thousand words and a video a billion, I will show it to you now since it will explain everything (and I'm tired of writing about the project). I advise you to turn down the volume because the sound effects are a bit loud.
My final goal is to make the game enjoyable. People are picky when it comes to what games they want to play, but I really do want this game to be played casually and competitively by people. I long for the moment when the download and public server are on /r/gaming and I join and there are a couple of people playing. I don't expect the game to be famous, though.
If you want to track my progress, the project is on GitHub: https://github.com/oldmud0/zero-grav-soccer
Thanks!
In those 3 weeks, I achieved far more than I could ever hope to if I had made something smaller. The game is written with Pygame, a library I had not even touched in more than a year, and upon touching it, I just took right off. In fact, my progress was so astounding I simply put the tutorial aside on part 2 and started looking at the documentation directly.
My first challenge was collision detection. I am not a master in algorithms, but since I was doing pixel/mask-based collisions, I had to calculate the angle of reflection out of a collision. The problem was that I had to detect walls and edges based on the map's collision mask in order to interpolate some sort of line to calculate an angle out of. After a ton of tweaking and even writing a "decision table," I said screw it, let's try something simpler. And so collision detection remains a major issue in the game, but at least it does not totally prevent gameplay and addition of other features.
After adding the camera and wall collisions, I worked on collisions with other entities... then I refactored... and then I finally began implementing features that would make the game "soccer." That was a week ago. I fixed up the game to meet deadline one, the final project for one of my classes in my summer engineering program. Simply talking about the game excited the teacher; she decided to give me a 105 for absolute overkill of a project.
Today, I was working for about 4 hours on splitscreen multiplayer, since I will not be able to finish network multiplayer by deadline two (tomorrow), when I am presenting the project along with a 36x48 poster to some representatives from Rackspace (big business here in the city).
Since all of you know that a picture is worth a thousand words and a video a billion, I will show it to you now since it will explain everything (and I'm tired of writing about the project). I advise you to turn down the volume because the sound effects are a bit loud.
My final goal is to make the game enjoyable. People are picky when it comes to what games they want to play, but I really do want this game to be played casually and competitively by people. I long for the moment when the download and public server are on /r/gaming and I join and there are a couple of people playing. I don't expect the game to be famous, though.
If you want to track my progress, the project is on GitHub: https://github.com/oldmud0/zero-grav-soccer
Thanks!