History of the challenges
In February 2005, the DarkBasic community began a forum discussion about coding challenges using DarkBasic Professional(DBPro), the current version of the language. Once the initial challenge was set, users had so many days to complete their entry. Whoever set the challenge would be the judge and would pick the winner based on whatever criteria they decided. The winner of the challenge would become the new judge and set the next challenge and time limit. The discussion thread on the challenge can be found here: Pro Challenge

A community member and challenge participator created the following website to organize all challenges and user entries. http://www.dbp-site.com

On January 12, 2007, the first code challenge for DarkBasic Classic(DBC) was set. It follows the same rules and works the same way as the Pro challenge does. If you're not familiar with the differences between the Pro and Classic version of DarkBasic, Classic misses many of the updated commands found in Pro. Without the use of UDTs(structs), additional array commands, and direct memory access, challenges can be quite a bit more difficult when using the older language. The discussion thread for the classic challenges can be found here: Classic Challenge

As of sometime during 2010 (or possibly earlier), the DBP site which hosted all the Pro challenges has disappeared. In an effort to ensure the best possible user experience for all DarkBasic users, the Pro challenges will be integrated into this website. As no existing database was ever found of the original Pro website, every challenge must be gathered by hand. It will be a tedious process of combing through 5 years of forum threads but we are already 20% finished as of July 4, 2010.


Standard DB Classic Challenge Rules
  1. Anyone may enter any challenge, as many times as they like, so long as all code will run in DB Classic with NO alterations. You can still enter the challenge - even if you use DBPro as long as you follow this rule
  2. No external media is allowed - that includes models and external graphics. In other words, the challenge entry must be a single DBA code listing that others can simply copy and paste into DBC and run it. Any media your program uses must be generated by the code itself
  3. All challenge entries are to be written in the standard un-enhanced version of DBC. You can actually use any version of DBC, but for the benefit of those who do not have the Enhancement Pack, you may NOT use any of the additional commands if you have them*
  4. The person who wins the current challenge becomes the next challenge setter
  5. The challenge setter is the judge for the current challenge, and must select a winner and a runner up
  6. The challenge setter may enter, but cannot judge him/herself the winner
  7. The challenge setter will set the time limit according to difficulty. The challenge setter may extend the deadline by 24 hours if there is a very good reason, but extensions cannot be made during the final 24 hours of the challenge
  8. If nobody enters within the time limit, the challenge setter must set a new challenge
  9. If the challenge setter fails to judge entries or set a new challenge within 24 hours of the deadline, responsibility for judging and setting a new challenge will pass to the previous runner up. If that person also fails to act promptly, entrants may vote for a winner and new challenge
  10. You may use code from any other entries within the challenges thread for your current entry, so long as you improve upon it in some way and give credit
  11. Deadlines are always midnight GMT on the day specified. If GMT is not mentioned it should be assumed. This does not disadvantage entries from other time zones in any way as they still have the same number of hours to complete the challenge as everyone else, as they start earlier (local time)
  12. At the end of each challenge, the challenge setter should post and declare the current challenge over within 6 hours of the declared deadline. Entries can be submitted before this 'closing' post without penalty
  13. If the challenge setter does not close the challenge for any reason, it automatically closes 6 hours after the deadline - after which no more entries can be accepted
  14. Changing a challenge. If no-one enters a challenge - for example if it is deemed too difficult - anyone can post and suggest that the challenge be changed (or modified), along with their reasons for doing so. If no-one has actually started work on the challenge and the majority agree, then the challenge setter can simply alter it or set another one and announce the new deadline
  15. In the case of a challenge being completely abandoned rather than modified, anyone who has already started work on the challenge and has done more work on it than they would like to abandon, they can lodge an objection

* It is possible to ignore this rule (3) if the challenge setter has enough support from the contestants to use the enhanced commands and the use of such commands is clearly stated in the challenge description. For example, a very worthwhile challenge may be set using memblocks - something impossible to do if you can't use the enhanced commands