Чи полірування мого поточного проекту буде кращим досвідом навчання, ніж започаткування нового? [зачинено]


15

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

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

Але я не хочу назавжди вчитися клонувати ОДНУ гру. У мене є заклик перейти до наступного клону, щоб застосувати деякі дизайнерські ідеї, до яких я прийшов, розробляючи цей арканоїдний клон (в той же час я читаю книгу GoF та багато вихідного коду з конкурсу ігор Ludum Dare 21).

Отже, питання: чи варто продовжувати вдосконалювати клон арканоїдів, поки він не матиме всі функції, які мали оригінальна гра? або я повинен перейти до наступного клону (є майже нескінченні ігри для клонування) і почати чинити речі, які я зробив неправильно з попереднім клоном?

Це може бути дуже суб'єктивним питанням, тому, будь ласка, стримуйте відповіді на найефективніший спосіб навчитися робити власні ігри (не клонуючи когось ідеї). Дякую!


ПОЯСНЕННЯ

Щоб уточнити, що я реалізував, я складаю цей список:

Реалізовані можливості:

  • Можливості підстрибування (м'яч відскакує на стінах, на цеглі та на бруску).
  • Звучить, коли підстрибує на цеглу та брусок та коли гравець перемагає чи програє.
  • Основне меню заголовка (тільки нова гра та вихід). Також в ігровому меню і меню виграш / програш.
  • Тільки три рівні, але система карт настільки проста, я не думаю, що вона мене дуже навчить (я помиляюся?).

Функції не реалізовані:

  • Живлення при розбиванні цегли.
  • Складна цегла (з більш ніж однією «точкою влучення» і незламною).
  • Краща графіка (я не дуже добре в цьому).
  • Програмування полірування (більш інтенсивно використовуйте схеми дизайну).

Ось посилання на його (мінімальну) веб-сторінку: http://blog.acamara.es/piperine/ Мені соромно це показати, тому, будь ласка, не вдаряйте мене занадто сильно :-)

Моє запитання було пов'язане з невиконаними функціями. Мені було цікаво, який найшвидший (оптимальний) шлях до вивчення. 1) реалізувати не реалізовані функції в цьому проекті, який стає все більшим, або 2) створити нову гру, яка, ймовірно, навчить мене цих уроків та нових.


ВІДПОВІДЬ

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

Дякую всім!


Вибачте, але те, що це об'єктивне питання, не робить це об'єктивним. Це залежало б від людини , її здібностей, цілей та мотивації, чи повинні вони змінювати проекти - і все це робить це суб'єктивним питанням. На це питання просто немає єдиної "правильної" відповіді.
Циклоп

Ви маєте рацію, я подумав про "суб'єктивне", але написав "об'єктивний" (це трапляється і зі мною зліва і справа ...). Я це змінив.
Алехандро Камара

Вуп, шкода, що це чую. Однак я ненавиджу це говорити, але це все ще не дуже гарне питання для цього сайту. Метою сайтів StackExchange є створення питань / відповідей, корисних багатьом людям, а не питань, які стосуються лише одного (або кількох) людей. Крім того, має бути (в ідеалі) одна правильна відповідь - але в майбутньому для людей, які знайдуть цю посаду, деякі можуть знайти одну відповідь найкраще, а іншу - суперечливу відповідь краще.
Циклоп

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

1
Особисто я вважаю, що сфера навчального проекту повинна включати всі ігрові функції (так реалізовуйте джерела живлення), але після цього зателефонуйте до проекту і продовжуйте роботу; не заважай полірувати графіку.
поштовх

Відповіді:


32

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

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

Натомість я б радив вам дуже налаштувати веб-сайт та блог (Wordpress чудово підходить для подібних матеріалів), закінчити свої ігри (починаючи з Arkanoid) та випустити їх у дику природу.

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

Редагувати: У відповідь на людей, які не згодні, я вважаю, що мені потрібно уточнити. Якщо ви створили гру лише з однією метою / експериментом (що я роблю весь час), усіма силами виріжте сферу застосування та відправте її. Ніхто не сказав, що Арканоїду потрібно 1000 рівнів, щоб бути відшліфованою грою; просто зробіть достатньо рівнів, щоб було, на ваш погляд, веселим і рухатися далі.

Можна витрачати роки на гру і ніколи не надходити. Але я відчуваю, що набагато легше потрапити в інший отвір, коли назавжди зробити технічні демонстрації та прототипи. Мені знадобилося 10+ років, щоб перестати займатися цим самим.


3
+1 "доставка" (обов'язкова?) Особливість ", хоча в цьому випадку ви також можете бачити арканоїдний клон як прототип, а прототипи мають бути викинуті, коли концепція доведена або спростується.
Оскар Дувеборн

2
@Oskar простіше зробити 1000 прототипів, ніж поставити одну гру. У кінцевому рахунку доставка може зробити вас успішними, тоді як прототипи просто підвищують деякі навички кодування.
ashes999

2
Чому відмовлятися "просто підвищити деякі навички кодування"? Він спеціально запитує про досвід навчання.
поштовх

@jhocking через відповідь Патріка. Моя відповідь полягає в тому, щоб зосередити увагу лише на навичках кодування.
ashes999

1
@Yannbane Якщо люди грають у нього і думають, "так, це повна гра", навіть якщо це коротка гра, це закінчено. Некомплект - це звичайно зламані ігри або ігри з, наприклад, одним рівнем. Як тільки ви відправте його у двері, ви закінчите.
ashes999

8

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

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

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


ДОДАТОК: Я думаю, що багато розбіжностей між відповідями просто зводиться до різних припущень щодо того, де він знаходиться у своєму процесі. Наприклад, коли він сказав: "Я закінчив першу повну версію свого арканоїдного клону", що може означати багато різних речей. У моєму випадку, оскільки він раніше сказав: "Я також читав, що я повинен пройти всю гру (включаючи меню, звук, партитуру"), тоді я припускаю, що він реально реалізував ці речі і запитує, чи варто йому продовжувати йти далі. У випадку, я б сказав "ні", назвіть цей проект зробленим і перейдіть до наступного проекту.

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


1
+1 Побий мене! Здається, що ви тільки починаєте роботу, тому важливіше зробити якомога більше речей і навчитися, навчитися вчитися. Поправляючись, ви можете зосередитись на польській мові. Інакше ти закінчиш витратити 2 роки на свою першу гру.
NoobsArePeople2

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

Ну, я не сказав 10 років, чи не так? Але все-таки питання, чи витратити один рік на кодування купу вправ перед 6-місячним повним проектом, краще, ніж безпосередньо робити 6-місячний повний проект як ваш перший проект. Це головне питання в навчанні, яке я виконую; чи краще студентам провести семестр, роблячи цілу купу маленьких проектів або один великий проект, який займає весь клас? Особисто я схиляюся до "безлічі малих проектів для студентів, що є великим проектом у середній школі".
ривок

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

1
Які 2 попередні відповіді? На даний момент це місце займає №2 за голосами
ADB

5

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

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


3
Хоча я погоджуюся з @ ashes999 і ви однаково, я вважаю, що в заявленому контексті ОП він експериментує з реалізаціями, вчиться писати різні види ігор. У цьому випадку я думаю, що він повинен віддати перевагу переходу до наступного.
Інженер

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

2

Чому б не зробити клона «своїм»? Додайте нові цікаві повороти, які зацікавлять вас.

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

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

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


2

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

1) Потрібно ввійти в звичку закінчувати речі. Це саме по собі є досвідом навчання.

2) Завдання, які ви "лінуєтеся додати" (через відсутність кращого терміну), можуть мати в них вбудовану тону уроків з розробників ігор, які ви просто повністю пропускаєте.

3) Якщо вам нудно Арканоїда, ви завжди можете його відкласти і попрацювати над чимось іншим. У цьому немає нічого поганого.

1) Занадто багато незакінчених речей - це погано. Ви не можете використовувати ваш незавершений продукт, щоб ефективно демонструвати свої навички.

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

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

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

2) Функції, над якими ви уникаєте працювати, можуть мати в них дуже цінні уроки.

Речі, які ви балуєте під час обробки:

Функції не реалізовані:

  • Живлення при розбиванні цегли.
  • Складна цегла (з більш ніж однією «точкою влучення» і незламною).
  • Краща графіка (я не дуже добре в цьому).
  • Програмування полірування (більш інтенсивно використовуйте схеми дизайну).

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

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

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

3) Якщо вам нудно, над чим ви працюєте, нічого поганого в тому, щоб почати щось інше.

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

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


1

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

Що я б рекомендував, а це суто особиста думка, - це перейти до чогось нового і заощадити для цього польський. У той же час спробуйте потягнути себе за тим чимось новим. Тож якщо ви зараз не використовуєте 3D API, вивчіть його та використовуйте його. Якщо ви використовуєте одне, вивчіть інше та використовуйте його. Або перейдіть до більш просунутого рівня на тому, що використовуєте. Включіть кращий звук, фізику або двигун введення з початку руху. Як би там не було, я вважаю важливим те, щоб трохи переміститися за межі своєї поточної зони комфорту та набути більше навичок та знань, при цьому веселячись.

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