So how do teams work?

One thing me and my team are really wondering about, is how are we supposed to work together? By that I mean, is there no way for us to simultaneously work on the same project files? Or does the programmer have to export each and every BP class + Project Files + Level Files and I need to put them back in in my UE4 main folder just so I can view it and edit it? It would be amazing if there was a way for all of us to work on the same files without having to go through all that hassle. For an example, when I level design, sometimes I’d request our programmer to create certain blueprint classes that I need, for him to give it to me he’d have to copy the actual blueprint file from his UE4 main folder, and I have to take it and paste it in my Project Folder which is in the UE4 main folder.

I hope I didn’t confuse you, it’s 5:08 AM and I decided to ask this question because it’s been bothering me a long time, UE4 tends to do this because it’s just too amazing and is still /meh on the documentation :3 . Good night fellas and thanks in advance.

I think most teams will use some sort of version control too keep everyone in sync.
There is a great high level explanation of using perforce here:

What you’re describing is exactly what source control (a.k.a. version control, revision control) is there for. Working in team without having some form of version control would be a nightmare, as you already discovered yourselves.

Using source control you’ll have a central server hosting your project. Each team member can download a local copy, make changes and submit these changes to the central server. Then everyone else can simply update their own local copy to get the latest version of the project. No need to manually migrate and copy files around.

This video covers the basics of source control:

As it is mentioned in the video, there are lots of different source control programs that you can choose from. The Unreal Editor currently supports Subversion (svn) and Perforce (p4) and there are Git and Mercurial (hg) plugins in the works by the community.

If you have a spare machine laying around somewhere (doesn’t have to be very performant), I’d recommend to throw a linux on it and setup an svn or p4 server. There are also some hosting services available online. Some of them offer free hosting fro open source projects. For private projects you usually have to pay a small fee.

We’ve found the easiest way is to use a Perforce server from Assembla.

Perforce is the same tool Epic use and it integrates with the Unreal Editor really well.


As the others suggested, use source control -> therefore I would recommend you to use perforce. It’s pretty easy to set up and to use. My team and I use it all the time for nearly all stuff (except of our organisation documents) :slight_smile:

Not to rock the boat, but I did a fair amount of research into this for our team before we committed to anything.

Don’t setup your own server unless several factors can be met.
A) You have the bandwidth to provide to the users hitting it. Most people’s home internet upstream is just up to par to doing this. Sure it will work but your first pull per person will take 3 days. Plus what about when you want to use your own internet and the team needs the bandwidth.
B) Can you guarantee the up time? If your power supply burns out or internet goes down. Will this affect your teams productivity and for how long will it be down?

Better to throw the responsibility at a data center and host it doesn’t cost much if you look and it will be one less thing to worry about. I do not think anyone can really compete with as far as bang for buck goes. 100 bucks for a year starting is pretty nice and you will likely pay more in ISP and energy costs in a year of hosting it yourself.

Yes UE4 supports X but there is no difference really in using something else. Just making sure your properly coordinating your team as to who is should be working on what files at what times and that they understand the versioning software you are using.

Well, I guess it all depends on your circumstances, team size and other factors as well. Working on a small hobby project with friends is an entirely different situation than having a larger team of paid professionals. I assumed Hussam was in the hobbyist category, since he doesn’t seem to have heard of SCM yet.

I’m in the hobbyist category myself and decided to set up a server, because we wanted to use P4 and $25 a month is a lot, if you’re still just playing around in your free time.

Really not a problem for a small team and a hobby project. Internet speeds are quite nice in Europe.

I can’t. But if I had to, I wouldn’t host the repo on my crappy old macbook :cool: Also, our productivity is probably more affected by exams and less by server down time :smiley:

25 bucks a month… You need to shop around we got 8 bucks a month for a year - 5 people at 20gb’s - 16 bucks a month for 10 people 40gb’s. This Includes a dozen other completely free services that your likely gonna need, bugzilla etc.

Bandwidth good in Europe? I do not know USA here but, I do not that the 2 devs on our team in Spain have **** for net.

Sure I get the school thing and if it works for you who am I to knock it I guess… But If you really can not afford 8 dollars a month IE one “Subway Sandwich” and your thinking about making a video game, perhaps just perhaps your priorities are focused on the wrong things in life. How do you then justify the 20 dollars a month for the UE4 Editor subscription? I apologize if this sounded harsh or rude but I think it needed to be said.

I am just making sure this guy gets a good rounded factual information to make decisions on. I know I spend a lot of time researching many things before we proceed and any reliable solid feedback I can get I take.

We don’t have to agree on this :cool:

If you can afford a host, definitely consider using one. We could afford one too, but that doesn’t mean I have to waste my money. If our project stalls, for what ever reasons, I can just turn off the server for a couple of weeks. I can’t do that with a hosted service and I would be paying for nothing.

But honestly, I didn’t knew about cloudforge. Seems like a good offer. Maybe I would’ve chosen that.

An other reason I’m hosting myself is that I like the integration of the atlassian products. I can have a single activity stream with commits, bugs, wiki edits.

Technically, you can currently produce a decent video game for just $20. You only need the subscription (beyond the first month) if you want future updates… if you’re content with what’s already in, you can cancel the sub as soon as you order it and still have the entire engine/editor/samples for base models, etc… You can also fix whatever you feel isn’t up to your standards, or add new things, and recompile your engine/editor. It won’t be the same engine/editor other UE4 devs (pros and hobbyists) are using, but so what? It’s still an Unreal Engine™ game and you can still sell it as such.

Can any one help me make perforce work ? :slight_smile: please be specific…
We have two workstations on different locations. I set one to be the server and i don’t know how tho make the client connect over the internet.
We have really strong bandwidth so this is not a problem…

This needs its own thread really not on this thread…

Look this has more layers to it then just what your asking as well. This is a networking issue to begin with, you need to make sure you know the operating ports and that they are open on the server. You also need to make sure your router is forwarding the ports to the correct server which also means the pc should probably have its own static routing information and IP address. This is also dependent on the type of router you have, if you set it up to work externally from you ISP location then you will not be able to hit the server with the same information internally. Thus you can only host it out to people and not internally without setting up another set of ports for internal routing etc.

As far as setting up perforce and connecting to it - well there is probably a getting started somewhere for the software - I would follow that.

Look if you know how to setup and host a gaming server and get that working or maybe remote desktop or an FTP, hosting perforce will be no different. However I am willing to bet your going to run into the internal / external issue of hosting. Which is why I recommend offloading it to a perforce provider.

Just an opinion but the ideals of source control needs an overhaul as it only deals with the needs to control code. This is not a bad thing as with client side only applications does not need secondary considerations but when it comes to a video game things gets more complex as both code and content both have unique needs and requirements as to asset flow just to keep things tidy as to requirements to ship an efficient package.

For the local development team this is not so much an issue as both needs can be forked into to different pipeline directions and then converged during the packaging process or contributed as part of the framework build.

When a project is Internet based with an international team working the two sides of the same coin becomes a lot more difficult when attempting the need to two separate forks of a preferred form of source control.

Code is best served by Distributed Version Control where content is best done through a centralized server system where free sharing assets, as in what your team is allowed to use as to fair use rights, are stored along with any assets necessary to maintain the source tree necessary to do updates to incomplete or work in progress art.

As I mentioned this is not so much a problem when local but for the most part this is in my opinion why this needs gets over looked as it’s more of a network problem that it is a source control problem until you have a team of 25-30 individuals around the world who should have access to core assets with out risking duplication of work already done.

To solve this problem we are using an owner based project management system, for now, where the content artist owns work in progress until it is made available for other to use and is committed to the framework build even if risking duplication of assets that should be instanced.

If someone has a better approach I would love to hear about it as long as it’s not centered on code source control.

Thanks for the info. A little step forward for me …
what in understand until now is that i need to set a static internal IP for the computer running the server, then port 1666 needs to be forwarded to that static IP from the router
A dynamic DNS URL to the server’s location would probably be useful, but if the server’s location has a static external IP, it’s not required. (://www.noip/managed-dns#dns)
I’m also checking ://stackoverflow/

Vlad yes your on the right track it sounds like now.

The big issue your gonna have is if you work on that internal network your not going to be able to use the version control like everyone else because your hosting it. So setting up a network drive to the version control is probably your best bet for the internal.

Either way your on the right path.

I’d recommend setting up source control (ie Perforce) even if you’re a solo developer to manage changes, backups, rollbacks, etc. I do. Another possibility to support team collaboration is to build a multiplayer world editor on top of UE4. built one in UDK, I would expect this to possible with UE4’s Server/Client.