Так. Вам слід запровадити систему для завантаження вмісту поза вашим основним двигуном.
Заголовки стислих відповідей.
Ні. Це не забирає занадто багато часу.
Я думаю, що питання про те, чи є правильним розподіл вашого обмеженого часу, суперечить; навіть якщо тільки на те, що це буде невелика частина загального часу проекту.
Ви витратите сотні (тисячі) годин на ігровий проект, який ви приймаєте до завершення. Можливо, не на клоні Pong, але, безумовно, так для вашої складної космічної гри. Порівняйте це з програмою зчитування конфігураційних файлів. Впровадження системи для передачі XML у ваш основний конструктор та згодом перезапуск до ігрового процесу займе, можливо, 10 чи 20 годин. Навіть якщо це займе у вас 50 або 100, це буде невелика частка загального часу проекту.
Це заощадить час
Це не витрата часу; це вкладення часу. І це окупиться.
Важливий робочий процес, а наявність конфігураційного завантажувача покращить ваш робочий процес. Створивши систему, яка дозволяє вам відредагувати конфігурації на ходу, ви заощадите незліченну кількість перебудов. Ви можете переглянути гру, поки вона працює, налаштувати XML і повторно перевірити за лічені секунди. Або ви можете переглянути код, знайти рядок коду (серед тисяч), надзвичайно ретельно відредагувати його значення (ви в своєму головному двигуні, після закінчення), відновити, виконати, повернути гру до стану тестування, постарайтеся важко пам’ятайте, як це виглядало до зміни, і подивіться, чи зміна мала ефект, який ви планували. Якщо припустити, що у вашому двигуні нічого не відбувається, ваш потяг, безумовно, порушений.
З точки зору більш фундаментальної науки, спробуйте пам’ятати, що найбільш трудомісткою частиною написання програмного забезпечення є не кілька додаткових натискань клавіш або пробілів. Це полювання на помилок. І якщо ви витратите трохи додаткового часу, щоб зробити речі зрозумілішими, написавши більше детального коду, ви заощадите набагато більше часу пізніше. У вашому випадку написання імпортера вмісту призводить до отримання більш чистого коду, який буде легше читати. Замість миль і миль твердо кодованих значень у вашому джерелі з'явиться проста завантаження файлів. Так само ви можете читати конфігураційний файл, не перебираючи код ігрового двигуна. Обидві частини стають більш ремонтованими та простішими у налагодженні.
Однокласні команди виграють найбільше
Якщо ви найняли художника, щоб генерувати якийсь із цього вмісту, вам знадобиться зробити інструменти для роботи з ними. Їм потрібно вносити зміни в пікселях і швидко бачити ефекти. Ви б не наважувалися змусити їх перебудувати код, щоб побачити кожну зміну. Їх час дорогий, і ви не хочете витрачати їх.
А тепер уявіть, що артист дуже некваліфікований і повільний (художник-програміст), і є багато іншого, про що слід турбуватися, оскільки вони також є головним програмістом і музикантом. Ви точно не хочете витрачати цей час, інакше проект ніколи не закінчиться. І цей хитрий художник буде ненавидіти навчання, щоб бути кращим художником, тому що витрачає весь свій час на перейменування рядків активів у код.
Не робіть цього собі. Зробіть інструменти, і у вас буде більше часу, щоб зробити гру.