OP2 Coding Contest

From OPU Wiki

Table of contents

How to enter

Write a complete OP2 mission, using the La Corrida map and multiplayer techtree, that replaces the official La Corrida. This might include replacement of the computer AI, changes in disasters, beacons, etc. However it should remain a typical LoS mission.

The official AI has many flaws, the object is to build an AI that can "outdo" this AI at defense, and perhaps even attacking the human players on the map. At the same time this AI should be reasonable and fair and not be allowed to "cheat". (Nor should a human player be allowed to cheat).

Submit complete source code of this mission to the upload page (http://www.outpost-universe.net/contest/) to enter. Entries are due by August 10, 2005 at 12am GMT. Submitted missions are evaluated on completeness, quality, and creativity of the AI. (Read down for other things you should be aware of)

Contest Rules

  • The mission may be written with the SDK v.2, any kit such as Hooville, your own, etc are allowed.

(Kits other than the standard Hooville should be included with your mission, if necessary files aren't included, your mission will be rejected).

  • Only your custom C++ headers and code files are needed (along with any custom kits besides Hooville).

Any standard SDK headers, .dsw / .dsp files will be thrown away, other files that are standard to all OP2 missions, etc will be replaced with new copies from the SDK v.2 at compile time. (In other words, if you make changes to the original SDK, copy the functions into your own source files, modify them, then rename them). For Eddy-B's IUnit functions, we will supply our own copy of op2extra.dll and it's required headers and libs if you choose to use them.

  • You must submit full source of your mission, binaries are not accepted.
  • Submitted files must be in .rar or .zip format. Others will not be accepted by the upload program.

If the file is visibly corrupt (due to the volatile nature of the internet) we may contact you via IRC or forums to give you a chance to reupload your file.

  • The mission must compile using MSVC++ 6 and the OP2 SDK v.2 headers and libs.

You may use other C++ compilers or IDEs to help development, but if the mission does not compile cleanly it will be rejected. (References to headers using the directory structure of the SDK are allowed, for example #include "..\Outpost2DLL\Outpost2DLL.h" is perfectly ok.

  • Missions that produce "Could not initialize game" messages, or obvious bugs/crashes will be rejected. Test your code over and over before submitting!
  • Poorly organized code, or extremely sloppy code will be rejected.

(This is meant lightly. Code that does something useful and important to the mission, that looks sloppy but is necessary is fine. However bad indenting, putting long pieces of code all on one line, other bad coding practices, are bad. The rule of thumb is, if others can't read it, then we probably can't either. If it looks like it has to be "decrypted" almost in order to be read, we'll probably just skip it).

  • Missions that use maps other than the official La Corrida map (on4_01.map) or techtrees other than the MULTITEK.TXT will be rejected.
  • Missions using direct changes to the map thru the GameMap class (including cell types) will not be accepted.

Also, missions using direct memory hacks into the EXE or its data, or anything of this nature will not be accepted. One exception: you may use CommandPackets for the AI player to do things like train scientists, research, etc. This includes features in Eddy-B's IUnit class.

  • All .obj files must be produced by the Microsoft C++ compiler only. Use of other compilers such as assemblers, Borland C++, etc are not allowed.

(Even if the package includes EXEs or DLLs, those will be deleted and not used. If the mission doesn't compile without them, it will be rejected)

  • All submissions are final. If you submit a project with bugs or other problems in it, too late -- the file that is submitted becomes your final submission for the contest.
  • Multiple submissions from a single person are not allowed. If a single person submits more than one entry, ALL their entries will get deleted and they will not be considered.
  • By submitting a project to the contest, you grant OPU permission to do what we feel necessary with the source code. (In other words, if you win the contest, you may find your code in a future SDK version).

OPU also cannot be held responsible for any damage this contest, directly or indirectly, might cause to yourself, your computer, or anything else that is yours.

  • OPU reserves the right to cancel any submission they feel is fraudulent, in violation of the rules, etc.
  • Rules are subject to change, so check back often.

Tips on submitting a good mission

Good missions will have clean, straightforward, robust code that accomplishes what it needs to do without a lot of extra baggage. (We don't intend for this to be a coding style contest, since not everyone is an 'uber coder' we give some leeway for coding style. However if your code is so unreadable that it's totally useless to the coder, it won't be accepted).

Missions that have a creative AI that works well to defend the center of the map will win ahead of AIs that sit there and do nothing the whole time (much like the official AI does)

As for mission setup, the winning mission would obey all the game settings (such as morale, disasters, resources, etc) and have good beacon placement and choice of disasters. Good missions should look professional, without "easter eggs" or other random disasters that would give a player an advantage over the others.

Missions should be playable and reasonable. If the mission or AI is totally unbeatable then it's probably not a good candidate for winner.

Awards

One mission will be selected of all the entries as the Winner. The author of the winning mission will get recognition for their winning entry (by an icon in their forum profile to the left of every post they make).

Their mission will be included in the next update as well. It's also possible that their code may be used in a future version of the SDK for helping out coders, or elsewhere.

End

Again, submit all entries to the upload page (http://www.outpost-universe.net/contest/).

The bottom line is, good luck! If you have any questions or comments please direct them to op2hacker by email (mailto:op2hacker@outpost-universe.net), via IRC, or thru forum PM.

Personal tools