1. Updated Resource Submission Rules: All model & skin resource submissions must now include an in-game screenshot. This is to help speed up the moderation process and to show how the model and/or texture looks like from the in-game camera.
    Dismiss Notice
  2. DID YOU KNOW - That you can unlock new rank icons by posting on the forums or winning contests? Click here to customize your rank or read our User Rank Policy to see a list of ranks that you can unlock. Have you won a contest and still havn't received your rank award? Then please contact the administration.
    Dismiss Notice
  3. The Lich King demands your service! We've reached the 19th edition of the Icon Contest. Come along and make some chilling servants for the one true king.
    Dismiss Notice
  4. The 4th SFX Contest has started. Be sure to participate and have a fun factor in it.
    Dismiss Notice
  5. The poll for the 21st Terraining Contest is LIVE. Be sure to check out the entries and vote for one.
    Dismiss Notice
  6. The results are out! Check them out.
    Dismiss Notice
  7. Don’t forget to sign up for the Hive Cup. There’s a 555 EUR prize pool. Sign up now!
    Dismiss Notice
  8. The Hive Workshop Cup contest results have been announced! See the maps that'll be featured in the Hive Workshop Cup tournament!
    Dismiss Notice
  9. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

[Development] Presenting my project! Engine for making games like WC3 custom maps

Discussion in 'Game Development' started by Ollhax, Oct 22, 2017.

  1. Looks nice, keep working on it!
     
  2. Ollhax

    Ollhax

    Joined:
    Oct 19, 2017
    Messages:
    30
    Resources:
    0
    Resources:
    0
    Thanks for the kind comments! Just a quickie update:

    I'm currently working on UI stuff, needed for the upcoming level editor. There's not a lot of exciting stuff to show right now (unless you like 2d rendering tests and layout systems -_-), but I'll hopefully have more to upload once the editor is starting to take shape. I'm making steady progress nonetheless! :)
     
  3. TheLordOfChaos201

    TheLordOfChaos201

    Joined:
    Jul 2, 2011
    Messages:
    1,723
    Resources:
    0
    Resources:
    0
    sounds pretty epic, I still don't quite understand it but any new tool to help hivers make more maps is a great idea
     
  4. Ollhax

    Ollhax

    Joined:
    Oct 19, 2017
    Messages:
    30
    Resources:
    0
    Resources:
    0
    Thanks :D And yeah, not the easiest project to explain in just a few words :p Hopefully it'll be clearer once I have more to show!
     
  5. rulerofiron99

    rulerofiron99

    Joined:
    Jul 10, 2006
    Messages:
    3,129
    Resources:
    14
    Maps:
    4
    Spells:
    9
    Tutorials:
    1
    Resources:
    14
    Awesome to see you tackle this project! Recreating warcraft 3 is one of my dreams, but I know it's beyond me. I will be watching this with great interest :)

    As for network code, will you be making the engine only deterministic lockstep like warcraft? If possible you should add the option to use a traditional client-server network structure, as some maps would work better with that.
     
  6. Ollhax

    Ollhax

    Joined:
    Oct 19, 2017
    Messages:
    30
    Resources:
    0
    Resources:
    0
    Thanks! :D

    Yup, using lockstep. I did quite a lot of research before ending up with that choice, and I actually had a full state-sync implementation before I went for lockstep. I agree that state-sync is better for some maps (e.g. MOBA's), but in the general case I deemed it easier to go for lockstep since it makes networking almost transparent for the user. You won't have to worry about number of units, tweak network refresh rates, etc.

    Since the network sync is handled in a foundation, it can be overridden (or completely rewritten) as you see fit. It's not as easy as swapping out some code, however, since all the entities in the game would suddenly require synchronization code. You might want a server-authoritative model to deter cheating. And depending on what you're after, you might also want some local prediction of your entities, and that is also tricky to get right.

    With all that said, I've considered making a separate foundation with a state-sync implementation if the interest is high enough. But, it'd probably be a specialized foundation for a certain type of map (e.g. DOTA or Warlock).
     
  7. rulerofiron99

    rulerofiron99

    Joined:
    Jul 10, 2006
    Messages:
    3,129
    Resources:
    14
    Maps:
    4
    Spells:
    9
    Tutorials:
    1
    Resources:
    14
    That sounds perfect. The system of having a "foundation" is really neat. I'd probably try my hand at making one myself, since in terms of maps I've always been more interested in making systems than content.

    Any estimate on when the project will be in a state to have some modders give it a shot? That will probably also get you a lot of good feedback.
     
  8. Ollhax

    Ollhax

    Joined:
    Oct 19, 2017
    Messages:
    30
    Resources:
    0
    Resources:
    0
    Haha, I'm glad the setup makes sense to more people than myself! :)

    About the release date: it's probably closer to next Christmas than the coming one. I would at least like to see a level editor, trigger editor, some very basic maps and rudimentary server browser before I go live. And when I say "basic" maps, I mean "not fun" :p I'd guess it would take a few more months to make something actually good with the tools, but if there's enough early interest I'll sneak out an alpha version before that.
     
  9. Lorimerr

    Lorimerr

    Joined:
    Dec 31, 2017
    Messages:
    1
    Resources:
    0
    Resources:
    0
    Hey there! Fellow developer here, just dropping by to say that this looks amazing, keep up the good work!

    Can I ask you how you implemented the scripting part? I kinda started a project similar to this one myself because of nostalgia (after all, Warcraft's editor is what showed me that programming is my passion many years ago), so I'm really interested in how you decided to do it. I had a couple of ideas about it, one of them being a trigger-event driven system (like WC3), and the other being a script component system (like Unity, decided to go for this one since it's more robust), so I'm really curious to hear how others have done it.

    Anyway, it's really great to see that someone is also inspired by Warcraft's editor, I wish you the best luck with your project!
     
  10. Ollhax

    Ollhax

    Joined:
    Oct 19, 2017
    Messages:
    30
    Resources:
    0
    Resources:
    0
    Hey there! Thanks, I appreciate the kind words :D

    I haven't actually implemented a high-level scripting system yet (i.e. trigger editor), right now it's just C#. Maps are basically just C# programs that get compiled and run (in a secure sandbox) on the receiving end. When I do implement the trigger editor, it'll just generate C# code (using Roslyn) and compile it along with the rest of the map scripts. I've done some testing and it seems pretty viable.

    I chose a trigger editor over e.g. a component system because I think it'll be way easier for modders to work with, and it should also make migration easier for existing WC3 modders. If someone wants to go crazy and do custom stuff, there's always the option to go down to the underlying C# code, either partly (e.g. adding or customizing triggers) or completely.
     
  11. WhiteFang

    WhiteFang

    Joined:
    Jul 6, 2014
    Messages:
    3,354
    Resources:
    0
    Resources:
    0
    Very interesting.I'll be following this very closely,and I hope it's successful.I'm still busy learning C# myself
     
  12. Napoqe

    Napoqe

    Joined:
    Jul 7, 2011
    Messages:
    236
    Resources:
    0
    Resources:
    0
    I support any initiative (good intentionally) to recreate the experience of the World Editor. However, I did not like the graphic, but I read that you are not a good 3D designer. But having engine that supports, and support of the community, depending can appear 3D models and scenarios (for work done by volunteers, etc) of graphic similar to the Dota 2, to project.

    Nostalgia, I wish to recreate a map or game, etc. similar to Noob Map (similar with Anime Fight).

    Has? Or will have the mechanism to reconnect the match?
     
    Last edited: Jan 22, 2018
  13. doom_sheep

    doom_sheep

    Joined:
    Oct 18, 2008
    Messages:
    756
    Resources:
    0
    Resources:
    0
    badass. best of luck.
     
  14. Ollhax

    Ollhax

    Joined:
    Oct 19, 2017
    Messages:
    30
    Resources:
    0
    Resources:
    0
    Hey there! Quick update: Still working on UI, and it's probably going to take at least until the summer before I can start posting pictures of editors and more fun stuff. Going quite well though, feels like I'm making good progress! :D

    Haha, yeah, "a good 3D designer" is not a label I'd stick to myself :p I have some ideas how to make more impressive models and graphics for the future, hopefully it'll be more to your taste. :)

    Features like match reconnection is something I'm considering. Right now, it wouldn't be too hard to support, but the priority of such a feature it depends on the level of interest among the players. Do you often get disconnections in WC3?
     
  15. Napoqe

    Napoqe

    Joined:
    Jul 7, 2011
    Messages:
    236
    Resources:
    0
    Resources:
    0
    I had no problem of disconect in the epoch of Warcraft 3, which I remember. But a few match was ruined because of disconect and leavers.

    Some argument in favor of having reconnect, are of progress maps. Example RPG and TDs
    And dota-type maps would avoid more in ruins because of disconect. Depending for stay cool again, recreate the lobby...
     
    Last edited: Mar 30, 2018
  16. Ollhax

    Ollhax

    Joined:
    Oct 19, 2017
    Messages:
    30
    Resources:
    0
    Resources:
    0
    Right, those are excellent use cases. I don't know when I'll get around to it, but I'll most likely support reconnection eventually. :)
     
  17. Ollhax

    Ollhax

    Joined:
    Oct 19, 2017
    Messages:
    30
    Resources:
    0
    Resources:
    0
    Update 2

    I'm finally done with the UI system. It took ~9 months all in all, i.e. slightly more time than expected :) What I have is a bunch of standard UI controls (buttons, combo boxes, text boxes, etc). Nothing super-fancy, and I'm playing around with color themes and styles. I'm considering making a video of it all if it's interesting, but for now here's a pic:

    [​IMG]

    This is one of the pages in my UI testbed, displaying the PropertyGrid control. It's one of the more complex and powerful controls (familiar to any Windows Forms/WPF developers out there). When you select an object, it allows you to tweak any public properties. In this screenshot, the red square is selected, and it lets you tweak e.g. the color, position, rotation, and so on. I plan to use it for tweaking unit properties, among other things.

    I'm glad to be done with this, because it marks the start of more exciting work: the Level Editor! :D

    My goal is to make a editor more like Unity than the WC3 editor, i.e. allowing you to pause the game and examine the state at any time. I believe this would help a lot when you're debugging some weirdness going on in a map. Perhaps make the game save state dumps every few frames as well, which would allow you to "rewind" a game and examine oddities after the fact. If you can't tell, I'm very excited about things like easy and powerful debugging :)

    I'm also toying with the thought of allowing per-mod customization to the editor; i.e. a mod can add custom tools and functionality to the editor. It would allow for mold-breaking mods, which sounds pretty awesome to me, but there's a potential problem with it as well. It would allow mod-makers to mess up the editor, similar to how map locking is done in WC3 maps, and I'm on the fence whether I want this or not. As I've said before, I love the idea of an open community of map sharing, but I can see the point in someone wanting to avoid others tampering with their maps. Either for creative control, avoiding hacks, or really any reason. Anyway, I'm very interested in thoughts and feedback about this, as I'll probably choose a direction very soon.
     
  18. Justicebringer

    Justicebringer

    Joined:
    Dec 17, 2011
    Messages:
    279
    Resources:
    3
    Icons:
    3
    Resources:
    3
    Holyyy! Keep up the good work!
     
  19. Ollhax

    Ollhax

    Joined:
    Oct 19, 2017
    Messages:
    30
    Resources:
    0
    Resources:
    0
    Thanks ^_^
     
  20. micca

    micca

    Joined:
    Dec 31, 2016
    Messages:
    188
    Resources:
    0
    Resources:
    0
    Will there be some kind of beta test in the near future? :D