- I have been working on MPong for so long that it was tough to find motivation to continue working on it.
- Although I was continuously adding features to the engine, I was not building up my portfolio
- I want to test my engine with another game and see how much of the code is actually reusable. I am hoping most of it should be
What Went Right
- Engine Components : Starting with Pong as my first game, made me concentrate on the engine part. I managed to create a fair amount of the modules I had initially aimed for. Most of the modules should be reusable for the next few games
- Setup: I managed to come up with a relatively painless way of setting up new projects
- Refactoring: I am quite happy with how the code base is at this point (all things considered). I think, The fact that I was continuously re factoring the code, will be beneficial.
- Commenting: I managed to comment a lot of my classes while programming.
- Using a Repository: Have a repository for my code, meant that I could revert any bugs that I introduced without having to waste too much time.
What Went Wrong
- Missing Engine Components: I did not get a chance to work on the physics and networking modules.
- Switching to DirectX 11: In the middle of the project, I decided to switch to DirectX 11 from DirectX 9. Although this might be better going forward, I ended up fixing a lot of bugs that got introduced because of the difference in the way things are handled. Even now, some of the parts are not working correctly or are being done inefficiently by me.
- Engine Code was part of Project: I see a potential problem for my next project in that my engine setup and repository is closely tied to the Pong Project. I should have taken out the engine components and made it into a separate repository and solution, so that it was easily reusable
- Not Setting a Deadline: The fact that I did not have a deadline in place, meant that I took my own sweet time to make the game. This has resulted in Mpong being in development for a very long time, without me having to show anything for it
- Switching to an Obsolete Technology: I decided to use DirectSound or my SoundEngine.. It was only after completing that someone pointed out to me that I should have used XAudio instead
Things I wish I had Implemented
- Physics and Networking modules
- Support for 2D game elements.
- High Score Table
- Better Graphics
- Restart Option
- Pause on Minimizing