Никаких прототипов, прозрачный код, хороший инструментарий — 10 принципов игровой разработки от Джона Ромеро
16 августа один из основателей студии id Software Джон Ромеро выступил на конференции для разработчиков GDC Europe. В своей лекции разработчик вспомнил былые времена и сформулировал 10 философских принципов, которым следовал он и сотрудники студии все эти годы.
Что-то из этого покажется вам безумным, но в то время нам было по двадцать лет, ничто не могло нам помешать. Всё началось с создания демо-версии Super Mario 3 по заказу компании Nintendo, лицензирования движка Commander Keen и создания техники попиксельной прокрутки экрана в игре Dangerous Dave. Тогда и родилась id Software
После долгих рассказов о том, с чего началась студия id Software, Ромеро перешел к финальной части. Джон выделил 10 ключевых заповедей, которым должен следовать каждый разработчик, чтобы создать лучшую игру, на которую он только способен.
1. Никаких прототипов. Просто делайте игру. Работайте над ней по пути. Если видите что-то, что можно сделать лучше — делайте и не откладывайте на потом. Сохраняйте код в таком виде, чтобы игру можно было выпустить хоть завтра. Мы выясняли, что нам нужно, и сразу же начинали с этим работать.
2. Очень важно, чтобы игру в любой момент мог запустить любой из разработчиков вашей студии. Ваш движок должен быть непробиваемым. Если игра не загружается, он должен хотя бы выдавать данные об ошибке.
3. Код должен быть максимально простым. Постоянно просматривайте свои функции и думайте, что надо сделать, чтобы они стали ещё проще. До Quake все наши игры были написаны на чистом C, даже не на C++.
4. Хорошие инструменты помогают создавать хорошие игры. Потратьте время на создание инструментов. В 1991 году я написал редактор клеток под названием Ted (Tile Editor). После он был использован в 33 играх.
5. Самой лучшей командой тестировщиков были мы сами. Никто, кроме нас, не видел всех тех страшных багов и ошибок. Не тратьте время других. Тестируйте свои игры сами.
6. Если видите баг, то исправляйте его сразу же. Даже не думайте идти дальше, пока не избавитесь от него. Если новый код будет построен на забагованном фундаменте, ничего хорошего из этого не получится.
7. Используйте платформу разработки, заточенную под будущие системы. Doom был разработан на платформе NeXTSTEP, которая могла бы работать не только на системе DOS.
8. Пишите код только для той игры, которую вы делаете сейчас, не думайте о будущих играх. Потом вы будете писать новый код, просто потому, что уже стали умнее, и тогда тоже не ограничивайте себя использованием старого кода. Пробуйте новое.
9. Используйте инкапсуляцию (способность объектов скрывать некоторые свои данные и способы их обработки от внешней среды — прим. редакции), чтобы во всей программе код работал одинаково. Это минимизирует ошибки и экономит время.
10. Ваш код должен быть максимально прозрачным. Объясняйте своему руководителю и коллегам, как именно вы собираетесь решить поставленную задачу, прислушивайтесь к их отзывам и советам. Не относитесь к своему коду как к чёрному ящику.