OCUK programming project?

I see you're well underway.

From experience, both from writing games in assembler years ago and writing high speed C and Java programs there are a few things you want to keep in mind with everything you do when writing a game.
These are some good guiding lights, stolen from super computing that have done me well.

Your computing 'power' is finite. However also is your time.
There are diminishing returns in terms of your time verses the performance gains. Design well for performance with good interfaces and structure, then code for performance.
I remember two instances when I worked on the high speed code (hand coded and optimised assembler) and with a good interface the other developer had managed to complete a large chunk of the application by the time I completed it. Once plugged in, the faster code increased the speed of the final application a minimum of 10 times.

Copying data is your enemy.
This is the king of all super computing. When you're dealing with terabytes of data you watch for simple mistakes such as a[]:=b[]+1 which would cause the entire data set to be processed thus copying terabytes..
Pay attention to how the data is stored, how the processing works on it.
In Java this means being savvy about creating lots of objects when you could use patterns such as flyweight etc.
Although your game will not be batch processing petabytes it will be time limited with each interval only having finite processing time - copying data or creating objects is a waste. It may be better to create the ahead of when they're needed.

Do processing when needed.
Unless you can really state you need to continuously process data there is usually a trigger such as a V-sync, a user key input or timer pop. Use all means that can reduce processing when it's not needed.

Parallelise
Java isn't the best for this, more C/C++ with utilising SPMD and SIMD instructions to process data more efficiently.
Java can and does support Threading, and it's possible to use two threads when processing data but data dependancies are the killer - which leads back to your data storage design.

Lastly for Java - you may need to read up about garbage collection to ensure you're not going to have pauses as the GC kicks in.. oh and also lastly stick to 32bit java. The reason is that the 64 bit memory pointers and object references mean you're processing more data for the same number of objects. Just from experience the 32bit JVM was faster..
 
Last edited:
That's a bit early for that kind of discussion Nick. It's valid, but none the less a little early given the scope of experience for a lot of contibutors :) Rather than concern yourselves with high processing speed, just get the thing working first. :)
 
That's a bit early for that kind of discussion Nick. It's valid, but none the less a little early given the scope of experience for a lot of contibutors :) Rather than concern yourselves with high processing speed, just get the thing working first. :)

:D

Just thinking too about communication - perhaps settling on UML as a common 'language'. Not that I'd advocate hacking at the keyboard ;)
 
Last edited:
Forget any kind of "Common Language" the languages have already been decided, and frankly, UML is nothing but a waste of time and a PITA. Just write code. :)
 
The reason is that the 64 bit memory pointers and object references mean you're processing more data for the same number of objects. Just from experience the 32bit JVM was faster..

The same with most languages...except with java you can compress pointers.
 
Glad to see this is still going. Sorry I haven't been able to contribute. As I suspected would happen, my day job and lack of inclination to do much programming outside work hours got in the way.

Haven't done anything in Java in years, and even that was limited to Swing, so might see if I can pop by. Any idiots guides to IRC? (I used to use mIRC but I really can't be having the hassle of going through installing that again).
 
Glad to see this is still going. Sorry I haven't been able to contribute. As I suspected would happen, my day job and lack of inclination to do much programming outside work hours got in the way.

Haven't done anything in Java in years, and even that was limited to Swing, so might see if I can pop by. Any idiots guides to IRC? (I used to use mIRC but I really can't be having the hassle of going through installing that again).

My suggestion would be to use the ChatZilla addon for FireFox (Get it by doing "Tools" "Addons" wait for the window to open then click "Get Extensions" on the bottom right of the window). When you have it connect to freenode (by clicking on freenode you'll see it's in blue next to a list of other servers). Once it's connected use "/join #ocuk-dev" to connect to our channel.

Cheers

Dangerstat
 
I thought I'd post saying Programming Fest seemed to go really well. Everyone who was there seemed to follow everything and whilst basic (as it really had to be) we did get around to doing some really useful bits, everyone got a decent introduction to Swing, we got some of BlackVaults graphics imported it was an excellent start, and moreover we got to the point where we could start seeing something come together.

It's a shame more of you weren't there, but Blackvault is writing up a tutorial based on what we went through so there's no excuses for not catching up or having a read through what happened today.

Great to see some code finally, something that looks like the beginning of a game.

Cheers

Dangerstat
 
yeah bummed I missed it.

Just so busy, the other half was made redundant so I am pulling as many overtime shifts as possible :(
 
Arse, completely forgot about this - was watching Andy Murray at 2pm.
Quietening down a bit at work now though, so I should at least have time to go through the tutorial within the next couple of days though.
 
Gutted I missed it. Thanks for the tutorial - I'll look that over when I get chance. I may even go dig out my Learning Tree course materials and revise some. :)
 
well it seemed to start off as a way of teaching people to program to an all out, hell, lets just develop a game and tell noobs how we do it by writing a doc, to "this game isn't good enough, we want 3d graphics, massive multiplayer etc"

I left then as I wasn't learning anything from the experience. No idea what happened to it.
 
Back
Top Bottom