• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

[Miscellanous / Other] SharpCraft Multiplayer Demo (Increase Player Limit)

Status
Not open for further replies.
Server is temporarily down as of 6/12/2015

Note: Server is already running, you just need to run the map. (Server code will be released later)

I'm working on a project which requires me to code how the game handles multiplayer.

Because of this I'm creating a demo which will allow me to test things and possibly show others how to create their own SharpCraft multiplayer map.

This demo will allow you to join or leave the game whenever you choose, chat with others in the map, and issue basic orders to your unit.

Feel free to try it out and let me know how it goes :thumbs_up:
 

Attachments

  • Multiplayer Demo.zip
    885 KB · Views: 86
Last edited:
Update
  • Enemy acquire target synced with server
  • Hero respawn

Hey, I want to try this. Is there a list of things which are still missing and have to be synchronized?

Everything unless otherwise mentioned.

How can I start Warcraft III multiple times on one computer to test this? And please add some map changing functionality. That would be really awesome!

I think that functionality broke with the 1.27 patch.
 
Level 25
Joined
Feb 2, 2006
Messages
1,689
Keep on doing this awesome work! Shouldn't the map change work automatically as long as the new map has the same triggers and reconnects in the beginning?

The synchronization is also done via a timer event? Does this cause any problems with minimal delays of actions? And another question I have is: Can you prevent cheating? If someone cheats and it cannot be detected by the map, do the cheats work since only damage events/level up events are synchronized.
 
Keep on doing this awesome work! Shouldn't the map change work automatically as long as the new map has the same triggers and reconnects in the beginning?

Yes but players playing 2 different maps can obviously cause problems. Will need to actually implement map switching.

The synchronization is also done via a timer event? Does this cause any problems with minimal delays of actions? And another question I have is: Can you prevent cheating? If someone cheats and it cannot be detected by the map, do the cheats work since only damage events/level up events are synchronized.

The natives need to run in the JASS VM and that's the only way I know how to do it.

Preventing cheating is possible but will take a lot of work and is map-specific.
 
Level 25
Joined
Feb 2, 2006
Messages
1,689
Why should it cause problems? I thought they have to start the map from the beginning separately as well.

edit:
Without the multiple start functionality I do have to use two computers? Or a virtual machine? That does really suck.

edit2:
Do you have the source code and some documentation of the natives somewhere?
Are they part of SharpCraft itself or did you develop them?
JASS:
native NetworkConnect takes string host, integer port returns nothing
native NetworkListen takes nothing returns nothing
native NetworkSyncOrder takes integer orderId returns nothing
native NetworkSyncPointOrder takes integer orderId, real x, real y returns nothing
native NetworkSyncTargetOrder takes integer orderId, unit u, unit target returns nothing
native NetworkSyncChatMessage takes string message returns nothing
native NetworkSyncDamage takes unit u, integer t, real damage returns nothing
native NetworkSyncEnemyDamage takes unit u, unit target, integer t, real damage returns nothing
native NetworkSyncEnemyTarget takes unit enemy, unit target returns nothing
native GetNetworkPing takes nothing returns real
native GetNetworkTime takes nothing returns real
native GetNetworkStatus takes nothing returns string
native GetNetworkLocalAddress takes nothing returns string
I am really interested in this map and SharpCraft since it would allow logging in into a game when it is already running allowing you to run permanent servers and map changes. This is just awesome.
 
Why should it cause problems? I thought they have to start the map from the beginning separately as well.

Because I have no code to support that feature so obviously when someone loads 2 different maps it can cause bugs with different object data, coordinates, ect...

Without the multiple start functionality I do have to use two computers? Or a virtual machine? That does really suck.

Yes. I'm not sure sharpcraft even worked with the multiple instance feature (otherwise I think you could just use a 1.26 sharpcraft)

Do you have the source code and some documentation of the natives somewhere?
Are they part of SharpCraft itself or did you develop them?

I will release the source code once it's ready. The code was basically just thrown together to get a working concept going.

You can decompile the NetworkPlugin.dll (included in the map) fairly easily but you still would need the server code.

The server code is pretty easy to replicate if you can see how the packets are sent/received with the code from networkplugin.dll

Another user on this forum has his server code public on GitHub (which allows account creation).
 
Level 14
Joined
Jul 1, 2008
Messages
1,314
This is absolutely amazing! I had to read through a lot of posts to get an idea, what this is about though. Thats why I think it would help a lot, if at least you posted a "how to install" and maybe link that introductionary post about sharpcraft by mindworx, so that more people can understand, what this is about.
 
This is absolutely amazing! I had to read through a lot of posts to get an idea, what this is about though. Thats why I think it would help a lot, if at least you posted a "how to install" and maybe link that introductionary post about sharpcraft by mindworx, so that more people can understand, what this is about.

I've been planning on making some tutorials :thumbs_up:
 
Level 6
Joined
Feb 5, 2012
Messages
1,685
This should had been released during the time when there tons of warcraft players around. Well great project but with small amount of players even just finding 2 human players is hard.

But keep working on it dont get discourage! I am excited to see a map that use this.

Will this be added in JNGP?
 
Status
Not open for further replies.
Top