News
sgetris: Let it snow
So, a few days later (and just a few hours of development) and the snowflakes are falling. They aren't very configurable yet (you can specify the flake count and the size/speed ranges) but they look charming. I'm also not sure if the snowflake image is copyrighted. I hope not. So here's a picture

Work now begun on implementing the core functionality of sgetris.
sgetris: Start of development
Despite all the core developers being busy studying, I've decided to start implementing some functionality. The design document isn't quite finished, but I can safely start to work on a simple background (I know, it's not important.
The first background will be a clone of the FuzzyFlakes screensaver included in the xscreensaver package. It shows snowflakes slowly falling down (see attached screenshot) and is adequate given the time of the year as well as the fact that the flakes can easily be exchanged.

Supraball: Code Design and Library Experiments
Currently I am doing small experiments to find out specific things about the libraries.
Very fast objects are mostly a problem in physic engines as those update the simulation in certain timesteps, so it could happen that a fast objects is in front of a wall/player and in the next step it is already through. No collision was detected because it was just to fast.
Now to overcome this problem physX provides a mechanism called Continious Collision Detection. The collision here is not callculated in steps but in a continious stream. This requires more calculations but is absolutly reliable.
Now, to detect if an object is near you (for example a ball lying around in your 'catch' radius) you can use physX's trigger. Those are objects that don't have a real body that can collide. Instead, those objects call a previously specified callback function when ever something enters/leaves them. That way you can find out when something is within a certain object. So each player should have an invisible 'catch' object bound to the callback functions.
Now the problem was, that in the manual they say that Triggers don't take part in CCD. What ever that means.
And I needed to be sure what it means, so I tested it. What we need works: an object with enabled CCD does trigger the callback function on enter.
Now, about the scripting engine. It has a neat feature called Interfaces. You can specify an Interface from the host-application and the script can implement it. So, we provide the scripter with these interfaces:
- Controller
- Trigger
- Contact
Trigger has functions that will be called when something enters/leaves the associated object and
Contact has functions that will be called when something touches the associated object.
Controller allows the scripter to react on userinput (keyboard, mouse), how exactly is not sure yet.
Maybe we provide some functions to the scripts that allows them to specify certain commands like move,strafe,shot,pass and those can then be set in the configuration menu. Then a function of Controller will be called, everytime a key that was associated with a command was pressed.
Needs some work.
A angelscript class can also implement several interfaces.
Additionally, we should provide some functions to load and display a model and its animations, I haven't checkout that part yet.
Well, everything that was not mention that is part of a game needs still some thinking work sofar.
What I wish from you: get a working development enviroment and check out the libraries APIs and the tools (git, cmake). Compile small examples, get used to the API.
and send me your god damn public keys or you won't be able to commit sourecode.
--Marenz
Supraball: First Steps - Git repository
First things first! The git repository is up and works. Now everyone needs to send me their public keys.
What? You have no idea what I am talking about? Well, here is what you have to do:
- The repository URL you will have to use is gitosis@timeoutd.org:supraball.git
- Remember, cloning from that URL will only work after you send me your public keys
- After creating your key in the terminal, also type this:
- echo -e "Host timeoutd.org\nPort 122" >> ~/.ssh/config
http://kylecordes.com/2008/04/30/git-windows-go/
You can send me your public key by- pasting it in IRC (just paste the content of the file)
- use something like http://codepad.org/ and send me the link
- upload it somewhere and send me the link
- write it on a postcard and send it to me
- meet me and dictate it
and don’t worry. It’s not secret. The more people know it the
more secure it is. The public key is used to encryped informaton,
your private key is used to decryped that information
(the private one should NEVER leave your harddiks!)
--Marenz
Sanguis: Windows version! (1 comment)
http://timeoutd.org/sanguis-0.1_pre1-win32.7z
More coming soon...
sge: Perk choosing and majutsu
Good news everyone! Freundlich has finished the first version of his majutsu library which is now used in sanguis to serialize and deserialize the network data.

Performance has increased and the data rate has decreased a lot. Packages are now seldomly larger than 20 bytes and are packed more efficiently. However, there's still testing going on and important bugs are to be fixed, for example, endianness is not respected and floats are serialized as they are which results in very poor portability. With similar machines, however, the gaming experience was pretty lag-free already.
The second rather big change was the completion of the perk choosing dialog. Previously you'd have to open the console and enter "/giveperk" to get a perk, which was a very elitist solution. Now, when you enter pause mode, a nice dialog with a picture for each perk is shown, along with the remaining perks to use (see image):

There is more work to be done and many bugs to be fixed. We're currently planning a first stable release version, so everyone (at least on Linux) can take a peek at the game without expecting the game to close any minute with some cryptic error message (which is what currently happens when you, for example, enter a wrong port number in the connection screen, see picture)

Also available in: Atom