PDA

View Full Version : Dage - Dog Adventure Game Engine



Rahakasvi
24-01-2009, 03:12 PM
Greetings..

I would like to announce my newest project called Dage.

Dage is 3d Adventure Game Engine. It is made with Delphi and GLScene.

Download latest version: Dage Engine v0.0.8 (http://rahakasvi.hinguere.fi/Dage/DageDist_v_0_0_8.zip) 1.4mb zipped, 4mb unzipped.

http://rahakasvi.hinguere.fi/Dage/screenshot03.jpg
http://rahakasvi.hinguere.fi/Dage/screenshot04.jpg
http://rahakasvi.hinguere.fi/Dage/screenshot05.jpg
Few screenshots.

Current features:
Dynamic actor shadows
Character animations
Collision detection
Scripting with Lua
Interaction with scenery


Goal is to create a complete engine with scripting possibilities and appropriate editor and to release it as open source for anyone to create classical adventure games in 3d. Well lot to do with that goal, but just playing around :)

noeska
24-01-2009, 03:57 PM
Ooooh nice... Looks good.

Have a look at my 3d adventure game engine: http://3das.noeska.com .

WILL
24-01-2009, 04:00 PM
Thats awesome. You should put some big 'ole eyes on him that follow the mouse cursor. ;)

chronozphere
24-01-2009, 04:13 PM
That is looking really good. congrats. :)

I agree about the eyes. They'd make the dog look much more realistic (and cute. :lol: )

Hope to see more of this. ;)

arthurprs
24-01-2009, 09:40 PM
looks really good :D

Rahakasvi
24-01-2009, 10:54 PM
Thanks everyone :) Dage is totally in playable condition, but I publish first demo when I get scripting to work decently. Now everything is hardcoded to exe.

I will not put eyes for the dog.. :P because...

1) It is the cartoon version of Bergamasco.
2) Merely for showing the engine, not trying to look cute.
3) Artistic reasons.
4) More coding
5) I can later on make many ingame jokes how it can see anything
6) The upper head is already looking at different interesting objects throughout the scene, so making eyes follow the mouse cursor would be too much..

;)

But thanks for the comments..

Rahakasvi
25-01-2009, 10:32 PM
Download: Dage Engine v0.0.3 (http://rahakasvi.hinguere.fi/Dage/DageDist_v_0_0_3.zip) 1.4mb zipped, 4mb unzipped.

Be sure to take look into data\scripts folders. Nothing fancy there but something to see how the scripting might work :)

I guess DagEngine is having some framerate trouble, because I added only three collisiondetected, dynamically shadowed and animated characters and the FPS dropped with 60% to 89fps with my computer. I have an old laptop anyway. But I fear scenes with multiple actors might be hard to realize. This will be only for high-end machines :P

I went with Lua, cause it is superb lightweight and extremely hard to use. If anyone have experience with Lua, I would have some questions how this scripting should be made properly ;) Now I have to add by hand every virtual call and property setting, and it is kind of frustrating.

There might be some problems with NVIDIA cards for showing shadows for actors. I don't know why. :/

Chesso
25-01-2009, 11:11 PM
Very impressive or so I think anyway!!!

I have some questions though:

1. How did you find working with GlScene to be? (setup and getting it working).
2. Did you make the models and what in?

I'd love to have a bash at making a cool little thing like this, but I don't want to get in way over my head haha!

Rahakasvi
26-01-2009, 09:32 AM
Thanks Chesso.

1) Well using GLScene after installing was no pain (had some trouble installing the latest CVS to Delphi 6). Everything works very logical and intuitive way I think. Imho the biggest problem in GLScene is that it doesn't have any kind of manual or Wiki to look into when problems arise. It has though quite active news groups that I could rely on problems and questions.

2) All the animations, models and textures are made by me with 3D studio Max and Photoshop.

Real problem making this engine is the Lua. There is practically no active Pascal/Delphi wrapper unit so everything must be done by hand. Luckily there are a lot of documents with C and C++.

Chesso
27-01-2009, 06:14 AM
Ahhh using Lua scripting?

My plan (with another project not related to GLScene/3D), is to create my own specific purpose language, nothing too complex to begin with, but the idea is obviously to create myself some documentation along the way that outlines some general and basic standards so adopting more basic, or less advanced versions in perhaps other software applications will become very easy and still purpose specific.

jdarling
27-01-2009, 06:56 PM
Actually, there is an active Lua wrapper for Lazarus/Delphi and in the up-coming Lua-Gems book there is a chapter just on using Lua in Pascal (I should know, I wrote both).

See: http://eonclash.com/ViewProduct.php?ProductID=26 (http://eonclash.com/ViewProduct.php?ProductID=26)

I can happily say that I use this in many projects and products for work and home. This includes JumpStart and a few other game related things. If you would like to view a copy of the article I can try and send it to you over PM.

Also, if you have any questions, let me know. I've done quite a bit with Lua in Pascal and have run into many of the problems and fixes that ARN'T documented in C/C++ as they don't exist in C/C++ :)

Rahakasvi
28-01-2009, 11:29 AM
Download: Dage Engine v0.0.4 (http://rahakasvi.hinguere.fi/Dage/DageDist_v_0_0_4.zip) 1.4mb zipped, 4mb unzipped.

Character can now talk, and walk scriptable.

Okay now scripting wrapping looks better. I can now import Delphi classes to Lua. Not subclasses yet though, but this is enough for me.

jdarling, in the beginning I tried to install that, but couldn't, so I ended up writing my own. But good to know if I have some trouble I know where to ask :)

Rahakasvi
29-01-2009, 10:42 PM
Download: Dage Engine v0.0.5 (http://rahakasvi.hinguere.fi/Dage/DageDist_v_0_0_5.zip) 1.4mb zipped, 4mb unzipped.

Added more functionality. Demo now loads with little cutscene.
Changed walking algorithm.

I would really love to hear how this runs on other machines :P FPS? Specs?

jdarling
29-01-2009, 11:39 PM
I'm pulling about 90fps:

Dell Vostro 1510
OS: Vista Home
RAM: 3GB
CPU: 1.8GHz Duo
Video Card: Indel 965 Express

It doesn't look too bad so far. You should look into function pointers instead of forcing the use of a function name in your scripts. This would lower your lookup times and execution times significantly. Not important now, but when you start having a lot of scripts running, it will be important :)

Would be nice if you could interact with something in the world. Granted you can tell that there are papers, maps, a little dog, etc... Now you need to get it so you can do something with them.

The walking algo still seems off. Hard to believe that I can walk on top of the desk (well float to the top) but can't get into the vent shaft. Also standing behind the desk and clicking beside it I will try and walk a strange way. Course odd that you can try and walk up a wall as well. You should check your click point and validate it before starting the walk, also a minor look into A* or similar path finding would prolly be best.

Just my two cents so far.

paul_nicholls
30-01-2009, 05:01 AM
Download: Dage Engine v0.0.4 (http://rahakasvi.hinguere.fi/Dage/DageDist_v_0_0_4.zip) 1.4mb zipped, 4mb unzipped.

Character can now talk, and walk scriptable.

Okay now scripting wrapping looks better. I can now import Delphi classes to Lua. Not subclasses yet though, but this is enough for me.

jdarling, in the beginning I tried to install that, but couldn't, so I ended up writing my own. But good to know if I have some trouble I know where to ask :)

Hi Rahakasvi,
I'm wondering if you could share how you did your own importing of Delphi classes to Lua.

I am always interested in this sort of stuff :-)

Yes, I have already looked at pLua :-)

cheers,
Paul

Chesso
30-01-2009, 08:23 AM
I don't remember the previous version doing this, but I noticed straight away in this one that clicking somewhere where the character cannot walk, results in the character continuing it's walking animation (and presumably attempting to walk somewhere it cannot), despite it colliding with an object like a table or wall.

Rahakasvi
30-01-2009, 08:13 PM
Hmm. The hardest part is to make the walking routine work for almost any kind of rooms. Currently characters doesn't understand to stop if it can't move. Another point is that the collision engine calculates the area where character can walk for the original room mesh. That is why we can get over the table, but not inside the shaft. However this will cause problems on scenes where character can't simply walk somewhere. Like hot lava. Or from the cliff. So I'm thinking having another mesh for just character collisions.

jdarling, do you think that FPS is good for your machine? Or do the engine feel "jerky" from times to times. And yes the character will interact the scene once I'm satisfied with the walking around :) I didn't plan to imply any pathfinding, but maybe later.

paul_nicholls, I found a source for some Dutch lua wrapper called karmarama. I studied how it worked and changed a lot of it to work with my engine. When I release the source, one can use my wrappings as want.

Rahakasvi
07-02-2009, 05:08 PM
Latest Version: Download: Dage Engine v0.0.8 (http://rahakasvi.hinguere.fi/Dage/DageDist_v_0_0_8.zip) 1.4mb zipped, 4mb unzipped.

Changes:

Walking is better, not yet pathfinding though
More options to GUI creation
Inventory example
Background animation example via 3D sprites

Rahakasvi
26-06-2009, 07:55 PM
Hey guys. It's been a while since I posted an update and Dage has progressed a lot.

Latest Version: Download: Dage Engine v0.2.3 (http://rahakasvi.hinguere.fi/Dage/DageDist_v_0_2_3.zip) 2.1mb zipped, 5,8mb unzipped.

Important new features:

Saving and loading
Multiple rooms
Easy inventory handling
Music and sounds
.. and more


There are too many updates that could be listed here. See documentation for more information and check tutorials for quick start.

See documentation project on http://rahakasvi.hinguere.fi/Dage/docs/

Questions? Ask on forum http://rahakasvi.hinguere.fi/Dage/forum/

chronozphere
27-06-2009, 08:49 AM
Looks great. :)

I tried your demo and allthough I could walk, I couldn't let wayne interact with any objects, let alone enter another room. I tried clicking on the coffee cup and the desk but nothing happened. Same when clicking the door.

Nevertheless, I think this looks really promissing. I like the way the dog walks and the easy way of telling him where to go (just clicking). Keep it up. Would like to seem more! ;)

pstudio
27-06-2009, 10:33 AM
Hi,

I tried the game out on a borrowed laptop. I was quite suprised that I only got about 2-3 fps on it. I'm not entirely sure about the specs but I think it's somethink like 1,89 gHz dual core, 2 g of ram and some ATI graphics chip/card.

Rahakasvi
27-06-2009, 04:21 PM
chronozphere, if you click magnifying glass icon on top left and then coffee cup, does that work?

pstudio, are you sure the laptop does have good graphics adapter? my ati mobility radeon gets 120 fps..

Rahakasvi
28-06-2009, 08:34 AM
I made a video to showcase most important features. 8)

http://www.youtube.com/watch?v=4vwqGnne-1k

chronozphere
28-06-2009, 11:32 AM
Looking good. Everything works here. ;)

Wizard
28-06-2009, 06:10 PM
I also tested it, looking good! Running at around 120 fps here ;)

Rahakasvi
31-07-2009, 03:29 AM
Dage has been updated almost tridaily basis. Now it features plugins, like script object property editor, transform tool, script editor (all thanks to Synedit + JVCL) and other features like conversations, animations, and much much more. Join the hype! ;)

See Dage Forum (http://rahakasvi.hinguere.fi/Dage/forum) for more information...

Rahakasvi
04-10-2009, 01:49 PM
I've managed to implement A* pathfinding algorithm using navigation meshes in Dage. It was easier than I thought. Gems are very good and informative books.

Rahakasvi
09-05-2010, 06:59 AM
Hey, huge upgrades has been done to Dage Engine, I ported the engine to Lazarus and this gave engine a port to Linux. It was pleasant surprise that it went really smoothly. No trouble there.

I want to port this engine also to Mac, but I couldn't get Lazarus working on my roommates macbook.

So I need your help!

I need someone who has done work with Mac and Lazarus, knows how to install GLScene and SDL libraries to Mac.

Please add me to MSN messenger if you are interested.

Greetings,

Pauli Suuraho


http://www.dageport.com/gallery/image/25
http://www.dageport.com/gallery/image/22

Last image is showing off the post glsl shader support..
http://www.dageport.com/gallery/image/78

Vinzvega
09-05-2010, 09:17 AM
very nice !
I'like the idea to make an complete editor and automatize all the stuff could be.
I'm working and a editor too, but for 2d stuffs.

You all speak about lua about script engine, but it's integration is hard in delphi, in my opinion. And the script itself is not "revolutionnary" (it could be easier to handle)

Why not something like pascal script ?
http://www.remobjects.com/ps.aspx

by ! :baby:
:o)

Stoney
09-05-2010, 06:39 PM
I could help you porting Dage to Mac. I've just added you in MSN.

As for Lua, I think Lua is a good choice considering cross-platform development (even for mobile platforms like iPhone and GP2X) and it has become de-facto standard for game scripting.

While Pascal Script might be nice, it is considerably slower than Lua and only works on Windows and Linux.

Granted, understanding how to integrate Lua in your own applications can be a lot of work, but there are few Pascal libraries out there to speed up that process.

Vinzvega
10-05-2010, 06:07 AM
Hi Stoney !



As for Lua, I think Lua is a good choice considering cross-platform development (even for mobile platforms like iPhone and GP2X) and it has become de-facto standard for game scripting.



For cross platform, ok, it's a fact, but for me, lua will drive in a project an underliying sdk, so, in cross platform problematic, lua is really the easy part, isn't ?
For de-facto standart, I'm less in this way, above all, for game programming, normally, the de-facto standart is c. So why we are here ? ;)



While Pascal Script might be nice, it is considerably slower than Lua and only works on Windows and Linux.


oh, I didn't know that. But When I wrote, I thought more about PaxCompiler than a REMObj PascalScript. But I'll retain that. I use only one time Pascal script, and perf was not a prob... but it was not a game.



Granted, understanding how to integrate Lua in your own applications can be a lot of work, but there are few Pascal libraries out there to speed up that process.


I'v only see certain libs on the net ( delphiLua ot other) and to make the stuff working was not completely a cool journey, and it was difficult for me to imagine use it in a big project, in this state.

But ready to see that in action throught Dage !!

More of that, I looked on lua from several day, cause of Iphone project that I have.

Stoney
12-05-2010, 06:42 AM
For de-facto standart, I'm less in this way, above all, for game programming, normally, the de-facto standart is c. So why we are here ? ;)

That's why I wrote game scripting and not game programming in my previous post. ;)