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
Faker1089
13
Years of Service
User Offline
Joined: 30th Aug 2009
Location: My own little world....
Posted: 5th Sep 2009 23:50
Is there any reason why we are using Dark Net instead of the built in DarkGDK multiplayer functions? Agreed, there are some things that DarkGDK can't do in that area, but I still might be able to pull something off. Pretty much from what I can tell, the only major difference is the fact that DarkGDK doesn't support >256 players and the lack of HTTP support (FTP is though). The reason why I ask, is because Dark Net is very difficult to set up with generality in mind.
Faker1089
13
Years of Service
User Offline
Joined: 30th Aug 2009
Location: My own little world....
Posted: 6th Sep 2009 00:50
Yet another problem has occurred. VC++ stopped recognizing my class, so I tried to place the network functions inside the S3GE namespace itself, and in net_plugin.h. It will not compile due to the fact that DarkGDK and Dark Net use incompatible winsocks. Any suggestions?
Michael P
16
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 6th Sep 2009 01:08
DarkGDK multiplayer functions are pretty bad; they perform poorly and are awkward to use. DarkNet performs much better and includes alot of extra functionality. See the website in my signiture for more information about DarkNet.

The problem you describe is due to microsoft not updating the windows header file. Include MikeNet.h before DarkGDK.h to solve the problem.

Faker1089
13
Years of Service
User Offline
Joined: 30th Aug 2009
Location: My own little world....
Posted: 6th Sep 2009 01:27 Edited at: 6th Sep 2009 01:30
I kinda figured that the DarkGDK built in functions were slow and I know that they are awkward. I know that the MikeNet.h has to come before DarkGDK.h, but that is very difficult to do with the setup that we have. If I were programming this for a specific game, it would be MUCH easier because really only MMO games have more than 16 players on at a time per server. I'll give writing a class a shot again and hope VC recognizes it.

The documentation is a little confusing to read for Dark Net, so it will take a while.
Matty H
14
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 6th Sep 2009 02:02
Hey guys, just a small problem, there are tons of header files for the PhysX SDK, before this project I had them in the following directories:


Now I have put them in the DarkGDK include folder but kept them in their seperate files as above.
e.g. DarkGDK\include\SDKs\NxCharacter\include

Before this project begun I used the VS tools menu to include all these folders but I dont really want to burden everyone with this task, on the other hand I dont want to put about 100 header files straight into the DarkGDK include folder, do I have any other options?

Thanks
sydbod
14
Years of Service
User Offline
Joined: 14th Jun 2008
Location: Just look at the picture
Posted: 6th Sep 2009 04:31
@ Faker1089,

The network capability within DarkGDK is "host/client" based.
This means that every player has to have direct access to the internt ip and matching port number. They can not sit behind a router unless they know how to do the correct port forwarding. Every player has symetrical transmit and receive requirements, as every player sends update information to every other player. This is bad for people that have an assymetrical internet connection.

With DarkNet one can configure the networking to function under "server-client / client" mode and only the "server-client" or "server" has to have direct access to the internet, or know how to do port forwarding. DarkNet will handle the client remapping automatically.

I am sure you will be just as pleasantly surprised as I was when you look a bit deeper into DarkNet.
Faker1089
13
Years of Service
User Offline
Joined: 30th Aug 2009
Location: My own little world....
Posted: 6th Sep 2009 04:50
I really like the features, but if you have to write a class with the idea that it has to be as general as possible, it is much more difficult than writing the code by hand in it's original form (as a library). I have API restrictions as well as when the project gets bigger, other parts of the program have to access it (different instances too).
TechLord
20
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 6th Sep 2009 11:03 Edited at: 6th Sep 2009 14:30
Quote: "Right i have finished the audio plugin , how about another task ,has anyone started the particles yet? .

I was gonna integrate magic particles but its not quite ready yet + you have to use their editor .

I will look into doing a system for myself and adding that in so any ideas are most welcome .

chunks"
Hi chunks chunks the first program I wrote was a particle system. I believe a particle engine could be used as the core rendering system for displaying every entity in the game world to include terrain tiles, etc. This premise was the motivation behind the Particle Accelerator.


Particle Accelerator Diagram 1 work in progress


I opened this Task on the Coordinator with anticipation of collaborating with someone on it. The links to Magic Particles are for reference only.

What I visualize in the Particle Accelerator is
1. Support for Animated Sprites, Animated 3D Mesh, Level Of Detail, Occlusion, Animated Textures, Shaders, Physics.
2. Modules to manage Fluids, Pyrotechnics, Weather Effects (ie: Rain, Snow, etc), Foilage, Lensflare, Decals, Meshes (Ammo), other.
3. Scripted Effects System
4. A full featured multi-user Editor
5. Online Gallery

I'm still working out some features for the scripting engine, and soon as I'm complete, I intended to start working on MAUI. None of this will prevent me from working with whoever takes on the Particle Accelerator.

Trapped inside the DGDK Open Source Project.
Michael P
16
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 6th Sep 2009 14:30
Quote: "I kinda figured that the DarkGDK built in functions were slow and I know that they are awkward. I know that the MikeNet.h has to come before DarkGDK.h, but that is very difficult to do with the setup that we have. If I were programming this for a specific game, it would be MUCH easier because really only MMO games have more than 16 players on at a time per server. I'll give writing a class a shot again and hope VC recognizes it."

Why is it difficult with the setup you have? I honestly think that DarkNet is easier to use than the DarkGDK multiplayer commands.

Quote: "I really like the features, but if you have to write a class with the idea that it has to be as general as possible, it is much more difficult than writing the code by hand in it's original form (as a library). I have API restrictions as well as when the project gets bigger, other parts of the program have to access it (different instances too)."

I think DarkNet should be fairly easy to integrate into a class. For example, the constructor could call mnStart whilst the destructor could call mnFinish.

Surely the entire project can have access to DarkNet simply by including MikeNet.h to each source file?

sydbod
14
Years of Service
User Offline
Joined: 14th Jun 2008
Location: Just look at the picture
Posted: 6th Sep 2009 15:41
@ Michael P,

I am stepping over my bounds here as I am not an active member of this group, just a very interested observer, but here are the problems that I suspect Faker1089 has come to realize.

Although he now has access to Dark Net, there is currently absolutely nothing he can do with it until some important decisions have been made about how this program is to be structured.

1)If everything is to be OO based, then the network code becomes a part of the objects of the actors, and thus the code gets integrated into the actor class. Therefore he can do nothing untill the game code is much further advanced.

2)If all the key attributes of the actors are not confined within their class structure, but are placed within global tables, then he has the opportunity to start doing some work, but that style of game structure has to be confirmed/determined by powers other than himself. He can use pointers to the tables to direct his networking code to the correct data areas.

3) Is the game to be single player and the network functionality is to be grafted on to it to provide multiplayer capability, or is the game to be multiplayer server based, and in single player mode the player is just running in "1 client" multiplayer mode ... like games like BF1942 etc. This likewise is also a major determining factor as to how the networking code will be structured.

I can totally understand what Faker1089 is going through. I can not see how he or any of the others can yet do any meaningful programming until the structure of the project is developed a bit further. This is still early days, and things do not move that fast.
chunks chunks
16
Years of Service
User Offline
Joined: 2nd Jan 2007
Location: ackworth uk
Posted: 6th Sep 2009 18:20
@techlord
I think a particle engine like that is a bit beyond me as a programmer , Im good at donkey work and wrapping stuff ,by the way i made another gdk plugin from the dbpro bitmap font tut in an old newsletter , so if you want me to add that in i can , works great in gdk .

chunks

nvidia geforce 9500gt + amd athlon 64
windows vista ultimate.
Faker1089
13
Years of Service
User Offline
Joined: 30th Aug 2009
Location: My own little world....
Posted: 6th Sep 2009 22:05 Edited at: 6th Sep 2009 22:05
@Michael P
The problem is not the fact that I am putting it into a class. The difficulty that I am having here, is that this is what techlord wants:
Quote: "Other Plug-ins may use this Plug-in for internet communications. To compensate for Network Lag, many strategies can be employed such as prediction. These strategies can directly effect input, timing, rendering, and other processes."


I pretty much have to implement a ton of networking features that Dark Net does not have. MMO games also use different server code, because while FPS/Racing/Shooters usually have 32 players tops (average is 12-16 that I've seen), MMOs have hundreds or even thousands of player on any given server at once. This means that yet another strategy for prediction must be used. Techlord wants to have the networking stuff as a part of the core engine, but I really can't do too much until more of the engine is completed and I know what gets sent and what doesn't.


@Sydbod
Your observation is correct. I think that we should be focusing on getting the actual game/rendering engine completed more before we start on the networking.


If you go here ( http://darkgdkosp.svn.sourceforge.net/viewvc/darkgdkosp/Projects/S3GE/S3GE/ ), you can take a look at the class that I have so far (network.cpp and network.h).
TechLord
20
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 7th Sep 2009 03:21
Quote: "I think a particle engine like that is a bit beyond me as a programmer , Im good at donkey work and wrapping stuff ,"

We could start with a simple system and expand on it. DGDK supports a majority of the features I 've proposed. We have a Scripting Engine at our disposal and matty halewood is working on physics. The only features that may require some special attention are Rendering optimizations such as Level of Detail. What do you have in mind for a simple Particle Engine?

Quote: "by the way i made another gdk plugin from the dbpro bitmap font tut in an old newsletter , so if you want me to add that in i can , works great in gdk ."
Go for it!!

@Faker1089, Micheal P, sydbod - For S3GE to live upto its claim, I would expect the engine to operate in the capacity of a Server|Host/Client. A Server usually supports a large number of clients and doesnt require UI and rendering, a Host is a Server that supports a small number of clients and requires UI and Rendering. Would developing a Host/Client with option to become a dedicated Server be feasible hybrid?

Quote: "I think that we should be focusing on getting the actual game/rendering engine completed more before we start on the networking."
At a basic level networking is just a means of sending data between computers. Integrating networking can be achieved without any knowledge of rendering and my vote is high for getting it in there now. Why am I so big on networking, because we can use it to download files into the engine. Its safe to assume that most (if not all) of engine's data and content will be stored in external files. These files can be stored on a remote server and doing so will give the engine significant abilities for collaboration at the lowest levels, just as you have seen using SVN.

It may be early, but, I believe we can establish a preliminary goal of simply transmitting and recieving files to/from a HTTP Server and integrate this into the main.cpp. In Client mode, it request files. In Server mode, the Engine can act as a HTTP server sends file request. I anticipate these modes will be selectable in the future via a GUI so we can hardcode a variable for now. For testing purposes, the file will be XML file containing some info for creating a cube and DarkLUA Script for rotating it. So when its all said and done the flow could go like this:

Client Mode
1. Launch S3GE.exe
2. Select network mode = client.
3. Select Server Address.
3. S3GE connects to hpquest.com grabs the cube.xml file.
4. Once the file is recieved, a cube should appear on the screen and rotate until the exe is terminated.

Server Mode
1. Launch S3GE.exe
2. Select network mode = server.
3. Client request cube.xml which sends file cube to clients.

Achieving this goal will accomplish the following:
1. Utilize Script, XML, Network Plugins.
2. Help identify means of using application layer protocols.
3. Help identify means for working with large file Tx/Rx
4. Help identify game server/client protocol and messaging

Once we complete this goal, we can move into the Game Server/Client protocol and messaging. This is where we would start to include rendering etc.

Trapped inside the DGDK Open Source Project.
Faker1089
13
Years of Service
User Offline
Joined: 30th Aug 2009
Location: My own little world....
Posted: 7th Sep 2009 04:15
Ok, I think I've got a bit of a better idea as to what to do for now. I was assuming that you wanted the entire network engine up and running before we did more. I will also try to get a dedicated server mode put in too. The only thing is I only have one maybe two (it's my grandparents) computers, so if anyone can test the code and give me feedback (as soon as the networking is more complete), I would appreciate it. There are 2 modes UDP and TCP, is there any which one you want me to use.
TechLord
20
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 7th Sep 2009 07:10 Edited at: 7th Sep 2009 07:26
Quote: "Ok, I think I've got a bit of a better idea as to what to do for now. I was assuming that you wanted the entire network engine up and running before we did more. I will also try to get a dedicated server mode put in too."
DarkNet is the Network Engine. All we need to do is 1) Start it; 2) Provide a means to Update connections grabbing the Rx data; 3) Stop connections when the engine is terminated. This will not be difficult to achieve with DarkNet. I'm familiar with some networking as I used IanM Matrix1Util #28 to provide networking for MAUI's Browser App.

Quote: "so if anyone can test the code and give me feedback (as soon as the networking is more complete), I would appreciate it. There are 2 modes UDP and TCP, is there any which one you want me to use."
I will assist with testing code. There's Script and XML coding that I will need to complete in conjunction with the network code for us to meet the first goal. TCP is usually used for connecting HTTP, FTP Servers and other file transfer services, while UDP is often used for game server/client messaging. We will use both but can start work using TCP.

Trapped inside the DGDK Open Source Project.
Michael P
16
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 7th Sep 2009 12:28 Edited at: 7th Sep 2009 12:30
@ Faker1089
You might want to look at source networking:
http://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking

Source games have the best networking I've seen.

@ TechLord
Quote: "All we need to do is 1) Start it; 2) Provide a means to Update connections grabbing the Rx data; 3) Stop connections when the engine is terminated. This will not be difficult to achieve with DarkNet. I'm familiar with some networking as I used IanM Matrix1Util #28 to provide networking for MAUI's Browser App."

This is very straightforward to achieve, in-fact the demo code provided a good foundation. Unfortunately networking gets more complicated than this. You have to worry about security and lag compensation.

There is a need for lag compensation if the game is fast paced. Imagine this FPS scenario: I shoot TechLord and on my screen my cross hair is aimed at his head. However, the server's world is slightly different to my own, I am 50ms in the past due to my latency. In this 50ms gap TechLord has moved out of the way and so my bullets miss on the server's view but hit on my own view.

I wouldn't worry too much about these issues right now but it is something that should be looked at once more progress has been made in other areas.

Quote: "TCP is usually used for connecting HTTP, FTP Servers and other file transfer services, while UDP is often used for game server/client messaging. We will use both but can start work using TCP."

It is important to recognize that UDP and TCP both have advantages and disadvantages. This is explained here: http://www.darknetworking.net/Protocol.html

The cube world demos show how UDP and TCP are used together to create a virtual world where players are represented by cubes.

Faker1089
13
Years of Service
User Offline
Joined: 30th Aug 2009
Location: My own little world....
Posted: 7th Sep 2009 21:42
I looked at the differences between UDP and TCP before I started, and I was thinking of just using UDP in UM_CATCH_ALL_NO mode. I will probably add a file transfer mode that is specifically for file transfer and nothing else (this would be in TCP).
TechLord
20
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 7th Sep 2009 23:07 Edited at: 7th Sep 2009 23:20
Hi chunks chunks,

I compiled and attempted to run S3GE.exe and I'm receiving the following error:
Quote: "This application has failed to start because irrKlang.dll was not found. RE-installing the application may fix this problem."


How can this be corrected?

Quote: "I looked at the differences between UDP and TCP before I started, and I was thinking of just using UDP in UM_CATCH_ALL_NO mode. I will probably add a file transfer mode that is specifically for file transfer and nothing else (this would be in TCP)."
I just had an idea : use TCP for file transfer S3GE Client <--> HTTP Web Server (ie www.HPQuest.com), use UDP for file transfer between S3GE Client <--> S3GE Server (HTTP). This way we get familiar with both protocols in DarkNet. Just an idea only, we will move forward with any decision you make.

Trapped inside the DGDK Open Source Project.
Faker1089
13
Years of Service
User Offline
Joined: 30th Aug 2009
Location: My own little world....
Posted: 7th Sep 2009 23:10
Copy the irrKlang.dll and ikpMP3.dll from DarkGDK\Media\dlls into the folder that S3GE.exe is in.
tomtetlaw
14
Years of Service
User Offline
Joined: 18th Jan 2009
Location:
Posted: 8th Sep 2009 01:14
I think we should use a different standard, i attached the file, it's the original standard but edited.

Attachments

Login to view attachments
Faker1089
13
Years of Service
User Offline
Joined: 30th Aug 2009
Location: My own little world....
Posted: 8th Sep 2009 05:53 Edited at: 8th Sep 2009 05:59
Techlord, do you run your commenting style through doxygen? I have 1.6.1 and what you do does not work.

I am having trouble getting #include <fstream> to be recognized in the project. It will compile with the file, but when I try to use any of the functionality my code does not recognize it. Being that someone uploaded the S3GE solution from visual studio and not visual studio express, I don't know if any changes were made in the settings and all the ones I checked were ok, but it still won't work.

Error Message:
c:\program files\the game creators\dark gdk\projects\s3ge\s3ge\network.cpp(129) : error C2065: 'ofstream' : undeclared identifier
TechLord
20
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 8th Sep 2009 10:25 Edited at: 8th Sep 2009 10:42
Quote: "I think we should use a different standard, i attached the file, it's the original standard but edited."


Hi tomtetlaw, I reviewed your recommendations. The command format is a hierarchical labeling convention inspired by poplular structured languages and OOP labeling using element selection by reference '.' and scope resolution '::' operators.


I considered using capitalization and underscores to provide distinction between Nouns and Verbs in the first Draft[0.0].


I elected to use all lowercase to simplfy typing (finding that hitting shift keys intrusive to my typing flow). Omitting Caps or separators could take a lil getting use to, but, once you do typing and recall are faster. We currently have 7 plugins that are implemented with current command format and I would prefer not to MODIFY casing for the command format to prevent complications.

I'm not familiar with the purpose of having a call to DECLARE_CLASS or DECLARE_CLASS_NOBASE in a class definition? Please explain. I don't see any issues with ADD'ing it to the spec.

Quote: "Techlord, do you run your commenting style through doxygen? I have 1.6.1 and what you do does not work."
I have yet to run it through. I had intentions of using it and referenced it in the specification with anticipation. Please advise what's needed to fix it and I'll update the S3GE API Spec and Source.

Quote: "I am having trouble getting #include <fstream> to be recognized in the project. It will compile with the file, but when I try to use any of the functionality my code does not recognize it."
I'm a novice to C++ but, looking at the examples on www.cplusplus.com you may have to also #include <iostream>.
Example:


Trapped inside the DGDK Open Source Project.
Faker1089
13
Years of Service
User Offline
Joined: 30th Aug 2009
Location: My own little world....
Posted: 8th Sep 2009 11:26
For the commenting style just look at the stuff in the XML, X360, or audio plugin, those all work.

I tried including iostream.h as well and it still doesn't work. I'll take another look through the settings again.
tomtetlaw
14
Years of Service
User Offline
Joined: 18th Jan 2009
Location:
Posted: 8th Sep 2009 11:29
Quote: "I'm not familiar with the purpose of having a call to DECLARE_CLASS or DECLARE_CLASS_NOBASE in a class definition? Please explain. I don't see any issues with ADD'ing it to the spec."




Could be used for outputting to the console or stuff

Michael P
16
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 8th Sep 2009 11:33 Edited at: 8th Sep 2009 11:34
Quote: "I looked at the differences between UDP and TCP before I started, and I was thinking of just using UDP in UM_CATCH_ALL_NO mode. I will probably add a file transfer mode that is specifically for file transfer and nothing else (this would be in TCP)."

That UDP mode is the most flexible so I recommend it

Quote: "I just had an idea : use TCP for file transfer S3GE Client <--> HTTP Web Server (ie www.HPQuest.com), use UDP for file transfer between S3GE Client <--> S3GE Server (HTTP). This way we get familiar with both protocols in DarkNet. Just an idea only, we will move forward with any decision you make."

You can't use UDP for file transfer purposes because packets are not guaranteed to arrive so parts of the file would be missing , TCP must be used.

chunks chunks
16
Years of Service
User Offline
Joined: 2nd Jan 2007
Location: ackworth uk
Posted: 8th Sep 2009 17:44
@techlord do as faker said , as the free version you have to use dlls with your exe , i added them on my version but didn`t add them in to sub version due to size but they are in the media/dlls folder if you need them , every free audio engine uses dlls just about its a shame cos its so annoying lol.


chunks

nvidia geforce 9500gt + amd athlon 64
windows vista ultimate.
Faker1089
13
Years of Service
User Offline
Joined: 30th Aug 2009
Location: My own little world....
Posted: 8th Sep 2009 21:02 Edited at: 9th Sep 2009 08:49
Quote: "I considered using capitalization and underscores to provide distinction between Nouns and Verbs in the first Draft[0.0]. I elected to use all lowercase to simplfy typing (finding that hitting shift keys intrusive to my typing flow)."


Have you used C# and DarkBASIC a lot because these are the naming conventions used for those. 99% of C/C++ engines use one of the following:

ENGINE_FunctionName();
engineFunctionName();
systemFunctionName();
functionName();

For those of us who have used Java and C/C++ these are the things that we default to when typing out code. It takes time to get used to, but it looks better and is easier to read when scanning for something.


Edit:
Alright got fstream to work. Being as smart as I am, I forgot to add "using namespace std;" at the top of the code. Now the problem is that I can connect to the server, but after that it can't find the file, and whenever I add the /DOSP/ at the end of the address, it either can't convert it, or it still doesn't work. I've uploaded the code to the SVN and it does not work, but maybe someone can help figure out what to do (also attached the files here).

Attachments

Login to view attachments
TechLord
20
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 9th Sep 2009 10:03 Edited at: 9th Sep 2009 10:21
Quote: "Alright got fstream to work. Being as smart as I am, I forgot to add "using namespace std;" at the top of the code. Now the problem is that I can connect to the server, but after that it can't find the file, and whenever I add the /DOSP/ at the end of the address, it either can't convert it, or it still doesn't work. I've uploaded the code to the SVN and it does not work, but maybe someone can help figure out what to do (also attached the files here)."

What file are you requesting?
I'm looking at your HTTP GET Header


My HTTP GET Header in MAUI (DBPro) look like this


RequestHostname$ = 'www.somewhere.com'
RequestPage$ = '/dir/subdir/page.htm'

Trapped inside the DGDK Open Source Project.
TechLord
20
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 9th Sep 2009 13:26 Edited at: 9th Sep 2009 13:27


Give a warm welcome to our latest Contributors: Oak, usuhuu_oxi, arvk, & Red Eye. Get Started here!!!

There are still several others who have not contacted me to add their names to SourceForge SVN. I strongly urge you to do so - Click me NOW! .

The S3GE is starting to look amazing. Still pondering over what you can contribute? Find 's here.

Trapped inside the DGDK Open Source Project.
chunks chunks
16
Years of Service
User Offline
Joined: 2nd Jan 2007
Location: ackworth uk
Posted: 9th Sep 2009 20:43
hi i just found a great wiimote lib , that could be used as a plugin in the engine does everyone think it would be good to add in ,if so let me know and i will start coding .

chunks

nvidia geforce 9500gt + amd athlon 64
windows vista ultimate.
Faker1089
13
Years of Service
User Offline
Joined: 30th Aug 2009
Location: My own little world....
Posted: 9th Sep 2009 20:59 Edited at: 9th Sep 2009 22:47
Quote: "My HTTP GET Header in MAUI (DBPro) look like this "

The thing is I have never used Dark Net before now, so I wasn't sure what to put in for the request string. What I was hoping was that Dark Net would automatically search the host for the file if I just gave the file name and the host (it didn't). Thank you I shall now modify the code.

Edit:
I looked at the hardware minimum requirements for the getting started, and I will be able to run any program that we write, except if it uses shaders. My laptop has a fixed graphics card, and it has no pixel shaders whatsoever (it's 3-4 years old).
Michael P
16
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 9th Sep 2009 22:23
DarkNet simply transfers and receives data without actually looking at the data. When using the HTTP compatible TCP mode a postfix is added to each send, and looked for in incoming packets. By default this is \r\n.

To clarify, if you send:
GET file.html

what is actually sent is:
GET file.html\r\n

Similarly if the server sends:
testing\r\nhello world\r\n

You will receive 2 packets containing:
testing
hello world

You can change the postfix using mnSetTCPPostfix.

Faker1089
13
Years of Service
User Offline
Joined: 30th Aug 2009
Location: My own little world....
Posted: 9th Sep 2009 23:02
Now there are 2 things that don't work. First I can't use a '+' to add the char with the file name or the address because it says that they are pointers, and second it still can access the server, but the file that I am trying to get is the S3GE_API.html file, and the program is not getting the file. The URL for it is http://www.hpquest.com/DOSP/S3GE_API.html. How would I get the command to look in the /DOSP/ area (that's the part I'm having difficulty with).
TechLord
20
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 10th Sep 2009 03:12 Edited at: 10th Sep 2009 03:21
Quote: "hi i just found a great wiimote lib, that could be used as a plugin in the engine does everyone think it would be good to add in ,if so let me know and i will start coding ."


I love wii. Wiimote, XBox360, and EyeToy controller compatibility in S3GE is setting the engine apart and raising the bar. So you know I,m voting yes. Will there be any conflicts with the XBox 360 Controller plugin? Just curious. Are there any licensing concerns?

When I start dev'ing MAUI/U-Plug I will be making provisions to use various input devices. The more input libs we include, the more versatile we make S3GE.

Faker1089

I would like to work with you on the networking. Can you provide the main.cpp you're using to do testing?

Trapped inside the DGDK Open Source Project.
Faker1089
13
Years of Service
User Offline
Joined: 30th Aug 2009
Location: My own little world....
Posted: 10th Sep 2009 04:55
Regarding the X360 plug-in, there is a license for the lib that I wrapped, so I have that included in the X360_plugin.h.

For the main.cpp, right now I have just been using the Main.cpp that is already with S3GE, but I add my commands in the START area. These are the commands that I have added between dbSyncRate(60) and S3GE::scriptstart():

Networking net;
net.fileget("S3GE_API.html", "www.hpquest.com", 80, 10);
dbPrint("Going to main loop");
Michael P
16
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 10th Sep 2009 12:36 Edited at: 10th Sep 2009 12:37
@ Faker1089
Quote: "First I can't use a '+' to add the char with the file name or the address because it says that they are pointers"


char* is a pointer to a character. You should learn about pointers and arrays here: http://www.cplusplus.com/doc/tutorial/.

To combine two C strings you should use strcat and strcpy.

chunks chunks
16
Years of Service
User Offline
Joined: 2nd Jan 2007
Location: ackworth uk
Posted: 10th Sep 2009 15:21 Edited at: 10th Sep 2009 15:23
There is a license for the wiimote lib ,you can use it non comercially & commercially as long as the license readme is added , thats it .

I looked around on the web and can`t find any problems in using a wiimote on a pc , the user has to have a bluetooth adapter to connect it , once its connected by BT you then just use a simple command to start it & i don`t think it will have any issues with the 360 one as long as they are not used at the same time.


although it uses the hid interface and might clash that way , if the 360 controller uses the same slot , it all depends how they are enumerated.

chunks

nvidia geforce 9500gt + amd athlon 64
windows vista ultimate.
Red Eye
14
Years of Service
User Offline
Joined: 15th Oct 2008
Location:
Posted: 10th Sep 2009 16:29 Edited at: 10th Sep 2009 16:29
NVM Sorry.


chunks chunks
16
Years of Service
User Offline
Joined: 2nd Jan 2007
Location: ackworth uk
Posted: 10th Sep 2009 18:47
@red eye I have just had a look on your site there is some nice work on there.

Does anyone have the old server 2003 driver dev kit or know where i could download it cos i can`t get the new one to work for the wiimote thingy and they have stopped the download for the old one .

chunks

nvidia geforce 9500gt + amd athlon 64
windows vista ultimate.
TechLord
20
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 10th Sep 2009 20:40
I searched hi & lo for a answer to the following question in the DGDK threads with no luck. Barnsk'i support thread for the LUA Plugin on DGDK forums is closed. I thought I ask you all first, before I dedicated a thread to the subject. The question is:

1. How to call registered DGDK commands from within the LUA scripts directly? For DBPro, Barnski's LUA plugin provides a convenient LUA Function Call like -->
. However, that's not working I also took a wild guess at using -->
. But thats a no go too. Any and all suggestions will be greatly appreciated.

Trapped inside the DGDK Open Source Project.
Red Eye
14
Years of Service
User Offline
Joined: 15th Oct 2008
Location:
Posted: 10th Sep 2009 21:12 Edited at: 10th Sep 2009 21:14
Quote: "@red eye I have just had a look on your site there is some nice work on there."


Thanks mate . Much apreciated. Though i havent updated lately, busy with things. I will when i find some time. Thanks buddy. And remember if you need anything, i can do freelance work, and i can do freebie requestes (limited). (Sorry for advertising.)

I will try and found out some things for this open source project. As i said very busy, i am looking forward to get my hands on, but i am afraid i wont. Lets wait...


Matty H
14
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 11th Sep 2009 00:03 Edited at: 11th Sep 2009 11:12
Hey people, I've just commited a load of physics stuff to the project.
You will probably need to do the following:

Quote: "Tools → Options... → Projects and Solutions → VC++ Directories
Under 'Show directories for:' select 'Include files'
Click new line icon and add the following path:

C Program FilesThe Game CreatorsDark GDKIncludePhysX_include"


Can someone update as soon as possible and see if everything still compiles, I have a terrible fear that I am going to destroy the whole project somehow lol, could you let me know of any problems so I can sort it before everyone updates.

Thanks.

EDIT:
You should not need to do anything now as Chunks Chunks sorted it for everyone.
chunks chunks
16
Years of Service
User Offline
Joined: 2nd Jan 2007
Location: ackworth uk
Posted: 11th Sep 2009 00:35 Edited at: 11th Sep 2009 00:54
didn`t work at first couldn`t find
Quote: "
c:program filesthe game creatorsdark gdkincludephysics.h(14) : fatal error C1083: Cannot open include file: 'NxPhysics.h': No such file or directory"


so i went into project-> s3ge properties -> c/c++ -> general ->additional include directories & added your physics include folder , i will submit it and it should stick and work for everybody.


EDIT:
Think its fixed now.

How do you initialize the physics so i can try it out in the main.cpp ?

Do you need to add the physics dlls to the debug folder or does it work without them?

chunks

nvidia geforce 9500gt + amd athlon 64
windows vista ultimate.
Mista Wilson
14
Years of Service
User Offline
Joined: 27th Aug 2008
Location: Brisbane, Australia
Posted: 11th Sep 2009 03:35
Quote: " How to call registered DGDK commands from within the LUA scripts directly?"


You will need to bind the functions of DarkGDK to LUA(or it might be better to bind a DarkGDK wrapper to LUA), as the DBPro plugin would be pulling the DBPro functions straight out of the DLL's to bind them, you cannot do that from within DarkGDK anymore, there are a bunch of security patches to the DLL's from DBPro 5.6(I think) onwards so that we cant pull their functions into C++ and use them from C++, we can only use them in the creation of DLL's that are called inside DBPro itself.

Here are some links for anybody that is working on porting the LUA plugin over :

(A debian site, but C++ code is relevant, just not the OS stuff)
http://www.debian-administration.org/articles/264

CodeProject - Integrating LUA into C++
http://www.codeproject.com/KB/cpp/luaincpp.aspx

LUA.org Template Class for Binding C++ and LUA :
http://www.lua.org/notes/ltn005.html

If it ain't broke.... DONT FIX IT !!!
Faker1089
13
Years of Service
User Offline
Joined: 30th Aug 2009
Location: My own little world....
Posted: 11th Sep 2009 07:00
Just a little off topic, but are there any plans to make this cross-platform once a stable S3GE has been reached?
TechLord
20
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 11th Sep 2009 07:33 Edited at: 11th Sep 2009 08:10
Quote: "Just a little off topic, but are there any plans to make this cross-platform once a stable S3GE has been reached?"
Nope. DGDK is based on DX9.

[EDIT]
Thanks for the links Mista Wilson. I assume you've attempted to use Barnski's Plugin. The plugin has a method of registering functions.
I only have to find the LUA command to call them from inside LUA Script. DBPro has one, so why not the C++ version?

I was avoiding integrating LUA directly at all cost to avoid delays in progress. Barnski's Plugin is very convenient and I'm a novice C++. I'm gonna try a few other avenues to use Barnski's LUA Plugin before I start down that rabbit hole (integrating LUA myself). Unless some guru magically appears and integrates LUA directly into project before I find a solution - hehe.

Trapped inside the DGDK Open Source Project.
Mista Wilson
14
Years of Service
User Offline
Joined: 27th Aug 2008
Location: Brisbane, Australia
Posted: 11th Sep 2009 08:57 Edited at: 11th Sep 2009 09:05
@Techlord - I did have a look at integrating LUA into my library for GDK but after looking at a number of things(including Barnski's plugin) I decided that for what I was going to be using it for it was just overkill.

I understand your reluctance to spend the time integrating a LUA wrapper directly, its not something I would enjoy doing myself lol..

In relation to the function registering, by the looks of the command you need to supply it with a function pointer(among other things), which is a pointer to a function that will be called when that function is called.
Function Pointers are a C++ things, I dont think that you can use them in DBPro so the way that those functions would be used in Barnksi's Plugin would be different from DBPro.
Have a readup on Function Pointer(you can find heaps of info from any google search on them) and you should be able to register your own functions into the LUA plugin.

Hope this helps, good luck.. S3GE is looking to shape up nicely at the moment

EDIT : Had a quick look at Barnski's GDK Forums thread, it says this in relation to registering GDK functions :

Quote: "If you want to use DGDK commands from within your scripts, you will have to manually register them within lua. But there is no such command yet.
"


Im not sure if that means that registering GDK commands to be called from inside LUA is outside the scope of the plugin , but perhaps that will save you some time experimenting with code.

If it ain't broke.... DONT FIX IT !!!
Matty H
14
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 11th Sep 2009 10:59 Edited at: 11th Sep 2009 11:08
Quote: "How do you initialize the physics so i can try it out in the main.cpp ?"


Thanks Chunks, I will write a small example soon of how to use the physics. This should get you started:

S3GE::physics myPhysics;
myPhysics.start();

Thanks again.
chunks chunks
16
Years of Service
User Offline
Joined: 2nd Jan 2007
Location: ackworth uk
Posted: 11th Sep 2009 11:15 Edited at: 11th Sep 2009 11:19
I think someone should write a lua wrapper for this project for 3 reasons , barnskis will only compile in debug and you can`t register gdks functions yet + you can add things in thats specific to this project ,unless you can get him onboard to update it or get the source .

If no one wants to do this i will have a go , just need to do some reading to see if its possible for me.

@matty
thanks mate will try it out when i get home later

nvidia geforce 9500gt + amd athlon 64
windows vista ultimate.
Faker1089
13
Years of Service
User Offline
Joined: 30th Aug 2009
Location: My own little world....
Posted: 11th Sep 2009 12:33
There is a problem compiling S3GE in release mode. It works ok in debug mode, but in release mode there are some errors with the physics stuff.

Login to post a reply

Server time is: 2023-02-06 20:45:52
Your offset time is: 2023-02-06 20:45:52