What is the purpose of "GitHub" and "Source Control"?

1.) What does “Grab the source on GitHub” mean and how does it benefit me in working on a project that I’m basically, at this point, familiarizing myself with in my learning process?

Do I need to do this now, or is there a “preferred” time “across the board” to do this?

2.) What is the purpose of “Connecting to source control” and which option do I choose: “Subversion, Perforce or Git (beta version)”? And is “Git (beta version)” the same as “GitHub”? Do I need to connect to one of the above aforementioned now? Why/ Why not?

It’s a way to back up your project. Besides just storing the project in the cloud, it also allows you to keep track of changes to files and if needed you can go back to a previous version of a file. It also helps groups of people to more easily share a project, instead of having to send files from each other you can simply download the updated files automatically.

Good afternoon Darthviper107,

Thank you for the quick reply! I am a bit of a novice and just saw your reply. My question per your response is, can you please clarify which one of my above numbered questions this pertains to? Please excuse my ignorance on the matter.

you do NOT need the source code and you never will, ignore that section.

darthviper107 answer

Thank you MaxiHori! So with the grab the source on github control tab in the editor that has the red circle and slash, I just ignore and will never need to connect to it for any purpose, correct? And #2.) in my question, that is basically just a cloud-based service of sorts, correct?

How do you know he will never need it? I think that’s unlikely, often you find some simple stuff where you want to change something or you need a feature or bugfix that’s only in a newer branch that’s not yet available through the launcher.

The github source is the actual code, if you’re a programmer then you can use the source code of the engine to make any modifications you want, most people don’t need it. There’s a node based system in UE4 called Blueprints that are an alternative to doing many of the things you would do with code, but it’s within the editor and it’s much easier to understand.

Source control allows you to back up your project and more easily work in a group. It can be used for code, but it can also be used for your regular game project files as well. You could use Github or Perforce for doing source control.

Thanks Darthviper107 and John Alcatraz! Darthviper, that helps me a great deal! I should’ve mentioned that I do Blueprints. Have been coming extremely comfortable with using it and love it! I don’t code at all. Also, I use Terabyte external hard drives for my storage purposes and I’m solo as of now. I “think” I would eventually like to work in a group, mainly to speed up projects I have in mind and I’m guessing whenever that time comes, it would be beneficial to use Github. I own various companies and do various things, but it’s very difficult to find top-notch work these days.

I meant to say, “It’s hard to find top-notch WORKERS/ EMPLOYEES/ HELP, these days”.

Source Control is very nice to keep changes in your project. Say you’ve got everything working, but you want to add a new AI behavior. You work a few hours on it, and somewhere something broke. If you were using source control, you could just revert the project back to an earlier state, and try again. Source control can be used for any/all assets/code/script in your project, and is useful even if you only use BP.

Subversion, Git, and Perforce are all forms of source control. They make use of a repository, which can be on your local machine for your own use, or on a server for team/network use. You can find GUI programs for each of these, or use them from the command line. The option you’d pick is based on the source control you’re using. Source control is entirely optional, and you don’t need to worry about it at all. It is a good idea, however, to think about using it on any serious project. I’d say- following a tutorial to learn, or just playing around? No need for source control. Game jam entry? Set up source control. Anything more serious? Definitely have source control.

This is an entirely different matter. As you may be aware, the source code for UE4 is available. In order to do so, you’ll need to link your Unreal account with your GitHub account. To make use of this, you’d then build the engine from the source code. Normally, you don’t need to do this. You can make use of Unreal without ever touching GitHub. You can view the source without ever using GitHub either- through Visual Studio (on Windows).


Now, what are the reasons for building the engine from source, and when would be a good time to do so?

  • You’ve spent a good amount of time using the engine, and there is something you want to change about the base engine functionality and you want to try to do so
  • You’re familiar with C++ and UE4, and want to tinker
  • There is a feature you want to integrate into UE4, which cannot be a plugin or implemented in the game only

This being said, you really only want to modify UE4’s source if you’re sure you know what you’re doing. If you’re going to use the source, make sure you are using source control.

If you simply want to write game logic in C++, you will not need the UE4 source.

AWESOME! Thank you so much for that KorkuVeren! That was very thorough and helpful for me! If it’s okay with you, I’d love to stay in touch with you if I have further questions or anything of that nature. I do have a Github account, but I am not quite sure how to use it. But, in essence, per your explanation, I feel I do not need to worry about that at this time.

Again, thank you so much for your help and insight and please let me know if I can stay in touch with you and if you’re comfortable with it, I would like to communicate via phone, Skype etc…!