MultiEdit - Collaborative Level Editing Plugin

Hup Holland Hup! :stuck_out_tongue:

I created a button to open my plugin window under the ā€œwindowā€ tab. But that didn’t appear in 4.6 preview. It was the day before a deadline, so I just went back to 4.5. However, I retry it in the 4.6 release soon :wink:

You are doing an amazing job ! I look forward to using the plugin in the future. Definitely a must buy. :smiley:

Great to see that you’re making progress!

That’s a really good point. I am a newbie programmer but i’ve already seen unreal engine change in the menu side a little bit from 4.3 to 4.4.
If there needs to be changes to this software as updates continue then we need a long term solution. So here are some things i have in mind.

  1. Release a public alpha right after the next unreal version comes out then ask for help.
    Maybe this draw enough attention to help you decide weather you want to make it opensource or not?
  2. If you want to keep it a closed software from the start i guess you could get a team of your own together
    under license to help you maintain it.
  3. The last thing i can think of is getting the folks working at unreal to help you out.
    You might even be able to contract with them. If they are smart enough they
    not ignore this concept as it is hugely desired by younger folks such as me.

The reason i think this is a huge deal is because it’s not only fun but it’ll cut back
on the need for hiring ā€œtestersā€ to try out a product for over a month; when they
have no idea how it was made because they didn’t work with the level editors.
Not to mention new ideas are more likely to happen. If any of you ever messed with
forge from the halo games you know exactly what i’m talking about. it’s boring to do
it all yourself but making a level with other folks helps bring life to the work. i’ve seen
better level design tricks from me and my friends messing with the forge then
professionals using typical level editors. And that forge editor was HIGHLY LIMITED!
Mark my words your sitting on gold. If this doesn’t start soon i’m gonna make my own plugin for this.lol

Amazing! A must-have for everyone who works in teams! :slight_smile:
I’ll follow this thread closely and hope to see some more nice stuff in the future.

Thanks for your reply and enthusiasm! I am planning to release the first version (alpha) in January. There is still a lot of limitations in the plugin, currently it is only for actors and blueprints (not for terrains and components of actors). I talked with someone from epic at the Control Conference in Utrecht last month and I asked him if I could get support from epic. They are willing to do so, but triple A studios have priority (understandable). I am working (or struggling) on one thing right now and that is synchronization of UObjects. I want to write and read any kind of UObject. So maybe if someone have information on this? I think the solution is in FArchive or one of its child classes (FArchive | Unreal Engine 5.2 Documentation).

PS: I have an internship at Double Dutch games (makers of speedrunners) starting in February, but I promised myself to continue on this in evenings and weekends!

Pretty sweet project. I thought of doing something like that myself when I found out that the LiveEditorPlugin is not doing that. But well, we don’t have all the time in the world, right? :smiley:

Where is the difference to what you currently are doing with Actors? Is the functionality as seen in the LiveEditor, namely stuff like SetPropertyValue and ReplicateChanges in LiveEditorListenServer.cpp not able to set any property on anything that is a UObject? Or do you not want to set single properties but instead whole objects?
I think every UObject should be writable to an FArchive (using the UObject::Serialize) function.
Or maybe take a look at UEditorEngine::CopySelectedActorsToClipboard and UUnrealEdEngine::edactCopySelected, which uses UExporter::ExportToOutputDevice, effectively calling UExporter::ExportText to create the UnrealText representation of the Object. You could then send that text to the other client.
There is also a UExporter::ExportToArchive function in UnrealExporter.cpp which probably do the same as UObject::Serialize, though i didn’t investigate further…

Maybe that helps… or you’ll have to describe your exact problem more precise and provide information of what you already tried and why that did not work if that is the case :wink:

Thanks, I used FBufferArchive for synchronizing. The functions you pointed out didn’t provide the solution, however I think I’ve found it! I got something working with FObjectWriter and FObjectReader. This weekend I be rewriting the plugin with this solution and start using multithreading. I also want to make the new version with UE 4.6.1. I update my progress!

The plugin is working in version 4.6.1 right now. I start rewriting serialization of actors and such using the solution I found.

I’m impressed that you’ve kept up this far. Hmm i guess that UE doesn’t change a whole lot between updates. Also i want to point out that (at least from my perspective) there isn’t
time or effort spent on terrains. I’m not a really artsy person so i could be wrong though. But there’s tools that auto generate terrain so that you don’t have to sculpt it all from scratch.
With what you got done now i could already put it to good use:) Also i just noticed something interesting. (I should point out that i’m using an older version of ue4)
If your in the level editor and decide to attach your camera to a light source while you work(for indoor projects) Your position is dependent on the light source.
One thing i noticed is that when i attached my camera to a light source i was able to select the light source and move it which moved me along with it as a result.
The reason i’m pointing this out is because i could see this causing problems with teammates (accidentally or otherwise) may not be a big deal but
might be interesting to look at if you have the time. Anyone feel free to correct me if that changed though.

Dear ,

Hi there!

I replied to your PM!

I wish you every success with this!

I was working on a multiplayer level editor back in UE3, and for my Beta project in UE4!

Here’s the video I used to introduce my participation in the UE4 Beta when it was first publicly revealed:

=8DaUIDXUpeA

I haven’t had time to focus on it lately, so I hope your MultiEdit project goes spectacularly well!

Keep us all updated on your progress!

:slight_smile:

Good job so far ! Super positive responses as well, nice :slight_smile:

This is pretty slick! When can we get our hands on it in some fashion? Would love to toy around with this :slight_smile:

Thanks for your reply! I would love to do some kind of pre-alpha release soon, so people can do exactly that. After that I could iterate on the feedback from the pre-alpha. It would be cool if I could put it on the marketplace to earn a little bit of money, so I can continue development. However that is currently not possible :(.

Then give out a PayPal donation link so we can give you money. :smiley:

No kidding i would happily pay atleast 20$ just to get my hands on the pre-alpha version:)

Hey guys,

Just want to update you, since I am not really active at the moment. I am in the end of my school semester, so I have to do a lot of ********/waste of time assignments. I’ve been working on closing the session and re-entering. Also trying to synchronize single (root) components between users, but that is not working yet. For example when I make a light orange, the light in the editor of the other user also change to orange.

Wait by root components you mean the root actors used in actor blueprints? I’ve not messed with the c++ side of UE4 yet so i may be confused. However if i understand you right i must point something out that you may not have noticed. When messing with the root actor in a blueprint(at least in my older version) i realized that i couldn’t change the size of it directly. Any time i tried putting new sizes in the x,y,z scales it doesn’t change at all. Where’s scaling in this manner always works in other components outside root. Even if they connected to the root. Which is why i personally always use something like an arrow for root. Maybe this give you a clue as to what’s going on.

Just a side note:
I understand the pointless workload that schools often give out. I don’t think that homework should be a demand because if you understand something then why do you have to prove it OUTSIDE OF THE TESTS. I struggle reading and writing because of my eyesight and therefore it ****** me off that i was being hindered from learning simply because i had to stay up late every night finishing my ā€œhomeworkā€. I am going to college soon and i can’t take more then 2 or 3 classes simply because of the homework demand. The college director told me that apparently by law they have to give out homework that would take twice as long to finish as the time spent in class with the teacher. Sorry for ranting but people need to be aware that the educational system is absolutely destructive and corrupt. (For clarification i am talking about the U.S.)

If this turns into anything close to how hero Engines is set up I be speechless. :slight_smile: If you need cash after College or during you need to prioritize this directly behind school work because this could make you a fortune here. Sell is for say $50 I can guess there be a few hundred sales in the first month man. That is quite a haul of cash to get you bye.

Also throw up a Paypal donation link or Kickstarter to help free you up to get this out faster.

Currently working on speedrunners as a full-time intern at Double Dutch Games, but I trying to work on the plugin every evening. After the synchronization of components works, I be doing things like correctly closing the session, changing host when he disconnects. Also I have to develop something for when one user doesn’t have an asset in the editor that another user added to the level.

I am trying to synchronize the components of actors, so for example: I make a light blue, the light in your editor also become blue. I want to do this for any kind of component in one general technique. Currently getting help from Epic.

University in the Netherlands is not that bad, I just learn more in my spare time.