Willing to pay for decent 3d platform source.

Blitz3D Forums/Blitz3D Programming/Willing to pay for decent 3d platform source.

Vertigo(Posted 2007) [#1]
Hey everyone. Im swamped with god knows how many work related projects, as well as a huge game dev project. However, my friend is doing some stuff and I agreed to help slightly with their project. Anyways. Bottom line, Im looking for 3d platform style control that works without errors. I tried a few examples and tried my own using line pick. It just worked out poorly. So basically Id like to just not have to deal with it and pay someone to write it haha. If anyone already has something functional let me know. This may have been a dumb idea but im far to busy to come up with any other ideas at the moment.

-Scott


SLotman(Posted 2007) [#2]
I dont think there is a "standart" code... it depends heavly how the level is done (is it a Blitz terrain? some level made out of "tiles"? a BSP?) - then you could apply several collision styles (from built-in B3D collisions, line picks, or even physics systems)

Then there's also how things will be handled - the game will have locked FPS? Time-based code? What "actions" need to be implemented? How the animation must be done (it's an MD2, an animated B3D/or .X file?)

Said that, take a look at the castle demo that comes with B3D... there's also some BSP code with markio running around on it.


Vertigo(Posted 2007) [#3]
Yeah sorry I knew that would be too vague. I can convert the motions to delta timing, no issue there. The problem comes from simply applying proper control and motion and collision detection. Using standard blitz collision and getting the NY is fine for flat objects, but runs into some funny issues on angled ground. Animation is not an issue, they are using a custom format. Levels as you asked are not blitz terrains. Mesh generated with its own culling and lod system. The actions that are performed are not of consequence... doing crazy things like wall jumps ala mario 64 and such would be possible if the basic collision stuff worked properly and predictably in the first place. I am familiar with just about every platform coding example laying around here and again they all seem to work pretty well for their own demos but fail when you put them into a real application. Maybe a combination of blitz collisions as well as line picks both running would be the answer I just dont know. Right now I have it setup using line picks, getting the entity type of the object that collided and then applying things like friction elasticity etc at that point. But it just doesnt "feel" right. I would never have thought just being able to run and jump around like you can in mario 64 would be this difficult or I wouldnt have agreed to help my friend out with this. Not even fancy aerobatics or anything are needed, just a smooth nice 3rd person platform code. I just threw in some code I had laying around and its like I have different versions of collisions and such. Some work great on flat ground and fail on angles. Some work for all angles but fail with moving lifts and such. Its just like dependent on when and where you call update world and how many different types of collisions you want to check per frame. And im trying to apply this to all moving entities too, so it will get expensive performing multiple checks.

I just thought I'd throw that out there.. just looking to see if anyone already has movement code that works with lifts/platforms, running jumping with inertia and can get decent state checks for the stuff its bouncing around on, floors, walls, ceilings, their types and effects. If not no biggie, then I will tell my friend they are sol... haha i have too many other things to worry about.

-Scott


SLotman(Posted 2007) [#4]
You see, that's what I meant!

Delta timing is dangerous when it comes to 3D gaming... for example, if the game lags during a jump, you can end up jumping much higer/faster than anticipated, and that alone can make collisions fail! So sometimes you just need to put some constrains on how much (space wise) you can move at a time - otherwise on slower machines it will create all sorts of problems...

Second, the geometry size matters - once I did a Racing game on C - and one of the problems I faced was exactly that: my level geometry was too big, so sometimes collisions failed, even doind linepicks. So I had to scale everything down until it worked.

But you're right, you need the normal collision (probably sphere/mesh), but before moving you should make a bunch of line picks in the direction you're moving (at least 3, one for the player's head, another for the body, and the last on feet height).

And yeah, it's hard -- after all player movement is the main thing on any platform game... if it isnt good enough, the rest of the game won't matter.

Edit: maybe this guy can help you: http://www.blitzbasic.com/Community/posts.php?topic=69195#773649


andy_mc(Posted 2007) [#5]
What's the situation with BSP's? I thought we still couldn't use them for commercial projects.


IPete2(Posted 2007) [#6]
The man you want to speak to is (tu) sinu although I think he moved over to BMax now, but his 3D platform code for B3d is unsurpassed.

It may be worth mentioning it included using Newton for physics and that makes the whole thing - sing like a choir - beautiful stuff.

IPete2.