#source-control
1 messages ยท Page 35 of 1
that might work if everyone is an expert already but not if we are all learning unreal as we go lol
Believe these docs are super new but if you're using perforce and a source version if UE i'd highly, highly recommend looking into setting up UGS. Easily the best thing you can do to improve your team's productivity!
https://docs.unrealengine.com/en-us/Programming/Development/UnrealGameSync
Gotta have Perforce to use UGS
@brittle raft if you've got less than 5 people you should give Perforce a try, it's free
Lol nope
I gave it a try 10 years ago
When it was 20 users, and Git didn't have LFS & Sourcetree
@velvet raptor: Thanks. Any public tutorial to set it up out there? Last time I checked there was a mere .txt in the github repo for UGS. Seems you need to set up some kind of CIS + SQL DB as well
Also I don't have any specs for building the .pngs icon sheets myself... A lot of trial & error to get by I guess
@small tundra P4 has an 5 free user licence
Anything above that and you need to pay per licence
Its the most robust and battle tested solution ive used
Epic use it internally.
I host my own Server for myself in my garage.
Hosting options for it arent great.
Yeah I'll likely buy a dedi
Your better off purchasing your own machine in an data center and using it like that.
Yeah I probably will
But if your happy with a local server then do that
Do you connect it to your project or just use the interface?
Yes i use the Plugin in the Editor, but i typically always commit using the P4V (visual client)
Can you configure like.. how much file history is saved etc?
All file history is saved
Not sure about that, cant imagine outside of saving disk space why you wouldnt want to have all history
I use it in conjunction with Jenkins (an Continuous Integration solution) on my server to run automated builds every night.
Jenkins polls Perforce for any changes, if it detects changes it will sync and run an new build.
Not sure
installer should be fine, but the daemon script really only works on that one version
Hm ok probably will run it on a linux box
OVH have some pretty cheap dedis for $70 a month or so
The running costs of a local server can get pretty bad depending on how often you would want to use it and if your running it 24/7
I have a few dedis in my house, but cbf using them
Especially since I am looking at hiring very soon, I think it's best to have them in a DC
@molten marsh What OS you use for pf?
wtf
You don't need anything above $10/month for perforce
- Storage
@small tundra
that's overkill
Read my pins
He does if he wants a dedicated server.
??
Why would you want a Cloud-hosted Dedicated Server just for Perforce?
Unless I am misunderstanding this whole conversation
At this price, you might as well do freaking Assembla
It's actually going to be cheaper with unlimited space
And I'm not a big fan of them anymore
It's 4tb storage
Yeah, I just reread this conversation. I don't see any justification.
2tb raid
K?
My game files are like 100gb
Is this just for Perforce?
my server costs are already $500 a month or so
That's the point
i am doing all my SVN stuff locally ๐
@haughty ember Keep in mind, for cloud providers dedicated can also simply mean dedicated resources.
You don't want anything hogging up that bandwidth
12 tb storage, i just backup the main HDD to another HDD
Or using precious resources
When you're trying to access/write to the server
I understand that @neat grotto
Anyway I already got the dedi, anyone know the best linux OS for pf?
Yeah. If you're getting a dedicated server for Perforce, I'm assuming it's because you are expecting high volume and frequent activity.
Newest Ubuntu
I use Ubuntu. No evidence that it's the "best" for Perforce, but it works great for me.
Only way to go
It's definitely a lot faster than WIndows
But, if they have windows and also it's free, why not
Simpler
Ok cool
It's funny, only reason I jumped on this was because I am a waiting on an integration
@neat grotto High storage VPS servers are pretty pricy anyway, for 1tb VPS i would be looking at $40 anyway
Nah man
I'm paying $40 for a 8core 3.5ghz 4tb hdd dedicated
Who are you leasing from?
You are not looking at the right places
Im using OVH
Reliability, availability and performance. With a So you Start dedicated server, you can develop your business.
Oh weird. They have two websites.
this is for older hardware
Ah.
you can get really good deals
i have my sydney and europe servers with the main ovh
and i use usdedictaed.com for my US central servers
waiting for OVH to open dallas servers
Cool. I have no experience with them, but I know a few people who use and recommend them.
you dont need SSD for pf
ok
Yeah, that explains the price.
I mean, obviously you have all the knowledge
No, you definitely don't need SSD for Perforce, but it sure is nice.
๐
I use DigitalOcean for my servers. Love those guys.
They're not the cheapest option, but they're pretty affordable these days and the service is great.
i am using ec2 free tier for my startup game. it works well so far but i just crossed my 30gb -mo threshhold lol. so $10 / mo this month :/
i use vultr for my discord bot and thats about it
yeah @jolly fog if you're on a budget, use vultr
they have low ghz servers, (2.2ghz) but it's decent for testing ue4
Again, you are spreading false info there
You don't use Vultr "just because you are on a budget"
i was looking - do they allow 1 gb ram? trying to find a cheaper option for it.
Yes
You use it because it gives you exactly what you need for a Perforce server at a great price.
Looks like Vultr pricing is on par with DO these days. That's good stuff.
Yeah vultr offers sydney servers
Being in NZ it's good
DO doesn't offer syd servers
And digital ocean offers a load balancer, which I use for my games API
Really? I didn't realize. That's surprising to me that DO isn't in Sydney yet.
yeah thats why i was always strongly against using DO
This is what you need and why you need it
I mean, raid 0 HDD is fast
I'm not worried about SSD vs HDD performance tbh
I mean, if you have some of those Black Afterburners
It's only source control
WD Raptors. I remember those.
Ah, yeah those
If you're working in this type of situation, your network is probably going to be the limiting factor over storage, anyways
They were so beast back then
imo u only need an ssd for the system
I have 1000mbps and i think the server is 250mbps
Yo, you all can just read it from the horse's mouth, exactly what is needed and why
its better to run hdds in raid but its not a huge differenece
SSD isn't needed
Although Perforce does not recommend any specific hardware
Straight from the horse's mouth?
๐ค
Lol
its rly convenient when u put the os onto an ssd
much faster startup times as well as overall performance
We are talking about SSD perf with perforce
oh mb
Either way, the server is bought and i'm using it. I wasn't asking for hardware advice
Yeah that got out of hand.
Now to see if allars script is up to date ๐
I don't think he updates it.
But it probably wouldn't take much modification to use.
I haven't used it in a long time.
Perforce has an official package now.
I find it easier to use that now, honestly.
It's pretty painless and automates a lot of the setup.
Plus it defaults to SSL.
Oh ok cool
Setup for Ubuntu is fast enough I could write a quick guide here and pin it, if you like.
Honestly that would be awesome
How To Install Perforce Helix On Ubuntu 16.04
Create a Perforce package config file.
$ sudo nano /etc/apt/sources.list.d/perforce.list
Add this line to the file:
deb http://package.perforce.com/apt/ubuntu/ xenial release
Import the Perforce package signing key.
$ wget -qO - https://package.perforce.com/perforce.pubkey | sudo apt-key add -
$ sudo apt-get update
Install the Helix Core package.
$ sudo apt-get install helix-p4d
Run the configuration script and follow the instructions.
The path to this script should show in the terminal after installation is complete.
$ sudo path/to/script.sh
That is, of course, not counting initial server setup and security.
I hope it's helpful. ๐
Installing Perforce is way more straightforward than it used to be.
That would work for 18 ?
I don't know. In theory, yes, and you may only have to change xenial to the new name.
Sure thing.
Their docs don't mention 18.04, so I'm not sure if that's just outdated docs or they haven't released a package for 18.04 yet.
Let me know.
Got it installed ๐
๐
Anyone have a pf ignore list?
@small tundra You using a source build or the launcher?
source build
This should get you started (in your .p4ignore file):
Saved/
Intermediate/
DerivedDataCache/
*.pdb
obj/
*.vcxproj
*.sln
*-Debug.*
FileOpenOrder/
I think I got it from one of Allar's blog posts. It worked well enough for me, but you may need to tweak as needed.
Thank you. I don't want to move my game's directory, I can add a directory to a workspace right
Also does PF keep local copies or is it all remote?

Anyone here using perforce? I'm having trouble getting setup locally. I've been reading guides/watching videos, but it seems like the software has changed.
I'm clueless on how I map my unreal project to my separate workspace directory.
Ok I guess you were literally just talking about this. Let me scroll up and see if there's anything relevant
i use git svn myself, works ok. had to get the .gtignore file working so the svn doesn't take up too much space over time with each iteration
you might need to just make a login? i believe it's called helix or something liek that
I'm just running the perforce server locally. I've created depots/workspaces but I can't for the life of me figure out how to add the folders/files from my project to the workspace.
Yeah I have the server and client both working
Except for the part about not being able to add anything from anywhere.
i believe SVN works in the way where all files and folders are auto added to the SVN list of watched, unless you specify .gtignore files
.vs/
*.sln
# Ignore generated folders
Binaries/*
Build/*
Intermediate/*
DerivedDataCache/*
Saved/*
# Ignore the same things for plugins
Plugins/**/Binaries/*
Plugins/**/Build/*
Plugins/**/Intermediate/*
Plugins/**/DerivedDataCache/*
Plugins/**/Saved/*
# Don't ignore icon files in Build
!Build/Linux
!Build/Windows
# Ignore lightmaps
*_BuiltData.uasset
``` here is my file that i adapted from Zeblote's version, i use this to ignore engine created content, as well as binaries and Visual studio content in the .vs folder that it uses.
so all you have to do is specify a root project folder, and then add that ignore file in there. then it's a matter of using the documentation to see any trivial things you might be missing. adding files to repo seems fairly simple task - did you check a guide or manual?
Who are you talking to @jolly fog ?
I never said anything about using git or svn
ik but the ignore file is similar
this might be what u need https://www.perforce.com/perforce/r14.3/manuals/p4v/files.add.html
I followed this: https://docs.unrealengine.com/en-us/Engine/Basics/SourceControl/Perforce ... but I don't have any add files visible which I can add
Yes already came across the one you linked and had the above issue
it's right below the workspace header
in ur link
and did u get perforce for free? how is it? it good?
i am considering trying
perforce is free for teams under 5
No, I see where you're supposed to do it... I've tried enabling/disabling every filter in the workspace, but I don't see any files. Only the 3 initial folders I added per the unreal guide.
Josh is here ask him he has it
@small tundra u got perforce installed right?
congruent is trying to add files to his repo sys
Sure, just keep in mind I'm just trying to test locally. Ideally I'd buy hosting or roll my own cloud box somewhere.
i just installed pf
still setting it all up
"we recommend running a case-insensitive Perforce server. "
did you manage to add files yet
lol... I've reinstalled like 3 times now
This is the most unintuitive setup. I might just go with git since I'm already very familiar with it.
Yup
Exactly
Congruent if u test locally, u can simply make a HDD backup. that's what i do
i have a 12tb sys, 6tb main, 6tb back up HDD
saves the cost of the cloud backups
in case data is lost - unless there is electical surge that fries all hdd, it will be ok
that's a lot of space... I need some tbs to work with ๐
u can do like global backup to cloud every year or something
I need a 12tb ssd plz
lol
๐
6tb wd green hdd that i bought from amazon
yes
i spent like a fair amount for the hard drives actually lol
i forgot how much
I heard there's some git integration that's better suited for handling binary files. About to do my 4th and final uninstall of perforce and pursue that route.
A new feature or something.
@small tundra Are the perforce windows applications wicked slow and unresponsive on your system too? or is that just me.
congruent i dont notice any such diff feature for binaries in my github dekstop app
umap is changed, binary doesnt show
plaintext always works great
I don't think it's part of your standard git. It's called like git large file system or somethign
yeah.. thats normal
Binary changes are nigh impossible to work with
@jolly fog No version control will show you the contents of binary change because 99% of the time you're looking at an entirely different file, and the contents of the file are still unreadable to human eye
Accurate binary diffs are a specific field entirely, that's useful for updating software for example
yeah.
i am using the blueprint diff tool for blueprints, and opening level blueprint and looking at the diff in there for umaps
it still accepts commits
for the uasset files
i just commit uasset in groups and cpp and h in groups
because when i wana revert a change with a .uasset, sometimes theres an error
good idea
i am still learhing the whole systesm like u and josh
so yea
just got into it myself
you're using perforce?
because i am learning cpp now
no it scared me
too lofty and big
i like simple stuff with low footprint
Oh. Yeah I've been using git command line for 10 years and my main goal right now is just the redundancy and easy reversions
i dont like the git cmdline because typing takes too long as opposed to clciking and using gui so i use github desktop haha
havent u used the git lfs thing before if u used it that long?
because i thoguht it was around for a while
No... I've only ever had to commit source code
oo ok
What i don't get is why Perforce cloud is so expensive
especially compared to GIT LFS and PlasticSCM
because perforce is ridiculous expensive
Wow I just discovered that there's the ability to install a linux sub system directly on windows 10. Halleluiah!!
/
lol, it comes pre-mounted to your windows drives... Sweet no more dual booting.
"NOTE: Git LFS is on its way to becoming the industry standard for handling large binary files in Git. With a large community of developers & users of Git LFS both big & small even GitHub.com is planning to make Git LFS a default for all its hosted repositories. " per unreal wiki
right click -> open as administrator
@small tundra did you figure that out yet?
@small tundra still using perforce?
I just finished setting up a private github repo with 50 gigs of lfs storage for $5/month and it's tracking uassets, fbx, png, etc.
50 gb for $5 a month is expensive?
You could just as easily roll your own git server and attach it to a large drive for free
That doesn't include bandwidth
it includes 50gb of storage and 50gb of bandwidth
Say you have a 1gb map
And commit changes 50 times
there goes your 50gb storage
and that doesnt change each month
Every commit to a 1gb file is 1gb storage
Yeah depends on your use case. I'm mostly using it for source control and models/textures
Hmm maybe
A lot of stuff in the map happens on begin play in c++
But thanks for the heads up, I hadn't really considered how that might be an issue
You can archive older content in order to save space with Perforce (https://www.perforce.com/perforce/r16.1/manuals/p4sag/chapter.managing.html#DB5-29674)
Only real problem with GitHubs implementation of git LFS is the 2gb file size limits
Donโt bank on storing any large HLOD files
you will allways run out of space, if you try to use git LFS
you will bloat your repository into "literally useless" quite fast
git lfs just straight up doesnt work well with unreal
as unreal stores everything as binary
the only real option is perforce
maybe svn, but svn will bloat your server too
basically every time you save a blueprint, or any asset, it needs to be saved fully
you open a mesh, change a collision setting, and thats all the vertex data getting uploaded and saved again
Or do use Git LFS, but have $100 worth of storage
and the LFS will still eventually break fairly fast
just due to sheer overload
LFS is not designed for hundreds and hundreds of files at the same time
the DWVR project, wich has a couple asset packs, and is around 6 gb, bloated to 60 gb in a week of development
and at that point, every single git interface would crash due to sheer bloat
in fact, i couldnt do the initial commit in one piece
trying to upload the 6 gb at once, with LFS, already bloats the fuck out of the server
and would overload every git client
P4PORT is already in use by another P4DCTL service.
Perforce Server address (P4PORT) [1666]:
any idea how i clear the P4PORT?
It's Perforce
Yeah it's meant to
The idea with Perforce is, only one person works on a file
So everything is read-only, you checkout, it's writeable, and locked to others
It's not a bad workflow, though it's sketchy as fuck (and crazy expensive and getting worse for a decade)
For things like build files, you can add them to your typemap in order to make them always writable
This is a good setup guide: https://docs.unrealengine.com/en-us/Engine/Basics/SourceControl/Perforce
What does EpicGames use for source control for let's say Fortnite
Perforce for binaries, Git for source code?
Perforce for all
They use Perforce for the engine source (which is then mirrored to GitHub) so...
i can't work out what i am doing with Perforce
i have the server running
but how do i submit changes, everything i do wants to re-send everything to the server
do i have to actually manually add new files in P4V for every file i create?
that seems like bad workflow
how do i stop perforce from marking stuff readonly?
Hey Guys!, I Have a big question, so he'res the thing, I have a project of 50+ gbs without source control, I started to work with a team so I want to do source control, I was thinking about using gitbucket, ive already payed 100gb storage there and the upload is giving us some issues, is there any workaround that you guys have done
hi @jovial sphinx
you can consider using local backups - for your git project. to save on cost and test.
i am currently using this scheme here for my setup
if you set up your .gitignore file - you can prevent your large project from taking up even more space - only include your most important files like your important blueprints or .cpp / .h files
all binaries and unreal generated files can be safely ignored for SVN
if you ever need to expand to cloud storage, you can use either perforce or github but since you already paid for your service then you can just consider using that service with their syntax until your subcription runs out and maybe consider migrating. but here's what i generally do that saves a ton on cost : simply get a 12 TB local setup. 6tb main, 6tb backup. have a github .git folder as SVN for your root project dir. make your commits as necessary. then what you can do is just back up everything up from your main drive to your backup drive, say every month. you can also do a global cloud backup say every year. this is the way i have found that is most cost effective while allowing redundancy. the probability of electrical discharge affecting all HDDs is low, and usually only one HDD at a time is prone to failure. hope that helps!
oh and if you need to use cloud for collaborative work - simply confer with your team mates and possibly have them split cost or go thru your corporation for cost splitting. that is my only recommend on collab necessity
So whats happening is that when im trying to upload git-lfs files on my repo, is giving a error: batch response authentication required, the upload starts working but stops after a while, the server is ssh configured because of the big files in the project
I still have a doubt about redirectors, are we supposed to let them and commit, so another files that arent locked arent changed?
and thanks @jolly fog
i have not used git-lfs before, i was actually planning on asking people if they had success with it. i hear it is a little tricky to use. is it possible to use normal git for commits on large files locally, u guys know? the only reason i would ever try cloud commits is for collab stuff i think. actually. additionally if anyone has any ideas or suggestions to my git procedure above let me know if you can.
can someone help me with Perforce
i am a little bit confused on what i need to do to use UGS
Project needs to be in the same directory as the source version of the engine
(both of which should be in p4)
Interesting, looks like they updated it so you might not need to do that any more
https://docs.unrealengine.com/en-us/Programming/Deployment/Unreal-Game-Sync/QuickStart
@brittle raft are you sure about that? I have git LFS with 100gb storage and it is telling me the maximum file size is 2GB : /
ill check, theres a fair chance im a moron
Fairly sure all changes made on files before marking them as LFS would still count toward the non-LFS size
Adding & removing a file in Git basically stores twice the file
nope it is LFS
apparently there is just an individual file limit
Git LFS: (0 of 0 files, 985 skipped) 0 B / 0 B, 7.84 GB skipped [624e8526a019e0aa0efdffe90cc1b5d59baa66c83ef13f02eb98cda3cde9395f] Size must be less than 2147483648: [422] Size must be less than 2147483648
๐ฆ
Well, 0 LFS files ?
@smoky trench what do you mean? i have it set with my project in a subdirectory
do i need to actually put it in the root directory
i migrated a file from one project to another and i accidently replaced a different one is it possible to undo that
if you have it in source control sure, if not then probably not
@long mural I feel like you and I are always running into the same issues.
well different issues same systems.
Hey guys, im new to game dev and i'm wondering whats a good version control that can be purchased on a server for people to work on from all over the world
Something that doesnt require port forwarding if possible
hey, can someone help, im trying to use a perforce server, i have rented one from DigitalOcean and i have read Allar's Blog, but i can not get P4V to connect to the server, link below is the read me that im following and i'll post my error picture. https://allarsblog.com/2014/09/24/setup-perforce-digital/
A common question with Unreal Engine 4 (UE4) is "how do you set up version control?" I think this is a very important question and if you have never used version control for your projects you are crippling yourself from the start. I won't go into details about why you
P4v
is the server actually running? did you get the ip and port correct? are you sure you didn't accidentally firewall it?
if you're using ubuntu his thing won't start the server on boot
yeah im using ubuntu ,start it but console? and didnt create a firewall
this firewall?
should i use Ubuntu 16.04.4 x64 or 18.04 x64??
I used 18.04
but then you have to put binaries there manually instead of being able to use package manager
Can anyone help with what's wrong here ? I've downloaded the project from Perforce, added a new material as a test, it won't upload it to the server though, error shows as :
Client richie_DESKTOP-JCCHMF7_907
Update 2018/06/23 22:19:57
Access 2018/06/24 17:51:54
Owner richie
Host DESKTOP-JCCHMF7
Description Created by richie.
Root C:\Users\Admin\Documents\Unreal Projects
Options noallwrite noclobber nocompress unlocked nomodtime normdir
SubmitOptions submitunchanged
LineEnd local
Stream //streamsDepot/mainline
View0 //streamsDepot/mainline/... //richie_DESKTOP-JCCHMF7_907/...
Type writeable
Backup enable
specFormatted
func client-FstatInfo
Path 'C:/Program Files/Epic Games/UE_4.19/Engine/Content/...' is not under client's root 'C:\Users\Admin\Documents\Unreal Projects'.
Client 'richie_DESKTOP-JCCHMF7_907' can only be used from host 'DESKTOP-JCCHMF7'.
you added the material to the engine content and not the project?
It's inside content/levels inside the project
As the other team members added testing materials inside that folder, they worked but my test doesn't
selected the wrong workspace in source control settings?
I only have one workspace, it also connects fine when i setup source control
strange
Checked settings and it states "connection to source control was successful!"
I then made a new material as a test, i then get the above message when i try to submit
It has a red tick on the material, just like the other test materials the rest of the team made
Ok, so i deleted the project, used P4V to redownload, setup source control and it works, I really hope this thing is reliable though in future ...
Might be able to help. Can you post a screenshot of your workspace settings? (Right click workspace, edit workspace) @strong shale
Oh ugh i missed your last message sorry.
Anyway, one possible cause of that error is if you're trying to submit a file that isn't within the workspace (within your actual project folders on your pc)... Or something along those lines. At a guess you might have moved or accidentally located your test material in the engine data folders instead of your project folders
Same setup, same location, just didn't work first time round
People how do you mark big files as git LFS?
they all have same file format .uasset
or I missing something?
should be automatically assigned as LFS if over a certain size I think
@wheat patrol right ?
No

You need to make a .gitattributes file and manually specify
aah
This is one I've just been adding to over the last year or so as I encounter new files that need to go onto LFS
you can start with that
Pretty much. The rule is anything over 10mb, but we work with so many binary files anyway that for non-code stuff there's not really any benefit I'm aware of to not put it in LFS
It's not like you can diff anything imported into Unreal using Git
@wheat patrol isn't it faster to sync not in LFS? or something
I am trying to add suffix _L at the end of a big files. Not sure if it's good idea.
*L.uasset
I donโt think itโs faster. Not that I know of anyway.
huh
if you modify an asset someone else has checked out using "make writable"
how do you revert it and get back to the previous one
it doesn't show up as pending changed
check out isn't working since someone else got it locked
or force get revision
get revision appears to do nothing
force
Can I make source control on UE4 work with Helix TeamHub or do I need Helix Core or some other version of it? I am trying to get collaboration working and am a bit clueless about how to do it.
You need Helix Core.
@jade arch that's a super generic error; like it says, you need to open the source (project) and try building it there.
It will probably fail, but you'll get an actual error message.
Does unreal engine 4 support this http://hacknplan.com/ for source control?
What
Yeah :/
@loud fossil its not a source control thing, its to handle tasks and similar for the team memmbers
highly recomended, i use it myself
Hello there, is there is a way to make Perforce know a .uasset is a blueprint through its p4 typemap thing? I mean beside keeping all of our BPs under the same folder which we would try to preferably avoid.
no, the asset type contained in a uasset is not possible to determine outside the engine
you can use the standard naming convention (BP_Something) to your advantage though
like this? //depot/...BP_*
I'd add the .uasset at the end just in case
hot damn! Thanks ๐
Hey all, I'm completely new to this and would like to start using Source Control in my project. Can you recommend your tools and hosting service of choice that's free and fairly easy to use?
there is no good free solution for unreal, if you want to work with more than one person
Nah, I'm not looking for a collaborative solution here. Just some version control for my personal project that'll give me the safety from breaking things or regretting changes I've made...
then you could just use gitlab
(github is a much better site than gitlab, but their repository size limit is too small)
If you use an older version of a Perforce server build you get 20 users and 20 workspaces for free. Newer client builds work with older servers.
And I use Vultr for hosting, I pay $5 / month for 125 GB storage. Not free but as cheap as a cup of coffee a month
you can still get 20 workspaces with the new one
though people have to share users which is questionable
5 user limit right?
yeah, 5 users, 20 workspaces
we just have people make a workspace with their name and then use that column to identify who submitted things ๐คท
really enjoying local sourcetree build. coupled with monthly direct backups of all files to a separate drive! saves cloud costs for me. (6tb main, 6tb backup)
was able to use the reset current branch to this commit once to go back when i made a mistake and it even reverted the binary files properly. good stuff! i wish i used source control before in my work. never going back!
smartgit is another really good git client
if i were to use GIT + LFS with my UE4 project, should i have a separate repository for source assets as a submodule? or have all in one repository?
Completely separate repository, imho
Not even a submodule
You don't want your build server or even programmers to have a full repo of gigabyte-sized PSDs
you can always opt-out submodules though
i still can't decide between perforce, plastic and git+lfs
@haughty granite Perforce
git + lfs has been nothing but trouble for me
Perforce is old and clunky but it works perfect
plastic is awful btw
perforce all the way, git can be good but good luck to everyone on your team figuring it out
git all the way over here, and sourcetree too as thats the same ui across platforms, which greatly simplifies helping newbies with their git stuff
no custom build tho, didnt even know that was an option
git is great for code but becomes a disaster as soon as you have multiple people working on assets or blueprints
LFS turns it into a centralized system with file locking tho
I need to switch to Perforce, the git LFS 1GB cap has been a nightmare for me. Plus git has a 2GB max limit.
Git has no limits
Specific Git providers have specific limits
Gitlab does 10Gb, etc
ooohhh........
Git is open-source software, you can use it anywhere anhow ๐
Yeah, bitbucket specifically has a 2gb limit
I just assumed it was imposed from git, not bitbucket, strange choice from them.
ok, this changes everything.
Nah, it's 100% the providers not giving out free disk space
That's really helpful, thanks @brittle raft
no wonder they dont
LFS bloats the server and the client a lot
if you re-save your 4k texture, then its 80 or so extra mb to the server
even if you did nothing but just resave it
Github just offers you to buy more space
It's not like storage space has a real cost these days
If you have more than 50-100GB to version, yeah, maybe ๐
Less than that works perfectly fine though
@carmine walrus in theory it does, except the locks are unusable slow
I don't have time to wait for 5s every time I save a thing in the editor
^ real issue with LFS right here
with perforce it's just instant
also the git plugin is much less reliable than the perforce one
does perforce diff binary files then?
if not, how is that any better than with LFS if you save big binary files
it doesn't, but it prevents merge conlicts from happening in the first place
and it was designed like that
and is integrated in most programs that matter with that functionality
LFS is just an afterthought
it compresses the binary files so that's already an improvement
and it doesn't keep bloating your local storage with old, unnecessary revisions of binary files like lfs does
and it has the option to only keep the latest revision for some file types, which is really useful for things like lightmaps and binaries that take forever to build but can be regenerated at any time
has anyone used Hansoft by Perforce?
currently using git and hacknplan
never heard of perforce before. #someoneSellMe
(i'm working in a 2 person team). lol
at some point facebook had a 30-40 gb git repo
@haughty granite perforce has a compressed representation to handle binary files
so if you have a 100 mb texture and only change some data in the header, it will detect the difference and not store the whole thing again
git LFS stores the full file on every version, it doesnt even attepmt to compress
my DWVR project bloated to 60 gb in a week, with LFS. At that point, i was unable to do anything as the sheer level of bloat would crash every GIT client i threw at it
meanwhile the perforce repo, of 1 year of work, is 30 gb
the actual project on-disk is 6 gb
this only matters for big UNREAL projects
LFS is nowhere near as bad on unity, where you can save tons of things as text files, and only really have the textures/meshes/etc original files as binary
@tame lion Yeah i have (back when it still was just Hansoft). tbh i think Hansoft is total overkill for an 2 person team. Better stick to H'n'P for PM. For SC p4 is superior to git by far imho. at least for games.
I use perforce for source control and H'n'P for project managment myself and i'm pretty happy how it works for me.
i really like hack n plan
its the one i use
i guess it would scale up to a team of 5-10 people max
after that you probably need a heavyweight like Jira
yeah Jira and Hansoft scale nicely to large projects
Has anyone here set up Perforce as Linux on Digital Ocean?
Anyone had any luck with UnrealGameSync? Ive set up everything correctly that I can find to setup but I still get this error every time I try to open a project "Could not find engine in Perforce relative to project path"
@buoyant ice I'm trying to build UGS as well, do you know what kind of png sheet is expected for Engine\Source\Programs\UnrealGameSync\UnrealGameSync\Resources\Icons.png?
(as well as setting up the installer, since the .wixproj is missing)
Is UGS only for source builds or can it be used with the launcher binaries?
Looking through the docs and it sounds like it's only for source builds, but I'm not 100% sure.
Yes pfist it's designed to distribute source editor builds. Don't think you can make it work with just the binary but who knows tbh. It's not very well documented
Ah, that makes sense. Bummer, but thanks for the info.
At a guess, you might need to have your project directory next to the engine directory. So you have
root/engine/source
root/project/source```
Generally, that's how projects using a source build are assumed to be laid out.
That is the case (well at least was pre-4.19) not sure if that has changed but I noticed that in 4.19 some of the UI has been updated so it might be different now
@neat grotto Sort of, not exactly.
It can download pre-made binaries from a network location.
Internally, we have pre-made binaries built for designers/artists to automatically sync through UGS.
So, ostensibly, you can do that with a launcher build.
You'd have to take the launcher-provided binaries and package them up the way UGS expects them to be on the network mapped drive location.
You'll have to look at the UGS readme and source code to work that out.
@fiery prism You are right. Line 169 in UnrealGameSync/DetectProjectSettingsTask.cs
๐ฏ
@dusk dove sorry one last question, so in the editor you use perforce as your source control server not git
yeah
I don't have a git repo ๐ค
Oh I thought you said git for c++
well not for the project
Perforce for assets
the engine is a git repo
since I have to be able to get changes from their github
the entire project is in a p4 repo
Oh but as far as my custom cpp classes all that goes into perforce
yeah
Is the codebase and assets both pushed through the UE editor
Or UE editor pushes assets p4v pushes code
the editor plugin pushes uasset changes only
but usually I just use p4v for everything
and have the plugin check out changed files / prevent editing locked ones
Oh ok. Yea Iโll probably just do that, seems weird to manage from 2 places
got some resources here that somehow seem to be missing from all tutorials
# Ignore VS stuff
.vs/
Brickadia.sln
# Ignore generated folders
Binaries/*
Build/*
Intermediate/*
DerivedDataCache/*
Saved/*
# Ignore the same things for plugins
Plugins/**/Binaries/*
Plugins/**/Build/*
Plugins/**/Intermediate/*
Plugins/**/DerivedDataCache/*
Plugins/**/Saved/*
# Don't ignore icon files in Build
!Build/Linux
!Build/Windows
^ p4ignore file
binary+l //Brickadia/....a
binary+l //Brickadia/....ai
binary+l //Brickadia/....blend
binary+l //Brickadia/....exe
binary+l //Brickadia/....dll
binary+l //Brickadia/....dylib
binary+l //Brickadia/....fbx
binary+l //Brickadia/....ico
binary+l //Brickadia/....lib
binary+l //Brickadia/....jpg
binary+l //Brickadia/....pdf
binary+l //Brickadia/....png
binary+l //Brickadia/....psd
binary+l //Brickadia/....sbs
binary+l //Brickadia/....sbsar
binary+l //Brickadia/....so
binary+l //Brickadia/....spp
binary+l //Brickadia/....ttf
binary+l //Brickadia/....uasset
binary+l //Brickadia/....umap
binary+l //Brickadia/....wav
binary+l //Brickadia/....zip
text+w //Brickadia/....bat
text+w //Brickadia/....blb
text+w //Brickadia/....bls
text+w //Brickadia/....cap
text+w //Brickadia/....cpp
text+w //Brickadia/....cs
text+w //Brickadia/....h
text+w //Brickadia/....html
text+w //Brickadia/....ini
text+w //Brickadia/....inl
text+w //Brickadia/....js
text+w //Brickadia/....md
text+w //Brickadia/....p4ignore
text+w //Brickadia/....rc
text+w //Brickadia/....sh
text+w //Brickadia/....txt
text+w //Brickadia/....uplugin
text+w //Brickadia/....uproject
text+w //Brickadia/....yml
^ typemap
you'll see what to do with these when you follow tutorials for setting it up
both will need to be adjusted for your project but it's a good starting point
(replace Brickadia with your project name)
awesome
thank you
guess i'll be upgrading to centos 7 since centos 6 reaches it's end of life in 2020. lol
@dusk dove I got my server all setup at linode and opened port 1666 from iptables
As far as my workstation goes
Iโm logged into p4admin with the super user
I should setup a new user that Iโll use to push files right
super user being your first user in p4?
@iron bronze @fiery prism So does the perforce stream have to include the unreal source as well then? I have tried it with and without and still always end up gettin ghte coul not find engine in perforce relative to project path error
I don't think it needs to actually be added in p4
Can you share your shared project/engine dir?
I currently have the source engine downloaded and working. In its root directory is my
SNM_Game being my project directory with the uproject file.
The Perforce Directory root is SNM_Game
Well, it does specifically mention perforce.
But it looks like in the code, they are looking for the unreal stuff inside perforce.
I'm not sure how you fix this.
PerforceClient.FileExists(NewSelectedClientFileName.Substring(0, EndIdx) + "/Engine/Source/UE4Editor.target.cs"
So its basically wralking backwards down the path from the project file asking perforce if it has the file.
so it must need to be part of perforce?
yeah thats one of my frustrations at this point is I dont want the entire engine sitting in the projects perforce depot
actually trying just that lol. Realigned my depot onto UnrealEngine and added only the file its looking for
ok that wont actually work because of code.
@dusk dove yes super is my first user
i setup another user for myself
as well as my team members
looks like it wants the perforce structure to be like //depot/UnrealEngine/Project/
Because if it hits the // it errors out instead of looking for that file.
ok even re-structured it doesnt work. dont get it and ive wasted way to much time on it, which is sad cause it seems like a great tool but between super vague documentation and stuff just not working even when following what documentation there is ..
yeah mostly binaries
but UGS has some other nice features like tracking branches and versions so things dont get mixed up, and the ability to comment on other peoples commits etc.
Oh that does sound neat.
I know I can just package the editor and have them download the zip etc, but some of our artists are super not comfortable with installing things etc so UGS sounded like a perfect solution
What I'd do is setup some kind of CI that will shove binaries into a ftp on successful build, then having a script that'll pull from ftp
Then you also get the benefit of CI
Plus, that's a perfect setup to have a symbols server (more useful on a team with a shipped game tho)
yeah... i just dont do pipeline stuff lol, my experience is all in UE4 not the support for it, so its getting frustrating loosing so much time working on this stuff ๐
Were trying to figure out hiring someone to handle things like CI and code for external elements like our online backend etc but its tough on a small project.
AAAAAAnd got it working.
The strings in the UGS source are hard coded and there was a case mismatch between what my vbersion of UE4 was naming files vs whats in the source...
Chnaged that and it started working
Appearently it does need the entire engine as part of the perforce repository which is fun and exciting. Syncing 120k files now.
@buoyant ice You can have the engine sitting in a seperate stream and you could just import it into your project's stream. That's what we ended up doing
That way you don't have an engine per stream and allows you to swap the engine version globally with ease.
Import+ is the type you want to use
https://www.perforce.com/blog/how-share-components-or-common-code-import-paths
Thanks Jack! Ill take a look at this. cause yeah its not ideal at all to have the engine in the games stream
Completely agree, will warn it can be a bit more of a pain to branch code as even if you branch your project they will both share the same engine head. This could be undesirable behaviour
Anyone encounter this when setting up Helix Swarm?
I set chmod -R 755 on /opt/perforce/swarm/data
And restarted Apache but still canโt write to directory
@tame lion chmod 755 does not grant write access to swarm, you can either add your swarm user to your apache (could be www-data or httpd depending on your distribution) group or change the rights to something like 766
See https://en.wikipedia.org/wiki/Chmod#Numerical_permissions for reference
In Unix-like operating systems, chmod is the command and system call which may change the access permissions to file system objects (files and directories). It may also alter special mode flags. The request is filtered by the umask. The name is an abbreviation of change mode.
oh, i didn't realize it created a swarm user on my system itself
i manually created a swarm user with admin permissions within perforce engine core itself
well through pvadmin
*p4admin
i woulda thought when the config script ran it woulda set the default permissions properly
there is indeed no swarm user on my system
oh ok then, you will just need to add your perforce linux user to the apache group
unless i somehow skipped over that the instructions never mentioned creating a swarm system user. not to mention httpd is running under the apache user so not really sure what a swarm system user would have to do with anything
will do
could you paste the output of "ls -la /opt/perforce/swarm/data" please?
i'm ssh'd into a centos 7 server at linode btw, not actually running the server on macos. lol
thanks, now you just need to add your perforce user to the apache group: "useradd -a -G apache perforce"
and then "chmod -R 765 /opt/perforce/swarm/data"
which will grant write access for everything under /opt/perforce/swarm/data for any user (such as perforce) who belongs to the group apache
Thanks. Just clocked out on my lunch once Iโm back in the office in an hour Iโll see if adding perforce user to the Apache group and updating permissions on data to 765 resolves things
๐ค
usermod -g group_name user_name
added user to group
updated permissions
restarted apache
same error
@iron bronze
Try "members apache"
think i found the problem one sec
fixed
SELinux on CentOS 7 configuration
https://www.perforce.com/perforce/doc.current/manuals/swarm/index.html#Swarm/setup.packages.html%23SELinux_on_CentOS_7_configuration
if anyone else runs into this issue ^
I missed this step when installing, gotta setup SELinux
Hey guys is there any cloud based perforce servers?
I kinda dont want to setup my own servers
assembla.com offers some IIRC
^
wow its pretty expensive
pricey though
assembla is the only i know of
i'd check out linode or digitalocean
and install p4d on there
if you go that route and need help setting it up hmu, i literally just spun up a vps on linode yesterday and got p4d setup and running on their
$10/mo
i THINK https://www.assembla.com/home is so pricey cause i'm pretty sure you can have more than 5 people, so in a way, you're paying for the license and the hosting
Secure Source Code Management in the Cloud. Assembla is the only multi-repository platform in the world offering NextGen SVN, Git and Perforce, all in the Cloud.
sooo if you're under 5 people it's probably not worth it, since you can just host it yourself for up to 5 users for free (minus hosting fees)
wtf assembla is more than 20% more expensive than the perforce license which is already overpriced af
right
install helix core on a vps and use it
don't have more than 5 developers
prob cheapest route
or setup in-house if you have a cheap machine lying around and don't mind the traffic coming in and out of your network lol
ill do digital ocean
which is the user limit old p4 server used to have for free
so they're charging you more than the license... while not actually reselling a license
lmao
max
damn haha
whats helix core?
version control software
perforce is the company
helix is what most people refer to here they just kinda use the name perforce interchanably
yea
did you use a tutorial?
I like how "helix teamhub", the cloud thing they offer directly, does not actually allow you to use a helix repository
๐
Helix Swarm is a code review and collaboration tool from Perforce Helix that brings greater productivity and visibility to your enterprise.
this seems kinda cool
got it installed on the same server running p4d
just to play with it
Swarm is very disappointing if you're hoping to give your Perforce depot a GitHub-like experience.
I found it to be very limited and not offer enough value to justify hosting costs.
well i just through it on the same server so i mean i'm paying for the hosting anyways, doesn't seem SUPER useful. i just kinda like it cause i can access code online from like my phone
i don't plan on using the code reviewing stuff, which is it's main purpose
looks kinda like it's striving to be the github of helix or something
except not lol
That's what I thought before actually trying it out. lol
yea it is alot different
Yeah, different mindset and target audience entirely.
unforuntately
And doesn't offer even half the value of GitHub.
^
I really wish there was a GitHub-like for Perforce.
Git LFS is getting better every year, but it's a long road.
welp time to build the github of perforce.. lol jk
lol
Easy peasy.
We could build it in a weekend and host it on DigitalOcean for $5, right? 
I don't think they will.
i HOPE not
I was shocked by the acquisition at first, but upon reflection this seems like a largely good thing.
i use github alot at my desk job
As long as Microsoft doesn't get involved with the creative direction of GitHub, I think we're good.
GitHub is so damn good.
i give them white card to mess with the github client c:
If Git LFS gets really good at handling binary assets and GitHub builds a first-class UI experience for handling binary assets as well as it currently does for code, we're in for a treat.
You can certainly use GitHub for UE4 projects right now. It's fine for small projects like game jams, sample projects and tutorials.
But there's so much of the GitHub experience missing from binary assets, unless it's images.
Images and PSDs are treated as first-class assets already. Previews, inline diffing, etc.
At least Perforce has gotten much easier to setup and secure.
The package-based installation is really great.
Does a lot of heavy lifting.
unless you want to put it on a modern version of ubuntu
they still don't have packages for 18.04 3 months later
ew ubuntu
jk
ubuntus cool, i'm more accustomed to rhel distros though for server
yea i just started using perforce but i must say installing from package was pretty damn easy. and worked on latest version of centos7 so i'm happy with that
Is there a p4 admin still?
it's annoying how there are so many linux versions
I have no idea which one I'm supposed to use
so I just picked a random one
what do you mean?
there's no specific reason for why I'm using ubuntu lol
If you don't know which version of Linux to use, Ubuntu is generally a safe bet.
ahhh, yea i try to stick with centos cause i've used it for almost 10 years now for server os for pretty much anything
It's common, well-supported and comparatively easy to use.
man, i remember back when Ubuntu used to ship you a free install discs upon request
*disc
P4V is ugly and unwieldy for sure, but it's serviceable.
I've always found Perforce to have a very confusing and unfriendly UX, but it's very good at what it does.
I use it begrudgingly. lol
bewhat
It means reluctantly.
I'm using Perforce because it's reliable, but I don't enjoy it.
Helix TeamHub seems like such a wasted opportunity.
Why is that @neat grotto ?
TeamHub seems designed for companies that use Perforce but have Git-loving developers who want a familiar experience.
Which is good.
But I think not offering cloud-hosted Helix depots themselves is a missed opportunity.
TeamHub could have been Perforce's answer to GitHub.
Which could have led to more developers trying Perforce.
Yea I never heard of perforce until I got into ue4 development and some suggested it
Was just gonna use GitHub like I do for everything else lol
so first time upload to perforce here...lol should i not have added my binaries directory?
seems to be taking quite a while just getting through that folder, not sure if this has to sync the binaries folder every time or just the first, like how often do the files change in the Binaries folder i guess
so i decided not to add the binaries folder to my repo
but now i can't open my project by building from visual studio or by launching from epic editor
unable to access the binary files
1>UnrealBuildTool : error : System.UnauthorizedAccessException: Access to the path 'C:\Users\mark\Documents\Unreal Projects\RPG\Binaries\Win64\RPGEditor.target' is denied.
@tame lion I assume you're using a custom engine build alongside the project?
Ohh.
very familiar with git
Oh! Sorry I misread your file path.
so maybe i'm thinking of this workflow weird
I totally feel you.
i deleted my workspace tried to compile, still didn't work so i recreate my workspace and pointed to my project and now they're not synced up right and still can't compile
lol
I used GitHub for years before learning Perforce.
lmao
One sec, let me fetch my p4ignore. I think we ignore binaries, too.
i have binaries in my ignore
but for some reason i still don't have access to the file when it tries to compile in VS
even juust tryig to launch the editor directly can't launch cause access to that folder is denied i believe
You weren't initially ignoring Binaries, right?
nope
OK, then that directory is probably still set to Read-only.
Perforce doesn't automatically do that when you ignore a directory that was previously versioned, iirc.
Go to the folder properties in Explorer and turn off the read-only flag, then try building again.
\o/
my depot*
damn perforce terminology
then recreate my workspace and depot and map them
cause i already deleted my workspace and can't get them pushing and pulling properly lol
If you're still experimenting and haven't made any significant progress, then yeah, feel free to nuke and start over. Unless you don't mind polluting your version history with a bunch of "figuring this shit out" commits. lol
Dude, coming from Git, the whole workspace paradigm can take a long time to wrap your head around.
Yeah, I meant nuke the depot. lol
i don't care bout commit history
oh ok
i had having COMMIT TEST all over lol
*hate having
i like clean changelogs
Same.
#OCD
lol
how do i go about nuking my depot lol
P4Admin is the easiest way I know.
oh ok
i was trying to do it from p4v
like a scrub
i know i saw it a bit ago, probably when i was poking around in p4admin lol
P4Admin > Depots tab > Right-click depot > Delete 'DepotName'
done
i did obliterate
all revisions
so i didn't have to recreate debot
depot
fail
omg haha
OKAY
TAKE 2
don't do me dirty perforce
gotta upload my whole damn project again -.-
Hahah, good luck! It definitely takes getting used to.