CG is a great competition platform, but it is foremost a great learning and competence building platform. To aid this role I suggest the following:
- CG shall select one old multi (not any of the most recent 5, but one of the olders)
- Close it down from any further submits, no additional CP/XP can come from it
- Make all submited bot source code visible for anyone for this multi (create a page where it can be browsed, e.g, filterable by language, ranking, league, owner)
For many people, investigating some better coders’ source code would be a great learning tool. It is also good if you want to look a bit more into a ‘secondary’ language of yours.
Copycat can be an issue that ruins an open competition and not just contest but also a multi.
But sacrificing one single old multi out of the 30+ old ones might be worth the learning potential.
Personally I dont think that this seems like a great idea. For all you know, that one mp may be quite interesting for people who are sincerely working on it.
Also, there are excellent postmortems available for all contests and it is probably better to read post mortems as they are more understandable that codes that are probably uncommented with 1000+ lines.
I agree with WINWINWIN. There are many puzzles available, some requiring solutions that are quite complex. You can solve them and see other people’s solutions.
In my experience, the most general skills you can learn from someone else’s code is how they structure it, what classes they use, optimization tricks etc. Plenty of those things can be found in puzzle solutions as well. Mostly what people do, who win contests and arena’s is:
Write a simulation, which will come straight from the referee, but made more optimized.
Write a type of search (MCTS, Minimax, DUCT, beamsearch, monte carlo search etc.) to find the best actions.
Everything else is going to be mostly heuristics and sometimes it is all heuristics. Heuristics are very specific to the game, so if you learn heuristics from a game that has been closed the way you described, they are useless to you now.
Post mortems are indeed a great way to see how people approach a problem. I much prefer this over reading code.
Post mortems are good, but that is imho independent from my suggestion. Why not both?
Most PMs which are just a short forum posts are simply not detailed enough. I liked the most some longer articles which revealed also the thought process. Bob’s “lazy” articles are very didactic and written in good style. I also liked a CSB article (by Magus?) revealing how to tacle the physics simulation.
For the solo puzzles: to solve it and then check others’ code: sometimes I do it, but it helps only for the general algo and for some tricks in your language only, because you don’t see other language solutions.
I’m still using part of my old codes and i don’t really want that my re-usable classes become open source.
Those who thinks they can learn from only reading others’ code (ha-ha) can go and search on GitHub, it’s not worth losing one multi
Yep, I didn’t think about this aspect. I suppose an opt-in mechanism would be needed, with default=no.
But as only negative feedback came for this suggestion, so I give up this topic…