What is a POC? It stands for "Proof of Concept"
Ok, so that is out of the way, what is a POC used for? We used it for Violent Sol Worlds early on to verify to ourselves that certain game play elements would be fun. We made three POC's. The first was the top down walking and shooting, the second was the car driving, and the third was crafting.
Each one of these POC's had a singular purpose. They were built to determine if the individual game play element was entertaining enough to be in a game. We saw the potential for all three to be entertaining so Violent Sol Worlds was born into development. The POC's were very useful and we used them effectively to understand if the game idea we had was actually a game that would be entertaining.
Now we are far along in development and we found another reason to use a POC. That reason was physics. We have had several iterations of our physics now and wanted to get a version that would be the correct version for Violent Sol Worlds. So we determined that a POC would be a good way to get there.
So we started making a new program that would simulate closely the game when it pertains to physics. The purpose was for a simple, only physics, POC that would show that the physics implementation was more correct for the game. Once we had something that worked well we began to plug it into the game.
Once we plugged the physics into the game, we began to debug the integration issues. Here is where a POC is proving very useful. The integration of the new physics required a lot of changes in the game. This was complex, but the physics system itself remained intact from the POC. We are having an interesting mathematics issue which is causing the player to be able to move through objects in specific directions.
Tracing through the code was not good enough and proved to be misleading. So we took the exact physics body files from the game and put them into the physics POC and tried to duplicate the problem there. Turns out the POC works great.
What do we do now? We plan on debugging the two implementations at the same time and walking through the code step by step and seeing what part of the math deviates and when. This will help pinpoint the problem and get us closer to fixing this problem.
So it turns out writing POC's is a very powerful tool in all stages of game development. I strongly recommend that you use them to help you develop systems for your games. It simplifies things and gives you a tool that helps in your debugging and learning. Let us all know how you've used POC's in your game development by leaving a comment.