Last active
December 16, 2015 03:09
-
-
Save andreimacavei/5367335 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| I, Gamebot - The three laws of gamebots: | |
| 1. A gamebot may not harm or infect in any ways the host mother, which in this case is the online contest platform. | |
| 2. A gamebot must obey the orders given to it by human participants, except where such orders would conflict with the | |
| First Law – no hacking bots please :) . | |
| 3. A gamebot's source code must be visible to other contest participants at least after the contest has ended. | |
| One must not kill the spirit of the open source. | |
| Hello, | |
| I am Andrei Macavei and togheter with my menthor Dan Serban, we started to develop from scratch a platform for game algorithm | |
| competitions called "I, Gamebot", that is free and open source. | |
| How is this different from other contest platforms? Most of them allow participants to hide their algorithms even after | |
| the contest ended, thus preventing players to learn from each other. | |
| "I, Gamebot" will encourage participants to build their algorithms in the open and evolve their gamebots by learning from | |
| and iteratively improving upon each other's code. | |
| My objectives were: | |
| - Implementing the game engine for TicTacToe and Planet Wars in the programming language of my choice | |
| - Creating the leaderboards for both games | |
| - Building an extensible web interface for the game engines, in ruby | |
| As I started to work on the game engine, I also went through the Test Driven Development methodology, which is an essential | |
| part of this project. This was a bit hard in the beginning because I had to adapt not only to the new programming language | |
| I've chosen, but also to this style of software development. | |
| Even so, I'm not complaining, it was a great way to learn something which now is used by many companies in the software industry. | |
| My mentor says that a software project should be shippable every 1-2 weeks, if you develop it in a test-driven manner | |
| and in small increments. | |
| Going back to our project, I didn't manage to finish all my objectives, mostly because I was too busy with school and | |
| also there wasn't any code to improve, me and my mentor Dan had to put down the bricks one by one and build the infrastructure | |
| for the game engine. This meant creating the failing test-cases and the game engine itself that is responsible for | |
| game consistency and interaction with players' gamebots. | |
| What I have learned by working on this project: | |
| - learned how to develop software with TDD and RED-GREEN-REFACTOR mantra | |
| - learned how to write code in a dynamic programming language, in this case Python, and learned to use the Python console | |
| which makes possible an incremental and iterative development style, with fast feedback | |
| - gained deep understanding of UNIX named pipes | |
| - learned how to contribute to an open-source project with Github (pull requests, code reviews, issues) | |
| - learned to love Vim :) | |
| It was a nice way to spend the Saturdays, I thank Dan for staying later than he should have just so we can advance more | |
| on our project. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment