Well, dang.

This has been both an incredibly awesome, and a really upsetting Pyweek.
We came up with an incredible idea the first day - and it sounded like it was doable.

The first few days it was just Markus and me doing anything, and it was pretty slow for some reason, but we usually start that way.

Late Tuesday and Wednesday we finally got a move on - you could draw new territories around islands, build units, and move them around the territory they were made in.
Pymike also contributed some code that day, and a bit of art.

Wednesday night/Thursday was *massive*. The UI was started and got almost to the finished state, battling was completed, different ship types were introduced.

On Friday the ai was started, the ui finished to the state of the current functionality, automated raiding by your ships enabled, battle engine was tweaked, and more gfx were done.

And now, what we did today.
I finished up the ai, and that took most of the day (and it is still rather buggy and slow - and you can see the printouts if you want to understand it's inner workings :P), and finished the hud, as well as other misc things.
Pymike added the territory names, which Ieuan made, into the main view, along with a lot of art and various other coding.
Markus patched up a number of serious bugs in the battle code/gui - and that took mos tof the day, he also added capitol attacking (though atm you will have to keep attacking forever!)
And Ieaun made some more art and did various coding.

On the whole, we are very disappointed not to have finished. But we should have seen that coming when 1 of our primary coders had a solo, another was unavailable for most of the competition due to a hurricane and work, another had two other had no time because of school.

So that left only Markus and I for the serious coding, and the rest mainly popping in for some art and a little code as they were able.

But, on the other hand, we did not torture the code into oblivion trying to finish, and this really is a unique idea on the whole - so we will be continuing it now - so that is the primary point of pyweek eh? And the game looks nice and runs acceptably (except for sometimes with the ai) on my old comp.

So, we also don't have any instructions or explanation of the story - so...
If you are interested in the basics outline see the this page: http://code.google.com/p/hiths-p4-pyweek6/wiki/Idea1
It is a little outdated, but you can get the basic gist of it there.

Now to play it is simple, hit the expand button (or the "r" key) to start drawing a new territory if it is your turn. The number under the mouse is how much it will cost to make - red and it is too much - right click to stop, or left click on the starting point to finish.
You must build territories around at least one island - and they cannot be too close to another, so if you "finish" it, and it disappears, it was not valid.

Once you have a territory, you can left click anywhere inside it to select it. Here you can build units by hitting the build button, or hitting the space bar (I think).
If a unit is too expensive you simply won't make it.
Also, you can only have a certain number of units in a territory - this number is not shown in the ui yet, but just keep trying until you see the console print "too many units" or something close to it.
To select a unit left click on it.
Around it you will see three thin lines, and one green area. The green area represents where you can move this turn - note you must have string on board to pass over territory lines (explained further in).
To add string, simply click the Add 50 string button.
The hud will display the vital stats of the unit as well.
Right click anywhere in the green to move your ship there.
The three other rings are your ranges. Any enemy within these you can attack - with different options at different ranges.
Right click on an enemy vessel within range to attack it.
A dialog will pop up, you choose your attacks, and hit Fire!
Also not the minimap on the bottom left, clicking or click-dragging on it will cause the map to zoom there.
Those are the basics - the rest is a bit iffy.

Now, here are some hints to make the game at least a little fun - and you can try everything.
Change to hotseat play.
In lib/game.py: Line 27 - you will see a line in main() like this:
Change that to:
And C&P for how many players you want.

Listen to the music.
Nihilocrat made some awesome music (yet again) for the game, which you can listen to in the data/music dir.
Also here is a 3 line update that allows you to add one of the tracks into the game:
import os
pygame.mixer.music.load(os.path.join('data', 'music', 'rio_grande.ogg'))
Add those lines at line 35 of main() in lib/game.py

And that is about it for now - please post here if you have any questions.

Vital stats, insane team members - at least two.
Average amount of sleep for me and Markus ~5-6 hours a night.
Lines of code: 3259
Time for some sleep ;)

Cheers all, and well done to everyone who actually submitted a working game - and I look forward to playing them :)

EDIT: Final Screenshot! All purty... And green is about to be slaughtered...

(log in to comment)


We bit off probably more than we could chew, but it was an ambitious project and I am happy that we got as far as we did. Probably another day and we could have had an engrossing, balanced game.

Still, plenty of room for future improvement and we already have a long TODO list!