Handmade Hero Private GitHub Repository

Hello folks,

Almost since the project began, there has been a lot of interest in a centralized GitHub repository, GitHub repositories for platform ports, and GitHub repositories for ports to other languages. Since the source code is private, this was a somewhat difficult thing to work out.

However, since there had been so much interest over such a long period of time, we are looking seriously into making this happen.

The goal will be to have a private GitHub organization account which everyone who has pre-ordered the game can sign onto. You would receive a code e-mailed to you from SendOwl (using the same e-mail address you used when you pre-ordered), and that code would allow you to link one GitHub username with the private GitHub organization account.

Inside the organization account, there would be one repository for each major version of Handmade Hero: my C source, the Rust port, the Go port, the Delphi port, the Swift port, etc. Everyone would have read access to all the repositories, but write access would be restricted to people who have been pre-vetted by the community as reliable maintainers. As is the standard policy with GitHub private repositories, you would also be able to fork the repository to make your own personal version, and it would remain private as well.

If this is something you have been waiting for / asking for, now would be a good time to get in touch with me and let me know if you have any specific concerns (which you could post here), or if you have a private port that you would like to start sharing and want to put in the organization's repository set (in which case you should e-mail me at [email protected]).

Thanks,
- Casey

Edited by Casey Muratori on
Excellent idea! =)
It's worked really well for distributing Unreal Engine 4's source code, and would be super nice to be able to just fetch changes from a Git project than to have to download the new builds from Sendowl <3 Would adore you to implement this as soon as you have chance~
Very cool :)

Useful for people are behind since trying to use desktop diff programs to refresh your memory of past changes is sort of terrible.

Doubly useful as an educational resource once it becomes public. Episode guides can link to specific lines of code from specific commits.

Edited by drjeats on
That would be a great idea indeed!

It's a minor thing, but I can supply project config files for those who are interested to follow along completely in Visual Studio instead of emacs + cmd.

Edited by Kirill Basin on
That would be great, yes. Lots of people like to build with Visual Studio, I think.

- Casey
When it comes to Git foo, I have found Miblo, Drive137, or Soulflare3 to be very good at maintaining repositories and handling the Hub in GitHub.
It sounds like a perfect idea to put it in a private repository.
This would be awesome.

As this was not explicitly written, I state (the likely obvious) to start the repository at day 1 please.

A minor concern which would need input from someone knowing git better than I: Does it make sense to convert the source files line ending to UNIX as all system can handle that, or keep that at CLRF and let git handle it via it's conversion macros.
I personally have no experience how reliable that is.
Great idea Casey :)

Now I can ditch my daily/weekly routine to download the latest code and import it into my local git repo.

Feel free to use this script[1] I put up together (and using other sources) to import the whole code day by day into a git repo.

Looking forward for this.

Nuno

[1] https://gist.github.com/nsenica/cbc5a4975666d7b02164
Will it also include the assets?
Git can't handle assets (that's why game developers never use it :) ) of the size used in game development (we will be having many gigabytes worth of assets) without extensions, so no, the assets will not be stored in Git. But the pack file will be updated infrequently, so it shouldn't be too hard for people to occasionally go download it from SendOwl.

- Casey

Edited by Casey Muratori on
I don't really want something where everyone's going to have to install an extension, though, and we'd have to post instructions and all that :/

- Casey
Unfortunately, there are no ideal solutions here.

* Downloading huge asset zips sucks.
* Breaking up assets into smaller zips to download sucks (especially determining which ones you need to download if you've missed a few weeks).
* Installing git-extensions sucks (though, honestly, it's as simple as downloading and running the script for this one).

Simple truth is, people will just be downloading other people's scripts to solve the disjoint anyway.