Page 1 of 7

[General Algorithme] 3D engines

Posted: Fri 10 Feb, 2006 9:18 pm
by thecheat
I've been wondering, how do you go about creating a 3D engine, I have absolutely NO interest in creating a gemini style 3D engine but more of a "real" 3D'r where there's actually up and down aiming (did I mention it's a guning game?)

laugh at me if you wish, but, what I'm thinking of is a two player game like Halo :roll: I'm not sure if it's possible to do anything so complex over a cable... but, if it is, please tell, if not, I'd like to try making perhaps a few levels that are large so you'ld have to download them one at a time. I'd prefer this in GREYscale (just makes everything better) the players would NOT be 3D though, they would be 8 sided (so, from every side they look different) and would have three different sprites working, EX, the gun and head would move up and down togheter, the torso would not be flexable so it would be simpler to code, the legs can squat, run, and walk in which the body bobs when ducking or jumping.

of course this would be completely ASM, I'd probably have to code the whole blasted engine from the 0's and 1's up but, do you think it's possible? even in nongreyscale?

PS the "moving bodys" would only be the enemy, of course to it's a first person shooter. my aim is to make it a 2 player VS game as AI's probably aren't easy to code yet be smart... so...

Posted: Fri 10 Feb, 2006 10:59 pm
by Liazon
Have you found a good link port routine that's fast and efficient?

Posted: Sat 11 Feb, 2006 4:54 am
by tr1p1ea
Well although linking will be a hurdle i dont think its your biggest worry atm. It would be difficult to get a polygonal based engine with textures running a complex scene at a decent speed on a 6MHz calc. You *might* have a chance on an SE running at 15MHz. Real 3D engines for calc games would not be able to handle a complex indoor environment ... i think they would be more suited to flight sims and the like.

Im sure if you google for some info on 3D engine development you will find a fair bit. I recommend gathering as many resources as you can, you should be prepared to do a lot of reading for this project.

Even if things dont work out in the end, it cant hurt to try :).

Posted: Sat 11 Feb, 2006 4:59 pm
by Liazon
oh ya, I forgot, he's looking for up and down too. Well Cheat, the reason why coelerus (was it him?) could easily make shooters like Gemini is because of raycasting. As far as I can tell, it's smaller and faster than trying to emulate real 3d on an 83+. I wonder if an 89 could do that? hmm....

Posted: Sat 11 Feb, 2006 8:56 pm
by Timendus
You'll only need to send over a few coordinates plus a view direction, that's not going to be a problem, unless you really can't spare the clocks that the sending takes when you're rendering the view of course... :)
Anyway, like tr1p said, linking will not be your biggest problem.

Posted: Sat 11 Feb, 2006 9:51 pm
by DJ_O

Posted: Sun 12 Feb, 2006 9:30 am
by coelurus
I would suggest looking into fake 3D, like what Hexen and the Build engine did (sheared perspective when changing viewing pitch). FPSs are hard to do properly (culling, filling the screen with ordered polygons, clipping to the view frustum, numeric accuracy, raytracing for collision detection etc), faking things will be faster, more stable and most probably look better.

Asking if a project like this is possible sounds a little like skepticism :) No matter how crazy a game idea might be, one should take the chance since nobody else has. That's why I haven't yet said anything about grayscale, but you should know that it will require filled surfaces and filling pixels is the most horrifying thing you can do on a calc.

Posted: Sun 12 Feb, 2006 9:50 pm
by DigiTan
My only suggestion is to look over some of the older 3D games. Andreas Ess pulled some pretty sick frame rates in Daedalus (grayscaled, no less). If you can coax him out of retirement, it might shead some rays (er...light) on the situation.

Posted: Sun 12 Feb, 2006 10:03 pm
by Liazon
DigiTan wrote:My only suggestion is to look over some of the older 3D games. Andreas Ess pulled some pretty sick frame rates in Daedalus (grayscaled, no less). If you can coax him out of retirement, it might shead some rays (er...light) on the situation.
O_O

Posted: Sun 12 Feb, 2006 10:34 pm
by DigiTan
Heh heh. That's sort of how I looked when I first saw it. I got a link here, but unfortunantly, he only published a small slice of his code. Anywho, if he can do that on 85 with only 6MHz, an 83+ version would dy-no-miiite.

Posted: Sun 12 Feb, 2006 11:35 pm
by lloydkirk1989
Anywho, if he can do that on 85 with only 6MHz, an 83+ version would dy-no-miiite.
What? A TI-85 is a better calc.

Posted: Mon 13 Feb, 2006 2:12 am
by Stickmanofdoom
coelurus wrote:... filled surfaces and filling pixels is the most horrifying thing you can do on a calc.
Hasn't Cobb already done this in his Death Rally game? Or are the routines not fast enough to render tens of polygons at once?

Posted: Mon 13 Feb, 2006 5:01 am
by CoBB
There are some people who did filled polygons, there are also (half-baked) 3D engines, but marrying the two would likely result in something very slow.

Posted: Mon 13 Feb, 2006 5:10 pm
by coelurus
Touching ~6000 pixels/frame isn't a very good plan, especially not on a calc. If major parts of a map is of the same color and one can solve contour occlusions, then that'll help although probably create rather variable framerates.

I'd recommend fake 3D :)

Posted: Mon 13 Feb, 2006 5:14 pm
by benryves
coelurus wrote:I'd recommend fake 3D :)
DOOM-style polygon filling should be fast enough? I'd give it a go myself, but I never worked out how to get the perspective-correct scaling correct, so viewing walls edge-on looked very wonky.