Починаючи з нуля - це помилка, якщо я знову винайду колесо?


31

Зазвичай, коли я хочу розпочати гру, я думаю, що я маю гарну базову архітектуру для візуалізації та кращого циклу гри з нуля. Зазвичай я не хочу використовувати існуючі двигуни. Причиною цього є те, що я хочу реалізувати це самостійно, щоб вивчити речі.

Але багато блогів і розробників кажуть, що це не дуже вдалий варіант для переосмислення колеса.

Я щось пропускаю?


Як часто ви насправді «починаєте гру»? Якщо ви швидко ітератуєте ідеї, робіть все, що працює. Якщо ви створюєте великі опуси, коли помилка дорога або час обмежений, навіщо витрачати час на винахід колеса? Якщо вам цікаво дізнатися, як все працює, чому б не написати власну техніку? Які ваші цілі тут?
ChrisE

Відповіді:


16

Ні, це зовсім не погано. Навчання та вміння вчитися абсолютно важливо для того, щоб бути хорошим програмістом.

АЛЕ
Найважливіше, будуючи щось з нуля - це закінчити його до завершення. Не має значення, наскільки це хакітним і неоптимізованим, якщо ви завершите його, є почуття задоволення, як ніхто інший. Все це дасть вам цінний досвід, і ви завжди зможете зробити код більш елегантним або краще виконати пізніше, коли у вас є щось функціональне. Зрештою, єдине, що розділяє дивовижних програмістів та посередніх - це досвід та практика.

Звичайно, коли ви щось зробили і хочете створити подальші ігри, немає жодної причини використовувати стару базу коду.

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

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


Дякую Рей, що корисно! але ви можете, будь ласка, перерахувати ігрову механіку ...
Айяппа

Без проблем. Я не зовсім впевнений, що ви маєте на увазі в контексті вашого початкового запитання. Що ви конкретно шукаєте?
Рей Дей

Це нормально, я зроблю це окремим питанням. Інше питання в цій публікації було видалено (відредаговано), оскільки воно трохи не стосується контексту.
Айяппа

+1 для фінішної лінії - фактично завершити проект - це хороший досвід.
Циклоп

36
i want to implement it on my own to learn stuff.

Це, мабуть, найголовніше. Якщо ваша мета - навчитися, написання власних двигунів візуалізації та ігрового циклу з нуля - це чудово, і ідеально хороший досвід навчання. Якщо ваша мета - зробити готову гру швидко та легко, тоді використовуйте наявні рамки.


3
+1. Тільки тому, що API або бібліотека третьої сторони може абстрагувати всі деталі реалізації, це не означає, що вам не потрібно їх знати. Використання «позаштатних коліс» допоможе швидше написати готовий код; але виготовлення власного колеса допоможе вам визначити, які попередньо виготовлені з них найкращі, а головне, як оптимізувати та налагодити їх, коли спиці почнуть вискакувати ...
sebf

4
+1 Не винаходити колесо, якщо ви не навчитеся робити колеса.
zzzzBov

4
пам’ятайте, що це покращить ваші навички в дизайні ігрових двигунів , але не в ігровому дизайні.
Дейв О.

Це також гідна відповідь ... дякую ... але погано, що я не можу відзначити дві відповіді :(
Айяппа,


5

Залежить від того, що ви хочете. Якщо ви хочете навчитися, винаходите стільки коліс, як вам здається. Я знаю людей, які написали свої власні JVM або PNG-навантажувачі для чорта.

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


4

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

Постійно з’являються нові технології, які потребують людей, щоб винаходити колесо. OpenCL та інші мови обчислювальної техніки GPU - хороший приклад.

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

Після того, як ви придумали кілька коліс, щоб зробити вас катанням, ви добре знаєте свої речі, як сильний бонус!

Плюс це чортова гарна розвага.


1

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

Справа в суті: Ескіл Стінберг, творець World of Love (відмінне відео, де він розповідає про свою гру, свій двигун та чудові інструменти та свою філософію: http://vimeo.com/18423305 )


1

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

"Колесо", що використовується в метафорі, - це концепція, а не реалізація. Навіть колесо ви не будете винаходити заново, вам все одно потрібно вибрати, чи купите ви його, чи зробите його самостійно. Отже, створення власного двигуна - це навіть не винахід колеса, просто ви хочете створити власне колесо з якоюсь метою, яка може бути для навчання, за низьку вартість, для невеликих розмірів або для будь-якого конкретного використання чи вимог.


0

Вся справа в тому, що для гри потрібно багато часу, це власне створення вмісту та тестування активів - як правило, не написання коду. Це, ймовірно, тому просто пропустити цю частину і використовувати існуючий двигун, щоб мати змогу витратити більше часу на вміст, ігровий дизайн та помилки вищого рівня.

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

Для розваги та для навчання робіть все, що вам здається. Якби мені доводилося писати контент-конспекти класів з нуля, обробляючи всі набридливі деталі та кращі випадки файлової системи та завантажувачів активів, я б з глузду зненацька - поки я досить навчився, щоб зрозуміти, як це зробити, Я схильний уникати цього, якщо хтось уже зробив це добре (хоча це правда, багато рамок і двигунів не впишуться в мою власну думку про «добре», що могло б стати причиною того, щоб щось переписати). Якщо я не знаю, як це зробити, мені дуже подобається зробити його до завершення хоча б один раз, просто щоб зрозуміти точніші деталі того, що воно є - як Рей Дей вже заявив.


0

Це лише помилка, якщо у вас немає часу на навчання. Якщо у вас є час, займіться цим. Якщо ви цього не зробите, тоді не робіть цього.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.