PDA

View Full Version : PGDmC: My unnamed project



Jimmy Valavanis
01-07-2011, 09:38 AM
Hello to all of you,

a few words about my work-inprogress-entry:

-It will be a one level first (or 3rd) person shooter.

-It will use resources under GNU and modified BSD license.

-It will be open source.

Ingemar
01-07-2011, 10:22 AM
What kind of "characters", vehicles, animated humanoids, something else?

Traveler
01-07-2011, 10:34 AM
Good to see another entry appearing.

Jimmy Valavanis
03-07-2011, 04:24 AM
It will be a medieval game.... probably... :)

Ñuño Martínez
06-07-2011, 07:38 AM
I think we will have some medieval games here. Mine too. :)

Jimmy Valavanis
06-07-2011, 08:47 AM
A work in progress screenshot.
Now with one extra week I hope I can work in level design details and bug elimination.

AirPas
06-07-2011, 09:17 AM
looks great

Traveler
06-07-2011, 12:18 PM
It sure does.
I assume it is based on previous work?

Jimmy Valavanis
06-07-2011, 01:58 PM
Thanks!

The games uses a modified version of the latest DelphiDoom engine (DelphiDoom 1.1.3.489 - beta - opengl mode).

Ñuño Martínez
11-07-2011, 07:58 AM
Cool! :o

. . . . .

Jimmy Valavanis
15-07-2011, 10:38 AM
Only 2 days left and the project is almost finished. I spend the last couple of days trying to clean up the source code and make corrections and adjustments to the map. Also I made some tests in different hardware to make sure that everything works right.
The game has one level. One part of the action is outdoors and the other is indoors (to be more specific: underground).
The level design was very time-consuming, that's why I had desided from the start to build only one level (but big enough).

paul_nicholls
15-07-2011, 12:11 PM
wow! looking awesome mate :)

cheers,
Paul

Traveler
15-07-2011, 12:34 PM
Indeed it does.

de_jean_7777
15-07-2011, 02:18 PM
Looking really nice.

WILL
15-07-2011, 02:54 PM
Indeed it does look impressive. You built a good FPS engine. :)

Jimmy Valavanis
16-07-2011, 06:40 AM
Thanks!
The most tricky part was the seamless integration between terrain and buildings. The AI of the entities was scripted from scratch using the DelphiDoom preudo-script language which was enriched to contain new AI functions (eg smoke, pushable walls and objects). The player has only one weapon, the magic stick. When you collect magic stuff you can blast energy power to fight your enemies from far, when you are out of magic stuff you can only hit them from close range with the stick :)
Due to an editor bug I lost some days ago a great part of the outdoor area :(, so outdoor area was narrowed. You can still see from far some buildings in outdoor area but they are unreachable, I left them there just for scenery.
Indoor areas are divided into logical subdivisions (ie rooms). The most of the times enemies will not go from one room to another, so you don't have to worry about enemies left behind. You can also use some pushable objects (eg barrels to take cover from enemies). To go from one room to another in some cases you will encounter pushable walls, walk toward them to open the entrance of the next room or to find a hidden place.
When you play the game for the first time you should choose the begginer difficulty level, less and weaker enenies, more power-ups (health - magic stuff). There are also 3 more difficulty levels: easy, normal and hard.
All rendering effects (light sources, shadows) achieved via multitexturing (no experience for advanced tecniques like shaders and not time for hi-quality shadows using eg stencil buffer)
You can save the current game from disk and load it to continue playing a game in progress.
I've also included an autoplay demo.
The game has been uploaded to the server, this is the final version, no time during weekend for something more.

Enjoy!

paul_nicholls
16-07-2011, 08:45 AM
what is the name of the uploaded file?

cheers,
Paul

Ingemar
16-07-2011, 09:13 AM
what is the name of the uploaded file?


Maybe it is "Dragon_1st_PGD_CH.rar"? I have downloaded but must get a rar unpacker before trying.

Jimmy Valavanis
16-07-2011, 09:46 AM
Yes, that's it!

paul_nicholls
16-07-2011, 10:20 AM
wow! pretty awesome dude!! I did have trouble going through the trees though - I kept getting stuck :)

cheers,
Paul

Jimmy Valavanis
16-07-2011, 11:07 AM
That's how it is supposed to work. The trees limit your way to distant areas (as well as the elevation of the terrain). The player must find the way to the underground! You can go to the demo option to see the path the player is supposed to follow....

Ingemar
17-07-2011, 04:07 PM
You based on DelphiDoom, but did you do the Geomipmapping (aka LOD terrain), frustum culling, lightmaps and shadows yourself? It is definitely advanced, the code easily gets twisted and complicated when you want to put all those features in. I didn't have time to implement those things, although shadows and frustum culling is high on the list. Professional graphics too, and you already mentioned that the level design took some time. I can imagine. It runs fairly well on my old P4/NV5900.

And as a bonus, you got me interested in DelphiDoom. These seems to be no Mac support in it? Not even Linux?

Jimmy Valavanis
17-07-2011, 05:28 PM
At first I tried the SOAR algorythm for terrain (an very good example can be found at http://galfar.vevb.net/wp/projects/terrain-rendering/) but finally I came up with my own idea of LOD: I devide the whole terrain in 1024 regions (32*32) and create for each region two precompiled OpenGL lists, one in full quality (for close regions) and another in low quality (less trianges for far regions). I also calculate the bounding sphere for each subdivision and check if it is inside the view area to render it. This technique is neither elegant nor as accurate as the SOAR algorythm, but surprisingly is much faster :) In the other hand the built-in bsp rendering took care of the indoor areas. In 2-3 cases I was forced to make crude adjustments to the source code but that was mostly because of the map design imperfections. The most tricky part was the connection between the outdoor and indoor area (I'm talking about entities movement/interaction, not rendering issues). I've used the existing lightmap code to make simple shadows for moving objects which gave me an acceptable fast solution.
Unfortunatelly DelphiDoom is not available neither in Mac nor in Linux, if you're interesting porting it to other Operating systems or help improve it would be great!

Ingemar
18-07-2011, 05:31 AM
At first I tried the SOAR algorythm for terrain (an very good example can be found at http://galfar.vevb.net/wp/projects/terrain-rendering/) but finally I came up with my own idea of LOD: I devide the whole terrain in 1024 regions (32*32) and create for each region two precompiled OpenGL lists, one in full quality (for close regions) and another in low quality (less trianges for far regions). I also calculate the bounding sphere for each subdivision and check if it is inside the view area to render it. This technique is neither elegant nor as accurate as the SOAR algorythm, but surprisingly is much faster :)

How do you manage edges between different resolutions?


Unfortunatelly DelphiDoom is not available neither in Mac nor in Linux, if you're interesting porting it to other Operating systems or help improve it would be great!
I am tempted to try. Linux and Mac are so similar that by supporting one, I could support both.

Jimmy Valavanis
18-07-2011, 07:34 AM
Well, my poor English can not describe it properly so I've attached an image which demonstrates one subdivision rendered in full and in low quality. Inside soure code (gl_terrain.pas) also is included (but commented out) a lower resolution without the surrounding quads (15x4 = 60 triangles). The pivot of the triangle fun has the higher z value of the subdivision, I was about to make x and y of the pivot point to the higher's z point x and y but I thing I've left it to the center (it just looked good that way and I just left it...).

Ingemar
18-07-2011, 07:52 AM
Well, my poor English can not describe it properly so I've attached an image which demonstrates one subdivision rendered in full and in low quality. Inside soure code (gl_terrain.pas) also is included (but commented out) a lower resolution without the surrounding quads (15x4 = 60 triangles). The pivot of the triangle fun has the higher z value of the subdivision, I was about to make x and y of the pivot point to the higher's z point x and y but I thing I've left it to the center (it just looked good that way and I just left it...).

Ah, I see. Full resolution on edges, different resolution inside the patch. Pretty smart, you can just make two vertex buffers and switch between them depending on distance. In the usual geomipmapping algorithms you must make edge fixes, that costs time.

Traveler
18-07-2011, 07:22 PM
Awesome game. The sounds, the atmosphere, it's quite an immersive game. The big boss down below still had the upper hand, but I'll get him soon.
Btw, I don't know if you plan on doing a new release, with some fixes. There's a nasty typo in your menu, you might want to take out ;)

WILL
18-07-2011, 10:35 PM
Did you come up with a name yet Jimmy? :)

Jimmy Valavanis
19-07-2011, 05:44 AM
It's "Dragon" :) I tried to change the thread's title to "PGDmC: Dragon" but I think I didn't managed to....

Jimmy Valavanis
19-07-2011, 06:17 AM
Awesome game. The sounds, the atmosphere, it's quite an immersive game. The big boss down below still had the upper hand, but I'll get him soon.
Btw, I don't know if you plan on doing a new release, with some fixes. There's a nasty typo in your menu, you might want to take out ;)

I just figured it out :(, sorry bad English....

A new release will come next days, mostly to utilize some other features, a front-end to configure the renderer and as well as correcting some spelling mistakes :)

Jimmy Valavanis
21-07-2011, 05:42 AM
The post-competition release is ready.

Download link: http://sourceforge.net/projects/delphidoom/files/Games_Based_On_DelphiDoom/

Besides some spelling corrections :) , launching the game will display a form at startup which allows to configure the screen resolution and record or play demos. In addition while playing you can use the "Print Scrn" key to make screenshots to disk.