Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Nolgthorn
Jan 30, 2001

The pendulum of the mind alternates between sense and nonsense
Non technical people are building software?

Aside from that, I can't think of anything easier than git.

Adbot
ADBOT LOVES YOU

floofyscorp
Feb 12, 2007

I use git at work and it loving sucks and the amount of time we as a team lose to wrangling git messes that artists and designers have managed to get into because git is incredibly difficult to understand if you're not especially technically-minded is unreal.

We use Perforce for handing our art source assets and almost never have problems with that.

roomforthetuna
Mar 22, 2005

I don't need to know anything about virii! My CUSTOM PROGRAM keeps me protected! It's not like they'll try to come in through the Internet or something!

floofyscorp posted:

I use git at work and it loving sucks and the amount of time we as a team lose to wrangling git messes that artists and designers have managed to get into because git is incredibly difficult to understand if you're not especially technically-minded is unreal.
Does the git ui still make it easy to get into a mess?
If so, alternative suggestion, a handful of scripts that do only the operations that artists should be doing, so they don't need to care about the dangers of git.

Doc Block
Apr 15, 2003
Fun Shoe

roomforthetuna posted:

If so, alternative suggestion, a handful of scripts that do only the operations that artists should be doing, so they don't need to care about the dangers of git.

Yeah, this. Why let people who don’t have enough technical knowledge to use git properly use it directly in the first place?

Script or artist-friendly front ends seem like the solution, not choosing a VCS based on how hard it is for artists to mess up.

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!
Having a Git repository for code and Perforce for data is AFAIK a pretty common arrangement.

And if you're using scripts/tools/etc. to hide most of Git's functionality, then yeah, it does make sense to ask why you're using Git instead of a different VCS, especially since file locks are pretty handy in repositories where almost nothing can be safely merged, and Git doesn't support them.

OneEightHundred fucked around with this message at 21:33 on Jan 20, 2019

Triarii
Jun 14, 2003

OneEightHundred posted:

Having a Git repository for code and Perforce for data is AFAIK a pretty common arrangement.

I've never tried mixing source control systems like that - what advantages does it have over using Perforce alone?

TheresaJayne
Jul 1, 2011
I am working on a game in UE4 but someone before me was using some strange FPSDemo setup, It seems to be using Server but I cannot for the life of me find where it is getting the user input, running the level I can run around and shoot things, but no matter where I look I cannot find any mention of the mouse input.

Is there any way that I can trace where the input is coming from ?

leper khan
Dec 28, 2010
Honest to god thinks Half Life 2 is a bad game. But at least he likes Monster Hunter.

Triarii posted:

I've never tried mixing source control systems like that - what advantages does it have over using Perforce alone?

P4 has a pretty miserable workflow for contributors.

You can’t easily checkpoint your work without submitting. It’s tedious to shelve all pending work prior to switching to whatever :derp: incredibly important issue. P4 doesn’t have git’s bisect, which is extremely helpful in finding root causes of issues. Tooling Integration for third party systems (chat bots) is better with git. Etc.


The problem with git is that it doesn’t support file locks. This makes it a nonstarter as a wholesale solution due to needs of artists.

So you either split everything, which only really causes issues for your tools team; or you use p4’s “git fusion” thing to have engineering pretend p4 doesn’t exist.

floofyscorp
Feb 12, 2007

The way we(small programmer-heavy team) do it is all our source art assets - concept art, Maya scenes, PSD texture files, Substance stuff, etc - go in Perforce, which the artists use and the programmers never have to think about and it's all smooth sailing except for that one time it turned out we had somehow disabled exclusive checkouts and I lost a bit of work but I had a local backup so it was fine. The actual game files, exported engine-ready assets, code, data files etc are all in git, because programmers like git and presumably they have their reasons, I wouldn't know. This unfortunately means that artists have to interact with git to pull and build the latest version of whatever feature branch we're currently making assets for, to change branches, to make changes to data files, and to push our work when it's ready. We have some scripts to automate some of these processes but can't completely avoid having artists touch git, and that means sometimes you end up having to send in a programmer to unsnarl a sobbing artist from the hideous thorny brambles of a huge merge conflict.

Nolgthorn
Jan 30, 2001

The pendulum of the mind alternates between sense and nonsense
I remember version control before git, I tried git for an hour one day and never looked back. I think I quit my job to find one that used git. Git took off fast.

xgalaxy
Jan 27, 2004
i write code
At one company I worked at we had all the artist use the SmartGIT client and none of them had a problem with that. I was git cli only before that but since that experience I've used the SmartGIT client exclusively for the past 4 years and have never felt the need to go back to the cli.

It's the best GIT Gui client I've experienced hampered only by the fact that its written in Java. But you can't really tell.

Scaramouche
Mar 26, 2001

SPACE FACE! SPACE FACE!

Yeah when I worked in games all the binaries went into Perforce and all the code into something else that I forget. Definitely not VSS, and this pre-dates Git/Bitbucket/Stash.

BabelFish
Jul 20, 2013

Fallen Rib
So far I've had decent luck with GitLFS for my personal UE4 projects, specifically the one included in GitLab, since I could run a local server without worrying about storage fees beyond AWS Glacier backups. Epic's got a good integration in the editor that handles all the LFS bindings.

The office uses Perforce, which seems pretty standard in the industry.

TheresaJayne posted:

I am working on a game in UE4 but someone before me was using some strange FPSDemo setup, It seems to be using Server but I cannot for the life of me find where it is getting the user input, running the level I can run around and shoot things, but no matter where I look I cannot find any mention of the mouse input.

Is there any way that I can trace where the input is coming from ?

Are you talking about the Shooter Game demo?

The PlayerInput object is probably a good place to start looking, epic's got a decent rundown of their input stack here

baby puzzle
Jun 3, 2011

I'll Sequence your Storm.

Triarii posted:

I've never tried mixing source control systems like that - what advantages does it have over using Perforce alone?

Keeping code and large binaries separate lets you do stuff with code much quicker because you aren't shuffling around those big binaries. I keep my code and binaries in separate repos, even though I use git for both.

Absurd Alhazred
Mar 27, 2010

by Athanatos

baby puzzle posted:

Keeping code and large binaries separate lets you do stuff with code much quicker because you aren't shuffling around those big binaries. I keep my code and binaries in separate repos, even though I use git for both.

Do you encode the version dependencies between the repos in any way?

Ranzear
Jul 25, 2013

baby puzzle posted:

Keeping code and large binaries separate lets you do stuff with code much quicker because you aren't shuffling around those big binaries. I keep my code and binaries in separate repos, even though I use git for both.

I wish it was easier to skip smudge on LFS. It's really stupidly all-or-nothing when LFS could be smart enough to let you request a particular file or replace/push a file without having it downloaded already.

xgalaxy posted:

At one company I worked at we had all the artist use the SmartGIT client and none of them had a problem with that. I was git cli only before that but since that experience I've used the SmartGIT client exclusively for the past 4 years and have never felt the need to go back to the cli.

It's the best GIT Gui client I've experienced hampered only by the fact that its written in Java. But you can't really tell.

Until you find out it's just rebasing constantly, like it just does every pull with --rebase and will force you to do a rebase merge instead of aborting and merging normally, and will chew tons of poo poo up in some branching strategies.

You can probably turn that off, but the behavior out of the box is very much hiding as much git cruft as possible to make it look like a slicker GUI than others. It makes it a little harder to break anything, but hooo boy will it break poo poo when it does, including breaking poo poo on the remote. SmartGIT's entire strategy seems to be using every dirty git trick available to have the client override the remote whenever possible and it completely fucks everything if it has to work with anything or anyone else.

I've been looking into Plastic SCM over Perforce for game dev lately.

Absurd Alhazred
Mar 27, 2010

by Athanatos
Git Extensions has been working pretty well for me. They've recently had a pretty decent UI revamp, too. Too bad they don't have a good built-in diff tool, I use Beyond Compare.

xgalaxy
Jan 27, 2004
i write code

Ranzear posted:

I wish it was easier to skip smudge on LFS. It's really stupidly all-or-nothing when LFS could be smart enough to let you request a particular file or replace/push a file without having it downloaded already.


Until you find out it's just rebasing constantly, like it just does every pull with --rebase and will force you to do a rebase merge instead of aborting and merging normally, and will chew tons of poo poo up in some branching strategies.

You can probably turn that off, but the behavior out of the box is very much hiding as much git cruft as possible to make it look like a slicker GUI than others. It makes it a little harder to break anything, but hooo boy will it break poo poo when it does, including breaking poo poo on the remote. SmartGIT's entire strategy seems to be using every dirty git trick available to have the client override the remote whenever possible and it completely fucks everything if it has to work with anything or anyone else.

I've been looking into Plastic SCM over Perforce for game dev lately.

You can completely customize how SmartGIT pulls / merges / rebases and when. And it doesn't force push behind your back. So I have no idea what you are talking about. It also uses your gitconfig so if you have some funky setup there maybe that was causing your problem.

Stick100
Mar 18, 2003

xgalaxy posted:

You can completely customize how SmartGIT pulls / merges / rebases and when. And it doesn't force push behind your back. So I have no idea what you are talking about. It also uses your gitconfig so if you have some funky setup there maybe that was causing your problem.

I've used Sourcetree successfully for years. I found the Git GUI to not give good (any) error messages, and the Git command line too much work/cognitive load for my occasional use (I use TFS for day job, only Git for hobby work).

If I was starting out now I'd probably just use Visual Studio's/VSCode's built in Git, but I've gotten comfortable with the workflow using Sourcetree.

baby puzzle
Jun 3, 2011

I'll Sequence your Storm.

Absurd Alhazred posted:

Do you encode the version dependencies between the repos in any way?

No, aside from tags for versions, but this is a one-person project.

Absurd Alhazred
Mar 27, 2010

by Athanatos

baby puzzle posted:

No, aside from tags for versions, but this is a one-person project.

That's the part I'd be most concerned with; say my code release version, 3.4, was mid-way through the use of asset version 2.1. I'm now at development version 3.5.1, and I need to check out code version 3.4.3, the latest bugfix version, but code 3.5.1 uses asset version 5.3. I need to know that when I go back to 3.4.3 I am using the right assets.

Ranzear
Jul 25, 2013

xgalaxy posted:

You can completely customize how SmartGIT pulls / merges / rebases and when.

Sure, when they know exactly what they're doing. Put it in the hands of someone who doesn't and just wants to drag and drop and click a push button and wow can it do some damage. That goes for most git tools of course.

Not as funny as the time Sourcetree was leaving orphaned git processes each chewing on ~60% cpu of the server every time it pushed or pulled though.

I miss Mercurial.

Stick100
Mar 18, 2003

Ranzear posted:

Sure, when they know exactly what they're doing. Put it in the hands of someone who doesn't and just wants to drag and drop and click a push button and wow can it do some damage. That goes for most git tools of course.

Not as funny as the time Sourcetree was leaving orphaned git processes each chewing on ~60% cpu of the server every time it pushed or pulled though.

I miss Mercurial.

Bitbucket still has hosted Mercurial reps. I found it more confusing than Git personally.

Ranzear
Jul 25, 2013

Stick100 posted:

Bitbucket

Ew. 100% self-hosted forever. Also what's the point of DVCS if you centralize it...

I never really did enough with hg to put it above or below git, but absolutely permanent history is great.

hg was nice as a lazy-rear end deployer of game servers too, because it doesn't update to the latest commit by default. You can fully push without anything in the remote changing, then have some hook stop, update, and start your server again, and even roll back if something fails. That's why caliber.online is on it.

leper khan
Dec 28, 2010
Honest to god thinks Half Life 2 is a bad game. But at least he likes Monster Hunter.

Ranzear posted:

Ew. 100% self-hosted forever. Also what's the point of DVCS if you centralize it...

I never really did enough with hg to put it above or below git, but absolutely permanent history is great.

hg was nice as a lazy-rear end deployer of game servers too, because it doesn't update to the latest commit by default. You can fully push without anything in the remote changing, then have some hook stop, update, and start your server again, and even roll back if something fails. That's why caliber.online is on it.

How is this different from git hooks?

Stick100
Mar 18, 2003

Ranzear posted:

Ew. 100% self-hosted forever. Also what's the point of DVCS if you centralize it...

Well since it is DVCS every computer where I've cloned I have a full copy and if bitbucket goes down I could self-host/migrate at will.

Ranzear
Jul 25, 2013

leper khan posted:

How is this different from git hooks?

If your git repo on the server is directly hosted, everything gets updated instantly when you push. From the server you could fetch instead and safely update with hooks, but there's no equivalent as a remote. git always pulls the remote repo up to the head when you push to it.

hg behaves like everything is a fetch, including a push to a remote, and the repo must be updated to the latest commit afterward.

I'm just pointing it out as an interesting quirk when you don't have a real deployment system, not a 'better than'.

leper khan
Dec 28, 2010
Honest to god thinks Half Life 2 is a bad game. But at least he likes Monster Hunter.

Ranzear posted:

If your git repo on the server is directly hosted, everything gets updated instantly when you push. From the server you could fetch instead and safely update with hooks, but there's no equivalent as a remote. git always pulls the remote repo up to the head when you push to it.

hg behaves like everything is a fetch, including a push to a remote, and the repo must be updated to the latest commit afterward.

I'm just pointing it out as an interesting quirk when you don't have a real deployment system, not a 'better than'.

If you have a bare repo, the only thing that gets updated is the graph; there is no checkout. If you push to a non-bare repo, it does not update the state of that repo’s active checkout, but will update its graph so the new commits are available.

Unless something has changed in the ten or so years it’s been since I’ve bothered pushing to a non-bare repo.

Still not sure what you’re trying to do that you can’t do with a pre-receive, update, or post-receive hook.

Uncle Kitchener
Nov 18, 2009

BALLSBALLSBALLSBALLS
BALLSBALLSBALLSBALLS
BALLSBALLSBALLSBALLS
BALLSBALLSBALLSBALLS
What's a good way of maintaining EU4 projects and builds? Git or Perforce or mixing both? I started making some git copies of my projects, but they didn't work right, even when I ignored unrealengine on git settings. Things didn't really build right.

Scaramouche
Mar 26, 2001

SPACE FACE! SPACE FACE!

Uncle Kitchener posted:

What's a good way of maintaining EU4 projects and builds? Git or Perforce or mixing both? I started making some git copies of my projects, but they didn't work right, even when I ignored unrealengine on git settings. Things didn't really build right.

It's a bit slow (last post Jan 12) but there's also a dedicated RCS thread:
https://forums.somethingawful.com/showthread.php?threadid=3113983

BabelFish
Jul 20, 2013

Fallen Rib

Uncle Kitchener posted:

What's a good way of maintaining EU4 projects and builds? Git or Perforce or mixing both? I started making some git copies of my projects, but they didn't work right, even when I ignored unrealengine on git settings. Things didn't really build right.

UE4? I'd suggest perforce or GitLFS. My studio uses perforce with jenkins for coordinating builds, and I'm mucking about with GitLFS for my personal projects (mostly just as a change.)

Perforce support is far more mature in the engine, and many of the Unreal based studios use it. GitLFS is newer, but you can get a much more powerful instance for less money than a p4 server. If you just want a one-man depot with the fewest headaches, i'd suggest p4.

Uncle Kitchener
Nov 18, 2009

BALLSBALLSBALLSBALLS
BALLSBALLSBALLSBALLS
BALLSBALLSBALLSBALLS
BALLSBALLSBALLSBALLS
What's the license situation regarding small teams and indaviduals with Perforce now? I never really bothered using it for personal projects and it's been a good 5 years since I last used it. Any annual or monthly fees like with large teams or do indaviduals get to have cheaper options?

BabelFish
Jul 20, 2013

Fallen Rib

Uncle Kitchener posted:

What's the license situation regarding small teams and indaviduals with Perforce now? I never really bothered using it for personal projects and it's been a good 5 years since I last used it. Any annual or monthly fees like with large teams or do indaviduals get to have cheaper options?

A locally hosted instance of p4 is free for up to 5 people and 20 workspaces. The problem comes if you want to try to find something cloud hosted.

Ranzear
Jul 25, 2013

You could vhost it, but their linux support is garbage and you will run into case sensitivity issues if you develop on Windows but host on Linux. There's a setting to fix it, but I had to find it buried in an older version of their documentation on a domain that didn't quite work right.

I'm probably gonna start pushing Plastic SCM once I'm out of crunch and can tool with it a bit.

Ranzear fucked around with this message at 21:13 on Jan 26, 2019

Uncle Kitchener
Nov 18, 2009

BALLSBALLSBALLSBALLS
BALLSBALLSBALLSBALLS
BALLSBALLSBALLSBALLS
BALLSBALLSBALLSBALLS
Local hosting sounds good, tbh. Backing it up somewhere else and trying to get it work in case of accidents would ofcourse be a pain in the rear end, I'll take what I can get.

baby puzzle
Jun 3, 2011

I'll Sequence your Storm.
e: post question -> figure it out 2 seconds later

baby puzzle fucked around with this message at 18:47 on Jan 31, 2019

Joda
Apr 24, 2010

When I'm off, I just like to really let go and have fun, y'know?

Fun Shoe

baby puzzle posted:

e: post question -> figure it out 2 seconds later

Rubber ducking is some good poo poo.

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!
Well, found an efficient way to compress ETC1/ETC2 textures, should have it finished off in a week. It's already like 4x as fast as etc2comp, just need to finish off the SSE2 port and then it'll be probably 20x as fast.

horriblePencilist
Oct 18, 2012

It's a Dirt Devil!
Get it?
I've been trying to implement a three-dimensional Hilbert Curve in Unity and I keep running into problems. Here's my approach:
  • Call drawCell(which returns the currently selected index of the 1D-array) and pass 0 for the index and order, the position and three vectors forming an orthonormal system.
  • If the order equals the given order, the point in 3D space has been found and the index is increased by one.
  • If not, drawCell is called eight additional times, with the order increased by one, the position shifted so the eight cells form the eight corners of a cube using the coordinate system and the vectors multiplied with a Quaternion to rotate the cell so the start and end will be at the right spot.
The algorithm works fine for an order of up to 2 (4x4x4 cells), but past that the cells are rotated incorrectly. The reason for that is that when the coordinate system is rotated, some additional rotations will result in the wrong result. My guess is that it has to do with the conversion from Euler to Quaternions, but I'm too dumb to wrap my head around those.

Here's the full order 2-curve:

And here it is with the GameObject containing the script rotated by 90°:


Lastly, here's the code.

Adbot
ADBOT LOVES YOU

Mooey Cow
Jan 27, 2018

by Jeffrey of YOSPOS
Pillbug
You can use Euler angles to define orientations, but they are no good for rotations in general. They represent a composition of three rotations; around the x-axis, the y-axis and the z-axis, but the order of composition is not defined. So a Euler vector of (90,0,90) in one library could be a completely different rotation in a another one.

If what you want is a rotation 90 degrees around the x-axis, it's better to just create a quaternion that directly represents this rotation.

If your algorithm breaks when you rotate the coordinate system, you may have to rotate your rotations as well. This is a hosed up process with Euler angles, but trivial with quaternions; just multiply them together (but make sure you get the order of multiplication right).

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply