Thanks for the offer Phazorx, but as has been said elsewhere, having more people work "with us" would probably be more work than it'd be worth. Jorb and I work well together because we now each other and can meet regularly IRL and what not. It would be a bit weird to share the server code with someone we don't even know IRL and so; you can probably understand that.
The client obviously needs a lot of work, though, so if you're up for that, there's a ton of things that need to be done. :) First and foremostly, I'd
really like it for someone who actually knows OpenGL to look through the drawing code and tell me why it's so slow. When I've been profiling it, it seems almost all CPU time is spent inside OpenGL, but I can see no reason why it shouldn't be faster. That task didn't exactly seem to match the areas of expertise that you listed, though. :P
Leonon wrote:I think that a large part of the resources the client uses are because they seem to be pushing Java's graphical capabilities using the "MORE POWER!" method. If someone were to make a client without shading (day and night cycle) and with a better way of layering graphics (hive behind a hive behind a hive...) it would likely end up being a fairly light program.
I cannot help but wonder if you're actually basing that on something or if it's pure conjecture. :) The day/night shading takes almost no time whatsoever on any of the computers that I've tested the client on; and neither does layered graphics. From what I've been able to tell from my profiling of the client, the cycle time is spent mostly in 1) actually drawing tiles/sprites to the screen (and as mentioned above, I cannot really understand why it takes so long) and 2) somewhere outside the drawing of the actual game view; that is, somewhere in the HUD or something, and I haven't gotten so far as to discover the exact location.
As for the server-side lag, it consists of a couple of issues:
* Right now, there's too little RAM in the server while it's trying to do too much (as mentioned in the "Lag" thread and elsewhere, it is also running Apache and a couple of other things).
* As a consequence of the lack of RAM, there's a constant trickle of harddrive I/O, which causes loading and saving of maps to slow down a lot, causing cycle overruns.
* I am indeed not using the pathfinding algorithms very well right now. Many of the greatest lag-spikes are due to animals trying to find a path across an entire system of rivers, so I need to limit it and make the animals realize that they should give up.
Apart from those three main issues, there are a couple of lesser things as well, but they matter not a fraction as much.