[Role Playing Game] Warcraft 3 MMO - Persistent Gameplay

Status
Not open for further replies.
Warcraft 3 MMORPG
Alpha Version

Download here

How to Play
  1. Download and extract launcher.zip and run the executable.
  2. From there you may create an account and login while the launcher automatically downloads the necessary files.
  3. When you click "Play", Warcraft III should start loading a map.
Information

The goal is to create a persistent game world with the potential for hundreds of simultaneous players who can join or leave at any time, all inside of Warcraft III's engine.

There is no title yet, so for now it will be generically named "Warcraft 3 MMO".

Features

These are currently implemented.
  • Increased player count
  • Switch maps while online
  • Synchronized combat and AI
  • Cross-map chat system
Most of the game logic is being handled on the server. This means things like combat and pathfinding aren't done on the game client. The server is authoritative and decides what is valid or not.

Screenshots

launcher.pnglogin.pnggame.png

Videos


 

Attachments

  • launcher.zip
    3.7 MB · Views: 830
Last edited:
I have updated the main post with Server Status & Online Players links.

okay so I just tried this, and when I press "start game" it loads for a bit then kicks me back to the title screen

wot do

Have you tried running as administrator?

Was it a black screen for while before going to the main menu?

In your maps folder, is there a file called "mmo.w3x"? It should automatically be placed there when clicking Start Game.
 
Last edited:
Updated the launcher and to-do list.

The launcher will now automatically download and install SharpCraft, as well as unblock it for people on Windows 8-10.

It also now requests for elevated permissions automatically.

AT LAST, the first ever map to have multi-map + multi-player(I mean more than 12) gameplay.

~Subbing

Yeah, the problem with some maps is finding people to play with. This should hopefully eliminate that.
 
Level 4
Joined
May 26, 2010
Messages
47
Doesn't even attempt to load the map in my case, but it did have the momentary black screen before I saw the menu
 
Level 6
Joined
May 20, 2014
Messages
228
This is crazy. So much things possible, and honestly I'm feeling old right now given that it's happening right now. Subbing!

Although, I installed the program/made a new account, and it seem to work properly except it's not logging me to the map, just stays in WC3 window. Not sure if that's intentional and I seem to be unable to do anything else after. I too have the map in my folder.
 
This is crazy. So much things possible, and honestly I'm feeling old right now given that it's happening right now. Subbing!

Although, I installed the program/made a new account, and it seem to work properly except it's not logging me to the map, just stays in WC3 window. Not sure if that's intentional and I seem to be unable to do anything else after. I too have the map in my folder.
I have the map file and I'm running as administrator, same thing

What operating system are you guys using?
 
Level 4
Joined
May 26, 2010
Messages
47
I updated the Game Launcher with a debug mode option that you can post the log of.

http://www.hiveworkshop.com/attachments/gamelauncher-zip.240223/

Does this three times:

Files
* 'war3map.w3e'
* 'war3map.w3i'
* 'war3map.wtg'
* 'war3map.wct'
* 'war3map.wts'
* 'war3map.j'
* 'war3map.shd'
* 'war3mapMap.blp'
* 'war3map.mmp'
* 'war3map.wpm'
* 'war3map.doo'
* 'war3mapUnits.doo'
* 'war3map.w3r'
* 'war3map.w3c'
* 'war3map.w3u'
* 'war3map.w3a'
* 'war3map.imp'
* 'plugins\MMOPlugin.dll'
Unhandled Exception in EntryPoint.Unknown__SetStateHook!
System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
at System.Reflection.RuntimeModule.GetTypes()
at System.Reflection.Assembly.GetTypes()
at TinkerWorX.SharpCraft.PluginSystem.OnMapStart()
at TinkerWorX.SharpCraft.EntryPoint.Unknown__SetStateHook(IntPtr this, Boolean endMap, Boolean endEngine)
 
Level 6
Joined
May 20, 2014
Messages
228
Same issue with above poster.


-------------------
6/14/2016 5:34:26 PM
-------------------
Preparing folders . . .
Done! (0.06 ms)
Loading plugins from 'C:\Program Files (x86)\Warcraft III\plugins' . . .
Locating plugins . . .
Done! (0.23 ms)
Loading plugin assemblies and instanciating types. . .
Done! (1.13 ms)
Initializing plugins . . .
Done! (0.00 ms)
Done! (8.49 ms)
Installing LoadLibraryA hook @ 0x771D4BF0 . installed!
OnGameLoad plugins . . .
Done! (0.00 ms)
Installing Unknown_SetState hook @ 0x6EA81F20 . installed!
Files
* 'war3map.w3e'
* 'war3map.w3i'
* 'war3map.wtg'
* 'war3map.wct'
* 'war3map.wts'
* 'war3map.j'
* 'war3map.shd'
* 'war3mapMap.blp'
* 'war3map.mmp'
* 'war3map.wpm'
* 'war3map.doo'
* 'war3mapUnits.doo'
* 'war3map.w3r'
* 'war3map.w3c'
* 'war3map.w3u'
* 'war3map.w3a'
* 'war3map.imp'
* 'plugins\MMOPlugin.dll'
Unhandled Exception in EntryPoint.Unknown__SetStateHook!
System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
at System.Reflection.RuntimeModule.GetTypes()
at System.Reflection.Assembly.GetTypes()
at TinkerWorX.SharpCraft.PluginSystem.OnMapStart()
at TinkerWorX.SharpCraft.EntryPoint.Unknown__SetStateHook(IntPtr this, Boolean endMap, Boolean endEngine)
Files
* 'war3map.w3e'
* 'war3map.w3i'
* 'war3map.wtg'
* 'war3map.wct'
* 'war3map.wts'
* 'war3map.j'
* 'war3map.shd'
* 'war3mapMap.blp'
* 'war3map.mmp'
* 'war3map.wpm'
* 'war3map.doo'
* 'war3mapUnits.doo'
* 'war3map.w3r'
* 'war3map.w3c'
* 'war3map.w3u'
* 'war3map.w3a'
* 'war3map.imp'
* 'plugins\MMOPlugin.dll'
Unhandled Exception in EntryPoint.Unknown__SetStateHook!
System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
at System.Reflection.RuntimeModule.GetTypes()
at System.Reflection.Assembly.GetTypes()
at TinkerWorX.SharpCraft.PluginSystem.OnMapStart()
at TinkerWorX.SharpCraft.EntryPoint.Unknown__SetStateHook(IntPtr this, Boolean endMap, Boolean endEngine)
Files
* 'war3map.w3e'
* 'war3map.w3i'
* 'war3map.wtg'
* 'war3map.wct'
* 'war3map.wts'
* 'war3map.j'
* 'war3map.shd'
* 'war3mapMap.blp'
* 'war3map.mmp'
* 'war3map.wpm'
* 'war3map.doo'
* 'war3mapUnits.doo'
* 'war3map.w3r'
* 'war3map.w3c'
* 'war3map.w3u'
* 'war3map.w3a'
* 'war3map.imp'
* 'plugins\MMOPlugin.dll'
Unhandled Exception in EntryPoint.Unknown__SetStateHook!
System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
at System.Reflection.RuntimeModule.GetTypes()
at System.Reflection.Assembly.GetTypes()
at TinkerWorX.SharpCraft.PluginSystem.OnMapStart()
at TinkerWorX.SharpCraft.EntryPoint.Unknown__SetStateHook(IntPtr this, Boolean endMap, Boolean endEngine)


I also run Windows 10.
 
Thanks guys.

It was my mistake. I forgot to mention that you need the SharpCraft's plugins.

I've updated the launcher and it should handle everything automatically now (delete Launcher.exe so it re-installs sharpcraft). Try again and let me know how it goes.

If not, you can manually extract this to your wc3 /plugins/ folder.
 
Last edited:
May I ask how the server works?

if possible, can we create our own servers?

It basically just receives all input by local user (chat, unit orders) and sends it to all clients. Although it gets a bit more technically complicated than that.

Once ready, I may add the possibility for people to host their own servers, but it will still be my RPG that is being hosted. I would likely only do this if the main server had a high enough population.

Though, this may inspire others to make their own multiplayer maps as well.
 
Level 4
Joined
May 26, 2010
Messages
47
server broke lol (can't enter game, was disconnected when I was in there)

some guy saved beforehand so maybe the save broke it

also can you give us something to fight, or let us kill eachother
 
EDIT: Updated GameLauncher.zip. Now it will automatically update itself if there is a new version.

There is still one limit though, the map size.
Sure you can travel between maps but that's not as amazing.

edit: I have not tested can each player be in different maps or do they have to be in the same one?

You're right. I would rather have one big sandbox map but that's not feasible. I don't think the engine could handle something so big (without modifications).

However, most MMOs use a similar method to this. They switch "maps" to go to another area. I think they call this a "Theme Park MMO" and I think it shouldn't negate from gameplay much or at all.

Note: Players don't have to be in the same map.

so can you build multiple map rpg with this ?
like, lets say the rexxar campaign here you enter a portal and then go to dungeon's map.

Yes. Map switching is already implemented and you can see for yourself in the "demo".

Are you planning on establishing a distributed server? or just stay on centralized one?

I will likely be doing distributed, just not for a while.

I want the game server to be separate from the web server. Might separate the SQL data to another server too.

Will there be a global chat that will let us talk to all players between maps?

Yeah

No. I don't find any such map in C:\Warcraft III\Maps

It should be created after you click "Start Game".
 
Last edited:
I have started the combat system. You can now attack the bandit in-game. It's very basic so far and the bandit doesn't revive correctly.

There are some other minor bugs currently but I'll fix them tomorrow.

How will combat be implemented? Will the results be computed on the server or locally synchronized with it?

It will be computed on the server.
 
Level 4
Joined
May 26, 2010
Messages
47
seems like only the first player to equip items can do so, other players who join afterwards cannot equip items
 
seems like only the first player to equip items can do so, other players who join afterwards cannot equip items

Nope I tested it myself and it works with any player on the map.

You need an item in your bag to equip it. Kill the bandit to get an item.

The item takes the first open slot in your bag, which is usually 0 or 1. So you would type "-equip 0".

EDIT: There was a bug that wouldn't show a players updated equipment for new players joining however. I've fixed that now.
 
Last edited:
Level 11
Joined
Oct 9, 2015
Messages
721
Same black screen then returns to normal menu, I'm using windows 8.1

PS: The launcher is not installing sharpcraft (or the plugins) automaticaly (not for me at least)

-------------------
25/06/2016 16:40:41
-------------------
Preparing folders . . .
Done! (0,04 ms)
Loading plugins from 'D:\Program Files (x86)\Warcraft III\plugins' . . .
Locating plugins . . .
Done! (0,48 ms)
Loading plugin assemblies and instanciating types. . .
Done! (1,31 ms)
Initializing plugins . . .
Done! (0,00 ms)
Done! (9,54 ms)
Installing LoadLibraryA hook @ 0x750B8F80 . installed!
OnGameLoad plugins . . .
Done! (0,00 ms)
Installing Unknown_SetState hook @ 0x066D1F20 . installed!
Files
* 'war3map.w3e'
* 'war3map.w3i'
* 'war3map.wtg'
* 'war3map.wct'
* 'war3map.wts'
* 'war3map.j'
* 'war3map.shd'
* 'war3mapMap.blp'
* 'war3map.mmp'
* 'war3map.wpm'
* 'war3map.doo'
* 'war3mapUnits.doo'
* 'war3map.w3r'
* 'war3map.w3c'
* 'war3map.w3u'
* 'war3map.w3t'
* 'war3map.w3a'
* 'war3map.imp'
* 'war3mapMisc.txt'
* 'plugins\MMOPlugin.dll'
* '1.mdx'
* '2.mdx'
* '3.mdx'
Native added: NetworkConnect(SI)V
Native added: NetworkListen()V
Native added: NetworkSyncOrder(I)V
Native added: NetworkSyncPointOrder(IRR)V
Native added: NetworkSyncTargetOrder(IHunit;Hunit;)V
Native added: NetworkSyncChatMessage(S)V
Native added: GetNetworkTime()R
Native added: GetNetworkStatus()S
Native added: GetNetworkPing()R
Native added: NetworkOrderTrigger()Htrigger;
Native added: NetworkPlayerCount()I
Native added: NetworkSyncUnit(Hunit;)V
Native added: NetworkSwitchMap(I)B
Native added: NetworkSyncItemPickup(Hitem;)V
Native added: NetworkEquipBagItem(I)V
Native added: NetworkUnequipSlot(I)V
Native added: NetworkSyncDamage(Hunit;Hunit;)V
Files
* 'war3map.w3e'
* 'war3map.w3i'
* 'war3map.wtg'
* 'war3map.wct'
* 'war3map.wts'
* 'war3map.j'
* 'war3map.shd'
* 'war3mapMap.blp'
* 'war3map.mmp'
* 'war3map.wpm'
* 'war3map.doo'
* 'war3mapUnits.doo'
* 'war3map.w3r'
* 'war3map.w3c'
* 'war3map.w3u'
* 'war3map.w3t'
* 'war3map.w3a'
* 'war3map.imp'
* 'war3mapMisc.txt'
* 'plugins\MMOPlugin.dll'
* '1.mdx'
* '2.mdx'
* '3.mdx'
Native added: NetworkConnect(SI)V
Native added: NetworkListen()V
Native added: NetworkSyncOrder(I)V
Native added: NetworkSyncPointOrder(IRR)V
Native added: NetworkSyncTargetOrder(IHunit;Hunit;)V
Native added: NetworkSyncChatMessage(S)V
Native added: GetNetworkTime()R
Native added: GetNetworkStatus()S
Native added: GetNetworkPing()R
Native added: NetworkOrderTrigger()Htrigger;
Native added: NetworkPlayerCount()I
Native added: NetworkSyncUnit(Hunit;)V
Native added: NetworkSwitchMap(I)B
Native added: NetworkSyncItemPickup(Hitem;)V
Native added: NetworkEquipBagItem(I)V
Native added: NetworkUnequipSlot(I)V
Native added: NetworkSyncDamage(Hunit;Hunit;)V
Files
* 'war3map.w3e'
* 'war3map.w3i'
* 'war3map.wtg'
* 'war3map.wct'
* 'war3map.wts'
* 'war3map.j'
* 'war3map.shd'
* 'war3mapMap.blp'
* 'war3map.mmp'
* 'war3map.wpm'
* 'war3map.doo'
* 'war3mapUnits.doo'
* 'war3map.w3r'
* 'war3map.w3c'
* 'war3map.w3u'
* 'war3map.w3t'
* 'war3map.w3a'
* 'war3map.imp'
* 'war3mapMisc.txt'
* 'plugins\MMOPlugin.dll'
* '1.mdx'
* '2.mdx'
* '3.mdx'
Native added: NetworkConnect(SI)V
Native added: NetworkListen()V
Native added: NetworkSyncOrder(I)V
Native added: NetworkSyncPointOrder(IRR)V
Native added: NetworkSyncTargetOrder(IHunit;Hunit;)V
Native added: NetworkSyncChatMessage(S)V
Native added: GetNetworkTime()R
Native added: GetNetworkStatus()S
Native added: GetNetworkPing()R
Native added: NetworkOrderTrigger()Htrigger;
Native added: NetworkPlayerCount()I
Native added: NetworkSyncUnit(Hunit;)V
Native added: NetworkSwitchMap(I)B
Native added: NetworkSyncItemPickup(Hitem;)V
Native added: NetworkEquipBagItem(I)V
Native added: NetworkUnequipSlot(I)V
Native added: NetworkSyncDamage(Hunit;Hunit;)V
 
Updated.

  1. Files are now loaded from a local folder, so all maps can share the same resources.
  2. The launcher now only downloads the maps and game files if there is an update.
  3. New items implemented. 8 in total. They are just cosmetic for now. You can kill bandits to get the drops.
  4. Character location on the map is now saved.
Now I'm Getting "Fatal Exception" Error and the game screen won't even showup :(

Try now with the newest update.
 
Status
Not open for further replies.
Top