Чи публікувати проєкт на GitHub?

Публікація анонімна.

Я вчусь розробляти ігри на Unity, зараз оформлюю GitHub з моїми проєктами. Маю декілька невеликих проєктів, які однозначно варто публікувати, там не дублюється код, добре названі класи, поля і методи, і можна легко розширювати їх і змінювати якісь параметри.

А також є проєкт, щодо публікації якого я сумніваюсь. Там теж не дублюється код, але мені не дуже подобається архітектура. Це гра на клітчастій дошці, позиція (розташування елементів) на дошці представлена, як масив символів (char). Так званих «магічних» літералів, звичайно, немає (символи ініціалізую з інспектора через ассети ScriptableObject, як і відповідні символам спрайти для відображення позиції на екрані). Але вся логіка з масивом символів (всі методи для ходів вгору, вниз, праворуч або ліворуч) розміщена в одному скрипті, який через це містить майже 700 рядків.

Я можу винести методи до інших скриптів, але тоді доведеться передавати масив через параметри, від чого може погіршитись швидкість роботи гри.

Скажіть, будь ласка, як краще вчинити? Чи треба це зробити і чи треба публікувати проєкт, якщо так, то який з двох варіантів?

Підписуйтеся на Telegram-канал @gamedev_dou, щоб не пропустити найважливіші статті і новини про геймдев

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Оба) в чем трабл то?) Легаси это норма (второй). Мы в любом случае планировали тебя избить, а так то хоть повод будет))))

Тут треба поставити питання — а чому виникло таке питання? Публікація проекту має на меті якийсь сенс?
Варіант перший — не втратити код в разі чого, може десь флешку втратив чи щось таке — в такому разі люди не паряться, що там код який їм самим не подобається. Тут гітхаб дає можливість просто зробити цей репозіторій приватним. 80% комерційного коду різних корпорацій на рівні кодування українського студента першого семестру першого курсу, написаний десь в Бангалорі в середені нульових з оплатою за кількість операторів. Сучасні ІТ спеціалісти з Індії з такого коду тягне блювати не меньше ніж нам. Це настільки зашквар, що його ніхто і сам бачити не хоче. Тобто не треба робити структурно не якісний код публічно в такому разі.
Є ціль публікації — показати потенційним роботодавцям як ти пишеш код, тоді — особливого сенсу викладати код який тобі самому не подобається, без рефакторінгу — напевно не треба.
І третій варіант — охота зашарити із комьюніті результат своєї роботи на зацінити, скажімо як Лінус Торвальдс зробив із Linux, тоді власне пофіг. Як не дивно добрі корисні програми, цікаві ігри — далеко не обов’язково мають добру структурну якість коду. Структурна якість важлива на сам перед для командної/комьюніті роботи над кодовою базою і для підтримки проекту — тобто швидко знайти помилку і виправити їх чи легко додати чи переробити якийсь функціонал. Тому скажімо OpenSSL — де код вже дістався такого рівню ентропії застарілих кусків коду і загалом спагетті — що вирви глаз. Та від цього бібліотека не стала меньше використовуваною і меньше коректною чи корисною, от правда фіксуються постійні проблеми з секьюріті, тим що бібліотека використовує занадто багато пам’яті та повільно працює тощо. І банально складно використовувати. Тому особисто я віддаю перевагу GnuTLS. Так само із іграми — хочете грати в гру з купою людей ентузіастів інді — ні кому не цікаво поганий там код чи хороший, цікаво наскільки гра цікава.

Та викладай. Все одно ніхто не буде читати код. А так для себе оформи гарно репи. Поітм приємно дивитися :)

Ну і не парься хто там що буде думати про твій код, У них він в 100 гірший.

Коли приймають на роботу, як раз важливо, що будуть думати про мій код. А для інших цілей я навряд чи публікував би на GitHub.
Для себе я зберігаю проекти на декількох комп’ютерах, а якщо знадобилося б передати через сервер, залив би zip-файл на mediafire, а ще краще — в Saved Messages в телеграмі. Це ж значно зручніше)

Удобнее юзать систему контроля версий какую-то, а не держать код в архивах. В принципе раньше использовался SVN, и он всем удобен, кроме ветвления. Сейчас практически повсеместно все перешли на git. Ну а в архивы ты можешь делать бэкапы репозиториев гита.

Мені, чесно кажучи, git не сподобався. То він з файлами більше 100 мегабайт відмовляється працювати, то з файлами, до яких путь містить більше 100 символів)

Ну... в Linux обмещення 4096, знову ж таки git більше для сирцевого коду та текстових файлів. 100 Mb, оскільки я розумію, це обмеження github, а не git. Це логічно, бо інакше можна було б використовувати github як хостинг. Взагалі git більше для текстових файлів, я би задумався про окреме сховище для бінарів.

Так, я мав на увазі GitHub. В мене, як виявилося, був файл з кешем більше 100 мегабайт, через нього відмовили в публікації великої папки, при чому там просто сказали «є файл, більший за 100 мегабайт», довелося шукати 😂
А потім примусили урізати назви папок...

Скорее всего это файл прекомпилированных заголовков, или дебаговая либа. В любом случае, файлы автогенерации компилятора в систему контроля версий помещать не следует. Можно добавить это в .gitignore, лучше сразу всю папку с выводом компилятора.

Просто сам факт, що воно там десь лежить, а мені треба шукати, що саме цьому королю не сподобалось) щоб він зійшов до мого рівня і все ж опублікував проєкт)

(Це Unity, папка Library, в ній папка PackageCache, ось десь там)

А потім примусили урізати назви папок...

Виглядає, що твоє питання стосовно доцільності публікації — доречне, якщо назви папок такі, що тре скоротити :)
Я б радив трохи почистити такий проект

То він з файлами більше 100 мегабайт відмовляється працювати

Нащо такі файли взагалі можуть бути потрібні?
Якщо це дані — то їх місце не на гіті.

В принципе раньше использовался SVN, и он всем удобен, кроме ветвления.

А rebase як зробити?

Там типичный workflow из одной ветки состоит. В принципе потребности ветвления зависят от того, какой подход используется. Либо свалить всё в один репозитарий, либо каждый более-менее автономный проект делать в отдельном репозитарии. Если каждый в отдельном — там может работать спокойно 1-3 человека, и ветвление вообще не нужно.

Я перезаписываю историю даже без ветвления. Например, три коммита назад я увидел, что случайно добавил отладочный принт. Я удалил его из того коммита, где он был, чтобы не мусорить. Поэтому не «всем удобен, кроме ветвления»... а ещё есть сценарии.

1. Розмістити всі проєкти на github.
2. Накидати посилань на проєкти на DOU.
3. Прочитати відгуки.
4. Протерти монітор від гіркіх сліз.
5. Піти виправити код, коміт-лог, опис, тощо, щоб це виглядало, як хоче DOU.

Коментар порушує правила спільноти і видалений модераторами.

Скажіть, будь ласка, як краще вчинити?

Та пофіг, в рідмі напишеш що це PoC щоб попробуватм а,б,в. Тому архітектура і т.п. не ідеальні

В принципе абсолютно пофиг, что ты выкладываешь на гитхабе, главное как ты это продаёшь. Есть как хорошо проработанные никому ненужные проекты, так и попадается откровенная шляпа с кучей звёзд. Но больше всего, и это 95% — откровенная шляпа, которая никому не интересна.

Публікуй не задумуючись. Не пустий профіль на github це однозначний плюсик до твого CV.

сильно зависит от качества опубликованного )

Ти ще скажи що там хтось той код читає.

когда в CV вижу ссылку на github лично я читаю обязательно
и, кстати, обычно это работало против автора кода )

Ну ви вийняток.
Я по своїй практиці скажу що це все просто красиві рекламні фішки. Навіть коли компанія залучає інвесторів намагаються по більше запхнути у публічний github щоб просто була активність. Вже багато кейсів таких проходив.

Я читаю, бо це, напевне, більше з усього впливає на оцінку. До речі, у мене в практиці була ситуація, коли на співбесіді мені сказали: «Ми подивилися на ваш github, у нас немає питань, готові до співпраці».

сильно зависит от качества опубликованного )

Человек 700 строк кода написал. Там фигурирует массив из символов char в качестве квинтэссенции архитектуры.

Не зовсім зрозуміло, це добре чи погано?)

Надо больше строк кода писать, квинтэссенцию архитектурной мысли углублять.

Не сказав би так, особливо якщо згадати проєкт, на якому я вчив Unity (C# знав вже непогано, а Unity ще не знав) — це можна тільки як зброю використовувати, якщо потрібно ліквідувати програміста.

Ну по перше які цілі. Якщо поділитися з тими, хто може зацікавитися, то якість не занадто важливою. Якщо продати себе, то... я не бачу нічого страшного, коли є обґрунтування чому саме написано так (швидкодія чи ще щось). Ну 700 рядків і 700 рядків, я бачив і більше. Особисто мені з опису більше не подобається масив, для ігор на дошці я все ж таки більше використовую біти.

Дякую за відповідь. Щодо цілей, в мене другий варіант.
Перечитав і зрозумів, що не написав, що масив двовимірний.
Можете, будь ласка, детальніше розповісти про те, як Ви використовуєте біти для ігор на дошці?

Ну... я навіть писав статю на хабрі про це у розрізі руських шашок:
<посилання на статтю на російському ресурсі видалене модератором>
Репо: github.com/mustitz/checkers

Тут описується magic bitboard техніка у шахах, але зараз нові процесори мають PEXT, тому вже небагато магії там лишається.
www.chessprogramming.org/Magic_Bitboards

Ну... в принципі є мої рушії у футбол на аркуші паперу
це бранч з радянським: github.com/...​ootball/tree/rus-football
це бранч з західним github.com/...​aper-football/tree/master

Моя? Ні, ось відео, там приблизно так (якість зображення вища)
www.veed.io/...​43-454b-b036-131921de633e

Можливо, в мене взагалі це замовили декілька місяців тому на фрілансі за 30$ (але замовник дозволив публікувати)

в мене взагалі це замовили декілька місяців тому на фрілансі за 30$

Що?!
Оце стільки коштує розробка гри?
Чи тут якісь символи втрачено? Наприклад «К», або «год»?

Підписатись на коментарі