Jump to content

Leadwerks3D networking? What there is currently? What's planned for the future?


 Share

Recommended Posts

Pardon me if this has been discussed in other thread. I tried search but found no thread, so thought to post one. I have faint recollection that Josh did mention he wants to improve this, but not certain.

 

In Leadwerks3D, what kind of possibilities there are for networking? I know Josh has made Netwerks (never got hang on it though) system that can even be used with bmax in LE2.

 

Now, what about Leadwerks3D?

 

Will there be some sort of networking in the launch time? Should we use something external system (own enet or raknet or something). In case of using something external such as Raknet, is there going to some sort of wrapper that would tie Raknet functions easy to plug in?

 

This is not a feature request. I'm just interested to hear bit more details on what's been planned.

 

Also, please keep separate "currently there are" and "also these have been planned" in the answers :(

Intel Dual Core 3GHz / GeForce GTS 450 - 1024 MB / Driver ver 267.59 / 8 GB RAM / Win 7 - 64 bit / LE2.50 / BMAX 1.48

game producer blog - Dead Wake Zombie Game powered by Leadwerks Engine

Twitter - Unfollow me

Link to comment
Share on other sites

I started writing yesterday a simple wrapper for WinSock. Today I will make final overseas tests to see if I should use IPv4 or IPv6, or both, depending which is faster. Of course IPv6 support is a nice bonus, but it should not make things slower, so I might need to include native IPv4 code as option too.

  • Upvote 1

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

I can make a wrapper for bmax too, it's still coded in C/C++, but BlitzMax can link arch files from C/C++.

So it's not much additional work for me once I have the original C++ wrappers ready.

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

Amazing, it works!

I found out a new way to make super fast C/C++ libraries for BlitzMax.

You just create a static library in C++, and then you can use the arch file directly in BlitzMax:

SuperStrict
Module Siipi.Fastnet
Import "libfastnet.a"
Extern
Function FastnetPrint:Int()
EndExtern
Type Fastnet
Method Info:Int()
	FastnetPrint
EndMethod
EndType

This has the benefit, that you don't need to write horrible dll wrappers, which don't support typedefs and other fancy C++ stuff, and your BlitzMax game is just one single exe, with no ugly dlls hanging around.

 

Then your actual game uses Fastnet like this:

SuperStrict
Import Siipi.Fastnet
Global net:Fastnet=New Fastnet
net.Info

 

Leadwerks3D can be used the same way directly in BlitzMax, without needing to use an engine.dll.

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

The plan in Leadwerks3D is to build networking into the engine so you only have to expose an entity to the network, and it automatically gets updated and handled. This way physics can be synced over the network without you doing any extra code. I'm saving this for some time after the initial beta release, since it's not critical for most games, but it will be much more supportive than the basic network commands in LE2. I've already prototyped a system like this and it's easy to code multiplayer games with.

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

I hope the internal networking can be turned off though, because we want to use also other networking libs, and other physics libs. Or I can recompile it without the HAVE_LE3_NETWORK define smile.png

 

Actually I was thinking, there should be a Leadwerks3D full feature version, and a Leadwerks3D core version, which has only the renderer. Technically it's the same source code, but the full version is compiled with all those standard HAVE_FEATURE defines.

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

Josh, that sounds better than I could imagine. Naturally there are different type of games, so will be interesting to see what you can are cooking.

 

@LumoojaMetatron: heh, you sure have energy ^^ - when will you show us a demo wink.png

 

EDIT: Eh... I mean Metatron, I honestly didn't even realize typing that. Somehow the previous nick got stuck on my mind...

Intel Dual Core 3GHz / GeForce GTS 450 - 1024 MB / Driver ver 267.59 / 8 GB RAM / Win 7 - 64 bit / LE2.50 / BMAX 1.48

game producer blog - Dead Wake Zombie Game powered by Leadwerks Engine

Twitter - Unfollow me

Link to comment
Share on other sites

Well, the problem is I have too much energy, so I start to make tons of ideas, but never finish anything :)

But Fastnet is so simple and fast, so I really focus on this now.

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

I think it would be nice to have also a free alternative to RakNet. The best tools come as a free and commercial version, not only as commercial. Only as free works though, like cURL.

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

@Flexman: Is the raknet wrapper this one: http://repeatuntil.o...knet/index.html ?

 

I got error:

 

►►►ERRORjimon.raknet was not built

Build Error: failed to compile C:/Program Files (x86)/BlitzMax/mod/jimon.mod/raknet.mod/Source/AsynchronousFileIO.cpp

 

EDIT: wrapper version (win only) seems to work just fine. (3.82)

Intel Dual Core 3GHz / GeForce GTS 450 - 1024 MB / Driver ver 267.59 / 8 GB RAM / Win 7 - 64 bit / LE2.50 / BMAX 1.48

game producer blog - Dead Wake Zombie Game powered by Leadwerks Engine

Twitter - Unfollow me

Link to comment
Share on other sites

Damn, I was silently doing one of those too. I thought you were doing SDL_net?

 

For reference though, I was only considering IPv4.

I know you were doing that.

Haha, like in our Debian chat, I think we are switching poles (well, the earth is switching poles also) smile.png

I tried sdl_net again, and was horrified that it actually needed sdl! And then sdl needed directx, wtf?

SDL is ****. FreeGLUT is good, WinSock is good. I tested today USA to FI network speeds with WinSock, and like Rick said, indeed UDP is a bit faster, but very little. We are talking about 125s TCP vs 121s UDP, and knowing that TCP is reliable, it kinda is faster than UDP. I still haven't managed to get WinSock 2.2 (=IPv6/IPv4) faster than WinSock 1.2 (=IPv4 only), so I might just use WinSock 1.2 to get the worlds fastest networking library. I love speed, nothing else, it can be ugly as hell, as long it's the fastest and most reliable.

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

to derail this topic & your side topic even more: I don't care what's fastest or most reliable... I want easiest to use! (and reliable enough for playing games) ^^

Intel Dual Core 3GHz / GeForce GTS 450 - 1024 MB / Driver ver 267.59 / 8 GB RAM / Win 7 - 64 bit / LE2.50 / BMAX 1.48

game producer blog - Dead Wake Zombie Game powered by Leadwerks Engine

Twitter - Unfollow me

Link to comment
Share on other sites

Easyness is also one of my main paradigms. Easyness + Speed + Small Size = Elegance. The classical definiton of Elegance is Effectiveness + Simplicity, which describes the same in a general context. Actually the classical definition describes it better, because effectiviness contains speed smile.png

 

Damn, so can I say, I am so extreme in my opinions only because I aim for elegance?

Is that it?

That would explain why I like Linux over Windows also, it's all just because of elegance.

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

I tried sdl_net again, and was horrified that it actually needed sdl! And then sdl needed directx, wtf?

 

Really, I can't find any mention of Direct X in SDL, but there's plenty to do with Open GL...

 

I can't see SDL achieving its cross platform goals if it relies on Windows proprietary graphics APIs.

LE Version: 2.50 (Eventually)

Link to comment
Share on other sites

Try to compile sdl_net from source, then you will see what I mean. SDL does not need directx, it just offers it as an option, which is quite stupid imo, because opengl wins directx in every aspect. Maybe I shouldn't use Windows, because library sources are so much harder to compile than on Linux (especially when everyone is using VS2008, which compiles and creates much slower exes than MinGW using the -O6 super optimization (it's not mentioned anywhere, but try it, if you don't believe me, it creates faster code than -O3)).

 

It was kinda a shock to me to hear that Google Chrome actually uses DirectX9 to render WebGL, and the reason for that is the same as why Crysis uses DirectX: they were not informed that Josh caused ATI to fix the OpenGL drivers.

 

Now even Carmack thinks that DirectX has some future, but this time he is wrong.

I think Joshua will soon replace John Carmack as the buddha of 3D technologies smile.png

When Leadwerks3D comes out, a lot of technologies will suddenly be obsolete, because they just don't do it as elegantly.

 

There is no excuse not to do things elegantly.

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

Really, I can't find any mention of Direct X in SDL, but there's plenty to do with Open GL...

 

I can't see SDL achieving its cross platform goals if it relies on Windows proprietary graphics APIs.

 

SDL under windows uses DirectDraw for all of it's rendering by default. To give you an idea of how this works: SDL is a wraper for DirectDraw and DirectDraw is a wrapper for GDI. It's pretty horrible. Meta is unfortunately right in this case, SDL_net does rely on SDL. Under windows that does include a dependancy on DirectX being installed.

 

*EDIT: Just to be clear, he's right strictly about the DirectX dependency. The rest of it is all standard Lumooja nonsense.

There are three types of people in this world. People who make things happen. People who watch things happen. People who ask, "What happened?"

Let's make things happen.

Link to comment
Share on other sites

*EDIT: ... The rest of it is all standard Lumooja nonsense.

 

I don't understand... you mean he's not accurate, uh I mean he's not informative or ah gee wiz I so dumb founded that I just can't formulate a coherrent thought to save my life. Is this how some people above came to this new level of consciousness!blink.png

Mobo G1.ASSASSIN2- GTX 580 4GB - 16 GB RAM - i7 3930 3.2 Giggles - Win 7 PRO

Link to comment
Share on other sites

I don't recall DD being a wrapper for GDI. This was a long time ago when I was looking into DD but from what I remember DD takes advantage of hardware acceleration if available (which I would assume it mostly is these days) and if not available it falls back to the software drivers which can be calling GDI for some cases but not all.

 

If DD was just a wrapper around GDI I'd rather use GDI because anything DirectX is a nightmare to work with. MS goes huge structures passing by pointer crazy with all things DirectX. But everyone was/is using DD to take advantage of hardware acceleration.

Link to comment
Share on other sites

I'm saving this for some time after the initial beta release, since it's not critical for most games, but it will be much more supportive than the basic network commands in LE2.

 

I would like to point out that most of the largest games are primarily multiplayer.

Link to comment
Share on other sites

I don't recall DD being a wrapper for GDI. This was a long time ago when I was looking into DD but from what I remember DD takes advantage of hardware acceleration if available (which I would assume it mostly is these days) and if not available it falls back to the software drivers which can be calling GDI for some cases but not all.

 

If DD was just a wrapper around GDI I'd rather use GDI because anything DirectX is a nightmare to work with. MS goes huge structures passing by pointer crazy with all things DirectX. But everyone was/is using DD to take advantage of hardware acceleration.

 

Ok, I'm partly mistaken here. DirectDraw (as in for DirectX 7, not higher) uses GDI by default unless a supported video card is found. At the time it was written as a completely seperate library (at a time where the 3DFX Voodoo cards were the most common around, most of which didn't support DirectX).

Later versions of DirectX rewrote DirectDraw as a wrapper around Direct3D. The latest SDK doesn't include DirectDraw at all.

 

Also, trust me, use DirectX over GDI. DirectX really isn't so bad. It's pretty normal as far as most API's go. (GDI is far worse in regaurds to what you complain about).

 

I don't understand... you mean he's not accurate, uh I mean he's not informative or ah gee wiz I so dumb founded that I just can't formulate a coherrent thought to save my life. Is this how some people above came to this new level of consciousness!blink.png

:) I just wanted to make it clear that I didn't agree with him beyond the one statement. =P

There are three types of people in this world. People who make things happen. People who watch things happen. People who ask, "What happened?"

Let's make things happen.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...