I’m enjoying the forge creator, but it’s lacking so many QoL features. Having used the EU4/5 blueprints editor, the Forge editor is sorely, sorely lacking in both complexity and ease of use (PC)
The forge editor often fails to build the graph, without telling you what’s wrong. Instead just let it run and let us debug it with comments.
Provide a print to screen debug. Debugging is a huge chore right now.
Let use mouse users just inline edit fields. Opening the menu every edit is tedious.
Let us keep the details window open while editing instead of locking the UI. I shouldn’t have to open and close it for every selection.
There is no comment capability on the graph
I should be able to route Execution pins together, instead every new branch requires an entirely new flow
Let us add joints to splines to branch off a value.
Let us group + Hide sections for ease of use
Copy paste pts notes way for away - just use mouse position.
Stop requiring all nodes to be connected. I should be able to leave a floating node without issue. Barring infinite loops - the graph should always build - it’s too protective.
Add a transform variable with position, rotation both in it.
Node complexity is weak.
There is no input feature, for instance:" Is Player Holding Down Jump"
I want to create a trait - not just mix and match.
I want to create a custom weapon and not just blend weapons. I can’t do this. because the complexity of weapon design is off limits
With all of this in mind, it looks like Forge is a good map editor, a good mutator-type engine, but true mods to the game are going to require a ton of effort with so many key capabilities over simplified and locked away.
It seems pretty consistent in building the graph. If there is an error that segment of code just doesn’t run.
I would be lovely though if they at least highlighted which node crashed the build.
Yep. The ability to snapshot the state of the script (what value’s are being held) would be great.
Yes please. Simple comment nodes for readability. And the ability to add a note to any node.
I guess. That could get pretty messy though.
That would make it easier to read. I think having action wires and data wires different colours would help. And a degree of transparency when a wire passes over a node.
I would also like a way to change an objects team in script. Currently you can only read the objects team.
I did try set players team on an object, but that does nothing, as expected.
Not sure if there is a huge use case for this, but I am working on a game mode where on player death a token is spawned. Currently any player can collect it and get a point, but being able to set the tokens team when spawned would allow me to make it so you only get a point of it’s an enemy token.
I also like the idea of being able to spawn objects without needing them in scene. I currently have like 28 ref variables to have enough tokens for all players.
as i get better with the new forge im noticing just one issue with it, magnets do not always work when the should. I have the space, the corners are basically touching, i just want to align them exact but magnets not grabbing sometimes.
I’ve scripted a head hunter’s type game - probably similar to what you’ve done. And playing around with some team options would be interesting.
This is what I’ve got so far; https://www.youtube.com/watch?v=VCboIvNCnrY
It now works so that you collect the orbs when you walk over them.
But I what I want to do is a Tag 'n Bag remake. So I need a team zone to briefly appear around each kill. Making the zones appear around each death is easy. But at the moment I can’t change the team of the zones - and they don’t appear to change colour if I could.
Hopefully we’ll get a chance to feedback what we need.
That’s very similar. Did you have to spawn all the orbs in the map in advance or did you spawn them spontaneously? How did you do the collision of picking them up? Proximity based vector distance?
I have heard of this struggle from others and just haven’t seen it on here yet. That must be extremely frustrating. Mouse and Keyboard are definitely much quicker and more efficient to utilize a resource like forge.
Orbs are placed. 32 of them; Ball00, Ball01, Ball02…
Then placed in a object list (that was a lot of nodes).
On Game Start they are all despawned. And then On Death the next three in the list are spawned on the victims x,y,z. With a bit of random velocity.
I thought about simply using a zone / area monitor for each orb. But that would be a pain to set up on all 32 orbs. And in reality - I may need to add more. So I took a more hands on approach…
Each spawned orb has a countdown variable set to a random number between 32 and 40.
And then I have a timer loop that triggers every 0.2 seconds.
It cycles through each orb, checks to see if it’s spawned, and if it is, decreases their countdown value by 1. If the value reaches 0 then the orb is despawned. The random starting value means they don’t all disappear at once.
If the orb is still “alive” it then cycles through each player and checks the x axis difference between the player and the orb. If this is less than 2 it checks the y axis difference. If this is less than 2 it checks the z axis difference. And if this is less than 7 it considers the player standing over the orb - time to despawn the ball and add one to the player’s orb collection variable.
This approach is a little clunky - but allows me to check the orb vs a Spartan shaped cuboid.
I’m at work at the moment. Tonight or tomorrow (day off) I will tidy the script up and take some screen shots to post here.
As a software developer I find all this linking and dragging stuff very tedious, unintuitive, and limiting.
I’d much prefer to write actual code.
Writing complex conditions really clutters up the screen, and in my experimentation I found that I would have to duplicate a lot of the nodes to do 2 things that in code I would simply achieve via :
if (something && something Else)
{
doThisThing();
doSomeOtherThing();
}
Struggling to implement trait upgrades and communicate to the player what they just got.
I want to do a game where you get to choose one of three upgrades, then go to a 1 v 1 room to fight with the one you chose.
While I can make some symbols like a health sign for increased shields, I can’t specifically communicate to the player what changed.
Does a health sign mean shields? Health? Shield recharge rate? Shield delay time?
This problem can be solved two ways. Allowing trait names to be used as strings.
i.e.: “Trait: Vampirism” as a string that I can plug into the ‘Create UI Message’ node.
Or, and I think this should be done regardless, but update the list of keywords usable for strings.
‘Health’ and ‘Shield’ are two words that are missing which I feel should be given. I’m sure I can find a lot more related to trait keywords but that’s a big issue I’m having at the moment.
The best fix would be to let us type what we want for strings, but I understand from a content moderation perspective why it’s not implemented at this point.
If it ever is though, I’d also like basic variable type conversion. Having the number 4 plugged into a string to get the string ‘4’, things like that.
There’s so much more regarding objects but I still have more learning to do with the system and it could also be getting into the weeds a bit.
Agreed - what we have now is a map maker, but as far as a modding engine - it’s extremely basic and limiting enough that whatever mods are created will look like a half-effort. Just look up the guy who did a ‘self defense tower’. It moves barrels to the player when it should be a gun - but that level of granularity seems to be out of scope.
Some of the forge tools look like what it in “Sparkedit” That we used to mod Halo Combat Evolved. Believe it or not it was easier to grab place and drop objects with the mouse unlike we can with Halo Infinite. We need to be able to select, Grab, Move and drop objects with a mouse like we could with other forge programs in past Halo games!
Here is a video of Sparkedit:
https://www.youtube.com/watch?v=et6iRPEPk24