Today's been a most unproductive day. Unproductive in the sense of progress made, not work commited. Even more unsatisfactory [depressed]
The better part of the day I spent trying to get mesh-mesh collisions going in Ageia PhysX; between our level and some arbitrary object. The thing just went mad with jittering, bouncing, and seemingly random behaviour.
I assumed it was something to do with the way the engine sets up the physics system and objects (skin width, center of mass, inertia tensors, something like that). No luck tweaking values or setting flags.
It all boils down to this. In PhysX, for mesh mesh collisions, you need to create pmaps for the meshes. pmaps only work properly on meshes that represent some sort of closed volume. As far as I can understand from the documentation, the process of generation applies raycasts to find extents of the volume, and further stores this in some sort of voxel structure for faster and more robust intersection tests. Now, our level naturally isn't a closed volume mesh, so ultimatly that screws up the pmap and any hope of arbitrary meshes colliding with the world [smile]
To resolve this I suppose we could remodell the level with closed volume colission meshes, which in turn might make the character interaction less smooth (pluss our level designer will probably be jumping with joy [rolleyes]). Perhaps more realistically, we can restrict all world-interacting bodies to be of convex shapes, which should work fine without pmaps.
None of this is too hard in itself, but working through someone else's wrapper (the engine we're using), hacking and slashing through their indirections, adding here and there, and never quite knowing if a problem stems from a bug in our code, their code, or in Ageia's PhysX itself, makes for a somewhat frustrating experience.
We started Monday, with all the expected introductory talks, a bongo drumming session [rolleyes], and finally a buffet of free food [grin]
At the start of Dare, each team is assigned an international scholar to take part and help with development. For us, I'd like to introduce Simon from Hong Kong. Simon's a programmer, and will most likely be doing some NPC AI - a little bit dependent on how we work that into our game and level design.
The first week's been expectedly busy. Tuesday and Wednesday we had Instinct Technologies up from Ireland to give us training sessions in using their engine, which we've adopted as the platform for prototyping our game. Their engine is still in beta, and a very lacking in documentation. On the up side, they provide us full proper support, including a support forum for us and the 2 other Dare teams uing their technologies, and later on telephone support for urgent matters. Their training sessions have been most helpful, and the best of luck to them for the upcoming Develop conference in Brighton!
As mentionened (I think), I'll be working on physics and movement for the game. Bringing magnetic ability to the main character, with racing style fast manouvers. The engine wraps around AGEIA PhysX, so anything available there should be easy enough for the engine team to expose. I'm still brainstorming how to implement the character. It has full freedom of orientation, so I'm unsure wether I'll have to write my own character controller, or if I'll be able to extend the one in provided by PhysX.
I'll write something more detailed once I get around to implementing the basics and have a better feel for it myself, but the general idea is you have a humanoid-like robot, with a magnetic ball for legs. You speed around an environment where most buildings have curved edges so you can smoothly manouver around. You can perform jumps, change orientation mid-air and pull yourself towards surfaces, etc. If anyone has any suggestions or experience working with characters and physics, comments are much appriciated [smile]
That's all for today. I'll see if I can get some concept art posted up soon. Something graphic is always good for portraying games and ideas.
I thought I'd briefly introduce the team I'll be working with this summmer.
Jops - Team Lead
Amrita - Character Artist
Michael - Level Designer
John - Gameplay Programmer
Christian (me) - Technical Programmer
More about the game later, as soon as uni is finished, and we're all free to produce some more detailed design documents and concept art :) For now, lets say it's a time attack, skill based, action-platform-puzzler, using magnetism to manouver your way around non-linear interactive environments [cool]
During the project, I'll mainly be responsible for the movement, magnetism, and general physics of the gameplay. As should become evident through this journal, these are critical parts to our idea and vision for the game, so I hope I don't screw it up [rolleyes]
Right now, I need to get back to my dissertation, which I might cover a little bit as soon as I have some spare time on my hands [smile]