#source-control

1 messages · Page 45 of 1

gusty bobcat
#

and THAT directory is then additionally rsynced to my local server here

#

cause why not? \o/

livid pagoda
#

oh boy thats a lot of Gbs

#

and rsynced too

gusty bobcat
#

well, its not really that much, remember 10 x 10 TB 8-D

livid pagoda
#

well its a lot to me lol

#

like my instinctive reaction is just of sheer shock

quaint obsidian
#

@livid pagoda if it's 5 people, azure devops gives free private repos for up to 5 people with unlimited LFS storage

livid pagoda
#

oh? very interesting... I will give it a look. Thanks! @quaint obsidian

valid olive
#

Basically, you could get started with any Git+LFS based service, and migrate elsewhere if you are not happy with it (including to your own hardware). Since you only pay for what you use, you can kick off, wait a month or two and then look at the bill. It will not be huge.

gusty bobcat
#

@quaint obsidian thats interesting to know :D

fringe abyss
#

can someone point me to some info on how to setup multiple projects on perforce, for a local server?

valid olive
#

https://community.perforce.com/s/article/2437 combined with https://docs.unrealengine.com/en-US/Engine/Basics/SourceControl/Perforce/index.html may help you out.

Basically, as long as you are not using Perforce's Streams feature, the entire Perforce depot is a giant file system (with versioning under the hood). Dump different projects into different folders, side by side. You may also need to update your workspace configuration to 'map' the respective depot locations to suitable locations on your local hard drive, to be able to fetch / submit against the new project folder.

How to setup Perforce so that you can share assets with other on your team.

fringe abyss
#

yup thats where i get lost, so okay i got everything in different folders

#

but how the heck do i manage that from the other computer

#

that now needs to sync both of these projects

valid olive
#

So you have probably edited the clientspec/workspace on computer #1, and added files to the depot via thst computer. Now you are wondering how to access those files from computer #2. Right? If so, you then need to update the clientspec/workspace that computer #2 uses to include a mapping for the new project's folder. And repeat, for each additional computer.

#

Generally speaking, there are two strategies thst people use for workspaces. Either they set up one workspace per machine, and map all of //depot. Or (preferred, if you do not need to stay within a max # of workspaces limit) they set up one workspace per project per machine, and only map the project's folder via the corresponding workspace. The 'one project per workspace' approach makes it easier to keep work separated ('get latest' will only fetch one project etc). This requires more configuration and experimentation to understand what workspaces really are in perforce, but helps in the long run.

gusty bobcat
#

@valid olive is it painful to know so much of perforce? 8-D

valid olive
#

There's a silver lining: it makes one appreciate more, ah, refined VCSes even more 🙂

gusty bobcat
#

haha i hear you

#

@valid olive do you also carry on that knowledge pack about compiling unreal engine? Cause I really miss some competent person I can talk about, so far it a desert about that ;-)

#

i have literally no idea how to organize the git of the project for the longtime run. I mean for a project its easy, but if you wanna compile it gets a bit harder, but if you then also have a mostly blueprint only with just special members actually adding code, then it gets really dirty

#

(and totally into undocumented area, as if there is one documentation telling you how to organize source control for that)

rotund bobcat
#

what's your problem exactly?

gusty bobcat
#

Puh... where to start.... so primary the first problem that blocks me mostly in making good decisions is the wildness of the build process

#

i have freaking no idea what is going on there and i am already reading tons of code, and as software guy that freaks me out. The documentations are sadly more about process but not about the structure, i am somehow missing a "Network Compendium" style vague guide of the build process

#

just to be clear: i can build the project files, i can build the unreal engine, i can even fire up unrealbuildtools on my own to make the programs i need and so on, its just that i wanna know more about what goes one

fringe abyss
#

thanks @valid olive

gusty bobcat
#

one big question in the room: Is the project file really so irrelevant as i think it is? Its just there so that we can use visual studio, right? Its totally irrelevant for any build process itself, is that correct?

rotund bobcat
#

no

#

it gives info about how to build the project

#

like the engine association

#

you can just right click and open in notepad and notepad++

#

there's a few settings in there

#

also tells which modules and plugins are needed

gusty bobcat
#

wait wait wait i mean teh GenerateProjectFiles project files ;-) not the uproject file

rotund bobcat
#

or do you mean the .sln file

gusty bobcat
#

yeah ;)

rotund bobcat
#

ah yeah

#

that's not really relevant no

gusty bobcat
#

and please dont assume i am on the level of "right click and open in notepad++" 8-D

rotund bobcat
#

well idk about your experience

gusty bobcat
#

yeah i thought the questions might help 8-D

#

ok good! so the project files are irrelevant, that is already a very good to know thing, which is practical undocumented

#

Mmmhhhhhh ok, so when this is now cleared, its all about the parameters on the UBT

#

and the AT is for compiling something several times, right?

#

oh yeah, is there some secret hidden documentat about the UBT i am missing? I feel like the parameter and their consequences are not explained good enough. Even tho i am just hoping here ;-)

rotund bobcat
#

yeah no, the parameters for all command line tools are pretty undocumented, your best bet is going to the source code and see what they influence

#

at least afaik there's not documentation on it, I was struggling with it as well when compiling the engine to know what stuff I needed to pass to RunUAT

gusty bobcat
#

yeah, it feels so dirty 8-D

#

i mean, the scripts are working, no complain here, their basic concept makes it work and there are unlimited people who have no idea what they do and still get the result

#

so i know i am complaining on a different level here 8-D

#

i am right now thinking about how to make it a 2 layered concept, my idea is that there is one repo that generates the engine and then there is another repo with the project itself, that gets the resulting Builds to deliver an editor for them to work with

#

so like a bit of a pre-stage to get the classical ModKit setup later on

#

I saw that even the guys of Conan gave up probably and just put in a precompiled UE4Editor ;)

#

(which i am feeling already would be best to go)

rotund bobcat
#

you can have your engine in a seperate repo yes

#

and if you don't want the whole team to have to clone the repo and have access to the code

#

you can make a binary build of your engine

#

and then distribute that one

#

that's what we do

gusty bobcat
#

well its less that i dont want them to have access, i already have half a team who is not really trained for open up visual studio if you know what i mean

#

and i never do intend to train them on something that is rarely relevant for them ;) hail blueprints

rotund bobcat
#

yeah, so just run the buildgraph for your engine to make the binary version and pass that one on to them

#

it takes a while though, so if you're gonna change it regularly make it an automated process on a server maybe

#

and you can then use UGS to keep it in sync

gusty bobcat
#

oh, so UGS is for that? i was checking into it and felt it was more like a wrapper around perforce

rotund bobcat
#

well it is kinda

#

but you can use it to sync your binary builds as well

gusty bobcat
#

i do have git i mentioned that, or? :D

#

i mean, they pull and get the new build after someone build it and pushed it to their repo

rotund bobcat
gusty bobcat
#

can UGS make that "better"?

rotund bobcat
#

well we don't update our engine very regular, just with new versions or to add a new platform support so we just do it old school via google drive

#

but it can be cumbersome if you do it on the regular

gusty bobcat
#

irgs

#

yeah no we would have procedures here, one click action, build procedures

#

i am actually a Perl CPAN developer so i am trained for procedures to avoid work while parallel keeping it all good structured and organized 8-D

#

Hail CPAN!

rotund bobcat
#

automating shit is the best

#

using Teamcity saves countless hours of work for us

gusty bobcat
#

that sounds like a youtube advertisement now ;)

#

ah yeah i see

#

we have a gitlab server (with the most awesome domain for a gitlab server in history of gitlab servers)

#

so i can also just add there CI/CD if i reach that point

jolly fog
#

Hi my understanding of source control is that if you want to make a big risky change to your project, you first clone your current branch, work in UE4 on the clone, then commit the clone to a branch of the current branch before merging it back into the current branch if you are happy

gusty bobcat
#

One last thing that is now in the pipe for me, mentally, is the relation of the uproject and the build procedures

#

@jolly fog yeah no ;) that is not the point we discuss here, the problem is what we do WITH the repo overall, and what repos we make at all and how we combine them for the targets we want

#

@jolly fog so the work the people do BEFORE so that you can do what you described :D

#

there is this UE4ProjectDirs file

rotund bobcat
#

I think he's just asking about VSC in general

gusty bobcat
#

Oh! sorry

jolly fog
#

what do you mean thats not the point I am just clarifying

gusty bobcat
#

@jolly fog you asked a question?

#

@jolly fog oh sorry :) i thougth (cause of the mission question mark) you were about to make a comment to what we discussed

#

@jolly fog so ignore me, and then yes, you absolutely described the best workflow :)

jolly fog
#

ok

gusty bobcat
#

@jolly fog you dont need to make a branch of course if you are just having like one change, i mean that is the literally the normal basic flow, but yeah if you make a change where you dont know how long it takes, you will go for a branch to have commits in the steps

#

just to clearify absolutely

#

its like your daily flow shouldn't involve starting your day with a branch ;-) even tho that sounds like an interesting workflow concept

jolly fog
#

I would imagine a branch if a) you are doing something very big, or b) it has a chance of breaking something

gusty bobcat
#

yeah both are reasonable, but i would say "if its more than 1 commit" is the most relevant one ;-)

jolly fog
#

But it seems quite clunky to have an entire separate local UE4 project for every branch

gusty bobcat
#

wait wait

#

its git

#

it doesnt copy

#

same files are just referenced internal, no panic

#

you can make 1000 branches

#

and gain probably 10k for the string length of 1000 branches names ;)

#

if you use SVN... well THAT copies

jolly fog
#

I was thinking in terms of the space taken by the UE4 projects themselves on my PC, but I am an amateur so maybe talking nonsense

gusty bobcat
#

yeah its nonsense :D

#

i mean yeah git gives some overhead in general so like if you have a 3 GB project with some activity you probably have a .git with also 3 GB and so you got 6 GB overall, but that is not based in any form of how many branches you have

#

its just the activity

rotund bobcat
#

the biggest size overhead you gonna have with git is the history, but you're gonna have that either way

gusty bobcat
#

@jolly fog i just re-read your statement above, just be clear: You clone a repo once, everything else is just switch/checkout and so on

rotund bobcat
gusty bobcat
#

oh my god, dont shock him

#

he will read all this and try to make a sense out of it, even tho he just need the first one ;)

rotund bobcat
#

but tbh, if you're gonna be the only developer, which it sounds like since you're a beginner, you don't really need branches at all, since you could just revert to a previous point in the history

#

workflow depends on situation

gusty bobcat
#

yes

#

thats why i say, he shouldn't think too complex

#

one master, central organized and then go with it

rotund bobcat
#

do you guys do merging or rebasing when adding features in git?

#

I mean rebasing sounds nice, but also sounds like it could go wrong more easily

gusty bobcat
#

generally this is a procedural point and not a result question

#

rebase is just more clean and a rebase without cherry picking is practical the same as merging in result beside without merge commit

#

you can actually do that pretty much local there is a flag on git to rebase instead of merge by default

#

then it enforces you to commit before you pull on changes

#

so if you pull and someone committed, your changes get rebased on top

#

so no dirty merge commit

#

merge commits are really a pain in the ass if its about retrospection

rotund bobcat
#

well yeah it sucks to look at the history with merges, but then again, you can see when someone added what exactly to the main branch and could revert to exactly before the merge if a specific feature broke shit

gusty bobcat
#

well you can do that still without a merge commit

#

why is the merge moment relevant?

#

it isnt

#

commits are commits are commits

#

the merge commit is just a dirt shit stuffed in between the nice changes layers

dusk dove
#

merge commits are very br_egg

#

not like merges are very useful for unreal anyway

gusty bobcat
#

well its equal topic on all kind of projects

#

the merge commit is just not useful in any case

dusk dove
#

not really, since unreal projects are like 90% binary stuff that is unmergeable

gusty bobcat
#

yeah but in a normal project its equally garbage you get ;)

#

as if the merge itself gives you the real right information in the end you should go back to the specific commit to be sure what you see

#

thats why i say it

#

merging is the same garbage as binary files ;)

dusk dove
gusty bobcat
#

yeah but that is not yet relevant for the merge commit topic hehe

#

in general you want rebase if you can manage it

#

and luckily you can make that your personal decision

#

so you rebase others merge

jolly fog
#

omg i didn't think I could swap branches in github desktop and it automatically changes stuff in unreal. Thought I would need a separate UE4 project for each branch

rotund bobcat
#

that would be ridiculous lol

gusty bobcat
#

uh........

#

you should always do such things while unreal is off ;)

#

just saying

rotund bobcat
#

yeah, swap branches with your editor closed

gusty bobcat
#

all git actions actually

jolly fog
#

why

gusty bobcat
#

cause

#

he's on third, we dont talk about him

rotund bobcat
#

well commiting and pushing should be fine

jolly fog
#

it will implode

#

maybe its easy to accidentally fuk up

#

?

gusty bobcat
#

well, not guaranteed, it should, but reality of file locks bites

rotund bobcat
#

because all your assets are in use with the editor open, and if you pull and asset change it will try to replace the one that is there ,but it can't since it's loaded in the editor

gusty bobcat
#

and about lazy save on unreal

#

i would suggest to never have it open while you do git activity just to be on the safe side

rotund bobcat
#

and then it will say unable to unlink files

#

and then your open changes are fucked cause you have the ones you had + the ones that succeeded in the pull, but not the ones that failed

jolly fog
#

oh yeah I understand why a pull request might confuse it

rotund bobcat
#

so don't do that

jolly fog
#

but if I make an unreal change and commit to a certain branch I need github open right

rotund bobcat
#

not if you can commit from in the editor

#

you can do git from editor but I never done it

jolly fog
rotund bobcat
#

yeah I know it's there

#

but I don't use it like I said

#

I use sourcetree and command line for git operations

#

but you don't need anything open to commit

#

just whatever interface you're using

gusty bobcat
#

yeah in my experience the git integration is shit

jolly fog
#

I have no idea how 90% of it works I just followed an online tutorial and it said to do this and this is what I understand now

gusty bobcat
#

yeah you just do that outside with the git tools of your OS

#

if you then know how it works

#

then you fool around more ;) but the inline git integration of unreal is no good

#

at least in my experience

quaint obsidian
#

With LFS locks, it's impossible to use merges because the merge commit has you as an author, but it has changes for other people's locked files

#

so we use rebasing only

#

except for our long lived branches (master, promoted, stable, release)

#

but that never merges locked content

gusty bobcat
#

@quaint obsidian oh interesting detail

valid olive
#

So hmm, regarding version control and 'how to structure a project in git'. I would separate the question of 'how does a group of developers work on the source+project' from the question of 'we have a bunch of non-programmers on our team, how do we avoid the need of Visual Studio for them'

#

The first centers around how you choose to put logic into certain source files / uassets. The latter centers around how to distribute pre-built packages to people on the team.

#

A good answer to the former centers a lot around 'do not copy and paste too much' and 'do not create large monolithic things'. On the BP/editor side, use a little bit of inheritance to avoid duplicating settings across lots of BPs - and use features like map layers to avoid a single map containing too much information.

#

On the C++ side, push logic from Actors - > Actor Components - > UObjects - > raw C++ classes. This gives you opportunities to break up logic into ever smaller pieces.

#

In the boundary between BP and C++, create new, domain-specific BP nodes in C++ to reduce the BP-side clutter. This is valuable because C++ scales better than BPs when growing large.

#

In a sense, if you have enough C++ dev bandwidth then it is worthwhile if the C++ people create a new (or multiple new) domain-specific language(s) which BP people subsequently use. That is, for BPs (or parts of BPs) that serve particular purposes, the BP people restrict their use of BP nodes to particular subsets where most are custom built by C++ people.

#

The internal distribution side of UE is more problematic. How do you enable BP people to run the with a recent version of the C++ logic without them having Visual Studio installed?

#

This problem is not solved in a satisfactory manner by Epics tools. UGS is a tool for fetching binaries from a Perforce server and dumping them into the Binaries folder on the user's machine. (It can also pre-fetch content during the night, it can also probavly install stuff onto a console dev kit, but the core feature is about fetching binaries from a Perforce repo.)

#

UGS only solves half the problem. Even if you have a Perforce server, you still need a build machine that builds game code as DLLs and submits those to Perforce.

#

If you use Git, UGS does not help you at all.

#

We are a 15 person team, we use Plastic SCM, we transitioned to Unreal about 9 months ago, and every dev just fetches all C++ code + content and builds via MSVC because we have not set up a satisfactory CI process to build binaries + created the associated 'download tool' yet. I think we will get there in <6 months but it takes actual man months to make it work well.

#

Our first stab at a CI + build download tool will likely ignore anything related to branches. UBT and the philosophy behind it is optimized for working on a single branch. Automated build distribution for muöti-bramch dev is hard for UE. I wrote a 15 page white paper on a way to do it earlier this year but even that approach wasn't wort putting into action.

#

<rant over>

vital sapphire
#

@valid olive great advice/analysis, we came to many of the same conclusions at our studio

#

we have some unique requirements for our environment (we do TV and Film animation)

noble knoll
#

@valid olive dont worry with the VS stuff

#

nearly all studios do have VS and compile the engine when you grab build. You just offer a .bat to do so, so the artist just needs to click it to recompile engine

#

also, one important thing. BPs scale horribly in teams

#

because you cant merge them on source control well

#

its also extremelly important that you do not hold gameplay "values" in blueprints. Put those in data-assets

#

precisely due to source control. You do not want your logic to be bound to your value tweaks for balance

#

also never do blueprints that inherit from blueprints. Its a recipe for disaster when combined with source control and multiple people tinkering

valid olive
#

@noble knoll agreed on most of what you said, only, I would like to not have content creators build code at all if possible. Replacing MSVC with Clang would eliminate license concerns. More intelligent distribution of binaries (perhaps with a package concept) could be a way forward to eliminate compilation altogether. It's a lot of work to get there though.

#

(Thanks for pointing out that 'data assets' are useful btw - it is a valuable strategy for separating configuration and logic into separate BPs)

vital sapphire
#

Ya none of our artists have the need or ability to recompile binaries; We create an installed build via BuildGraph, and distribute the engine/project via perforce streams. We rebuild binaries only when code changes need to be made to the project or on engine upgrades. We try to minimize project compiling by distributing any code via plugins.

#

but we are in a pretty unique environment so that probably wouldnt be ideal for an actual game dev team

#

for game dev i would likely want a nightly build system

#

as @valid olive said SCM seems ideal for pushing binaries to non-coders in that scenario; I did a bit of research into using it but it would definitely take some setup and integration to get working for a team

valid olive
#

Perforce or a network share can do that binary pushing fairly well; I think GitHubs LFS will get unnecessarily expensive over time. The most appropriate 'internet aware' solution is to use Cloud Storage with one of the major providers, but that then requires a bunch of glue logic to do deduplication and some synchronization with the scm. Also, a separate fetch mechanism needs to hane authentication. This all results in building a home-brew alternative to UGS - which is doable, but again, quite some work

#

Minimizing the amount of precompiled changes can absolutely help. Some studios in Sweden use AngelScript in-between C++ and BPs to reduce the amount of C++ changes while still being able to write logic in a text-based OOP language. That otoh requires a major commitment to AngelScript...

vital sapphire
#

That is an interesting solution; lucky for us our work is done almost exclusively in-editor so we can leverage python for most editor scripting stuff. python integration has been a massive boon for us as we can integrate our pipeline api tools directly

valid olive
#

Yep, if you can compartmentalize things that way (and effectively turn all of the C++ bits into a rarely-changing platform layer) thst sounds like a good approach

quaint obsidian
#

We have a system which uses Nuget. Devs can upload their own binaries to nuget and artists download them.

#

That's for project binaries, but engine is built on a server and downloaded in that system

#

It's called PBSync, PBGet and ue4versionator

#

PBSync updates the repo and manages a bunch of git stuff, PBGet handles project binaries and ue4versionator parses the uproject file for a custom version and downloads the appropriate engine version

#

Binary versions are pushed to our promoted branch on a schedule from our master branch where programmer work happens

#

Then, when an artist syncs their promoted branch, it gets the new version and downloads the project binaries from Nuget

#

and also downloads the new engine version if applicable

valid olive
#

Interesting use of NuGet there - thanks for sharing. How are things versioned? Are version numbers based on dates, changelist numbers, or do people need to bump version #s and trigger "publish" of their binaries manually?

quaint obsidian
#

Based on the game version string in DefaultGame.ini + engine version. This is automatically bumped by PBGet, when you do the publish commands

indigo relic
#

just got a question , I wanna upload my project to github

indigo relic
#

it keeps failing to upload

#

its a 8gb repo

#

also, is there some way to automatically track any files over 50mb with git-lfs

blazing quail
#

I also use nuget + git for my marketplace demo plugin binaries distribution, so everyone can evaluate my plugin before buy it, ex: https://github.com/dorgonman/HorizonUIPluginDemo . In my internal project, my CI process will also push a Version tag after each editor build. Version tag is based on revision number of git(num of branch commit) + game version string in DefaultGame.ini, so in git post-checkout hook, I write some script to download nuget package base on Version tag , so my team member will automatically downlead latest version of game and engine binaries.

gusty bobcat
#

@valid olive yeah thanks for the overview, like the theory is clear, but the problem is really the actual detail

#

@valid olive what exact files are really important to be copied over from the repo made for building to be transfered to the repo made for the asset people, what exact ways are there to optimize the build process to avoid all the garbage no one needs, what exact is the current method to get a ProjectEditor given that all docus about that are pre-ancient ;), what exact is it about the uproject file in context of UBT? Like everything is just surrounding the generate project files together with uproject files through unrealprojectdirs but how i can take the use of this with the UBT?

#

there are a lot of small details where i feel like i know not enough to be happy

#

its like, i am at exactly the point where i understand what you explained, but now i want to actually nail that down in actual repos ;-)

#

@blazing quail thanks for pointing to this

#

@blazing quail it feels a bit overload ;) but still trying to understand what your scripts actually do there

ancient oxide
#

What's the best way to manage asset dependencies? I keep modifying 3rd party assets but I don't want to mess up my project if I download the latest version of those assets. What strategy is normally used for this?

gusty bobcat
#

haha :D "strategy"..... yeah no, there is practical none, at least not that i can imagine one or saw ever someone mention one

#

i am still having already a hard time to realize there is an update for the asset i use 8-D

ancient oxide
#

ahh hrmm.. thanks!

gusty bobcat
#

if you find something, tell me ;)

#

i think the most biggest problem that in majority of cases you modify the assets

#

there is no "diff" ;-)

valid olive
#

One strategy for managing 3rd party packages - and also the Unreal Engine source code - in git:

Treat each package (and also the Unreal Engine source code) as a resource, shared across multiple games. You want to have a separation between "changes to the shared resource" and "changes to game X's version of the shared resource".

  • If possible, keep each package (and also the Unreal Engine source code) in a separate repository
  • Within each package repository, create a game-specific branch for the game you are working on
  • Pull in each package (and also the Unreal Engine source code) as a submodule into the game project; set the ref to the game-specific branch
  • When you update the original package, you update /master and related branches
  • When you want to publish those updates to your game, you merge over those changes to the game-specific branch and then update the submodule ref
  • When you want to make game-specific changes, you make the changes directly on the game-specific branch and then update the submodule ref. It may help to put "//BEGIN GAME X" / "//END GAME X" around each game-specific change (this makes file-by-file diffs easier down the line) -- or use "#ifdef WITH_GAME_X [local changed version] #else [changed version] #endif" as that allows you to build the game-specific branch both in unmodified and game-specific modes

This requires that people who work on the package understand how to work with submodules.

If it is not acceptable to put the stuff into submodules, then you have to resort to more crude methods. It is still valuable to keep the original versions of packages in separate repositories, but you might just copy over the files into the main repo when you 'update' to a newer version. If you do this, the begin/end markers will save you a lot of headache.

gusty bobcat
#

submodules are really not an optimal solution on this, but this part is actually also not the relevant part ;).

valid olive
#

yeah, I'm just working through the backlog above

gusty bobcat
#

ok

valid olive
#

(btw, notice that the submodules bit is relevant for how to manage the UE codebase if you build UE from source, with modifications)

gusty bobcat
#

yeah submodules are still no good solution given the sad reality of it being like totally commit-specific, so in general, its no good for the target we want to achieve, BUT I would never tell someone actually that they should NOT use a submodules solution if they can handle it, its a very good balance between a clean solution and something that doesnt look like a hidious workaround

#

i am just very sure i can make a solution without it that makes me happy, the problem is really for me not how to solve the problems, my problem is that there is no specific detailed documentation on those problems itself. I do overthink this here, totally clear, cause i CAN compile it, but i just want to be sure to have eaten all knowledge that exist ;)

#

the biggest question still in the room for me is the one with the uproject and UBT, how relevant that is, or if that is also just relevant for the GenerateProjectFiles

#

the second one is about "what files are required", cause its just a flood of stuff that comes out of everything 8-D

valid olive
#

Ok.

UBT needs at least one .uproject file to be able to build your application. The .uproject file specifies the engine version, the modules, and the plugins to build & use.

UBT will parse *.Target.cs files for settings for the different build configurations (Game / Editor / Server / <default>).

UBT will parse *.Build.cs files for settings for the individual modules.

UBT will parse some other files (.uplugin files?) for settings for the plugins - which probably contain the above types of *.cs files a step further down.

Once UBT has 'discovered' all modules, it formulates a dependency graph, does up-to-date checks, and generates a list of build actions. After this it begins doing build-related things (run UBT to process header files; compile; link)

#

UBT's core design is such that all the code should be present at once at the start of the build process. You need to do extra work to build the Editor separately. You need to do extra work to build plugins separately.

gusty bobcat
#

what you mean exactly with "separately" in the last 2 sentences

valid olive
#

I mean: do you want to have BuildEditor.bat, BuildPlugin1.bat, BuildPlugin2.bat, BuildGame.bat? And do you want that each of these build only what the bat file name suggests? That is not what UBT is designed for

gusty bobcat
#

Ah, yeah no, ok, thats not really fully the point, thats luxury path

valid olive
#

Rather, you will just have a BuildGame.bat and it will build all these things in editor mode

#

A side effect of this is that you will find it difficult to split up the compilation/linking process. This makes it difficult to devise a good process where people use a combination of pre-built binaries and locally-built binaries.

#

You can do it, but you will not find UE's own tooling very helpful.

gusty bobcat
#

the good thing here is that there will be not much C++ development and if it will be there it will be very capsuled, so i can avoid this problem a bit

valid olive
#

If you have a dev team, where some people are 100% content creators, some are 100% programmers, and some do a bit of both, then the only feasible way I have seen so far is to have game code and game content in the same repository.

It is possible to split code and content into different repositories, but then you cannot do atomic commits when a change straddles both code and content. It also becomes problematic to synchronize checkout operations so that code and content stay in sync on a machine.

It is possible to put code and content into sub-repos below a main repository, but then the git clients (both cmdline and GUI) I've seen will require users to jump through extra hoops to update the submodule refs a lot - and merging of submodule ref changes will get confusing - so I do not see that as satisfactory for most people on the team either

gusty bobcat
#

yeah there is not much of "both" moments, and if there are, they will be handled delicate, so i hear you on that, and i try to keep that out of the loop, so a more or less 100/100 situation

valid olive
#

So you think

gusty bobcat
#

haha ;)

#

i hear you

valid olive
#

End result IMO: Keep game code & game content in a root repository. Move stuff that changes rarely (engine & plugins) into sub-repos

#

move parts of the game into plugins perhaps

gusty bobcat
#

we have really a no code policy so far, i dont exclude code, but in the end if we add C++ code, i am the idiot who have to make it anyway

#

well ok there is one another, but he can also handle all kind of situations, so i am less feared about that

valid olive
#

accept that all devs on the team sync both code & content
accept that all devs on the team build code in order to use the editor (<--- here is where you may be able to include a binary distribution mechanism later on, but you need to build your own tooling)

gusty bobcat
#

thats the plan i had

#

as already mentioned at some point earlier, is my current idea of direction to have an engine repo which is just a copy/branch/whatever of the unreal engine repo that i use to generate the UE4Editor (or ProjectEditor) that is then copied over to the other repo and committed in there

#

on the other repo the people can start it via the .bat file in there

#

"idiot proof"

valid olive
#

"that is then copied over to the other repo" -- what do you intend to copy? source code? binaries?

gusty bobcat
#

the binaries of course?!

valid olive
#

do you intend to commit the binaries into the other repo?

gusty bobcat
#

yes

#

still less space than anything else in the repo

#

;)

valid olive
#

So ... when devs want to run the editor, they will need to build game code -- that requires invoking UBT -- then UBT needs to see the engine code (since the game code needs editor header files) -- then the engine code (at least header files) needs to be present on all devs' machines -- then UBT will also build the editor since the game code has dependencies to the editor code -- then the prebuilt binaries will not actually be used

#

one problem you need to solve is you need to make UBT not build the editor when game code is built

gusty bobcat
#

wait, i do actually also mean the project dll to be copied over to the repo

#

its ok if he builds all

valid olive
#

ah, so content creators will never compile any code? Ok, that sidesteps UBT related problems.

gusty bobcat
#

there is really no rebuild reason per se for the team there are no C++ development paths, and if they exist ever, they will be handled independent probably of a small subteam in a small subrepo and then copied over

#

if you understand

valid olive
#

yup

gusty bobcat
#

reasonable, or?

valid olive
#

Reasonable, for a start. Consider putting the binaries into a subrepo, still, so they eat up space in a separate repository on GitHub. You may decide to change to a different distribution mechanism for binaries later on.

gusty bobcat
#

yeah but then i can rethink, plan is actually to make a Company Launcher

#

but thats another construction site

valid olive
#

(perhaps you do not enjoy submitting 1GB of modified binaries every time there is a single C++ change -- this is likely to happen if there is more than 1 machine that commits binaries)

gusty bobcat
#

"its ok" but i hear you

#

that is kinda the reason why i try to hold out the C++ workflow from my plan

#

if i "ignore" the c++ flow, it makes a very good sense :D

#

I should also mention here, that we do need an own compiled editor anyway

#

this is not that i do that for ffun

#

wait, actually i just realize

#

the game server build process is just not in the project files....

#

with UBT directly i can just make the gameserver as if its there

#

yeah ok that actually automatically eliminates one of the reason why i need an own editor ;) but the other still stands: Chaos

valid olive
#

righto. well, good luck 🙂

gusty bobcat
#

yeah thanks, and is it really right that if i deactivate TONS of plugins of Unreal Editor that there are still 1900< modules to build?

#

or is that something else i did wrong that let it blow up? (I actually have just 2 platforms in there, at least so i assume ;) )

valid olive
#

I'm not sure but I think 1900ish modules sounds reasonable

gusty bobcat
#

yeah ok, i mean, i feared that, probably more a "i dont want it to be real" thing ;)

valid olive
#

UE engine devs on their high-end workstations spend 15-20 mins when they need to do a full engine rebuild. Similar rebuilds take 30-40 mins on my machine.

gusty bobcat
#

i have already dedicated a computer for this ;) but my workstation is faster than the machine, i think i can make it with my removed modules to 20 minutes now

#

and i dont need to search for crosscompile to windows via linux, or? ;)

#

oh, and is there any good trick or info that helps to know what files i need to copy over from the compile repo to the project repo? ;) probably just complete Binaries\ in the end, or is there slack? i also get crazy on those pdb files, cause somehow the flag for not making them seems to be not working but i must check that again, i might have just doen something wrong in my earlier "Not understanding" phase

valid olive
#

not sure about which files are necessary. I haven't looked into that in detail myself.

gusty bobcat
#

understandable, its a pain in the ass

valid olive
#

(afk for the evening - gnight!)

gusty bobcat
#

gn8 and thanks again

quaint obsidian
#

For plugins, we have an upstream branch and a master branch with our changes

for asset packs, we have a separate project containing all original assets packs and then update them and compare if needed (blueprint or material updated)

#

also, we will be uploading PBSync and PBGet programs as open source soon

gusty bobcat
#

@blazing quail but through your repo i found that UE4Launcher stuff, and the asian documentation about making independent applications, that is actually also very cool

#

oh my god, just saw there is actually a plugin for doing git in blueprints 8-D

slate pulsar
#

What is a good github license to use in a organization when making a public repo but you want the best commercial rights? Most of the licenses they provide still give people the ability to use things for commercial rights. I am only using public because I can't afford the team payment plan for git

ocean ridge
#

use bitbucket then

gusty bobcat
#

hu? the new free plan can have private repositories (although just 3 collaborators)

#

on github

#

and yeah the team plans are just horrible ,)

ocean ridge
#

ah nice, I remembered it had private, but was thinking collaborators were more restricted

gusty bobcat
#

yeah no they changed it like 2-3 years ago to be more competitive against bitbucket i think

#

best is anyway to host your own gitlab! :D

dusk dove
#

consider using gitlab or devops instead

gusty bobcat
#

with docker it is actually these days so easy......

#

you get some server somewhere that fits your price range, find some documentation that tells you how to move the ssh to another port, then just install docker which most distributions already have now in, and if not you can add it easy, its all like idiot easy to find out

#

in pre-docker times that was not really so easy ;-)

dusk dove
#

what would be the purpose of changing the ssh port

gusty bobcat
#

well you do not want ssh://host:4444/ urls for the gitlab, or?

#

think mcfly think

gusty bobcat
#

i just realize, if you then go and mount the backup folder of the gitlab via a dropbox, you are pretty safe with a very low amount of work

#

(well not dropbox, but whatever thing that gives cloud storage to mount on linux ;) )

slate pulsar
#

@gusty bobcat Does that mean 3 private collaborators plus yourself or yourself plus 2?

gusty bobcat
#

No idea haha

quaint obsidian
#

@slate pulsar you can have unlimited private contributors in a github personal repo for $7/month

#

but then theres the lfs data pack costs

slate pulsar
#

Aye @quaint obsidian I know I have 1 gig to play with, how much would a 5 gig project cost for LFS?

quaint obsidian
#

it's 50gb for $5/month

#

but you can use azure devops repos with 5 collaborators with unlimited free storage

#

or GitLab.com with unlimited collaborators and 10gb storage

slate pulsar
#

Nice, that's pretty cheap. I think Ill stick to github and pay the $7 for the private repos then dish out the extra $5/month if need be

#

I was just all bothered with the license agreement stuff and was like "this is not a open source project sooooo"

gusty bobcat
#

@slate pulsar if it explodes into your face, my offer stands ;) hehe

#

oh right i should add .dll and .exe if i wanna continue that plan of adding the binaries

slate pulsar
#

Nice! Thanks @gusty bobcat It's always good to have that solid gitignore and gitattributes

dense plover
#

hey. I'm about to start group project using UE4 and I've never done this before. Which tools would most people recommend here? Perforce I assume? It's a bit overwhelming. I understand I'll probably need a cloud hosting. Anything else?

tl;dr
just looking for general tips/advice on how to start working with UE4 as 4 people group

gusty bobcat
#

There is no reason for Perforce beside if you really want to work with old gamedevs ;) or if you got too much money

#

and need something to waste it ;)

dense plover
#

I definitely don't. So what would be the cheap/good solution for us then?

gusty bobcat
#

Git is faster and the standard of a bigger industry.

dense plover
#

uh, I used git for project where most of the work was coding

#

but for ue4 there are tons of various assets

gusty bobcat
#

yeah

#

and there is Git LFS

#

which is specific made for this binary problem

#

and this has nothing todo with your problems

#

there is no problem with git and binary files

#

if you know to activate git lfs and give him the .gitattributes where you tell him what is binary

#

then it is a zero cost thing

#

Git will always be faster with that, faster than any other method

dense plover
#

woah, okay. Never knew this was a thing

gusty bobcat
#

the only disadvantage of git is that it is more complex, not made for idiots like perforce ;)

keen tide
#

How do you think about SVN?

gusty bobcat
#

????

dense plover
#

I'll look into that. Thank you

gusty bobcat
#

SVN copies the files for a branch or tag

#

how do you think how cool that is for unreal?!?!?!?

#

8-D

#

its kinda obvious that SVN is unapplicable for unreal

keen tide
#

I donno... I never team-worked on unreal 😆

gusty bobcat
#

or you just ignore every single feature source control can give you, then SVN could be "ok" ;-)

keen tide
#

I use SVN only for my personal unreal projects only because it won't hold full history on local disk.

gusty bobcat
#

you can make a githook that deletes the history after commit

#

but more relevan tis

#

that git contains only minimal amount of changes, SVN produces A LOT of stuff on changes thats why you even think abut the local removal

#

And thinking about disk space while you define your source control workflow is kinda contraproductive ;)

#

then people come up and decide to use SVN cause it has no local commit history ;)

keen tide
#

So the main weak point of SVN is branch/tag

gusty bobcat
#

everything

#

you really think you compare comparable methods

#

but there is git.... and all the others are pretty much garbage

keen tide
#

I donno... Maybe just not so persuasive to me... I use git for my all other code projects except UE's just because of those binaries and I just want to install and go without additional configuration for lfs. And lots of artists and testers I know really have problem configuring git so I just choose the dumb thing. What really bugged me since first using svn is the file name case problem. Happens occasionally.

gusty bobcat
#

its one command they need to fire up once for their git installation

#

if your team is too stupid to execute on command, then you are already in hot water ;)

#

but whatever makes you happy, you are just wasting time and resources for yourself with that.

keen tide
#

The versioning had never been the problem for me. Team members capabilities, company and projects management, and products defining were what killed my time.😂

#

Just see the talking so I joined.

gusty bobcat
#

the problem is what you dont see

#

people always tend to ignore that there are actual reasons why specific software is like specific software. If you always start MSPAint and use MSPaint for your own gain, then you never think about what Photoshop can do, so you ignore what you can do with it, and suddenly people start making photoshop stuff with MSPaint. With using some ancient source control, you are eliminating yourself the advantages you will need longtime out for a good workflow.

keen tide
#

Most were what I couldn't control.

keen tide
#

@gusty bobcat Which git client are you using BTW?

gusty bobcat
#

Oh i am using Tortoise Git on windows but i wouldn't directly suggest it, i mostly use it cause i know it from old times. You should probably evaluate the modern ones, the git for windows itself is also good.

#

You can also just go with the CLI and work with your git repo on windows like you do on linux (if you do)

keen tide
#

Ah I used TG years before and then turned to SmartGit.

#

(Were you from Tortoise SVN? 🤣

gusty bobcat
#

I was thinking about, but i cant recall that i ever needed it

#

i was one of those guys who couldn't switch quick enough

#

SVN is a pain in the ass

keen tide
#

Sounds like SVN made you a disaster before.

gusty bobcat
#

it was just hidious when you start trying to get more serious with the source control

#

this copying everything for a tag made usage of tag pretty brutal

keen tide
#

Ah that.

#

Haha

gusty bobcat
#

its like: if you do not want to see what source control can do for you, use CSV or SVN

#

Especially on gamedev i think the branches and tags are very crucial

#

tags are relevant to remind people what was the state spread which is very important for reacting quick on reports without seeking through data.

#

and branches are like the key of subteams working on subfeatures that might still explode in their face

#

although the binary data stuff is not making it that much easier for us ;) by design

keen tide
#

Especially BP.

gusty bobcat
#

yeah

keen tide
#

Another pain in the ass.

gusty bobcat
#

but what i learned, or better say re-learn way too often: Its just easier to start a branch and then get rid of it, instead of polluting your master and then reverting that shit

#

BP is no pain in the ass, BP is the future, not in the form we see now fully, but BP is the general future of the complete IT, and then later we replace the nodes with voice and we got our Star Trek Computer

#

but its right now like a huge dildo in the ass, which can be interpreted as pain ;-)

keen tide
#

BP is pain for me. Bunch of wires only solve a tiny problem.

gusty bobcat
#

you think wrong

#

yeah sure, if you are developer, then BP is NOT giving you anything

#

there is NO POINT in using BP for a ful blown developer who knows what he does

#

period

#

but...... that is not the point of the show

keen tide
#

Though I still use BP for main logic. Only for main logic.

gusty bobcat
#

the point is that what you do as full blown developer can only be validated/modified/tuned by full blown developers

#

imagine your game like a huge amount of nodes

#

imagine the gigantic tree

#

and now mark all trees that need you to modify code in your color to show that just you can change them

#

if you do everything in C++ then you see the complete tree lighting up

keen tide
#

BP can't be a tree. Only be spaghetti.

gusty bobcat
#

haha i dont mean the BP as a tree

#

all the features of your game

#

everything

#

you want "random people" to add "random features" at places you didnt planned to

#

and for that............ you need BP

#

so if you keep places no one should touch (black magic) in C++ and everything else in BP, then you are on a good team path

keen tide
#

Aye I agree with you at least on this point.

gusty bobcat
#

important is to understand that its not about YOU

#

99.9% of game developers (especially unity mongos hehe) think that blueprint sucks cause they believe it is not giving them any advantage

#

I am still not understanding why every fucking unity idiot always replies with "i dont like blueprints" even tho he isn't enforced to use blueprints ;-) but thats on another paper

keen tide
#

Because they can't write CPP and refuse to learn, maybe...

gusty bobcat
#

I would even say you could filter out good gamedevs with asking them about this topic. A good gamedev will always see the mindblown possibilities of Blueprint, a bad gamedev just sees nothing of use for him ;).

#

C++ in Unreal is pretty much identical to C# in the relevant sense ;) the only thing is that C++ is harder to debug if you make a stupid mistake

#

but given that C# could also make pretty random effects, that is just a mild argument

#

if you do stupid things, then stupid stuff happens

#

Its like, they dont need to make a web application which parses form data 8-D they assign attributes on game assets

#

its not rocket science

keen tide
#

The only thing alike cpp of c# is grammar...

gusty bobcat
#

What we talk about here? grammar 8-D

#

BP is just another grammar

#

thats why i say, C++ and C# are pretty much identical

#

you dont need to install C++ or C# its part of the engine, you do not need to care for I/O thats all in the engine, in both cases

#

there is nothing left of the ACTUAL basic diffferences of the languages

keen tide
#

The philosophy behind CPP is different from CS. It's easy to go from CPP to CS but not reverse.

gusty bobcat
#

you still ignore what you do

#

its C++ in unreal engine

#

you make for loops, you assign variables

keen tide
#

It's not about me, just about most CS guys.

gusty bobcat
#

you do not even need to understand what is a reference, cause even that is not necessary in your path

#

yeah

#

and i say they are just ignorant

#

cause they do the same

#

there are classes, attributes..... they set them......

#

you ever looked at big big c++ classes of unreal engine games?

keen tide
#

Then a crash window will teach 'em a lesson.

gusty bobcat
#

yeah as said, the debugging is harder on the lower level

#

BUT

#

on the higher level you face identical problems and this "problem" gets less of a deal

#

AND

#

never forget that they can just startup visual studio and get a serious error reporting

#

;)

keen tide
#

And more pain comes when external dependencies joining the game.

gusty bobcat
#

yeah sure, but for that we have the engine plugins

#

no one needs really to integrate something on their own

#

and if, then this is like actual real hardwork in both cases

keen tide
#

CS is easier.

#

At least CS won't have so much include problems.

gusty bobcat
#

well thats why epic prepared those scripts ;) and the plugins are working beautiful as includes

#

i also made yesterday my first standalone application via unreal 8-D

#

so just bare C++ code in the unreal framework but not doing actual unreal things

keen tide
#

What not-unreal thing it is.?

gusty bobcat
#

right now, just opening a window

keen tide
#

OS' window?

gusty bobcat
#

yeah

keen tide
#

Are you gonna make some kind of editor? Looks like you will give RHI a window handle then..

gusty bobcat
#

i just want to make a starter

#

cause we add a custom build engine to the project for the developer and i want them to have a sexy starter and i want the same starter to ask me where the project is so that i can pick it and dont configure it

#

more a training of some sort that grows into more tasks then

keen tide
#

Ah you are providing modified UE editor for developers?

gusty bobcat
#

i have to

#

its not like that i WANT

#

i mean ok i also want ;-) but i am enforced

keen tide
#

Sounds like big company.

gusty bobcat
#

haha no very small, but i intend to make it proper

keen tide
#

Oh maintaining a private dev kit will be a tough work for you...

gusty bobcat
#

not really if you make it proper

keen tide
#

I have a friend crazy about these kind of things too... A freelancer and addicted making private editors built from OpenGL and other opensource libraries. And his hair has totally gone.

gusty bobcat
#

yeah but i am just compiling unreal editor?

#

its not rocket science

#

i can train a monkey to do that ;)

keen tide
#

🤣

gusty bobcat
#

the point is that i dont want to ;-)

#

its like even if the monkey can install visual studio and hit the right scripts, he still cant take any use of knowing this process

#

that is why i just compile the complete editor and add it to the repo of the game project

#

and then adding up a starter that gives a meaningful error if something is missing and that startsup the UE4Editor or the game depending on which button is pushed

#

cause if you have no C++ code in the actual game project then through that, then the people on the project can work with the done compiled one already

#

kinda funny

keen tide
#

Wait, you are shipping the editor code with game?

gusty bobcat
#

what? no with the project for the developers

#

dude ;)

#

think mcfly think

keen tide
#

You said starts up the editor or game depending on which button pressed...

gusty bobcat
#

yeah the game is also for the developers

#

cause they dont need to build their own

#

if its anyway asset driven

#

think mcfly think ;)

#

hides

#

that way you can very cool work on it in combination with others

#

cause of the synced version

#

so like activating full asset cheating for the developers ;-) hehe as workflow, in gamer terms

keen tide
#

So developers will only work on assets?

gusty bobcat
#

the majority of them yeah

#

if we make C++ code it will be developed on an indepdenent path and then added to the prebuild stuff

#

that is a more clear workway for all involved

keen tide
#

Ah I get it. So two teams of dev, upstream Cpp devs like you and downstream devs using the starter.

gusty bobcat
#

it just gets complex in the most rare case where you have c++ and assets that have to be developed together

#

but "thats ok", the C++ developer will be able to handle that problem on his own

#

But seriously: If the thing needs C++ and Assets at once to be modified and adapted, then its probably not good to be partly C++ ;-)

#

of course that said with a lot of asterisks to state clear that there is a lot of things between the layers ;)

keen tide
#

Yeah that will prevent people accessing BP variables from Cpp🤣

gusty bobcat
#

primary the idea is that you normally prepare the asset with all the variables that are asset-specific, and just have it there, and then the C++ can use that variables to prepare the stuff, so it could even do fake variables before or just prepare one asset to test for fetching.

gusty bobcat
#

I just realized that tortoise git actually can read the "Updating dependencies" line from the output of the GitDependencies.exe and shows on his progress bar the actual % from it

#

now i am kinda curious if Unreal adapted their output so that Tortoise gets it or if Tortoise handles a variety of different progress outputs and just catches that one

#

at least someone could say "thats neat"

jolly fog
#

Hi

#

I have source code

#

A github

#

I got it and I'm currently looking for the source of the grid lines

#

please help

jolly fog
#

Nobody knows my answer

keen tide
#

You want to draw a grid in UE?

jolly fog
#

I don't want to shoot in Visual Studio

#

I have the source but I don't know which part to use

#

Please help

keen tide
#

Still not clear what you problem is... need to be more specified... What a grid does with VS...

jolly fog
#

I just want the main lines to be able to put all the other objects in the axis

#

Grid line

#

Please help if you can

keen tide
#

You want a grid line in a UE game?

jolly fog
#

I want to draw gridlines in Visual Studio to build new software

#

I want to draw grid lines in Visual Studio to build new software

keen tide
#

Eh... In short, visual studio doesn't support that thing...

#

VS is not content creation tool...

jolly fog
#

That is, the source of the network lines on the github website is incorrect

keen tide
#

You can build a 3D SOFTWARE which has gridlines in it using visual studio as the IDE.

jolly fog
#

Please explain more or give me a website address

keen tide
jolly fog
#

No Thankful

#

Thankful

#

I'm sorry I wrote wrong

keen tide
#

😆 NP feel free to ask.

jolly fog
#

thank you

#

I want to make a new game software

keen tide
#

Game maker?

jolly fog
#

Yes

keen tide
#

How long have you worked on C++...

jolly fog
#

And any software that is game engine needs network lines

#

It's not too long yet so I haven't been able to get the grid lines up so far I just have the idea

keen tide
#

You need to be very professional on Cpp and DirectX, Vulkan or things and science related to make a game engine... Or you have lots of money...

#

But learning the basic now is a better idea. Like, learn to make a game in UE will help a lot if you want to make a competitor in the future.

jolly fog
#

I'm still trying to learn

keen tide
jolly fog
#

That is, he will teach

#

thank you

keen tide
#

😝

jolly fog
#

😂 😂

#

No explanation at this address

keen tide
#

It's the learning site.

jolly fog
#

But not the engine

keen tide
#

It teaches you the unreal engine.

late blaze
#

this is not related to source control

keen tide
#

Related to source and control. 🤣

jolly fog
#

Could give me a source control build

late blaze
#

@jolly fog you seem to be confusing a lot of things

#

what is your precise asking ?

keen tide
#

He seems like a boy new to programming. Just assuming...

late blaze
#

sure, so let him stop going into chaos 🙂

keen tide
#

Aye

jolly fog
#

I'm looking to build network lines with Visual Studio, as I asked your friend

late blaze
#

this has no sense, visual studio is an IDE, what your showing a 3d grid in editor. don't call it line network, it's called a grid

keen tide
#

( Maya I believe

late blaze
#

seems to be

jolly fog
#

Yes

late blaze
#

@jolly fog you can't get answser to none sense questions ...

jolly fog
#

What

late blaze
#

we can't understand what your asking for

#

visual studio is an IDE, nothing related to game or 3D ...

#

try to formulate better what you ask for

jolly fog
#

I want to build a 3D visual studio

keen tide
#

He want to make a competitor of UE

late blaze
jolly fog
#

Yes

late blaze
#

what do you mean 3d visual studio ?

jolly fog
#

Then where to ask

late blaze
#

maybe what you ask is how to create a grid from code/cpp ?

jolly fog
#

Yes

late blaze
#

you need to know cpp for that, do you ?

jolly fog
#

Like the picture

late blaze
#

if you are not allready a coder, you should use/learn blueprints first

jolly fog
#

Oky

late blaze
#

good luck, be patient, and remember : you can't answer yourself or get help if you can't clearly formulate ....

jolly fog
#

thank you

#

Good bye

late blaze
#

see you 😉

gusty bobcat
#

@valid olive are you there by random?

valid olive
#

Yup, prepping Christmas dinner so limited availability. What's up?

gusty bobcat
#

@valid olive no problem :) sorry for late i also have things happening. I get now a bit dizzy about thinking of how to make the UE4Editor alone with the splitted repos. Practical the Source of the game must be in the Source tree of the engine for the building to be happy, or?

#

so like when i am at D:\UnrealEngine for the Engine and have the other repo in E:\MyGame, then i just cant do UBT E:\MyGame\MyGame.uproject, or can i? mh i should probably try that

valid olive
#

Earlier you said you didn't need to do this. What you are attempting here is more trouble than always building engine + game on all machines that work against the code repo.

gusty bobcat
#

i can reorganize that easily, i am just trying to understand what is the minimum to get it drift

valid olive
#

The problematic bit is to convicce UBT that you want to build game code only on the current machine, even though the engine code (which is part of the VS solution and also the unreal project config) has not been built locally

#

One way around this is by creating an 'installed' build, and link the UE game project to such an installed build instead of to a folder containing the UE source code

gusty bobcat
#

yes

valid olive
#

(this is kind of how UE launcher-distributed UE versions work)

gusty bobcat
#

that was exactly the plan, practical just a bat file that starts Engine/Binaries/Win64/UE4Editor.exe MyGame.uproject

#

i dont think i am that far away from that

valid olive
#

Ok but then you need to look into how to build an 'installed' build and how that registers itself onto a system

gusty bobcat
#

yes

#

Requirements must be installed

valid olive
#

Alright, glhf

gusty bobcat
#

gna, now i am on the right track, but even with the disabled plugins coming to 3382 again

restive magnet
#

when my collaborators try to load the project they get " [name] cannot be compiled. try rebuilding the source manually"

long mural
#

you need to commit the binaries

#

for the development editor build

restive magnet
#

alright

#

thanks

long mural
#

best thing to do is

#

delete all stuff in binaries/win64 or w/e

#

then build Development Editor

#

and commit everything that is now in Binaries

#

now your team don't need to compile when they want to load the project

restive magnet
#

Thanks

gusty bobcat
#

i got a very interesting git problem here, it seems that some includes are dropped out to be included, probably because the end path is too long (i am not particular making it longer but it is already ultralong).

#

Somehow i am having a hard time making my git to accept it, dont wanna move that now to linux just to see if it can work there... but whatever i do he doesnt want to add up the .h of Engine/Source/ThirdParty/IntelMetricsDiscovery/MetricsDiscoveryHelper/build/include/

#

wow, now i directly got it, there is a .gitignore in the MetricsDiscoveryHelper wow... ok....

#

wow ok, still a pain in the ass, interesting cascading .gitignore

faint moat
#

glad you solved it!

gusty bobcat
#

for sure something that drives people crazy

#

i mean, no one will notice till they copy the repo ;) so edge case anywaY

haughty ember
#

Perforce keeps on making random changes this year

#

Wish they would throw up a pop-up "What's New/Changed" on updates

keen tide
#
+ Showing 'What's New' on updates.```
restive magnet
#

@long mural I added the binaries folder but they get this error

long mural
#

might be missing some ue4 runtimes

#

or something

#

always works for us, we do it all the time, thats how we keep the non programmers happy

restive magnet
#

How can I fix it?

quaint obsidian
#

@restive magnet how did you add it? it might be a corrupted file issue

restive magnet
#

i just removed Binaries from the .gitignore file, deleted the binaries folder and regenerated it

still relic
#

ok google

#

ok google

#

OK GOOGLE

#

ffs nvm

quaint obsidian
#

is the DLL being stored with LFS or git?

restive magnet
#

I don't know, but maybe lfs since I used a tutorial that told me to install lfs or whatever it's called

quaint obsidian
#

ok, how large is the DLL and are they able to open it in notepad?

restive magnet
#

Which dll are you talking about? @quaint obsidian

quaint obsidian
#

the editor binaries dll

restive magnet
restive magnet
#

@quaint obsidian could it be because I have a broken class?

woven sluice
#

Oh yikes, you're not committing those are you?

#

Those are all hot reload DLLs. Stop compiling so much with the editor open indeedpepe

restive magnet
#

uh oh

woven sluice
restive magnet
#

if I delete the binaries folder all those extra .dll files should go away right?

quaint obsidian
#

yes

gusty bobcat
#

Happy New Year to everyone not using perforce as source control! :D

gusty bobcat
#

\o/

jolly fog
#

lmao thanks

#

you too

neon tulip
#

Hello, I currently have a fork of unreal engine 4.23.0 and was looking to upgrade my fork to 4.24.1

#

I've got roughly 4 modified files in it, so just figured easiest thing would be to make a new fork but this doesn't seem possible

#

Is there a standard procedure for this sort of thing not involving pull requests to epic?

quaint obsidian
#

@neon tulip what branch are your changes on?

neon tulip
#

release

quaint obsidian
#

ok, do the following in git bash in the unrealengine repo folder:

git remote add upstream https://github.com/EpicGames/UnrealEngine.git
git fetch upstream release
git rebase upstream/release
#

or use ssh if you use that instead of https

#

(git remote add upstream git@github.com:EpicGames/UnrealEngine.git)

neon tulip
#

Do that in the cloned fork of unrealengine yeah?

quaint obsidian
#

yeah in the fork

neon tulip
#

Does the action happen as a push kinda?

quaint obsidian
#

you have to force push after

#

or you can do a merge instead but thatll be messy

#

but you dont have to force push

#

git push --force-with-lease

neon tulip
#

Mostly just curious if i'll have a revision to my modified 4.23.0 after?

#

Not the end of the world if doing that obliterates it though, just curious

quaint obsidian
#

you won't, but you can do that

#

before the rebase or merge, just

git switch -c 4.23-modified
git push -u origin 4.23-modified

#

git switch release

#

thatll make a new branch called 4.23-modified from your release branch

neon tulip
#

oof, that is excellent

#

very much appreciate the help. So the remote, fetch, rebase are basically a reset on the release branch alone, but if i make a branch of release before running that then I will retain my current release as a seperate branch that will not be affected by the reset yeah?

#

very much appreciate the help

quaint obsidian
#

remote add adds a "link" to the original epic games repo

#

fetch updates info to that link

#

like downloads new commits

#

rebase makes your changes based on upstream/release

#

basically, it looks at what they have in common and where they split up

#

and it applies the commits on your branch that split from epic's release branch onto their release branch

#

and yeah, if you make a branch from release, it will retain that state

#

and then when you switch back to the original release, and modify it, only that branch will be modified

neon tulip
#

excellent

#

thanks again will give it a shot

#

hmm its saying switch is not a command

#

seems documented though, will try something other than mingw

quaint obsidian
#

you can use git checkout -b instead of git switch -c @neon tulip

git switch was introduced in git version 2.23

neon tulip
#

Appreciated, installing 2.24.1.2

fallen geyser
#

after switching to the new workspace, p4 is unable to sync row assets, it throws me errors about syncing fbx, png, mp4
open for read: depot/game/content/ui/icons/input/xbox/xbox_x.png,d\1.13.gz: The system cannot find the file specified.
Librarian checkout depot/game/content/ui/icons/input/xbox/xbox_y.png failed.
any ideas what could cause that?

#

could be something with typemap?

fallen geyser
#

nevermind, I just deleted and re-added these assets from the old workspace, works now...

velvet escarp
#

I'm new to source control and don't know what I should use to backup my 30+GB project. It's important to me and I don't want to lose it if my PC were to go up in flames. Should I buy an external harddrive and just zip up the project and copy it over? What do you guys use or do with a project this large?

gusty bobcat
#

@velvet escarp you can use source control also local with an external harddisc or anything else. If you are not that much into "having some server" or paying a cloud service to host your data, then this can be done easily

velvet escarp
#

That's what confuses me. I've researched the various source control products and they all have small limits on what you can store. What about levels I've created and spent months making? Those take up a lot of spacer correct? So correct me if I'm wrong but source control is more for code and blueprints? Large things such as levels and the assets I used to create them have to be stored on a server or external harddrive or pay for cloud storage?

gusty bobcat
#

oh dear the classic, yeah of course if you have binary files then new versions make no diff but a new version of the file, but its still a backup, you want the history not just a backup

#

its just better for code, but that doesnt make it less effective for binary

#

although i talk about git here, thats the good stuff ;) but you can have this all stored local, no problem

#

and then you have the complete history, and can go bcak to old versions and everything

#

for what it is used its the most effective way to do it, it is not the most easy way tho, i mean source control means understanding its flow, but if you are once into that, you will not wanna miss it

#

especially branches and tags and stuff that helps you go back to specific points

#

like savegames ;)

velvet escarp
#

Ok cool. Thanks for the information. I see the importance and power of source control software but I also see all of the people struggling with it lol. I've been developing for a few years and tend to just backup locally every night and then upload to the cloud once a week. But my project has gotten so large it's becoming harder to manage and is I don't have enough cloud storage. I think I'll find the easiest source control to backup my blueprints and then just invest in an external ssd for local backup and maybe upgrade my Google Drive to 100GB. It's only $20 a year so I think that should cover me in case of any disaster.

gusty bobcat
#

just drive a git locally

#

you just need to activate git lfs (large file support) which allows you to define those extensions which he doesnt try to compare

#

although i must say now, that i am unsure if LFS can be done locally, actually good question

#

yeah ok, its not ideally i see, there is a workaround tho as it seems, but given that you work locally it might also just work fine out without LFS activated, might be a bit more storage but achieves the same (and might be slower)

#

but thats really just if you dont wanna just startup a little git server on your machine, i mean if you wanna be a bit more serious

#

and then at some point you make the git server on the cloud ;)

velvet escarp
#

Yea I'm not really sure what I need to do. I'm just a solo dev right now so I don't really need all the fancy stuff a lot of these programs use

gusty bobcat
#

this is not about fancy, this is about the right tool for the right case

#

you could practical start with any doc about how to use git with your unreal engine project

#

you just dont "push" and "pull" cause you have no remote server

#

thats a starting point

velvet escarp
#

Yea I've been reading guids and watching tutorials. I still don't quite understand it all. It seems a little confusing such as only being able to commit 1gb or something like that. IDK It's just all new concepts that I'm just not sure about. I'm sure it's easy once you understand it. I'm just probably over thinking it

gusty bobcat
#

thats not part of the source control

#

that is part of some service that sells you source control

#

you can commit whatever shit you want in your local git

velvet escarp
#

See what I mean lol I don't even know what I'm talking about hahahaha

gusty bobcat
#

that was obvious haha

#

it is a big topic, but its also powerful and the more early you start with it the more early it gets just your daily routine

#

especially alone you will have a lot of less problems ;)

velvet escarp
#

Ok so I can create my own Git server? And then go from there?

gusty bobcat
#

you dont need to but you can but you dont need to

#

the git on your local drive is already the source control

#

thats what i meant

#

you just need a git client and your stuff, and your git client makes everything possible

#

without any remote resource

#

you change stuff, git commit, you change stuff, git commit, you see a mistake, git checkout VERSIONTHATWORKED, you change stuff, git commit, you change stuff, git commit

velvet escarp
#

Ok I undertand what your saying now lol my bad. I'm just worried about my drive dieing on me. I have a lot of lightning where I live and a lot of power outages and surges. I'm always scared I'll lose everything.

gusty bobcat
#

haha yeah, you still then need to make from time to time a backup of your git

#

but primary: the git is for your version control, not for your backup, but you just need to "sync" the project with the git to something

#

like you can just have it all on a dropbox or some other storage

#

even tho you might need A LOT of space then ;)

#

but in general thats the direction

velvet escarp
#

Oh ok I see what you mean. Things are getting clearer lol

gusty bobcat
#

yeah

#

of course it THEN makes sense to just use some git server cloud service where you "git push" your data to then as "backup"

#

but thats then the money element which might be really noto necessary for you

#

but if you dont hjave it you need some other form of backup still

velvet escarp
#

I gotcha. Hey thank you for spending the time to explain the basic overview of this stuff. I appreciate it.

gusty bobcat
#

gamedev is already a hard topic doesnt need to be more hard ;)

velvet escarp
#

True that lol. I spend too much time figuring out taxes and other crap when all I want to do it develop.

gusty bobcat
#

where are you from?

velvet escarp
#

USA

gusty bobcat
#

oh ;)

velvet escarp
#

You in the UK?

gusty bobcat
#

LOL no, Germany

velvet escarp
#

Gotcha. I have a lot of friends from the Netherlands and a few from Britian.

gusty bobcat
#

you sure the brits are your friends? ;)

#

hehe

velvet escarp
#

Hahahaha I keep my guard up hahahahaha

gusty bobcat
#

better safe than sorry, eh ;)

cursive cosmos
#

For some reason all my assets say "not in depot"

#

and when I go to check them out it says they are not in version control

summer lantern
#

then they're not in version control

#

they've never been committed

cursive cosmos
#

I just started using source control in UE4

#

Is it normal for all assets to have that once you open the editor initially

summer lantern
#

if you've never committed anything to source control, yes

cursive cosmos
#

oh ok

#

then is it also normal for this dialog to only want to submit the assets I have browsed too and actually seen>

gusty bobcat
#

I am not using the internal tools for the source control ;) Would be curious now to know how many people in here actually do

ocean ridge
#

I only really found them useful for automating checkouts w/ perforce

#

almost everything else became more cumbersome

gusty bobcat
#

haha i was about to say that probably only perforce people use it ;)

sand charm
#

I'm having some issues with git-lfs and the creation of new c++ classes to the project. Anytime I try to create a new c++ class, it gives me this error:

Changes to generated code are not allowed```

Any ideas?
rotund bobcat
#

how do you know it's related to git lfs?

#

and how are you creating a class

sand charm
#

through ue4 -> Create new C++ class

#

i ended up fixing the issue, had to completely refresh the project

#

apparently the person who set it up messed up the lfs somehow when they first did it.

boreal crown
#

Guys, please help me with this issue:

warm minnow
#

The easiest way to do that would probably just be to merge the branch and then edit the file

#

with command line git you can do merge --no-commit which would not create the merge commit so you could tweak the file before that gets created, although you could just as easily just amend the merge commit to change it to look the way you wanted after editing the file

fallen geyser
#

what would be the expression to exclude all Binaries folders from P4 workspace?
I tried , but didn't work (even on game plugins folder)
-//depot/Game/Plugins/
/Binaries/... //workspace/Game/Plugins/*/Binaries/...

buoyant basin
#

I am using SVN for my project. we were all programmers so I ignored 'Binaries' folder.
now I want to share the project with designers as well . what's the proper way ?

high jasper
#

Hey guys, question here. In P4V, how do you delete the temp files the editor leaves back to clean up the project? I mean Binaries, Intermediate and Saved. It's a C++ Project. Should it be done individually or on server?

fallen geyser
#

Intermediate and Saved shouldn't be sent to the server

#

from Binaries you usually should sent only editor .dll and .modules (optionally .pdb so people would have symbols but those files are super-heavy)

#

if you committed them already, need to select the files in Workspace view and use Mark for Delete on them

#

and commit list of removed files

elder shard
#

Hey there, I've had some problems with git and Unreal's large files before and I want to avoid these. I've already taken a look at Git LFS but most resources I find on using it have been outdated for years. Could anyone point me to where to look at for this?

#

Another thing, is github's default .gitignore for Unreal good enough? I used it before, but it was saving files that didn't seem that important like the console log and the project's thumbnail

buoyant ice
#

Man running my own little perforce server has been so worth it

#

Just so nice to pull down projects from eanywhere and keep it all backed up and versioned across systems.

molten marsh
#

It is handy. I have an old Server blade in my garage that does my Perforce and Automated Builds.

buoyant ice
#

Nice. I rent a little dedicated that does little jobs like that. Tried doing it with cloud type stuff and was never satisfied.

molten marsh
#

Cool, cost me $500, i turn it on when i need it.

#

They are great cause they have a remote access card.

#

So i dont need to physically be there to turn it on.

buoyant ice
#

But knowing whether or not my stuff is on or connected at home and having a safe remote backup is nice.

gusty bobcat
#

Hetzner.de in germany offers 100 TB (and 150 TB) server with unlimited traffic really good for this kind of hosting but of course oversized for all demands ;)

lilac plank
gusty bobcat
#

are you kids these days not also into docker? ;)

vivid scaffold
#

ok, so Plastic SCM for Unreal isn't the easiest to find a tutorial on...

#

no pinned tuts here either

#

ping @molten marsh @haughty ember 😬

#

hmm... their official Youtube channel have lots of Unity tutorials, but not a single Unreal one...

#

let's see how far I get with Unity tuts 😛

gusty bobcat
#

well, not everybody who suffers writes a documentation about it <badumtss>

tall belfry
#

Hi all!

Just throwing it out there. I'm tempted to write a version control system that sits somewhere between GIT and Perforce. We've already got a pipeline for animation / commercial production, and adding on top of it check ins/outs and branching would take time, but well within our grasp.

Throwing it out there: Would anyone be interested in a cheaper, easier to use version of Perforce, but not as complex as GIT?

ocean ridge
#

that sounds like the gap plastic fills for me 😛 decentralized cheap perforce

tall belfry
#

I have heard a little bit about Plastic, what's good and such?

lost silo
#

Im port forwarding with perforce does this look right?

#

im not sure if it is

molten marsh
#

@vivid scaffold ??

tranquil stream
#

I'm a college student working on a project with my school's game design club, and we're thinking about making the leap to Perforce (we're currently using Github, to mixed results). Unfortunately I don't know much about servers! Can anyone recommend the best services for hosting Perforce at a relatively small scale (~4 people on our team)? I'd also like to be able to run scripts on the same server that we could call from client-side Unreal CPP and Blueprints--is that possible?

languid vigil
#

Any Perforce Linux Server Admins here? 🙂

valid olive
#

@tall belfry do not write a VCS yourself. You will spend man years chasing and fixing data loss problems. (If you are OK with spending that time while also handing the production impact, go ahead.) Write some glue/automation around an existing VCS.

We use Plastic. It supports large binary files better than Git. It supports light-weight branches better than Perforce. It has a good GUI client.

Some downsides of Plastic: the Cloud version does not support server-side script hooks and does not have a good web UI (but it is supposed to be in the works) - if you need those you should go straight for the Server version.

vivid scaffold
#

@molten marsh you have a perforce tutorial link pinned in this channel... hence why I cheekily pinged you when I was asking about plasticscm tutorials

molten marsh
#

Right...

#

No one has posted a Plastic tut so i cant pin one if one isnt here

fallen geyser
#

@tranquil stream if you're serious about that, consider buying simple machine for server
it doesn't has to be super fast to handle p4 and occasional operations like cooking

#

it pays off with time and you don't have to care about drive space, you just buy how much you need

#

every time when I look at cloud Perforce solutions, I'm like "80 GB" for 20 $/mo? good for starters, but super-expensive and limited in the long term

#

if you need a cloud solution, I hear people recommending Digital Ocean - you pay for a "droplet", many flexible tiers

languid vigil
#

Hi. I just set up a Perforce Linux server and got connected to the client. When I transferred files to the server repository I did not remove any files. All project files were transferred. Am I forced to check out the entire project directory / all files to test code in the editor (debug mode) or is there anything I can do to be able to run .uproject without having check out the other files it needs to work?

jaunty karma
#

hey peeps, who here has set up the UGS metadata server?

robust jacinth
#

Ugh... anyone got a nice set of Perforce scripts to fix all the stuff that isn't recoverable/interruptable?

#

Working with a few tens or hundreds of thousands of files and having a sync or a reconcile eventually fail is a huge pain.

#

I haven't been able to get my pet project reconciled because reconciling doesn't do anything until its complete. So any failure during the whole process is a total loss. Syncing, at least, goes file-by-file.

cold orchid
#

hi guys one of my coders reverted a merge and now we are in a dire place I'm using github deskptop and gitlab can you guys point me into documentation to not revert but to get back to an old point on the history of the repo( I dunno if that's a thing ?

rotund bobcat
#

just do a git checkout *insert commit sha here*

#

e.g. git checkout b05a99abfbdbc7466c97115a426f9c76d9818af2

#

and the you force push to your branch if you want this to overwrite everythgin

cold orchid
#

@rotund bobcat in git bash?

rotund bobcat
#

yes

#

be careful to be sure you want this though

#

cause if you force push old content on the branch, everything after that commit will be lost

cold orchid
#

I'm going to take a screen shot to see that we are in the same page

#

ok so the one I have highlighted is the one I want to get back to

#

the ones in front the highlighted one I don't care for

jaunty karma
#

I am having issues setting up the metadata server, I have IIS working and configured all xml files properly, the issue is IIS isn't loading the metadata module correctly and when I add it manually into handler mappings, I get an error so I am puzzled

rotund bobcat
#

if you don't care about the commits after yeah do as I said

cold orchid
rotund bobcat
#

yes

cold orchid
#

@rotund bobcat ok it went back to that point in the repo but it says now that I'm in a detach head branch, how do I return to normal, I make a pull request through git bash?

rotund bobcat
#

do you have write access to the branch you want it on

#

try git push -u origin *branchname* --force

cold orchid
#

yes I believe so

#

git push -u origin master --force

#

is that it ?

#

@rotund bobcat

rotund bobcat
#

yes

cold orchid
#

bash: -u: command not found

rotund bobcat
#

try without the -u, might be just for new branches that

#

or git push origin HEAD:master --force if that doesn't work

cold orchid
#

$ git push -origin master --force
fatal: You are not currently on a branch.
To push the history leading to the current (detached HEAD)
state now, use

git push master HEAD:<name-of-remote-branch>
rotund bobcat
#

yeah, that's the thing I said to try if it doesn't work

cold orchid
#

I guess this means I don't have permission

rotund bobcat
#

yeah

cold orchid
#

but I'm a Maintainer

rotund bobcat
#

idk, I don't use gitlab, don't know what kind of permissions you have set up

cold orchid
#

@rotund bobcat I ended up using the git reset and now the head is pointing at the right commit, however is still telling me to pull the old ones

#

can I fix this with a push?

rotund bobcat
#

well a normal push would not work since it would say you're missing remote work

#

so you'd have to force push, which you can't since you don't have permission to do that

jolly fog
#

any idea how i set the default .git project on VS startup of my game project sln?

I have two .git repos here that i see when i open my unreal engine game .sln file. the one that I want to point to is the "Source" repo that is a part of my own game project, and not the default selection of the unreal engine engine repo. thanks! please @ me if you have an answer and i don't respond right away.

fickle canopy
#

hi all I am following through on my new years resolution to start getting serious about source control

#

I set up a perforce server on amazon ec2 and I am uploading my project files (70 gb) to it for the first time

#

it's going to take quite a while for the upload, so I was wondering if there's any way to validate it's uploading beyond just the blue progress bar on the add files wizard?

fickle canopy
#

nevermind I found a way, I connected to my ec2 instance and ran 'du' command on the directory being created from the shell

#

now I'll just wait and cross my fingers at the end it all works out and I can download the project files on to my other computer after all that

fickle canopy
#

hmm I ran into one more perforce issue if anyone can help

#

I am installing perforce helix on to an amazon ec2 instance running linux

#

the unreal documentation for installing it suggests changing the typemap with p4 commands

#

I tried uploading p4 to my amazon ec2 instance with putty and did chmod +x to make it an executable

#

but when I type p4 commands from my putty connection window to the ec2 instance, it is unresponsive

#

just p4: command not found

vital sapphire
#

is the p4 binary in your current working directory (you will probably want to install it to /usr/local/bin so it shows up in your PATH)

fickle canopy
#

I'm not sure how to navigate to that through the amazon ec2 connection window

#

I am kind of a noob with amazon ec2/ssh things

#

or should I be using the p4 tool locally and connecting to my remote p4d server that I've hosted on amazon?

vital sapphire
#

you should be able to do it remotely (assuming your server is configured and you can connect with p4)

fickle canopy
#

thanks I am trying that now

fickle canopy
#

I was able to connect from my machine to the remote server

#

I did not set up my perforce server as case insensitive, but the unreal documentation suggests it's important

#

the perforce documentation for switching it seems complicated though

#

does anyone have any experience on whether this actually matters in the end?

#

hmm this one seems to have good instructions on switching it

fleet anvil
#

I want to set svn version control up for my project. I'm currently using gitlab, but I want to move everything to my own server. I followed UE4's walkthrough on it.
https://docs.unrealengine.com/en-US/Engine/Basics/SourceControl/SVN/index.html

My seldom used laptop, which is connected via wifi, is going to be the server. Installed Visual SVN on it and created an empty repo and gave 2 users (one for my work pc and another for my home pc) access to it. On both home and work PCs I have the latest tortoise SVN installed.

Stuck my the contents of root folder of the Gitlab project into a newly created folder on my home PC, clicked that folder > SVN checkout and copy pasted the URL, sent via emal from the created repo on Visual SVN, into "URL of repository" and verified the Checkout directory was the same as the one I clicked checkout on.

Fsr, I can't connect my home pc (wired) to the laptop server (wifi) even tho they are on the same network. Would this mean my router settings are bad? If so, what might I look into to fix it?

How to setup SVN so that you can share assets with other on your team.

#

Perhaps my router is blocking the default port? I think it's 443 by default.

wild sage
#

Ports don't matter on local networks

#

Not on the gripes with SVN though :/

vivid scaffold
#

anyone know if I need to check in ignore.conf in PlasticSCM?

#

oh... seems I can add it to the ignore list itself 😛

rotund bobcat
#

might be good to have an ignore file on the server, so that everyone is ignoring the same files

#

although never used plastic so idk

wild sage
#

Yep generally a good idea

#

@vivid scaffold

vivid scaffold
#

@wild sage thanks!

wild sage
#

Nw :)

fringe abyss
#

Epic is going to have a stream next week or so about setting up source control for ue4

#

so stay tuned for that as well @fleet anvil

#

but for my perforce I had to allow the service to connect through the firewall.. through windows firewall settings

#

and then on the router itself, through the admin panel, also had to setup port forwarding

#

i actually have to do that last part almost every month as my server's ip changes

wild sage
#

Even when connecting locally? @fringe abyss

fringe abyss
#

no, mine is not setup locally, even though im using the same network i believe it still goes through the internet...

wild sage
#

Wait, but if it's the same network it is local 🤔

fringe abyss
#

the network is local but i connect through the IP address (not the local one like 127.x.x.1

#

using no ddns net

#

to mask the ip

wild sage
#

Oh because others are using it?

#

But still, you should be able to connect perfectly fine through the local IP

lost silo
#

SourceControl: Error: G:/TylersWS/FireProject/Content/ThirdPersonBP/Maps/AcademyMap.umap - must create client 'FireRescueSimulatorWS' to access local files.

#

Anyone know what that means im new to source control? Please @ me.

wild sage
#

@lost silo Perforce I presume? Are you in that workspace (FireRescueSimulatorWS)? Is that even the workspace you wanna associate with that project?

lost silo
#

Yeah i fixed it thank you

wild sage
#

Perfect :)

slate pulsar
#

For github, should I ignore Config/DefaultEngine.ini?

woven sluice
#

The ini files are part of your game content and should not be ignored

kind olive
#

I need to setup a new source control server. In the past I've used the free license for perforce but the pricing once you go above that is not attractive. Is anyone using Plastic SCM with a small team or even as a solo dev? The pricing seems fairly reasonable even when you need 200GB or more of space. Can anyone point to a good overview Doc or Video of how it works and setting it up for UE?

#

or if anyone knows a reasonable hosting option for perforce. I've looked at using AWS in the past, but I'm a little unsure of how much work it would be to maintain. I need to balance cost while minimizing the time required maintaining it.

#

Last thing, If anyone is using AWS or EC2 I'd love to hear how it worked out and what the costs ended up being. I'm reading through the scroll now too.

kind olive
#

Anyone have a copy of their lock rules they'd be willing to share?

fickle canopy
#

@kind olive I'm starting to set up perforce today as well

#

I found on microsoft azure they have a free $200 credit for the first sign up

#

right now I'm about 41% of uploading 50 gigs over the last 4 hours, but hopefully after that initial upload it's workable for just doing small updates

#

I found this tutorial very helpful

#

I did not research plastic just to clarify, but I chose to try perforce over git because of what people wrote about its handling of changes in binary files

#

the last studio I worked at also used it and it seemed ok there

kind olive
#

@fickle canopy Thanks, but I'm very familiar with running a perforce server. I was just looking for info on peoples hosting experiences. For now though I'm going to take a look at Plastic SCM. Their hosting seems fairly reasonable even at scale.

kind olive
#

Oh, and yeah Allar's posts were extremely helpful setting up things like ignore files and type maps the first few times. That's a great link.

#

There's a few things with perforce I dislike. The few times I've actually had to restore to change list have been problematic and the process for creating checkpoints and other stuff requires more attention than I really want to spend on it. If Plastic SCM can handle things with less need to micromanage at the price they are offering I'm sold. Perforce is just too expensive when they demand a minimum of 5 or 6 users. They'd actually be a great option, I use to work on the backend where I live and I'm about as close to directly connected as you can get to one of the Data Centers they use.

#

Everytime I look at their pricing it seems like they've changed it and it'll work and at the last minute there's always a deal breaking catch.

kind olive
#

Unless they're hiding something it looks like Assembla is offering 1TB of space for a single user depot at $44/month. It's tempting since I'm already familiar with Perforce.

fickle canopy
#

yeah I found that option kind of pricy for myself at the moment

#

so far my game has only made 400 in sales so it's steep to go for 44/month

#

post back what your experience is like with plastic I'm very curious

kind olive
#

So far it seems fairly simple. I'm still waiting on some files to move over to the new system before the initial commit.

#

yeah, Plastic seems better looking forward when new users might be needed. ~$6/user vs $44

kind olive
#

So far I'm really liking Plastic. I had a hard time at first because I expected it to be harder to setup than it is.

glad vector
#

i have no error pushing myself, but our project lead has this error, and we can't work as a team until it's fixed :/

blazing quail
#

@glad vector which git version you use? try to update it?

cold lotus
#

@glad vector that repo is very big, are you using git lfs for your binary files? Or are you just adding all into a plain git repo?

next swallow
#

@glad vector Where is your git repo stored

glad vector
#

@blazing quail we use the latest, for all our members, but we’ve decided it was a storage issue, so we’re ultimately swapping servers to see if the issue is fixed. And @next swallow , not sure what you mean by that exactly, seeing as we each have desired local locations for our cloned versions of the repo as you would normally, so yes. @cold lotus I believe we had implemented lfs on initialization too, but prob not a bad idea to bring it up again to the lead tonight. Thanks guys. Cheers.