Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Dark GDK / DGDK Open Source Project

Author
Message
marlou
15
Years of Service
User Offline
Joined: 17th Jan 2009
Location:
Posted: 8th Jan 2010 05:30
Did a quick search and found this. It uses NavigationMeshes which is better than Waypoints.
http://code.google.com/p/recastnavigation/
They say its fast. Its worth integrating into DarkGDK.

Or use this one by Luke810..
http://forum.thegamecreators.com/?m=forum_view&t=157808&b=22

When a person has nothing but a dream, can he dare to dream.
TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 8th Jan 2010 11:28
marlou,

Navigation Meshes sounds like the latest thing. They're using them in UDK too. I definately want to get it in.

Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 10th Jan 2010 23:37
I updated the physics (but not yet commited) and I'm getting this exception, I tried commenting out all the physics commands and I still get it, not sure whether it was something I've done or it was already like this.



Also I deleted the PhysX_Include folder as I am adding everything differently and now I cant commit, it says:



Not too worried about second problem yet, need to know what causing exception, do any of you guys get it?
TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 11th Jan 2010 00:01 Edited at: 11th Jan 2010 00:06
Hi Matty,

What is the revision of your SVN? Did you update to Rev 70 and rebuild the solution with no errors? I've made a bazillion changes, one includes the removal of the S3GE_API. However, I made no changes to any of your libs so they are still under the S3GE namespace. I can compile on my machine with no trouble, so we can fix it.

Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 11th Jan 2010 12:34
O.K, I'll do a checkout and see if it runs, then I will alter the physics and see if it runs.

I did update to 70 but I never ran it for some reason, just went about changing the physics then ran it and got that exception.
Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 12th Jan 2010 00:19 Edited at: 12th Jan 2010 00:20
Same problem, I un-installed/re-installed DarkGDK, done a svn checkout(revision 70)and ran S3GE project. Got the unhandled exception error message.

I commented everything out and uncommented everything back in one by one and I'm pretty sure it is:

maui::start();

That is causing the exception.
TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 12th Jan 2010 00:46 Edited at: 12th Jan 2010 01:37
MAUI has dependencies on:

DarkGDK.h
S3GE_common.h
darklua.h
diag.h
xml_plugin.h
Box2D.h
physics.h
bitmapfont.h

I assume you can compile and run the project with MAUI commented out. If so, we can dig into MAUI. You may also have to check the S3GE properties. I modified the C++ Additional Include directories to include Box2D.

Box2D is the latest lib added to the project in the INCLUDE and LIB directories, I believe that all of the needed libs and headers are in SVN, but, I may have missed something thats on my local machine but not the SVN distribution.

Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 12th Jan 2010 15:14


If I comment out the above it runs fine.
Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 12th Jan 2010 20:37
I think there may be something wrong in maui::gizmo::familyadd() on this line:

Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 13th Jan 2010 23:59
I updated on my desktop and I get the exception there too, is there anyway you can try and replicate the problem?

Maybe get rid of everything and do an svn checkout again, that should in theory mean that the setup is exactly the same on both our computers.
TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 14th Jan 2010 08:53
Quote: "I updated on my desktop and I get the exception there too, is there anyway you can try and replicate the problem?

Maybe get rid of everything and do an svn checkout again, that should in theory mean that the setup is exactly the same on both our computers. "
Ok. I will make one more commit to upload my current work to SVN (Rev 71). Afterwards, we both perform un-installed/re-installed DarkGDK and perform SVN checkout(rev 71) to ensure we both have same file structure.

TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 15th Jan 2010 02:27 Edited at: 15th Jan 2010 02:28
Hey Matty, I found several bugs in the MAUI XML Loader that may be associated with the trouble your having. I'm going to resolve them followed by a commit (~Rev 71). Hopefully the fixes resolve your issues (prior to a rebuild of DGDK/SVN on my end - hehe).

Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 15th Jan 2010 10:55
Cool, just let me know when you have commited.

I really need to put some time aside to learn how to use the xml, lua and maui stuff, its hard to find time when there is so much to do on the physics.

Tools:
What do you think about making a tool that loads a model and lets you set it up for your game using a gui(maui), this might include setting up the physics for that model and determining how it should react to, or affect other objects and what collision groups it may me part of. It could also setup its animation frames and perhaps setup the way the model/object may be controlled by user input/ai etc.

In the back of our minds would be the fact that this model editor could eventually handle more objects and maybe also become a level editor.

I know we may not be ready for something like this yet but I was wondering if you had any plans for something similar?
TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 16th Jan 2010 10:06 Edited at: 17th Jan 2010 05:34
Hi Matty,

I’m experiencing all types of strange bugs probably caused misplaced keywords in MAUI and my other libs. These errors are getting past the compiler and linker. There is definitely something wrong with XML loader. The current demo will run fine on one instance, and crash on the next. So, I'm combing thru code meticulously. It must be stable before any new commit.

Being able to debug is vital, but, due to some libs not having debug info, the debugger isn’t working. So as a workaround im using a debugclipbrd class that outputs text to the clipboard in realtime. I had to use similar workarounds in DBP. I place markers and stats in the code that output to the clipboard to tell me where the code execution is and variable values. Its primitive, but, works, and I've found all types of bugs this way. Even if the debugger works, some form of logging is very useful.

diag.h


diag.cpp


Example


Quote: "I really need to put some time aside to learn how to use the xml, lua and maui stuff, its hard to find time when there is so much to do on the physics."
MAUI's XML/LUA implementation draws inspiration from how web browser & web forms HTML/Javascript work. Physics is important and I would prefer to have all of the features available to S3GE. Don’t let the current situation with the S3GE hinder your progress. I’ve added Box2D to MAUI and works pretty good when I wants to work –lol. I’m working night and day on S3GE to hunt down bugs and fix them so we can get a decent demo working. The difference is, MAUI focuses is UI Objects within a Game Engine.

Quote: "Tools: What do you think about making a tool that loads a model and lets you set it up for your game using a gui(maui), this might include setting up the physics for that model and determining how it should react to, or affect other objects and what collision groups it may me part of. It could also setup its animation frames and perhaps setup the way the model/object may be controlled by user input/ai etc."
I’m all for it!!! Developing Apps is Phase 2 of the project: S3GEd, and its not far out-of-sight. The first application to develop is a basic GUI editor for MAUI with MAUI. The second application is the Model Editor App and we can use MAUI to develop it.

A Model Editor App is very high on my list fo things to do and aligns perfectly with the development of the MODULAR ENTITY CONSTRUCTION SETS (MECS) System. For MECS my initial focus will be on Character Construction and Animation as it is the most complicated. I figure if we can get it working well all other game entities will be a snap.

Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 17th Jan 2010 13:23
Yeh, that debugclipbrd class will come in handy.

I will concentrate on the physics, I have been reading some of the Nvidia documentation and just realised how simple some of the features are to implement, I have a couple of assignments for uni that need to be done by 1st Feb but then I will be back making progress on adding more features to the physics.

I have just read your 'I want to make your game' thread, its a really good idea. I think if people come up with simple ideas at first it would allow us to show the community how much quicker S3GE can make developing a game, and with better results. Its a good way of getting community members to develop with S3GE, making the engine has not turned out to be hugely popular but I have a feeling that using the engine could be.

You have been taking some stick in that thread and I think you handle it really well, I would post in your defense only its completely off topic for the thread.

Maybe when the engine is ready you should post another one and ask them to limit their remarks to game ideas only.
TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 23rd Jan 2010 21:00 Edited at: 23rd Jan 2010 21:04
Quote: "Hi Matty,

I’m experiencing all types of strange bugs probably caused misplaced keywords in MAUI and my other libs. These errors are getting past the compiler and linker. There is definitely something wrong with XML loader. The current demo will run fine on one instance, and crash on the next. So, I'm combing thru code meticulously. It must be stable before any new commit."


LEARNED LESSONS FROM FAILING TO INITALIZE MEMBERS IN CONSTRUCTORS: Initialize Members of basic types and pointers.

I found numerous bugs using the debugclpboard class. Because its code you can use logic with too.

Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 23rd Jan 2010 22:12
Is everything fixed now?
TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 23rd Jan 2010 22:43 Edited at: 24th Jan 2010 00:15
Quote: "Is everything fixed now? "
That is difficult to declare at this moment considering S3GE was compiling and running for me part-time. I still see inconsistencies in the compiles, so, I'm gradually testing each feature to find broken code. However, things are looking better.



The above maui gizmos generated with


Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 25th Jan 2010 20:22
Great news:

Blitz-terrain is nearly upon us, this is surly a must for S3GE.
Combine super fast terrain rendering with super fast triangle mesh collision and you are a step closer to that massive open world game you know you have been wanting to make ever since you first wrote "hello world" on a computer screen lol.

@Techlord - let me know when its ready to update again.
Hassan
14
Years of Service
User Offline
Joined: 4th May 2009
Location: <script> alert(1); </script>
Posted: 25th Jan 2010 20:36
assuming that all the features in S3GE now are working, what can it do? i mean, what can you do using it?

Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 25th Jan 2010 21:30 Edited at: 25th Jan 2010 21:32
Yeh, its not really an engine yet, its more of a collection of plug-ins in one place. The reason the engine has not been tied together yet is because we have had to develop some of the plug-ins ourselves(GUI, Physics etc).

As far as what the engine might be capable of, then here is how I would like it to work.

We have our own library of S3GE commands which tie all the plug-ins together so for a simple example you may do the following:



This may load a terrain and character and setup the collision for them. These models may have been setup previously and saved out to our own file format which will contain all animation and collision data etc.

This is a massive simplification but its what I mean when I say "tie the engine together".

This is probably the hardest part of the project and needs alot of planning. I think the MAUI(gui) plug-in is the main thing we need right now as that may determine how our objects are related to each other etc, I think he he.
TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 25th Jan 2010 23:52 Edited at: 25th Jan 2010 23:54
Quote: "assuming that all the features in S3GE now are working, what can it do? i mean, what can you do using it?"
Hi Hassan and thanks for inquiring about S3GE. Firstly, none of the proposed features are 'game-ready' at this time. Many of the proposed features requires lots of testing time because there are no readily available library.

DGDK is already capable of producing games, we are developing a Game Engine with it with the intention to minimize the required low level coding and provide framework for other Game Engines. S3GE will be a Game Engine with the basic support for each game mechanic that distinguishes a particular game genre.

As matty has stated, "its more of a collection of plug-ins in one place", however, integration for these plugins into the engine core has begun with the development of the Multi-Application User Interface (MAUI).

MAUI is not your typical Windows-style GUI, it treats Gizmos (aka Gadget in other GUIs) like object-oriented game entities. It is designed with 2D and 3D support. MAUI will be at the core of the game construction in which you can craft HUDs, Actors, Triggers, Props, etc out of it.

I'm currently working on the 2D physics system utilizing Box2D. My inspiration, was to provide a means to create a simple asteroids game using Gizmos. If this feat can be accomplished, MAUI puts S3GE in a game-ready state at a very low level.

Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 27th Jan 2010 22:22
Ive been thinking about the whole engine structure after reading your last post Techlord and have a couple of questions and suggestions.

Are Gizmos GUI entities, or were they at one point?
Do they now control everything 2D relating to games, sprites etc?

After our last brainstorming session I come away thinking, great, MAUI will take care of all 2D/3D entity relationships and everything will be taken from there as we move forward.
Now I'm thinking MAUI should inherit from a broader set of classes which make up all major components/entities of S3GE.

That said, I don't understand MAUI enough at this point to have a definite strategy which brings me to the idea that maybe we need some UML class diagrams, its too hard and time consuming to go through all that code to try and work out the relationships between MAUI objects.

I know we have your original diagram which gives us a broad overview of whats involved but we don't have any documentation on how the engine is/will-be constructed in detail.

Also, when you say this engine may be a base for other game engines, are we conceding that an all-in-one engine may be impossible due to critical decisions that have to be made along the way which might make it good for some game genres but not good for others?

I've just read this back to myself and it sounds a bit like I'm ranting, so sorry if it comes across like that, I am in no way ranting, just need a bit of guidance.

Thanks Tech.

TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 29th Jan 2010 02:39 Edited at: 30th Jan 2010 08:23
Hi matty,

I didn't read your post as a rant and I do understand your concerns. Hopefully I can answer some of them without making things more confusing then they already are.

Quote: "Are Gizmos GUI entities, or were they at one point?
Do they now control everything 2D relating to games, sprites etc?"


Yes to both questions, but, I prefer the term Interactive Entity. Gizmos are 2D/3D Collision Bodies that use Finite State Machine Logic to determine Event State based on collision detection and device input. Event States determine interactive behavior and execute a scripted actions. Gizmos can be assigned a Sprite (2D/3D) to visually represent their state and provide mechanisms to control how to the Sprite is displayed. The camera (Canvas) is also part of MAUI, however, to minimize confusion I'll focus on Gizmos.

Quote: "After our last brainstorming session I come away thinking, great, MAUI will take care of all 2D/3D entity relationships and everything will be taken from there as we move forward.
Now I'm thinking MAUI should inherit from a broader set of classes which make up all major components/entities of S3GE."


I'm not sure what you mean by 2D/3D entity relationships, considering we can do anything in 3D. MAUI is powered by the same core systems (ie: physics, particles, solvers, network, etc) other game entities use. Either a Game Entity will will be controlled by some form of AI or User control. If it requires User control or Event-driven Interactivity, a Gizmo can be used as the base object. Its all about Collision, Collision, and more Collision. MAUI collision detection is powered by a 2D and 3D Physics Engine: Box2D and Fulcrum (Physx). These engines provide both high performance collision detection and physics simulation. I also have the option of using a procedural solution. These are complex systems and to make my life easier in the future I'm integrating them now.

Quote: "That said, I don't understand MAUI enough at this point to have a definite strategy which brings me to the idea that maybe we need some UML class diagrams, its too hard and time consuming to go through all that code to try and work out the relationships between MAUI objects."




I like diagrams and I'm all for UML class diagrams, what ever those maybe - lol. Perhaps the diagram above can show the relationships better. MAUI consolidates Interactive Object and User Input (IOU). For example, Dragging a pointer and clicking on 2D Gizmo involves the similar methods required to move a 3D Character and tripping a Event Trigger. Both user interfaces incorporate a input device, collision, timing to determine events and execute action scripts based on such events. MAUI is designed to consolidate and manage these types of interactions.

I'm concentrating my efforts on getting MAUI functional as a 2D/3D GUI in the typical sense so we can start developing applications with it. Sure, I could have went with a GUI Lib such as GLO, however I desired 3D Mesh-based Gizmos, Animation, and many other features. I abandoned the DBPro port in favor of a complete rewrite due to the flexibility of C++. I'm relatively new to C++, so it has been a time-consuming challenge in re-writing it, but, I'm making progress. So far, I've integrated LUA, Box2D, IrrXML Libs, and making room for Fulcrum, BitmapFont, XBox360 & Wii Controllers, and Sound Libs.

Quote: "I know we have your original diagram which gives us a broad overview of whats involved but we don't have any documentation on how the engine is/will-be constructed in detail."


This forum is serving as a living document. There are simply too many unknowns and not enough experience to have a full-blown document. However, there are plenty of Game Engines already developed to model our Engine Design from. We already know we need rendering optimization systems, pathfinding, physics, GUIs, etc. Its just matter of selecting or developing them, integrating them, and building higher level systems on top of them. MAUI is one step in that direction.

Quote: "Also, when you say this engine may be a base for other game engines, are we conceding that an all-in-one engine may be impossible due to critical decisions that have to be made along the way which might make it good for some game genres but not good for others?"


The engine is free and open source, thus can serve as the base for other game engines. I have no doubt in my mind that a all-in-one game engine can be developed to support the basic game mechanics that define a particular genre. To achieve this we identify the common systems and consolidate them. Consolidate, Consolidate, Consolidate, did I mention Consolidate? Consolidation of low level system should simplify consolidating higher level systems. Of course, there are no guarantees, but, there's plenty of evidence in the real-world to support my reasoning. I'm sorta developing backwards, starting with the most complex systems and working downward. My logic is that if i can get the complex system working it can be used to support simpler systems.

Another area for consolidation is in the construction of 3D Entities. Entity assembly and customization is popular in RPGs, Racing Games, etc. I believe that any 3D game can benefit from Entity Assembly (even if customization is not required). The premise is simple: model parts and assemble many entity variations with them. I was designing the Modular Entity Construction System for this very reason. MECS is a System of Parts and Connectors, with Channelized Image Maps (Texture & Shaders), and a Standardized Bone Animation scheme. Its inspired by the Toy Construction Sets such as (Meccano, Tinker Toys, KNEX, Legos) and assembles Non-Animated/Animated Game Entities in a hierarchal fashion. Use MECS to produce a library of pre-assembled entities or to customize the entities within the game world by integrating the Entity Assembler Application as Entity Customizer (developed with MAUI).



The are so many areas for consolidation. How about simply consolidating where data and media is stored. I proposed a centralized Data/Media Repository for this purpose. Storing media and data in central location would simplify accessibility to developers using the Engine, and access for game client to download game content. I could go on about consolidation, but, I'll save discussion on this for a later day.

Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 1st Feb 2010 00:36
Wow, thanks for the great response.

Quote: "I'm not sure what you mean by 2D/3D entity relationships"

I just meant how the classes relate to each-other, inheritance or other forms of relationships. UML diagrams can be exactly that, you can have class diagrams which show at a glance how the actual code architecture is designed. Its just better to get an overview of the code without going through it all. It would help me see where the physics fits in, in a stricly coding sense.

I love the MECS, I have a game called 'pure' on the playstation and you build your own quad bike from scratch almost, the customisation is unbelievable and it kinda makes you proud of your quad, like it was real lol. Is this the kind of feature you see MECS providing?

The only thing I would say though is it seems like alot of work and if no-one comes on board to develop it, it is another thing on your huge to-do list, I wish I could help more but my time is a bit limited at the moment.

I would desire an engine by the end of the year which has the following features: simple easy to use interface for the user, GUI, Physics, AI, Network and Scripting. If we had all this I would be really happy, anything more would be a bonus.

I would say I only have time for the physics, if we could get someone on board to do AI, I could work closely with them to make sure physics/AI integration is seamless.

Back to work, thanks again Tech.

TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 1st Feb 2010 19:01 Edited at: 1st Feb 2010 19:02
Hi matty,

I anticipated marlou to join and work on AI pathfinding for S3GE, but, it is quite apparent marlou is pre-occupied with developing Quantum Horizon. So at the moment we still dont have anyone to work on these features and I personally would prefer the integration of both Navigation Meshes and typical node-based A* solver.

I too desire an engine by the end of the year which has a simple easy to use UI, AI, Physics, Network and Scripting. We have libraries for most of these core systems and I'm integrating several of these systems with development of MAUI. But, dont forget about Rendering Systems for Terrain, Interiors, Particles, Character Animation etc.

To achieve any of the above, it is going to require a lot of work at the lower levels and that's where we are. I didn't expect constant support from the TGC community because most are here to develop THEIR own game engine and games. However, most fail to realize that developing a game is going to require lots of work and 10x as much work alone. That is my primary reason for starting a Open Source Project to develop such a engine where everyone could develop THEIR game.

One can develop games with DGDK in pure form without any additional libraries, but, without any planning, it is highly probable that it be mediocre game and require 100x the amount of work. The question is do you want to create a mediocre game? Sure we all have a game in our heads, but, how does the features we picture in our minds get into the game? The answer is: lots of work.

DOSP has a team. DOSP has planning. It takes lot of both and works on a voluntary schedule. Completing the development of this Engine/Editor will offer the same or even greater satisfaction as completing a game. It demonstates that indie dev communities can work together and create a kick arse Game Engines. Once the engine is fully operational, you can develop the dream game without retrofit and all features work harmoneously.

I may have took to much time from developing S3GE by working on dittoTPU. I don't regret it, as I developed better C++ programming techniques. However, the deviation consumed 3 months of S3GE development time. Perhaps we would be closer to the engine you desire. Although, there is no deadline to complete the S3GE, I do realize that I have keep active members motivated by showing progress.

Keeping folks motivated is always the challenge with these type of projects. I have to keep myself motivated by overcoming bugs and seeing each feature working. I hope that my dedication and continuous efforts motivate those who continue this journey with me. I like videos and they are motivational. I'm getting FRAPS and setting up a YouTube account to show off the demo video (or at least what should be working for you).

marlou
15
Years of Service
User Offline
Joined: 17th Jan 2009
Location:
Posted: 2nd Feb 2010 07:41
Okay. I'll do pathfinding with navigation meshes. We'll have to integrate it with PhysX soon.
Is there a sliding function in PhysX like in Sparkys? We're going to need that since navigation path in navigation meshes tend to overlap over surfaces.

There isn't any progress in my own engine as Im confused with what to do next. Im trying to make my libraries compatible to my game. Im preoccupying myself with 3d modeling,art and planning now.

We need to put our technical demos and trailers up soon and promote S3GE.

Quote: "These models may have been setup previously and saved out to our own file format which will contain all animation and collision data etc.

This is a massive simplification but its what I mean when I say "tie the engine together"."

Making our own 3d file format would be ambitious. But I have seen that in GTA. They have dff files for 3d models and col files for collision which can result to deformation in the 3d models during collision.
Maybe a simple s3g file that contains the name of the 3d object file and info for collision and data(position,rotation,transparency..) is what we should opt for.

When a person has nothing but a dream, can he dare to dream.
Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 2nd Feb 2010 14:38
Quote: "Okay. I'll do pathfinding with navigation meshes. We'll have to integrate it with PhysX soon.
Is there a sliding function in PhysX like in Sparkys? We're going to need that since navigation path in navigation meshes tend to overlap over surfaces."


Thats great news for S3GE marlou.
In physX all the sliding happens automatically if you try to walk inside something that has collision set up. Take a look at the vid:

S3GE Physics Demonstration


Quote: "Maybe a simple s3g file that contains the name of the 3d object file and info for collision and data(position,rotation,transparency..) is what we should opt for."


Yeh, this is pretty much what I meant. I have a really simplified character class myself which saves to file with rotation and animation data, it could be done alot better than I have done it, this is why I have not tried to add it to S3GE.

@Techlord - Do you have any idea how animation data should be arranged and stored in our file, I was thinking about XML but I have never really used it.

The problem I have with the system I impemented is that I had an animation class that pretty much listed every possible animation and then you just set the first/last frames in a text file.
This was very wasteful as some models only had a few animations and someone will always have an animation which is not on the list.

The other problem I didn't for-see was the fact that you need an extra layer of abstraction for character models, what I mean is that for movement for example, you have maybe three different postures that a character can be in, upright, crouched and prone.
So you may have an abstract 'moveForward' animation which points to 'walkForward', 'crouchedForward' or 'crawlForward' at any one time.

You may know all this, I'm sorry if I'm pointing out the obvious its just that it was not obvious to me and now I have a rubbish set of character/animation classes lol.

I was hoping that for each model we would maybe create an XML file and group everything together in a super-clever way that includes the abstract animations, this is something I could try to look into if you have not already done so, what do you think?

TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 2nd Feb 2010 17:08 Edited at: 3rd Feb 2010 00:22
Quote: "@Techlord - Do you have any idea how animation data should be arranged and stored in our file, I was thinking about XML but I have never really used it."


I would highly recommend using XML. We already have a XML Lib and I've written a parser for MAUI which could be used as starter code to write the 3D Data Parser. Its just a matter of figuring out how we want to format the data. I would expect our Format to layer on top of other formats.

I have some ideas for a 3D Format based on my work with MECS. Additionally, we can get the specs for Direct X (*.x), Biovision Motion Capture format (.bvh), and others. I would be happy if the format could support bone, key-framed, and mesh deformation animation data.

MECS Format (WIP)


marlou
15
Years of Service
User Offline
Joined: 17th Jan 2009
Location:
Posted: 3rd Feb 2010 02:06
Nice MECs xml TechLord.

I have this one so far...just a quick prototype..hehe..


I also have another xml file for map data. It contains objects,properties and scripts. Its what im planning with QHE.
We should also add custom map xml. After all we do have a gui xml.

When a person has nothing but a dream, can he dare to dream.
TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 3rd Feb 2010 10:07 Edited at: 3rd Feb 2010 11:14
matty,

I need your permission to post links to the Fulcrum Demo vids in the DOSP top thread.

marlou,

Your XML is lookin good and could easily be accomplished with the irrXML Lib. I know MECS looks way more complicated. Its designed with the idea of assembling many Entity variations from interchangeable parts. The first section defines a GameEntity Class. The GameEntity Class tells MECS what Parts Categories are allowed to connect and their hierarchy. All GameEntity Class must contain at least one Core Part in which Limb Parts connect.

Common GameEntity Classes:
* Trees & Plants
* Character Head
* Character Body
* Firearm
* Melee Weapon
* Furniture
* Vehicle

The second section defines Parts and what Categories they belong too. Parts are defined with Blocks, Connectors, Accessories. These constucts define how parts connect and interact. A Part can be assigned to more than one category. Composites Parts (aka Part Assemblies) are defined with other Parts.

The third section defines the parts that make up a individual GameEntity Instance. This section is similar to your xml format defining the parts, animation, texturemaps, and userdata for the GameEntity.

Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 3rd Feb 2010 14:35 Edited at: 3rd Feb 2010 14:49
@Techlord - Yeh, of course you can post the links.

@marlou - Thats the kind of thing I was talking about, I've just never used XML. We may also need animation trigger frames or some other system that hold the details if important frames such as when a foot hits the ground we might want to trigger a sound, another one is in a throwing animation you may want a frame that triggers the release point of whatever you are throwing.

Also, certain animations may need to be grouped together, eg idleUpright, walkUpright, runUpright OR idleCrouched, walkCrouched, runCrouched. I'm not completely sure how best to achieve this but the advantage would be as follows, if you have your groups set up the user can just say goProne or goCrouched and then the correct idle, walk, run animations are assigned automatically.
I'm not sure whether this is best defined in the XML file or by a later process, any ideas?

TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 3rd Feb 2010 17:14 Edited at: 3rd Feb 2010 17:39
Quote: "I'm not sure whether this is best defined in the XML file or by a later process, any ideas?"
We use XML & Parser to define our own format. The irrXML Example shows how easy it really is. Its highly probable that our format will layer on top of others. Animation data can be stored in *.3DS files. DGDK has commands to load and extract this data in which it can be applied to different characters using the same skeleton base.

TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 4th Feb 2010 10:29
Quote: "That said, I don't understand MAUI enough at this point to have a definite strategy which brings me to the idea that maybe we need some UML class diagrams, its too hard and time consuming to go through all that code to try and work out the relationships between MAUI objects."


Hi matty,

I'm drawing up a new diagram to help improve my own visualization of the relationship between MAUI objects and other game objects. If Game Object requires User control or Event-driven Interactivity, a Gizmo can be used as it base object. Although I dont expect Environmental Interactivity Objects such as Terrain, Building Interiors, and Particle FX to use gimzos for base objects.




Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 6th Feb 2010 00:28
Nice drawing Tech.

Physics and AI:
I don't know anything about AI, am I right in saying that AI builds on top of the physics/collision?
If so, I just need to provide marlou with all the functions he needs?
Or is there more to it than that? Are the Physics and AI more integrated, rather than the AI just using the Physics?

Thanks guys.

TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 6th Feb 2010 07:29 Edited at: 7th Feb 2010 13:00
Quote: "I don't know anything about AI, am I right in saying that AI builds on top of the physics/collision?"
As a programmer, you work with AI all the time. A simple conditional statement is a form of AI:


But to answer your question, parts of a complex AI system in a 3D game world will be built on top of collision. More specifically, Solvers (ie: A* Pathfinding Algos, etc) use collision to calculate navigational routes and obstacle avoidance. Collision Detection is one part of AI. Another part would be the Logic to determine state and select actions to take upon collision. This Logic can be in the form of hardcode (internal), Scripts (external), or generated procedurally using complex algorithms (genetic, neural networks) etc.

marlou
15
Years of Service
User Offline
Joined: 17th Jan 2009
Location:
Posted: 7th Feb 2010 09:11
I'll need the character controller from PhysX for AI 3d pathfinding.

For character controller, do the 3d objects have to centered at 0,0,0 or it can be that PhysX can make character controllers for objects with 0,0,0 as bottom?

I need to do double time work for my thesis. I will be busy. In fact, I havent coded anything for a couple of days.

When a person has nothing but a dream, can he dare to dream.
Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 7th Feb 2010 12:02
I have hard-coded it so the character controller expects objects with 0,0,0 as bottom although I may try to put the option to change the offset manually to anything you like.

No problem if you have no time at the moment, I'll keep adding more features to the physics and it will be there when you are ready lol.

TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 10th Feb 2010 14:18 Edited at: 10th Feb 2010 16:06
Hi everyone,

I have been working nearly everyday on S3GE in some form or fashion. I believe I've exterminated all but a few bugs lurking around in MAUI (most originating from the lack of properly initializing pointers). I've also located and corrected several typos in the test.maui file. irrXML doesn't perform any xml validation so its easy for typos to slip thru. If I can get the exe to compile and run 5 times in a row with no failures, i'll update SVN.

In the midst of bug hunting, I've been adding functionality to gradually stress test, one of those being Box2D. I'm using Box2D to power high-speed 2D collisions and provide 2D physics simulation. Progress has been slow, but, steady and I'm currently implementing Box2D's b2mousejoint. This is all that remains to achieve basic 2D GUI operation, but, its also the trickest to implement.

Once I get the b2mousejoint working, I'll immediately start coding the final methods needed to bring MAUI to a operating level of a basic 2D GUI. The good news is, that much of the code needed to accomplish this already in place. This will put S3GE at a level where we can start developing applications with MAUI and fine tune other systems 3D Physics, networking, etc within the engine.

I will be moving onward to flush out MAUI 3D Systems. I did NOT fully develop 3D functionality with the DBPro version, so I will be completely in no-man's land with no prior reference material to draw from. However, operating as 3D (mesh-based) GUI is MAUI's highlight feature. I intend to use Fulcrum to power 3D collision/physics sim so I'm hoping Character Controller, Triggers and RayCasting will be functional when the times comes.

Quote: "I have hard-coded it so the character controller expects objects with 0,0,0 as bottom although I may try to put the option to change the offset manually to anything you like."
Please put the manual option in, if its not too difficult.

Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 10th Feb 2010 17:13 Edited at: 10th Feb 2010 17:14
Quote: "Quote: "I have hard-coded it so the character controller expects objects with 0,0,0 as bottom although I may try to put the option to change the offset manually to anything you like."
Please put the manual option in, if its not too difficult."


Done

Just re-arranging the code a little, raycasting and compound shapes are next.

Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 16th Feb 2010 14:33
Techlord, do our header files still need to comply to the same rules as before (input, output and parameter explanations) now that we no longer have that wrapper layer.

My plug-in is getting pretty large and I am doing documents to compliment it, just wondering if I need to provide info on the functions in two places?

TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 17th Feb 2010 01:07
Quote: "Techlord, do our header files still need to comply to the same rules as before (input, output and parameter explanations) now that we no longer have that wrapper layer.

My plug-in is getting pretty large and I am doing documents to compliment it, just wondering if I need to provide info on the functions in two places?"
I've removed the S3GE_API. In fact, your code is the only one using the S3GE namespace in the demo and that can be changed at your leisure. Write your functions in the style you desire. As long as some form of documentation is provided there is no need to document in two places.

TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 20th Feb 2010 09:43 Edited at: 20th Feb 2010 09:52
Hi Everyone, I've slightly remodelled the DOSP Top Thread to improve organization and I'm looking for ideas on how to make the Project Source more accessible via SVN. I'm also drawing up a new diagram that should provide a better view on how all the Systems work together.


S3GE Layers (Work In Progress)


Hassan
14
Years of Service
User Offline
Joined: 4th May 2009
Location: <script> alert(1); </script>
Posted: 20th Feb 2010 09:55
around how much % of the project have you done till now? well, i think only you and matty are working on this, right? it seems too huge for only 2 to make

TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 20th Feb 2010 11:07 Edited at: 20th Feb 2010 11:20
Quote: "around how much % of the project have you done till now?"

I'd guess 25% complete. There are 3 phases in the project but, I would expect the engine technology to take the most time to develop.

Quote: "well, i think only you and matty are working on this, right?"

Matty and I are currently the only active contributors. However, others have made contributions and anyone can jump in and make a contribution at anytime.

Quote: "it seems too huge for only 2 to make"

Ambitious, yes. Too much for 2 to make? No. It will just take more time. DOSP is Open Source, open to the public, and set up for development by muliple contributors over the internet. The Pros have teams, we have a community.

Hassan
14
Years of Service
User Offline
Joined: 4th May 2009
Location: <script> alert(1); </script>
Posted: 20th Feb 2010 13:10
25? well, [href]https://darkgdkosp.svn.sourceforge.net/svnroot/darkgdkosp/Projects/S3GE/S3GE/[href]

this is the project right? ( assuming the /include and /lib are ready plugins )

well if so, it doesnt seem 25% of the project, but well, anyway, what do i need to know in order to join this project? ( requirements? ( if you have no problem, of course ) )

TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 20th Feb 2010 13:37
That 25% was a guess and that only pertains to S3GE. To Download via SVN read this.

I do have some questions for you: 1) what games do you want to develop?; 2) what type of quality do you want in your games? 3) What aspect of game development you do you enjoy and excel at?

Hassan
14
Years of Service
User Offline
Joined: 4th May 2009
Location: <script> alert(1); </script>
Posted: 20th Feb 2010 13:49
1- i'm not using dark gdk to actually make "games", i use it to practice and experience C++, and also, im using it as a starting point before i start with directX ( i already got books about directX, but it's kinda too much complex, so i decided to start with darkGDK, since it uses dx, so i can understand how it works ), but generally, i would like to develop an MMO game

2- hmm, who doesnt "want" top quality?

3- i'd enjoy anything as long as it's related to C++, so it wouldn't matter

Hassan
14
Years of Service
User Offline
Joined: 4th May 2009
Location: <script> alert(1); </script>
Posted: 20th Feb 2010 14:16 Edited at: 20th Feb 2010 14:33
EDIT: it was permission problem, solved

Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 20th Feb 2010 15:12
I think the main problem for people who want to contribute maybe the fact that all the tasks seem huge, like developing the AI, this is a huge task, luckily I think marlou may do that for us.

But finding people to put in this much time and effort is a challenge as most on here are hobbyists and like Techlord has said, people want to make their own games which is fair enough.

I say this from experience, taking on the physics has turned out to be a big commitment, luckily I am enjoying it, but it is hard to put off my game for so long.

Maybe having each task planned out and broken into smaller sub-tasks might help, but then it might not. Plus, this would be alot of work and it still may not attract contributers.

Its interesting you talk about directX Hassan, I started wrapping directX a while back but the 3D maths was taking too long(quaternions etc) so I could not get free rotation on all three axis, it helped me realise that you need a team if you want to accomplish anything significant. I would like to try again one day, but not alone, I am well positioned now to add PhysX to any engine and integrating physics at an early stage would significantly increase performance of the engine.

But, back to the present, Hassan it would be great if you could contribute, hope you find something that interests you in dosp.

Login to post a reply

Server time is: 2024-04-26 20:33:35
Your offset time is: 2024-04-26 20:33:35