wc3campaigns
WC3C Homepage - www.wc3c.netUser Control Panel (Requires Log-In)Engage in discussions with other users and join contests in the WC3C forums!Read one of our many tutorials, ranging in difficulty from beginner to advanced!Show off your artistic talents in the WC3C Gallery!Download quality models, textures, spells (vJASS/JASS), systems, and scripts!Download maps that have passed through our rigorous approval process!

Go Back   Wc3C.net > Warcraft III Modding > Developer's Corner > Warcraft Editing Tools
User Name
Password
Register Rules Get Hosted! Chat Pastebin FAQ and Rules Members List Calendar



Reply
 
Thread Tools Search this Thread
Old 12-18-2013, 10:54 AM   #16
MindWorX
Level 1 Neothelid


Tools Moderator
 
Join Date: Mar 2004
Posts: 254

Submissions (2)

MindWorX has a spectacular aura about (143)

Default

Debugging improvements incoming!
MindWorX is offline   Reply With Quote
Sponsored Links - Login to hide this ad!
Old 12-31-2013, 09:01 AM   #17
GDQuirm
User
 
Join Date: Dec 2013
Posts: 3

GDQuirm has little to show at this moment (0)

Default

Ugh. Wrote up a giant comment out of my overly verbose ass, then found out I wasn't logged in and lost it.
Allow me to be brief:
What does this do in layman's terms?
What do you plan on doing with this?
Will programming knowledge be required to use it properly?
Does 'Plugins' imply that most of the functionality this would add relies on the decayed and still decaying Warcraft 3 fanbase creating content?
Sorry for the pessimistic view. My original comment tried to swamp my true intentions in flowery pleasantries. But as someone that has tried endlessly to learn programming, but has slowly and painfully learned the inevitable fact that I'm just not made for it and should stick to stories and soundtracks, it's fairly depressing to dream of playing football without any legs.
Lo and behold, my fire in the cold dark alleyway of a midwinter's game design! The W3 Editor! Enough of a pegleg to let me kick the ball, but not enough to be able aim it anywhere!
I heard of your RtC and saw that it sought to allow enough functionality to fix most of the problems I had. I was stunned and astonished, and had high hopes, those going double when I had heard it would eventually develop an interface that wouldn't require me to humiliate myself failing to learn programming yet again.
Shucks darn.
So here you are, with a shiny new project. Or old project, as it may be. I got hopes, but I dare not tread the trembling waters of conviction.
I wish you the best of luck with anything you set your heart to.

Thank you for your time. I appreciate it.
GDQuirm is offline   Reply With Quote
Old 12-31-2013, 10:38 AM   #18
MindWorX
Level 1 Neothelid


Tools Moderator
 
Join Date: Mar 2004
Posts: 254

Submissions (2)

MindWorX has a spectacular aura about (143)

Default

Quote:
Originally Posted by GDQuirm
What does this do in layman's terms?
In it's current state, it serves as a modding API for Warcraft III.
Right now it's possible to create abilities at run-time with dynamic data, add new natives to the JASS virtual machine, run C# inside maps and other things. Some of these features haven't been released yet.
All this is done in a secure environment, where in-map scripting is sandboxed to prevent malicious actions, and external plugins are either sandboxed or with full access.
Quote:
Originally Posted by GDQuirm
What do you plan on doing with this?
My plans are to simply develop and evolve SharpCraft with more features as I find them. It'll be up to the end-users to put my findings to good use.
Quote:
Originally Posted by GDQuirm
Will programming knowledge be required to use it properly?
SharpCraft plugins are written in C#, so knowledge of C# is needed, but it's an easy language to learn.
Quote:
Originally Posted by GDQuirm
Does 'Plugins' imply that most of the functionality this would add relies on the decayed and still decaying Warcraft 3 fanbase creating content?
Plugins will serve as external libraries, but a lot of the core SharpCraft features will be available inside maps, allowing people to do everything without plugins.
Quote:
Originally Posted by GDQuirm
Sorry for the pessimistic view. My original comment tried to swamp my true intentions in flowery pleasantries. But as someone that has tried endlessly to learn programming, but has slowly and painfully learned the inevitable fact that I'm just not made for it and should stick to stories and soundtracks, it's fairly depressing to dream of playing football without any legs.
Lo and behold, my fire in the cold dark alleyway of a midwinter's game design! The W3 Editor! Enough of a pegleg to let me kick the ball, but not enough to be able aim it anywhere!
I'm going to add a bunch of documented samples to help out with getting into SharpCraft.
With regards to programming, I remember having a hard time at first, but just keep trying. One day it'll all fall into place.
The hardest part of programming isn't the languages or the APIs, but the conceptual understanding and being able to see what a code block does.
Quote:
Originally Posted by GDQuirm
I heard of your RtC and saw that it sought to allow enough functionality to fix most of the problems I had. I was stunned and astonished, and had high hopes, those going double when I had heard it would eventually develop an interface that wouldn't require me to humiliate myself failing to learn programming yet again.
SharpCraft is going to be more userfriendly than RtC was and safer for the end-user. The project is also open source with instructions on how to update it to new patches, which means even if I drop off the planet, people can continue updating and working on it.
MindWorX is offline   Reply With Quote
Old 12-31-2013, 01:37 PM   #19
Yrth
User
 
Yrth's Avatar
 
Join Date: Jul 2010
Posts: 54

Yrth has little to show at this moment (0)

Default

Hey again! I'm still really enjoying this library, you're doing a really good job with it :)

Quote:
Quote:
And what about multiplayer... RtC had synchronization problems... but otherwise it worked... is SharpCraft improved in this area?
SharpCraft has the same issues, anything that happens locally will have to be synced some way to be used.
I'd call BS if there were no synchronization issues but I don't really have any idea what the extent is...? I guess my question is: what exactly is "anything that happens locally"?

Maybe it would be easiest if I come up with a example.
I make a plugin that is a C# physics library to supplement the existing natives. This library isn't directly manipulating anything in game but it is being used by all players as a set of new natives. If this is okay, what's a similar scenario that wouldn't be okay?
Yrth is offline   Reply With Quote
Old 12-31-2013, 01:52 PM   #20
GDQuirm
User
 
Join Date: Dec 2013
Posts: 3

GDQuirm has little to show at this moment (0)

Default

Well that all sounds real swell. I suppose now I'll have to go bang my head against the hot grindstone of programming again. Maybe I'll sharpen my brain into a shape that'll fit into the damn code. Or maybe I'll just get a bad headache.
The possibilities are endless!
I'll give it a shot.
It should be noted that the concepts I've never had much difficulty with. As a student of rational philosophy, most of the concepts either came fairly easily or I'd already used outside of code before, it's just logic after all.
I can't remember squat about the specifics of what means what. I get the syntax; I can't get the words down.
I'm exactly the same with music; I compose for orchestra endlessly but I'm terrible at most instruments because I just can't memorize the fingering practice.
Shoulda seen that coming, I guess, with a name like SharpCraft, eh?

Thank you for the quick and clear feedback though. It was very helpful in clearing things up.

Last edited by GDQuirm : 12-31-2013 at 01:54 PM.
GDQuirm is offline   Reply With Quote
Old 12-31-2013, 07:07 PM   #21
TriggerHappy
 
Join Date: Feb 2008
Posts: 404

Submissions (2)

TriggerHappy will become famous soon enough (43)TriggerHappy will become famous soon enough (43)

Default

Quote:
Originally Posted by GDQuirm
Well that all sounds real swell. I suppose now I'll have to go bang my head against the hot grindstone of programming again. Maybe I'll sharpen my brain into a shape that'll fit into the damn code. Or maybe I'll just get a bad headache.
The possibilities are endless!
I'll give it a shot.
It should be noted that the concepts I've never had much difficulty with. As a student of rational philosophy, most of the concepts either came fairly easily or I'd already used outside of code before, it's just logic after all.
I can't remember squat about the specifics of what means what. I get the syntax; I can't get the words down.
I'm exactly the same with music; I compose for orchestra endlessly but I'm terrible at most instruments because I just can't memorize the fingering practice.
Shoulda seen that coming, I guess, with a name like SharpCraft, eh?

Thank you for the quick and clear feedback though. It was very helpful in clearing things up.

Well, you don't need programming knowledge to use SharpCraft in maps, however creating plugins you do.

http://www.hiveworkshop.com/forums/l...ssions-244688/
TriggerHappy is offline   Reply With Quote
Old 12-31-2013, 10:40 PM   #22
GDQuirm
User
 
Join Date: Dec 2013
Posts: 3

GDQuirm has little to show at this moment (0)

Default

Quote:
Originally Posted by TriggerHappy
Well, you don't need programming knowledge to use SharpCraft in maps, however creating plugins you do.

So to clarify; I can edit maps with SharpCraft without knowledge of programming, but to create plugins to expand on the content I do?
GDQuirm is offline   Reply With Quote
Old 01-01-2014, 01:01 PM   #23
MindWorX
Level 1 Neothelid


Tools Moderator
 
Join Date: Mar 2004
Posts: 254

Submissions (2)

MindWorX has a spectacular aura about (143)

Default

Quote:
Originally Posted by Yrth
If this is okay, what's a similar scenario that wouldn't be okay?
The physics library would be okay, ignoring tiny float imprecision. Anything that relies on local events would need to be synced, like moving your mouse, hitting a key, minimizing, moving a window, receiving a network packet, reading Arduino input, etc. It goes on, but the rule of thumb is, anything that doesn't give the same result at the same time on all computers will need to be synced.

Quote:
Originally Posted by GDQuirm
So to clarify; I can edit maps with SharpCraft without knowledge of programming, but to create plugins to expand on the content I do?
You can use everything people make for you. SharpCraft doesn't offer any new natives out of the box, but as TriggerHappy showed you, he has already made a pack with some much needed natives.

Last edited by MindWorX : 01-01-2014 at 01:02 PM.
MindWorX is offline   Reply With Quote
Old 01-01-2014, 02:11 PM   #24
<?White-Tiger?>
User
 
<?White-Tiger?>'s Avatar
 
Join Date: Apr 2008
Posts: 31

<?White-Tiger?> has little to show at this moment (0)

Default

Quote:
Originally Posted by MindWorX
[...], anything that doesn't give the same result at the same time on all computers will need to be synced.
[...]
this got my attention :P
How about calls like "random" in C#... have you synced the random seed? So it's returning the same value for all players? Otherwise functions requiring Random are screwed.. (or have to use the JASS one)
Also.. how about timestamps... I guess it's somehow possible to manipulate the C# VM... so guess you can sync those functions... (but time calls can be a problem..)

Is there anything done in that direction already, or is the answer to "simply" use JASS functions?
<?White-Tiger?> is offline   Reply With Quote
Old 01-01-2014, 02:16 PM   #25
MindWorX
Level 1 Neothelid


Tools Moderator
 
Join Date: Mar 2004
Posts: 254

Submissions (2)

MindWorX has a spectacular aura about (143)

Default

Nothing is being synchronized in SharpCraft yet. I have some idea of how I might do it, but it's very low priority at the moment.

Random is a bit of a special case. If you provide the same seed for all players, and use it in the same places, it'll be safe to use. But if you use random with a different seed or in a different order, it'll cause a desync. I'm sure the same is the case for the Random native, but I haven't tested.
MindWorX is offline   Reply With Quote
Old 01-02-2014, 02:31 PM   #26
<?White-Tiger?>
User
 
<?White-Tiger?>'s Avatar
 
Join Date: Apr 2008
Posts: 31

<?White-Tiger?> has little to show at this moment (0)

Default

the random native gets it's seed on map start I think... (as the editor allows to disable the "randomness")
But I've asked about C# functions that generates random numbers/stuff... Whether or not you're actually setting a random seed on map start that those functions are sync. If not, you should do that, or document somewhere not to use them^^ (with examples :P)

It's not the task of developers to sync those functions, it's the job of #Craft (at least once at map start)

But non the less... this actually makes "global" plugins problematic... as those need to be in sync as well... (unless those do only client side stuff that doesn't change multiplayer)

Last edited by <?White-Tiger?> : 01-02-2014 at 02:33 PM.
<?White-Tiger?> is offline   Reply With Quote
Old 01-02-2014, 03:57 PM   #27
Yrth
User
 
Yrth's Avatar
 
Join Date: Jul 2010
Posts: 54

Yrth has little to show at this moment (0)

Default

needing to sync random is a pretty big deal. the issue in general limits most plugins to adding building-block type natives without having to include some very specific hackish sync(s).

perhaps as a temporary fix you could provide a global Random object that will have a random seed that is synced? maybe get the current time for the host and then distribute that as the seed...

obviously having a predetermined seed won't work since the sequences of randoms will always be the same game to game (pretty sure c# uses Knuth's random)
Yrth is offline   Reply With Quote
Old 02-13-2014, 11:36 PM   #28
MindWorX
Level 1 Neothelid


Tools Moderator
 
Join Date: Mar 2004
Posts: 254

Submissions (2)

MindWorX has a spectacular aura about (143)

Default

New release!

Changelog
Code:
v2.2.4
 * Giant refactor. Too many changes to list them all.
 * Added three new base classes for scripting.
 * * FullPluginBase; // This class is for plugins that need full access, which means file writing and more.
 * * SafePluginBase; // This class is for plugins that only need safe access.
 * * MapScriptBase;  // This class is for internal war3map.cs scripts. It is similar to SafePluginBase.
 * The sandbox milestone reached 100%, meaning more safety.
 * Interplugin usage it possible through simple dependency.

Last edited by MindWorX : 02-17-2014 at 12:28 PM.
MindWorX is offline   Reply With Quote
Old 02-16-2014, 04:01 PM   #29
<?White-Tiger?>
User
 
<?White-Tiger?>'s Avatar
 
Join Date: Apr 2008
Posts: 31

<?White-Tiger?> has little to show at this moment (0)

Default

@MindWorX it's ok that you've changed lots of stuff and couldn't keep on track with a changelog (I personally write my current changes down so I won't miss one, otherwise checking the difference when committing.. but the later isn't possible for your refactor)
But you could at least name stuff like:
Changed system to differentiate between "global/full access", "limited access" and "map" plugins/scripts. By meaning you've added some kind of security layer / Sandbox.
And about fixing some input related bugs as well as "-loadfile" command line bug
Also that plugins can now communicate with each other etc.

So you should name at least the changes you know about ;)

Last edited by <?White-Tiger?> : 02-16-2014 at 04:02 PM.
<?White-Tiger?> is offline   Reply With Quote
Old 02-17-2014, 12:21 PM   #30
MindWorX
Level 1 Neothelid


Tools Moderator
 
Join Date: Mar 2004
Posts: 254

Submissions (2)

MindWorX has a spectacular aura about (143)

Default

Quote:
Originally Posted by <?White-Tiger?>
@MindWorX it's ok that you've changed lots of stuff and couldn't keep on track with a changelog (I personally write my current changes down so I won't miss one, otherwise checking the difference when committing.. but the later isn't possible for your refactor)
But you could at least name stuff like:
Changed system to differentiate between "global/full access", "limited access" and "map" plugins/scripts. By meaning you've added some kind of security layer / Sandbox.
And about fixing some input related bugs as well as "-loadfile" command line bug
Also that plugins can now communicate with each other etc.

So you should name at least the changes you know about ;)
Yeah, I know. :P I'll try and get around to doing that.
MindWorX is offline   Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off


All times are GMT. The time now is 12:39 AM.


Donate

Affiliates
The Hubb http://bylur.com - Warcraft, StarCraft, Diablo and DotA Blog & Forums The JASS Vault Clan WEnW Campaign Creations Clan CBS GamesModding Flixreel Videos

Powered by vBulletin (Copyright ©2000 - 2014, Jelsoft Enterprises Ltd).
Hosted by www.OICcam.com
IT Support and Services provided by Executive IT Services