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 / Interrested in creating a virtual meeting place

Author
Message
chief Archon
16
Years of Service
User Offline
Joined: 24th Mar 2008
Location: UK. Outskirts of London,
Posted: 24th Mar 2008 21:24
Hi All

This is my first post here

im interrested in creating a virtual meeting place for a community of around 200 to 300 people; although it doesnt have to take that many at any one time.

I was wondering if anyone already had any kind of guidelines or tutorials on creating that sort of things or even any code snippets.

Id be very interrested to know if there are any project already on the go that have this sort of capability.

The big question mark is this... does dark GDK do stuff where people can link up over the internet?

I should be getting visual studio standard edition next week so that will be what platform im working on.

Thanks in advance for any help that you can give to me



Intel(R)core(TM)2 6600 @ 2.40GHz, ram 4.00 GB, 64 bit operating system
jason p sage
17
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 3rd Apr 2008 02:00
Ok - read your post about no one answering this, and I read it when you posted.

I personally didn't answer because this question is a rearranged version of the "I want to make a MMORPG" which in these forums - many (most) of us really get tired of - not because of the questions - but because they are often asked with out much pre-research.

Your question - like others in this same genre can usually be answered shortly with: YES DarkGDK, DBPRO, and EVEN DB CLASSIC can do the Job.

You should read about the WIP threads: Cash Curtis's RPG project, Port Royale, amonst others. Benjamin and Micheal P are others that have posted often about things like the internet/networking side of things - and Micheal has had success making multiplayer - as have others!

Graphics? You're Covered! Feel limited with DBPro and DBClassic? Use DarkGDK because you can "jump out" to DirectX in SOME ways to get that much more horse power!

Like Easier Syntax than C++ - then DarkBasic Pro is the likely contender - and MANY guys have made plugins to really leverage this powerful language as you can make DLL's and callthem in code and even directly add your own commands to it with these plug ins I mention.

You have more reading in this gigs and gigs of threads.

I'm not being cold, don't take offense. Your question is kind of hard to answer because of its breadth.

Again - Is DarkGDK a Good Choice? I THINK SO! But so could Irrlicht, and other engines.

I like DarkGDK because I like the flow of TGC API's and the forums. Stick around - we want to help - give it a good try! It's not a turn key system - but its a POWERFUL tool!

Fire it up - get vs2008 - and Have a BLAST!

chief Archon
16
Years of Service
User Offline
Joined: 24th Mar 2008
Location: UK. Outskirts of London,
Posted: 3rd Apr 2008 15:40
Thanks for replying jason.

The application is intended to take our real life venue (a live roleplay event) and transfer it to an online scenario. This is needed because many of us now live all over the country and some even in other countries.

It's never going to be masively anything. It may have as many as 50 people on it at any one time.

It is essential that It can be able to transfer peoples vioces. It will consist of about 7 rooms and a main hall all having views outside to the landscape. There will need to be moving figures etc.

Combat is irrelivent as there will be no combat in the program.

It will need to be able to do dice but thats not hard to program.

I suppose that when you think about it, rather than being an MMO its more of an MMOMH (mini-multiplayer-online-meeting-hall).

Intel(R)core(TM)2 6600 @ 2.40GHz, ram 4.00 GB, 64 bit operating system
Michael P
18
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 3rd Apr 2008 18:54
For networking, you could try using multisync as a starting point because it is very easy to use:
http://forum.thegamecreators.com/?m=forum_view&t=120129&b=22

Before you do anything, you should plan as much as you can. If you can't work out how to do something on paper, don't start your project until you've figured it out because you will end up wasting a lot of time.

I find that programming is mainly about problem solving, so when theres a problem I try to think about it all the time and eventually the solution pops out.

There may also be many times where you think about giving up. Never listen to that little voice telling you that it's impossible because whatever it is, you will be able to do it

Lastly, you should comment your code out as much as you can because as it grows you will find yourself forgetting what each bit does. Many times I have deleted bits thinking it isn't necessary and then remembering why I put it there due to poor commenting.
chief Archon
16
Years of Service
User Offline
Joined: 24th Mar 2008
Location: UK. Outskirts of London,
Posted: 3rd Apr 2008 22:39
Thanks for the encouragement Michael

Yes I intend to use uml and stuff to plan the program before I start coding for it. im pretty meticulous like that.

once again, thanks for the encouragement and advice.

Intel(R)core(TM)2 6600 @ 2.40GHz, ram 4.00 GB, 64 bit operating system
jason p sage
17
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 4th Apr 2008 03:45
I agree with Michael's suggestions whole heartedly.

Your vision involves a few different technologies that don't ALL fall into the DarkGDK/DarkBasic strengths.

This area is the networking. Natively it's not powerful in this regard nor was it ever (to my knowledge) ever meant to be. The networking side of things needs to be considered carefully - so that you can squeeze the most performance possible out of your networking code ... because even 50 people is kind of a lot of "clients" and needs to be planned carefully.

The good news is that everything else you need seems to be more than adequately covered with DarkGDK and DBPro. graphics... sound... dice? Sure.

Now the challenging part of anyy "M"ultiplayer anything is making the two main sub-systems you describe (communications and graphics) meld!

Go for it... its going to take awhile... but go for it.

chief Archon
16
Years of Service
User Offline
Joined: 24th Mar 2008
Location: UK. Outskirts of London,
Posted: 4th Apr 2008 10:32
thanks jason

you've given me some things to think about.

I undstand now that on the networking side I may have issues as far as the DKDGK API is concerned?

I must ask I suppose:

Do you think that DKGDK is the best engine for me to use for the above task. If not...

My needs in an engine are as follows:

1. all of the above as explained previously
2. abble to handle up to 50 clients fairly cumfortably
3. must use C++
4. must let me set up my own server
5. must initially be no more than £200 / $400
6. option to sell comercially should I ever wish to.
7. must have a reasonably good editor
8. must not tie me into using their companies server
9. must not force me to sell my application(s) through them should I ever wish to sell.
10. must have good documentation and examples of creating various types of application using thir api, otherwise must have a reasonable book on the engine.

Intel(R)core(TM)2 6600 @ 2.40GHz, ram 4.00 GB, 64 bit operating system
chief Archon
16
Years of Service
User Offline
Joined: 24th Mar 2008
Location: UK. Outskirts of London,
Posted: 4th Apr 2008 11:29
I was just thinking

I used the word "network" when I should have used the term internet so its an internet protocol im needing rather than an network. I hope that that was clear.

Thanks

Intel(R)core(TM)2 6600 @ 2.40GHz, ram 4.00 GB, 64 bit operating system
Michael P
18
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 4th Apr 2008 11:37 Edited at: 4th Apr 2008 11:44
Quote: "2. abble to handle up to 50 clients fairly cumfortably"

This is definately posssible, but not using the DGDK multiplayer commands. Fortunately, you can use plugins and any CPP commands, so you aren't limited to DGDK. Multisync which I mentioned earlier may be enough, but if you really want an efficiently networked game you should think about winsock. This is unfortunately much harder to use than multisync. If I were you I'd start with multisync and then move on to winsock if your networking needs aren't met.

Note that you can use multisync or winsock at the same time as DGDK.

Quote: "3. must use C++"

Yes.

Quote: "4. must let me set up my own server"

Yes. For the server, try to avoid using any DGDK commands because it will mean that your server will cost more and be harder to setup. Don't worry too much if you can't avoid it though.

Quote: "5. must initially be no more than £200 / $400"

DGDK is free but if you go commercial I think thats about £100 (not too sure though). Multisync and winsock are totally free so far as I know.

Quote: "6. option to sell comercially should I ever wish to."

If you buy the commercial version of DGDK then you can legally do this. Don't waste your money buying the commercial version right away, wait until you have a finished game.

Quote: "7. must have a reasonably good editor"

Microsoft Visual C++ isn't bad at all.

Quote: "8. must not tie me into using their companies server"

Doesn't tie you into using their companies server.

Quote: "9. must not force me to sell my application(s) through them should I ever wish to sell."

Doesn't force you to sell your application through them.

Quote: "10. must have good documentation and examples of creating various types of application using thir api, otherwise must have a reasonable book on the engine."

DGDK does have some rather brief documentation, but it really isn't very hard to use. Multisync is very well documented with examples as well although I think the documentation is in DBP language, but as you look through it you can get a pretty good idea of what to do. Use http://www.cplusplus.com/doc/tutorial/ to get started with CPP.

[edit] Forgot these bits:
Quote: "I undstand now that on the networking side I may have issues as far as the DKDGK API is concerned?"

Quote: "Do you think that DKGDK is the best engine for me to use for the above task. If not..."

I don't have any experience with other engines but in my opinion it should do just fine. The only thing really in DGDK that doesn't work very well at all are the multiplayer commands; most other things are great. So, use all the other parts of DGDK and use another library such as winsock or multisync for your multilayer to make up for this.
jason p sage
17
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 4th Apr 2008 14:29
@Chief Archon - Michael - has outlined things very nicely. I think DarkGDK would do what you need. Plus - in addition to tutorials - if you haven't noticed - this is the best forum I know of where people are into the same stuff and people help each other out rather readily!

The only thing I would make comment on - the geek that I am - is I have always thought of a NETWORK and the INTERNET as identical with maybe the only differences being the "filter" that firewall and/or Router function as. Some may disagree - but gernerally speaking - they have the same communication protocol.

Good Luck.

chief Archon
16
Years of Service
User Offline
Joined: 24th Mar 2008
Location: UK. Outskirts of London,
Posted: 4th Apr 2008 16:24
Wow thanks so much for your good advice guys.

you both deserve big hugs and gold stars

@michael
i really thank you for pointing me to cplusplus and I will also look into winsoc.

@Jason
I too tend to think of them as the same thing but to be honest its been a while since I did any internet stuff and that was only the obligatory "now students, make a chat server" when I was at uni.


Wow such a lot to get my head aroung

Intel(R)core(TM)2 6600 @ 2.40GHz, ram 4.00 GB, 64 bit operating system
chief Archon
16
Years of Service
User Offline
Joined: 24th Mar 2008
Location: UK. Outskirts of London,
Posted: 6th Apr 2008 16:56
I thought I'd write out a vision including some mid and longterm goals.

I would be grateful to know where the potholes might be if I chose to use dark GDK or GDK.net thanks. In either case it would of course be programmed in C++ as opposed to any other language.

I feel that jason and micheal have been very helpful with pointing out the potholes and options that may arise regarding the short-term goals Im now looking for guidance with the long to midterm goals.

Again, thanks in advance for any help and advice that you can give to me.

Vision:
A virtual Club house having 7 rooms and a great central hall, with many of the rooms looking out onto an appealing landscape that itself is not accessible to characters. The system can hold a maximum of 50 clients at any given time. The system will employ a client-server model with clients logging on via the internet. Once logged in a client will select a Persistent "character" that will be specific to their account, although a single client account may hold more than one optional character. The system will not need to portray combat but will need to portray dice rolling. Clients will be able to hear the conversation of other clients within the virtual world who are in a specified virtual-vicinity.

Short Term Goals:
1) a 3d environment consisting of 7 rooms and a large meeting hall.
2) Windows that look out onto a landscape.
3) Player’s voices are transmitted to other players within range.
4) Players are represented as 3D characters.
5) The Application can hold up to as many as 50 clients comfortably.
6) Conflict resolution is resolved by rolling dice.
7) Clients will log in over the internet (client-server model).

Midterm goals include:
8) Whiteboards that clients can write and draw on that others can see.
9) Message boards where characters can click on a space and leave messages.
10) Every client can show their character-statistics to a referee for those statistics to be updated, by the referee. All character Statistics would probably be stored on a database.
11) The ability to cause certain actors to become invisible.
12) The ability to have rooms that can only be entered by certain types of avatar and to have other types of avatar able to set those permissions. Effectively this is a specific kind of room locking. This may need to be a flag system that is part of every character.
13) the ability to give certain characters greater abilities but to also make it possible to have those abilities removable. Probably part of the same flag system as in ‘12’.

Very long term goals include:
14) The ability to have boards that can play movies
15) The ability for a client to temporarily show a given document that is on their computer to another client, and to be able to give that other client permission to alter that document whilst it is being shown.

What the application will not need:
The application will not need to portray combat.

Intel(R)core(TM)2 6600 @ 2.40GHz, ram 4.00 GB, 64 bit operating system
jason p sage
17
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 6th Apr 2008 20:57
Thanx for the Kind Words, and I'm sure Michael P will notice your kind mention.

Everything you posted makes sense and only one thing worries me sir.

Quote: "Clients will be able to hear the conversation of other clients within the virtual world who are in a specified virtual-vicinity."


NOW - DarkGDK does have 3d sound but DOES NOT have streaming. I've heard (and it makes sense) that making you're sound system (3d sound etc) is not all that hard and consists of writing a "system" to control volume in left or right ear depending on play vicinity and distance etc.

I would consider MAYBE using an existing communication system that may exist (might not though) for voice over IP with the ability to conference and "manage" volumns of different people etc to get the "conversation proximity" volume (virtual world) behavior you describe you are after.

I KNOW there is a free opensource gameengine called Irrlicht, that in it of itself is probably hard to use than DarkGDK on most levels however woth mention is that this Irrlicht system doesnot come with its own sound support BUT there is a add on module (that I read can be standalone - hence why I mention it) for windows. Now, I saw some of it "up-close" and one thing I noticed right off is it allows "Streaming from a file" from MP3 for example. This means rather than trying to load the WHOLE MP3 file, it loads enough info into a buffer to continue to play the music, and discards the music already played from memory.

I can't say with any certainty about the possibility of MICROPHONE support and/or streaming multiple people somehow - but this is one tool to at least research.

Others are the Voice over IP "game Speak" type systems where people can at least all plug in to their own conversation. Perhaps this would be a easy way to get started, where certain rooms have their own GameSpeak "Room" online, with a sighn (or somehow managed via code) that people could join or are automatically joined to (if programmatic control is alloweD).

These are just thoughts - that I hope are useful.

chief Archon
16
Years of Service
User Offline
Joined: 24th Mar 2008
Location: UK. Outskirts of London,
Posted: 7th Apr 2008 10:27 Edited at: 7th Apr 2008 10:29
Hi Jason

It's miss or even madam but not sir

The sound system does not need to worry about left-ear right-ear stuff or anything. It's more of an - if you are in a certain proximity to another character then you can hear then.

I do need a method that will let players speak through their mikes and have it heard by other players.

do you reckon that this is doable ?

Intel(R)core(TM)2 6600 @ 2.40GHz, ram 4.00 GB, 64 bit operating system
jason p sage
17
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 7th Apr 2008 14:12
(Sorry - so many guys on here have female avatars - kinda strange now when I think of THAT LOL... Sorry about that ... )

I DEFINATELY think what you want to do is possible, but I'm thinking you might need to go out of DarkGDK to pull it off because DarkGDK doesn't do any streaming AFAIK.

you'll still be able to do things in DarkGDK, you just might need either an exteranl program or an API you can control programmatically from within your DarkGDK program.

Login to post a reply

Server time is: 2024-09-29 17:29:44
Your offset time is: 2024-09-29 17:29:44