Understanding netGore ++

7 replies [Last post]
Posts: 15

I was wondering if someone(Spodi) could write a more in depth guide about understanding the design behind the current netGore.
Like for example what does "NetGore.Core" contains and what does it do or how the client - server is programmed in netGore and what is the relation between the normal server and the serverObjs?

And if I understand right demogame is build ontop of netGore?

I understand if this would be more work to do, we could just take a couple of more weeks to understand the engine.
But the faster we understand the engine, the faster we can help track bugs and solve them.

Example:

-Demogame
-Demogame.Client
   This holds the source to the client game using netGore.
   If you want to alter gameplay elements start here.

Posts: 263
Posts: 15

I knew someone would post that!
That is not what I meant

Posts: 263

I dunno, to me it sounds like what you're looking for, but there's still some info missing from there.

By the sounds of it, you want something like http://www.netgore.com/docs/namespaces.html with added descriptions?

Posts: 1691

I can supply the information if someone is willing to format and reword it well and put it in, say, the wiki where everyone can find and easily understand it. I just don't really have the time to document everything. So let me know if you're willing to do that, and I'll start talkin'. Wink

Posts: 15

I am more then willing to help you.

Posts: 1691

Alrighty, well lets see...

DemoGame - Stuff too game-specific that is shared between both the server and client.
DemoGame.Client - The demo game client.
DemoGame.Server - The demo game server.
NetGore - Generic stuff related to the engine. This references some NetGore projects, but most NetGore projects reference it. This circular-reference concern is why NetGore.Core is needed. This is ultimately referenced by all DemoGame projects, though, so it shouldn't contain any client-specific (ie graphics) or server-specific (ie database) stuff.
NetGore.Audio - All the audio.
NetGore.Collections - Specialized collections and such.
NetGore.Core - This is a very light-weight project that is mostly just basic helper methods and such. It is ultimately referenced by ALL projects, and it references NO other projects and very few external libraries.
NetGore.Db - Database-related stuff.
NetGore.Db.MySql - Database-related stuff specifically for MySQL.
NetGore.EditorTools - Components that are only used by editors. Never referenced by the server or client.
NetGore.Graphics - All the graphics related stuff.
NetGore.IO - All the IO for everything but networking.
NetGore.Network - All the networking stuff.
NetGore.Tests - All the NetGore tests. Tests are only written for the NetGore projects, not the DemoGame, since the DemoGame is... well... a demo game. Wink

Over time, I might join the projects even more. The idea is to have as few projects as possible without having the client or server referencing stuff it shouldn't. For example, having the server reference the graphics stuff would suck, as would having the client end up with requiring database components.

Edit: Let me say, it is almost definite that the next release will have MANY projects combined. For the most part, things will be moved into NetGore, and the ClientObjs/ServerObjs projects removed.

Posts: 15

I guess it's better to wait a little then until I start writting things up.
Nice to hear that it will all be put together!

I will take my time to learn the engine as it is now and write the global parts down on paper to understand how it works.