• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jaki sposób wersjonowania całego katalogu z projektem Unreal?

Object Storage Arubacloud
0 głosów
135 wizyt
pytanie zadane 24 czerwca 2023 w Inne języki przez Ravenik Nowicjusz (120 p.)
Hobbystycznie/rozrywkowo i indywidualnie bawię się w projekt w Unreal (5.1) pod Windows. Czy można prosić o polecenie jakiegoś sposobu abym mógł zastąpić pakowanie 1-3 razy dziennie projektu Winrarem? Projekt ma w tej chwili około 30GB i spakowanie go bez kompresji zajmuje około 25s, pakuję po prostu katalog z całym projektem (Unreal) i nadaję archiwum nazwę: data i godzina (do sortowania plików), krótka nazwa i co się zmieniło. Jest to niewygodne ponieważ razem mam zwykle kilkanaście wersji archiwów co zajmuje miejsce i pakowanie co chwilę 30GB zużywa dysk ssd. Poza tym w nazwie archiwum trudno opisać wszystko co ważne co dotyczy pakowanej wersji projektu (chciałbym zapisywać co nowego zrobiłem w danej wersji i co jest do zrobienia).
Chciałbym jakieś rozwiązanie z lokalnym archiwum - czyli na dysku, nie w sieci i aby się szybko aktualizowało przyrostowo oraz dobrze by było jakby było GUI do tego.

Próbowałem przed chwilą Helix Core ale tam są następujące wady:
- trzeba chyba w Unreal kontrolować wersję plików a ja nie chcę pamiętać aby po każdej modyfikacji pliku coś robić (zatwierdzać czy coś). Wolę kilka razy dziennie stworzyć nową wersję "całościową" katalogu projketu, tak jak się robi punkty przywracania w Windows. Z tym że nowa wersja powinna dogrywać tylko zmiany w plikach a nie od nowa cały katalog projektu.
- Helix Core o ile załapałem, oprócz głównej "bazy" czyli depota, ma jeszcze pośrednią bazę "workspace" oprócz właściwego katalogu z projektem na którym pracuję. To jest dla mnie dość skomplikowane jak na początek.
- wolno trwa wgrywanie całego projektu do depota (jak pakuję Winrarem to trwa 25sekund, a wgrywanie do depota jest chyba o rzędy wielkości wolniejsze - nie wiem czemu jeśli wgrywa lokalnie a komp jest stosunkowo wypasiony)
Przyznam że to zagadnienie wersjonowania trochę mnie przerasta a dotąd nie korzystałem z żadnych tego typu narzędzi.
Prośba o polecenie jakiegoś sposobu na zastępstwo pakowania całego projektu kilka razy dziennie Winrarem.
1
komentarz 24 czerwca 2023 przez jankustosz1 Nałogowiec (35,880 p.)
Czemu nie korzystasz z gita?
komentarz 24 czerwca 2023 przez Ravenik Nowicjusz (120 p.)
Dzięki za odpowiedź. Zaraz spróbuję gita jeśli spełnia on założenia. A czy potrafi on sam znaleźć nowe lub zmodyfikowane pliki w katalogu i wgrać do swojej bazy, czy też będę musiał go informować każdorazowo po edycji każdego pliku? Chciałbym dawać komentarz tylko do kompletnej wersji katalogu z projektem a nie do każdego modyfikowanego pliku. Z góry dzięki za wyrozumiałość bo się nie znam na git w ogóle.
komentarz 24 czerwca 2023 przez adrian17 Ekspert (344,860 p.)
edycja 24 czerwca 2023 przez adrian17

a nie do każdego modyfikowanego pliku

Tak, przy zapisywaniu commita możesz dodać do niego dowolną liczbę zmodyfikowanych plików (w tym po prostu wszystkie).

czy też będę musiał go informować każdorazowo po edycji każdego pliku?

Zazwyczaj robisz commity jak kończysz pracę nad jakąś kompletną całą funkcjonalnością, a nie co 30 sekund za każdym razem jak wciskasz ctrl+s. To nie jest jak nagranie kamerą, że automatycznie nagrywa każdy Twój ruch. Zazwyczaj, zależnie od projektu, ludzie robią commit między kilka razy dziennie do co kilka dni.

Wolę kilka razy dziennie stworzyć nową wersję "całościową" katalogu projketu

W praktyce ludzie tak nie robią. Ludzie nie robią "snapshot o 10", "snapshot o 15" tylko zapisują zmiany po "dodaniu nowego typu przeciwnika", "naprawieniu błędu po zaatakowaniu czegośtam" etc etc.

NATOMIAST:

Czemu nie korzystasz z gita?

Unreal Engine ma wbudowane wsparcie dla Perforce i SVN, które przez naturę projektów gamedevowych nadają się do tego lepiej niż git.

komentarz 24 czerwca 2023 przez Ravenik Nowicjusz (120 p.)
edycja 24 czerwca 2023 przez Ravenik
Tak, chodzi mi o zatwierdzenie wersji projektu jak coś istotnego uda mi się dodać do projektu lub zmienić a nie o danej godzinie.

Jeśli można jeszcze ostatnie pytanie: czy w tych systemach kontroli wersji mogą też być przechowywane pliki nie edytowane (przynajmniej nie w ide/edytorze Unreal), które czasem dodaję np. multimedia: dźwięki .wav, oraz np. jak dodam katalog "z dinozaurem" - ze szkieletem i plikami animacji itd. to chciałbym aby te wszystkie nowe pliki związane z dinozaurem też trafiły do systemu wersjonowania, mimo że nie będę ich edytował. Abym mógł w razie potrzeby wyciągnąć/odtworzyć cały kompletny projekt z systemu wersjonowania - czy jest to możliwe w git albo Perforce czy SVN? Rzecz sprowadza się do ewentualnej możliwości odtworzenia całego katalogu z projektem w określonej wersji. Bo czasem coś mogę tak namieszać że wolę się cofnąć do poprzedniej działającej wersji.
komentarz 24 czerwca 2023 przez adrian17 Ekspert (344,860 p.)
Z tego co wiem to tak, jak najbardziej możesz w takim perforce w UE trzymać wszystkie assety potrzebne do działania projektu. Natomiast jak - to się nie wypowiem, bo osobiście nie używałem.
komentarz 24 czerwca 2023 przez jankustosz1 Nałogowiec (35,880 p.)

@adrian17, 

Unreal Engine ma wbudowane wsparcie dla Perforce i SVN, które przez naturę projektów gamedevowych nadają się do tego lepiej niż git.

Mógłbyś rozwinąć? W czym te dwie technologie są lepsze od gita dla gamedevu? 

2
komentarz 25 czerwca 2023 przez adrian17 Ekspert (344,860 p.)
(disclaimer: nie pracuję w gamedevie; opieram się tu na tym, co słyszałem przez lata od innych)

Głównym problemem jest, że w gamedevie przeważająca wielkość projektu (zarówno pod względem liczby jak i rozmiarów plików) jest we wszelkich rodzaju assetach, a nie kodzie; podczas, gdy git jest zoptymalizowany pod repozytoria w których dominują zwykłe pliki tekstowe.

Słyszałem że niesie to za sobą wiele problemów, ale najbardziej oczywistym jest: pamiętaj że git z definicji trzyma wszystkie archiwalne pliki w lokalnym repo. Jeśli jednego dnia masz jedne 100GB assetów a następnego dnia zmieniasz wizję graficzną i zmieniasz na inne 100GB assetów, to każdy dev nagle musi lokalnie przechowywać 200GB rzeczy - i to tylko rośnie z czasem, bo gry są duże. Podobnie checkout starszej wersji domyślnie implikuje podmianę wszystkich 100GB assetów na stare, nawet jeśli chcesz np tylko zobaczyć starszy kod. Git ma na takie problemy częściowe rozwiązania, (shallow clone, git lfs) ale z tego co wiem to taki perforce po prostu obsługuje to lepiej.

(oczywiście te problemy mają mniejsze znaczenie jeśli nad wszystkim pracuje jedna osoba na jednym komputerze. Ale to wciąż coś mówi, że UE nie ma domyślnie wsparcia dla gita, a do innych ma.)

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

+1 głos
0 odpowiedzi 145 wizyt
0 głosów
0 odpowiedzi 167 wizyt
pytanie zadane 10 grudnia 2019 w Inne języki przez Lukasz1987r Nowicjusz (120 p.)
0 głosów
0 odpowiedzi 601 wizyt
pytanie zadane 28 grudnia 2022 w C i C++ przez MichaelM Bywalec (2,540 p.)

92,579 zapytań

141,432 odpowiedzi

319,664 komentarzy

61,964 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...