AGS 3D

Started by DoorKnobHandle, Sun 15/05/2005 15:21:53

Previous topic - Next topic

auhsor

Aweseome work guys! One small optoin I would like would be the ability to invert the mouse. I'm use to it being inverted so I have great difficulty moving around if its not.

Ozzie

#81
Well, I found a bug: When I look at an angle where the green pyramid stands before a blue box, a side of the blue box is still drawn before the pyramid when I look at it from a specific height and angle.

Proof:

Robot Porno,   Uh   Uh!

Kweepa

I'll make invert mouse an option.
Ozzie, I am aware of that bug, hence the TODO of better sorting. It's not particularly easy, unfortunately. The easy fix is to break the blue box into two smaller boxes, but that's a bit lame.

The latest version has full editing capabilities!
TAB changes editing mode between move, rotate, scale, colour.
F5 cycles through the objects.
C copies the currently selected object.
O, P, L place Sphere, Pyramid, Cube at the camera position (back up to see it).
WASDQE move or rotate or scale or change colour of the currently selected object.
Shift-X deletes the last placed object.
F4 writes out code to recreate the scene, which can be pasted into an enter room script.
There's also a "Door" hotspot between the two red boxes which will soon be triggered with a press of the space bar...

http://www.steporg.com/step/ags/games/ags3d.zip

It's WIP so there may be some crash bugs...
Still waiting for Purity of the Surf II

Gregjazz

Quote from: SteveMcCrea on Tue 16/08/2005 07:33:47
I'll make invert mouse an option.
Ozzie, I am aware of that bug, hence the TODO of better sorting. It's not particularly easy, unfortunately. The easy fix is to break the blue box into two smaller boxes, but that's a bit lame.

The latest version has full editing capabilities!
TAB changes editing mode between move, rotate, scale, colour.
F5 cycles through the objects.
C copies the currently selected object.
O, P, L place Sphere, Pyramid, Cube at the camera position (back up to see it).
WASDQE move or rotate or scale or change colour of the currently selected object.
Shift-X deletes the last placed object.
F4 writes out code to recreate the scene, which can be pasted into an enter room script.
There's also a "Door" hotspot between the two red boxes which will soon be triggered with a press of the space bar...

http://www.steporg.com/step/ags/games/ags3d.zip

It's WIP so there may be some crash bugs...

Very cool!

...started to slow down after the creation of a massive army of spheres, but I know that's not your fault.

There still is a few angle issues where one object will overlap the other kinda funny (like in that screenshot posted earlier)

Kweepa

I know about the sorting bug.
The solution is to find a separating plane between each pair of objects and swap them depending on which side of the plane the camera is. Like I said, not easy (in script).

As for it slowing down, I should be able to make some frustum cull optimizations and some bounding box optimizations. If I feel like it. := I did limit the number of objects to 50, but 50x120 triangles to be culled and clipped is rather a lot.
Still waiting for Purity of the Surf II

Haddas

Now where are the collisions and physics? How hard would it be to make those things? Can you make the memory cache bigger by default for that game?

My questions might be stupid but I'm truly fascinated

Kweepa

I can collide the camera against the objects *fairly* easily. Sliding along them is doable, although harder. I'll be giving that a shot.

Physics (stacking boxes etc) is a whole other ballgame, particularly in a scripting language without struct-within-struct or pointer-to-struct support. I might be able to do some bouncing balls but that's not a priority right now. Full physics is out of the question - although it would be relatively easy to write a Novodex plugin, that would be cheating - at that point I might as well write the 3d part in the plugin too.

I don't get the memory cache question. The only AGS cache I know of is the sprite cache, and I don't know why I'd need to make that bigger.

Cheers,
Steve
Still waiting for Purity of the Surf II

Snarky

I assume texture mapping and/or gouraud shading is out of the question?

This project is SO cool, by the way!  :D

Haddas

well I mean if there's any reserved amount of memory that an AGS game can use at the max? If there's say a limit, which would make the game slow down when reached. I have 1024mb so I'd be surprised if the game slowed down after a few low resolution triangles.

Kweepa

#89
Quote from: Snarky on Tue 16/08/2005 14:39:18
I assume texture mapping and/or gouraud shading is out of the question?

You assume correctly :)
Unless AGS supports gouraud shading of triangles... Of course that would slow down the game a little bit more.

Quote from: Haddas
...I'd be surprised if the game slowed down after a few low resolution triangles.

The memory usage is minimal. Projecting 50,000 vertices and clipping 100,000 triangles per second is a chore for a scripting language. (I had to clip the triangles to the viewport after all.)

[EDIT] PS. I added a second room and a character that you can "talk to".
Still waiting for Purity of the Surf II

DoorKnobHandle

Still amazing, Steve, I just downloaded the newest version. Worked great.

The only thing I really miss is collision detection, then you ( or we if you could need help :) ) should just put all this in an easy-to-understand-and-use script module and release it for all users.

And from now on there shall be 3D in AGS...

You really make me proud for having started this "little" project, it would've never came this far without your amazing work.

I know, I will create a little wolfenstein or doom-like ego shooter with AGS after releasing that script module.

Keep up the great work!

Kweepa

Quote from: [ ... ] on Tue 16/08/2005 18:56:39
You really make me proud for having started this "little" project, it would've never came this far without your amazing work.

Heh, of course it was your framework that encouraged me to try it!
A script module should be possible from this I'm sure...
Still waiting for Purity of the Surf II

Vince Twelve

This is awesome.  I've been watching it for a while now, and it's just cool as hell.

Someone mentioned before that there was a problem with the blue box sotring itself on top of the pyramid at inappropriate times, so I know you're aware of the sorting problem, but here's a fun twist to it:

If you use the mouse to turn the whole game world upside-down (flip 180 vertically), ALL of the sorting is wrong (far away objects are drawn on top of close objects).  Plus, Dixie is now standing on her head... 

Perhaps the best fix for this is to prevent the mouse look from going more than 90 degrees off of the horizontal (as most First Person games do). (though you still have to deal with that blue box popping up on top of the pyramid when it shouldn't)

Also, going beneath the ground produces a similar problem.

Great fun.  Good job, both of you!

Kweepa

Yeah, I was planning on limiting the camera pitch to +/-60 or so, since the sprites look odd when pitching the camera.

Going under the ground sorts wrong because I intentionally draw the ground first, to avoid having to sort it. I will do the same thing for the walls and ceiling inside a room.

(In the game that this will become, the up and down keys will obviously be disabled.)

Cheers!
Still waiting for Purity of the Surf II

Gregjazz

Quote from: Haddas on Tue 16/08/2005 15:23:24
well I mean if there's any reserved amount of memory that an AGS game can use at the max? If there's say a limit, which would make the game slow down when reached. I have 1024mb so I'd be surprised if the game slowed down after a few low resolution triangles.

If I remember correctly AGS doesn't use any graphics accelerators, so that's part of the reason why graphics in AGS can get slow.

This 3D thing is really taking shape, and I'm excited about it, even though I don't really understand most of the scripting behind it. :)

Ozzie

#95
Whooaa, I see double!!



I'm not sure if this was an intent.
The bum sprite to the left moves with the camera. Actually, it also makes it a bit hard to read the controls description.

I think I haven't mentioned before that I find this work amazing!! Interesting what is possible with AGS.
Robot Porno,   Uh   Uh!

Gilbert

Heh it's actually more of less a test version I think. where he need to have something sorted out (see this trhead) but turned out he directly overwritten the originally uploaded file.

I think he'll remove that left character when the problem has been sorted out (actually I had sorted it out). I'm not quite sure which method of eliminating the character he would take (that character need to be in the room for ease of animating the raw drawn sprite), but I think he can make it via one of the following routes:
1. Make the room a whole walkbehind area and put the baseline to the bottom, so to cover up that character, when talk is required first reposition the character to near the raw drawn character so the text appear in correct position.
2. Make the room a whole walkbehind area and put the baseline to the bottom, so to cover up that character, when talk is required use SayAt() so the text appear in correct position.
3. Set the coordinates of the character so that he is out of screen, when talk is required use SayAt() so the text appear in correct position.

Kweepa

#3. :=
Thanks to Gilbot, I have animated talking characters!
Also
- limited the look up/down to 60 degrees.
- added an invert mouse option on F8.
- the bar from RON.



http://www.steporg.com/step/ags/games/ags3d.zip
Still waiting for Purity of the Surf II

Chicky

Let me be the first to say WOW! Hotspots! Talking! room transitions!


awesome work guys, shame i'll never have a chance of understanding it ;)

GarageGothic

#99
Awesomeness. Hat's off to you guys. This is already looking better than the 3D engine in Facade. How realistic do you think it would be to add texture mapping, if CJ implemented a few more dynamic sprite deformation commands? Or would the framerate go subzero if you had to deform and rawdraw perhaps 8 or 10 sprites per frame?

Edit: I just remembered what these graphics remind me of: The old Freescape engine games, like Castle Master and Total Eclipse.

By the way: How about adding a simple (8 sides or so) cylinder primitive?

SMF spam blocked by CleanTalk