[Hopefully] final documentation tweaks
[progcomp10.git] / doc / WELCOME.txt
1 Welcome to UCC::ProgComp 2010!
2
3 This document will acquaint you with the competition: the rules, how to 
4 write an agent, and what you need to do to enter.
5
6 === What is UCC::ProgComp? ===
7
8 Good question! The facetious answer is that it's the package whose 
9 documentation you are currently reading. The long answer is that it's a 
10 project of the University Computer Club (UCC), a student club affiliated 
11 with the Guild of Undergraduates at the University of Western Australia. 
12 UCC::ProgComp is designed to raise interest in programming and raise 
13 awareness of what UCC offers.
14
15 === Why should I enter? ===
16
17 For a number of reasons:
18  - there are prizes.
19  - it's a low-risk opportunity to learn how to program or to practise 
20 your programming. You don't need to be an expert to enter, and it's a 
21 great way to do things that you might not otherwise get the opportunity 
22 to do.
23  - To meet other computer-oriented people around UCC.
24
25 === What's the basic premise? ===
26
27 Entry to the UCC::ProgComp 2010 is by writing an "agent".
28
29 Your agent spends its life in a dystopian RPS underworld, where at any 
30 moment another agent could pick a fight with it, after which your agent 
31 is obliged to pick a fight with yet another.
32
33 On RPS Island, battles are based on Rock-Paper-Scissors, but 
34 considerably more involved: the attacking agent must bluff to the 
35 defending agent before making its real attack.
36
37 If an agent gets picked on for a fight and told rock, paper or scissors, 
38 it can either get modest but mutually beneficial points by trying to 
39 cause a tie, but risk being slaughtered by the other if it's lying (with 
40 a small amount of points awarded if it wins "by accident"), or it can 
41 try to win based on that information and get big points for exploiting 
42 the other agent with a relatively small punishment for being "tricked" 
43 and losing (and no point change in case of an "accidental" tie).
44
45 Thus, in any single round there are bigger rewards and smaller 
46 consequences in "attacking" the rock, paper or scissors that the enemy 
47 agent claims it will use, but cooperation leads to mutual benefit and 
48 good agents should turn against agents that try to exploit them. (The 
49 full points table can be found in POINTS.txt)
50
51 Agents start off with 50 points. If the agent loses all its points, it 
52 dies. If it reaches 100 points, it forms a new agent and both return to 
53 50 points. (However, the arena in which the agents battle is only so big 
54 - if it's too crowded the agent will keep its points and not spawn a 
55 child.)
56
57 The agent can remember who it has battled in the past and what the other 
58 agent has done, but it has no way of communicating this to any other 
59 agent, and any "children" of the agent don't inherit this memory.
60
61 To provide for both smart learning agents and agents that aren't so 
62 complex, both 'long' (1000 round) and 'short' (100 round) variations 
63 will be run. You are not allowed to submit different versions of your 
64 agent for the different durations - you will have to make a tactical 
65 decision about which to target.
66
67
68 === How do I win? ===
69
70 The object of the game is for the descendants of your agent to be the 
71 dominant species.
72
73 Victory occurs when:
74  * You are the only species left.
75  * You are the most populous species at the 'end of time'.
76  * You are the most populous species when the judges determine that the 
77 environment is stable.
78  * The judges say so.
79
80 The agent that wins the most will be declared the overall victor.
81
82 === But won't I get thrashed by UCC's leet coders? ===
83
84 There are a number of 'arenas' where your agent can battle, so that you 
85 -hopefully - get the opportunity to compete with people of roughly your 
86 own level of experience.
87
88 There will be at least the following arenas:
89  - an arena for the units CITS1200, CITS1210, and GENG2140.
90  - an arena for first-years
91  - an arena for UCC members
92  - an open arena.
93  - any other arenas I think of before the submission deadline comes 
94 around.
95
96 You may enter your agent in as many arenas as you are eligible to enter. 
97 However, you must enter the same agent for each arena.
98
99 === OK: how do I code that? ===
100
101 An agent consists of a Python, C, C++, Java or MATLAB file with 3 
102 functions:
103
104  * A function to attack another bot.
105  * A function to defend itself against another bot.
106  * An optional function to receive the results of its battle, so that it 
107 can learn how other agents play.
108
109 Read HOWTO.txt for more info, then go to README.txt to see what other 
110 documents are available.
111
112 === I've read everything and I'm still confused! ===
113
114 Firstly, check the FAQs at <http://progcomp.ucc.asn.au>. If you're still 
115 stumped, contact us via the link at <http://progcomp.ucc.asn.au>.

UCC git Repository :: git.ucc.asn.au