Computer Science Canada

3D Game Engine (Work in Progress)

Author:  Wolf_Destiny [ Tue Dec 05, 2006 8:35 pm ]
Post subject:  3D Game Engine (Work in Progress)

As some of you may know, and most of you may not, I've been working on a 3D engine for about a month now. Eventually it's going to be a game, all I really have left is to add rooms, and some asthetic features (Like a UI).

Current Build - Alpha 01

The included file has a very basic, easy on the CPU terrain map and basic character cube. No texture mapping in this one, although I could post that as well if people are interested. (It's MUCH slower with textures)

"a" and "d" rotate the red "character cube" left and right. (independant of camera)
Space Bar centers the camera behind the character cube.
Left and Right Arrow Keys rotate the camera and character cube simultaniously.
Up and Down Arrow Keys move character in direction they are facing. (Even if i isn't the same as the camera)
"+" and "-" are zoom in and out respectively.

Questions, and comments are welcome, and I'd appreciate feedback on how people think it's going so far. And if people would like, I could write a short "how to" on making custom models and walkable fields since the engine doesn't use standard formats.

~Wolf_Destiny
aka. Steven Lyon

P.S. Yes I do know I should make an actual character instead of a cube.
P.P.S. My Avatar was rendered with that engine

Author:  xHoly-Divinity [ Sat Dec 09, 2006 12:05 pm ]
Post subject: 

Niceee, I like it. I'm thinking that the rotation/movement should be a bit faster... I like the space bar feature. I duno how it would apply to this game ur making, but I would add a vertical rotation feature as well.

P.s. Nice work, I've really no idea how to make a 3D engine, I wouldn't mind checkin out ur source code if u have it available Wink

Author:  Silent Avenger [ Sat Dec 09, 2006 5:12 pm ]
Post subject: 

I must agree with xHoly-Divinity. Very nice, good work!

Author:  uberwalla [ Sun Dec 10, 2006 12:41 am ]
Post subject: 

just curious on how u made it so that it looks more full screen. (the part where u double click the title bar and the window melds into the screen Razz.

sweet deal. would love to see your source for the screen melding its very intermeresting Very Happy

Author:  [Gandalf] [ Sun Dec 10, 2006 12:43 am ]
Post subject: 

uberwalla wrote:
just curious on how u made it so that it looks more full screen. (the part where u double click the title bar and the window melds into the screen Razz.

Do that to any window, doesn't have to be Turing, same thing will happen. I guess there's a slight difference between a window's dimensions being maxx/maxy and it being fully maximized. This isn't any Turing programming, it's simply part of Windows.

Author:  uberwalla [ Mon Dec 11, 2006 4:06 pm ]
Post subject: 

o i guess it is Razz when i clicked it for his it just looked totally different lol. Razz it litterally had no border i thought it was full screen (except for the bar at top Cool

Author:  Wolf_Destiny [ Mon Dec 11, 2006 5:58 pm ]
Post subject: 

@ Everyone:
Thanks for all the positive feedback, I really appreciate it.
@xHoly-Divinity:
I've been working on acceleration for movement and rotation. So far I've done Forward and Backward, but I haven't worked on it since Friday. The acceleration is fairly easy to implement and right now it increases speed as follows:
pseudo:
if the up arrow isn't being pressed
reset speed to base value (1)
else
exponentially raise speed -> speed += speed/10
move polygons (speed * normal) units backwards
move character (speed * normal) units forwards
end if

@Silent Avenger
Thanks!
@uberwalla
The source is quite simple, as [Gandalf] mentioned the "screen melding" occurs because of Windows. When you double click a window it goes to full screen, and the borders generally disappear. However this doesn't usually happen with Turing run windows. So what I first did was set the screen to maximum width and height:
View.Set ("nobuttonbar,graphics:max,max")
Then I made code to wait until the user clicks twice (not necessarily a double click).
So then Windows can tell the run window to go into a semi-fullscreen mode.

Actual Source Code for that:
Turing:
View.Set ("nobuttonbar,graphics:max;max,position:center;center")
View.Set ("title:<Your title here>")

begin
    put "Double Click the Title Bar to continue." ..
    var x, y, btn : int
    for a : 1 .. 2
        loop
            mousewhere (x, y, btn)
            if btn = 1 then
                put "." ..
                loop
                    mousewhere (x, y, btn)
                    exit when btn = 0
                end loop
                exit
            end if
        end loop
    end for
    cls
end

(The begin and end keep x,y, and btn from becoming global variables. With begin and end, the program ignores that they've ever existed.)
@[Gandalf]:
Thanks for explaining that before I had a chance to reply.

Author:  uberwalla [ Mon Dec 11, 2006 8:27 pm ]
Post subject: 

o cool Razz thx man


: