Original Post — Direct link

Hey there, I want to use this post as an opportunity to update you all on the editor because I have seen a few threads about the editor recently, including some asking us to get our editor out as soon as possible. While we would love to be able to provide the entire editor to everyone early, realistically that is not something that we can do. We are still working hard on our editor as we are actively using it to develop the game.

To give some context as to where we are with the editor right now, we have a fairly strong terrain/map editing tool that we use to build all of our maps for playtesting. Though I am not a level designer, to my knowledge they currently use our editor exclusively for building our playtest maps. It is not as robust as we want it to be just yet, but it is coming along well, and probably the most complete of our modules.

While that’s fairly far along, please note that an editor used in-house by someone at Frost Giant (who can also nudge the person sitting next to them to report bugs) is very different from the kind of experience we are working to provide to you.

We also have a data editor that allows us to do things like make units and a bunch of other types of game data. The data editor is also coming along well and we are making constant improvements to it. Some of our data, particularly data tied to visualization, is still being driven by Unreal, which is allowing us to move faster developing the game, but ultimately would be problematic for modding, and this is a significant challenge for us to overcome.

We are working on our scripting (trigger) editor and that is not as far along as the other modules, but we are able to do some basic scripting using the tools we have, and more advanced scripting manually in what is basically a constrained C++. We’ve also been working on our visual editor, so modders won’t need to write any code at all.

I am constantly impressed by what our engineers are achieving, but building this within Unreal Engine poses some unique challenges that we are having to work through as well. As much as Unreal Engine was not designed specifically with RTS games in mind (which led us to create SnowPlay, our own technology to layer on top of UE5), it also was not designed with building your own unique editor outside of the Unreal editor in mind. Things like allowing modders to customize UI, or import custom assets are very complicated problems to solve. Unreal is an amazing engine, but we have some real challenges to tackle due to the specific nature of our game.

In addition, we are also working through how map publishing will work in general. Releasing the tools to modders is not as valuable if they have no way to publish or share their maps so that others in the community can play them. This isn’t a small undertaking, either. We are making headway on this front, but it isn’t entirely resolved yet and that could take some time.

So what does this mean for the editor and when we will be able to release it? We really don’t have a concrete answer for when the editor will be available. At this point, we are fairly confident we will be releasing the editor in stages rather than all at once. The first publicly available iteration of the editor is likely to be the terrain editor by itself, with the ability to produce melee maps to support multiplayer.

As time goes on, we will unlock more of the editor tools as we are able to consolidate them and polish them in a way that makes sense for modders to consume. When that first version of the editor, that can make melee maps, is available to players is going to depend on a lot of other factors that are still in progress.

The team here is incredibly passionate about modding, and a significant chunk of us were former modders. I myself bought a beta key for SC2 off of Craigslist specifically so I could mess around with the editor. So I understand the desire to get these tools as soon as possible, but I also understand the road we have still ahead of us to achieve that. I want to be open with you all about where we are, and am grateful for your support for Stormgate.

I’ll do my best to answer any questions you may have in the comments below.

External link →
over 1 year ago - /u/FGS_Gerald - Direct link

Originally posted by Cheapskate-DM

Thanks for the update!

Would it be safe to assume we'll learn more about gameplay (possibly hands-on) before a terrain editor release? Knowing what a good melee map looks like depends heavily on how Human/Infernal factions interact with the map in different ways, and how resources are "supposed" to be distributed.

Bonus question: is "doodad" still a technical term within the editor? 👀

I am fairly confident that you’ll learn quite a lot more about Stormgate gameplay before a terrain editor is released.

over 1 year ago - /u/FGS_Gerald - Direct link

Originally posted by Blutmilan

Thank you for the update! Even tho im personally not that interested in the editor i really appreciate that you are so open about how the development is going

Thanks for supporting our devs!

over 1 year ago - /u/FGS_Gerald - Direct link

Originally posted by Slarg232

Just a for fun question: have you guys been playing any "mods" of the game in house?

Obviously everything is still WIP so you don't have mods so to speak, but do you have something akin to DotA or a Tower Defense that isn't intended to be a shipped experience?

One of our engineers created a cool Tower Defense game for a hackathon!

over 1 year ago - /u/FGS_Gerald - Direct link

Originally posted by Vaniellis

Honestly, we don't need the map editor at release. Stormgate is a new IP, so we'll all need a couple months to play the game and understand its mechanics.

Take all the time you need !

We appreciate the patience!

over 1 year ago - /u/FGS_Gerald - Direct link

Originally posted by vbergaaa

In a previous update, I believe I remember hearing that the scripting language was planned to be in AssemblyScript, which compiled into WebAssembly that the game would run.

Now you've mentioned the scripting will be done in "basically a constrained C++". Does this also compile down to WebAssembly? and will it be possible for advanced moders to write their own code in a language of their choice (say AssemblyScript) and have it compile to the same WebAssembly (or whatever the target is) and inject that into the map? Or will that be prevented because it could possibly bypass any "constraints" you've put in place that requires the C++ scripting to manage?

This comes from James Anhalt (Frost Giant's chief architect and creator of SnowPlay):

We ended up choosing C++ for our first internal scripting language over other contenders (Rust, Zig, Julia, Swift, AssemblyScript, and many more) largely because we are C++ experts and we know it will be performant on day one. AssemblyScript in particular lacked a way to handle the fixed point numbers and other types used by SnowPlay in an easy to use way without a performance penalty caused by dynamic allocation.

We compile our C++ scripts to WebAssembly, but we aren’t tied to C++. We have built up a language agnostic API that any language that compiles to WebAssembly can use to call into the SnowPlay engine. This allows us to iterate on scripts quickly without leaving the game and opens the door for modders to use their favorite language that compiles to WebAssembly. The only constraints on WebAssembly will likely be size and a limit on how “costly” (either time or “operation limit”) a script can be before we terminate it.

TL/DR: We had a few criteria for a scripting language:

  1. Had to be a “real” language that we wouldn’t have to make changes to
  2. Had to handle our fixed point numbers easily without a performance penalty
  3. Good performance
  4. We had to be proficient in it
  5. Didn’t want to write our own interpreter, so targeting WebAssembly was likely
  6. We would like it to be novice friendly to give as many people as possible the opportunity to participate in modding

C++ fits 1-5 for sure. We felt we could hide the complexity that C++ is known for from our scripts while providing fixed point support (by some very tricky C++ magic) as a zero cost abstraction.

Other C-like languages came close, like Rust, but were either too new, like Zig, or we didn’t think we had the expertise to make #2 true. Those languages weren’t any more novice friendly compared to C++ (or a “reduced” C++) so we went with C++ (C++20 to be exact).--Edited by Gerald (I misinterpreted 20 to mean # of languages).

We liked AssemblyScript for everything except #2. It’s a real language based on TypeScript. It is built for WebAssembly and performs well. But to handle our fixed point types we needed to wrap them in an object and that meant dynamic allocations just to add numbers or get the position of a game entity. We even considered using floating point in scripts and converting between our fixed point types at the SnowPlay API boundary but giving up that performance might have been costly and didn’t solve the problem for other strong types like entity IDs, but is still an option given that it is all just WebAssembly to our SnowPlay engine.

We are still on the lookout for the ”perfect” language…time will tell!

(Just to be clear: you are not going to have to use C++ to script in Stormgate. We are actively working on our visual scripting editor and we have the ability to add additional scripting options in the future.)

over 1 year ago - /u/FGS_Gerald - Direct link

Hey, folks—we love and appreciate the excitement around modding and our Editor. I’m grateful to Ryan and James for taking the time away from their work to share so much information with us about what they’re building.

We’ll be updating you again on the Editor once we’re further along.

Please help us spread the word about Wishlisting Stormgate on Steam! It’s the best way to help the Frost Giant team.

Link to our Steam page: bit.ly/stormgate

Thank you for your support!

over 1 year ago - /u/FGS_Gerald - Direct link

Originally posted by lemindhawk

I think you accidentally an extra dot in the link :)

Thanks! Fixed!

over 1 year ago - /u/FGS_Gerald - Direct link

Originally posted by SorteKanin

Thanks a lot for the update, the editor is one of the most exciting things for me personally :D

Thank you for the great memes!