Читаем Ошибки разработчиков видеоигр. От идеи до провала полностью

Разработка небольших игр поможет вам составить лучшее представление о том, какие идеи классно выглядят в вашем воображении, но при реализации превращаются в весьма унылое подобие развлечения. При разработке своей третьей игры – Fearmonium – я заметил, что мне стало тяжелее придумывать новые игровые элементы. Если в самом начале пути я генерировал по сотне идей в день, то спустя шесть лет разработки видеоигр придумывание чего-то нового давалось мне уже со скрипом. Как я позже понял, идей у меня меньше не стало: просто еще до того, как я успевал осознать очередную хитрую задумку, мой мозг отсеивал ее, так как уже знал, что я придумал невнятную чепуху. Мой опыт позволил мне лучше фильтровать свои задумки. Уверен, в будущем генерация идей будет ограничиваться еще меньшим количеством, но и качество их будет в разы выше тех, которые приходили мне на ум в 2014 году.

Многие начинающие разработчики слишком долго вынашивают план своего уникального проекта, механики из которого, как они думают, никто прежде не реализовывал в одной игре. Но стоит им начать воплощать свои ценные идеи в жизнь, как приходит осознание того, что их идея – лютая ерунда и что кто-то уже явно пытался реализовать подобное, однако точно так же бросил свои попытки на полпути. Не вынашивайте идеи слишком долго. В неопытной голове всё кажется более ярким и привлекательным, нежели будет на самом деле. Реализуйте задуманное в тот же день, как мысль пришла к вам в голову, и внимательно анализируйте причины, по которым ваша задумка не работает в реальной жизни.

Интересно то, что даже после десятка джемов ошибка планирования может продолжать вас преследовать: как показывают исследования, некоторые люди склонны занижать требуемое для выполнения задачи время даже при условии, что они эту задачу уже выполняли и успели обжечься о неправильные расчеты в прошлом.

Сколько курсовых работ должен сдать студент, чтобы научиться грамотно рассчитывать время на их написание? Казалось бы, опыт прошлогодней курсовой, когда он не спал ночью перед сдачей и дописывал последние листы в панике и отчаянии, должен был послужить ему уроком. Но бедняга всё равно продолжает переоценивать свои силы и из семестра в семестр доводит себя до нервного срыва.

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


Оправдания

Я уже говорил, что человек – мастер оправданий, и свои прошлые опоздания мы частенько сваливаем на внешние, якобы не зависящие от нас факторы, а при повторном планировании отказываемся их учитывать. Трезвый взгляд на то, почему именно вы не успели реализовать всё задуманное на джеме, отчасти поможет устранить проблему планирования. Если же ваше эго совсем уж не позволяет вам признать, что внешние факторы абсолютно не виноваты в том, что вы ничего не успели, просто закладывайте их в ваш план в следующий раз. Мы вообще всегда склонны причислять успехи себе, а в провалах обвинять других, и такое искажение еще сильнее мешает нам планировать собственные действия.

В одном из эпизодов сериала «Побег» прозвучала отличная фраза. Один из заключенных выслушал план побега из тюрьмы, озвученный главным героем, и тонко подметил, что план хорош, но он не учитывает главного. «Чего же?» – спросил герой. «Он не учитывает существование других людей». Всё и правда пошло наперекосяк из-за других заключенных, и виноваты были не они, а автор плана, который не учел, с кем ему предстоит иметь дело.

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


Расширение проекта

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

Перейти на страницу:

Похожие книги

Язык программирования C++. Пятое издание
Язык программирования C++. Пятое издание

Лучшее руководство по программированию и справочник по языку, полностью пересмотренное и обновленное под стандарт С++11!Р'С‹ держите в руках новое издание популярного и исчерпывающего бестселлера по языку программирования С++, которое было полностью пересмотрено и обновлено под стандарт С++11. Оно поможет вам быстро изучить язык и использовать его весьма эффективными и передовыми способами. Р' соответствии с самыми передовыми и современными методиками изложения материала авторы демонстрируют использование базового языка и его стандартной библиотеки для разработки эффективного, читабельного и мощного кода.С самого начала этой книги читатель знакомится со стандартной библиотекой С++, ее самыми популярными функциями и средствами, что позволяет сразу же приступить к написанию полезных программ, еще не овладев всеми нюансами языка. Большинство примеров из книги было пересмотрено так, чтобы использовать новые средства языка и продемонстрировать РёС… наилучшие СЃРїРѕСЃРѕР±С‹ применения. Эта книга — не только проверенное руководство для новичков в С++, она содержит также авторитетное обсуждение базовых концепций и методик языка С++ и является ценным ресурсом для опытных программистов, особенно желающих побыстрей узнать об усовершенствованиях С++11.Стенли Р'. Липпман работал старшим консультантом в Jet Propulsion Laboratory, архитектором РіСЂСѓРїРїС‹ Visual С++ корпорации Microsoft, техническим сотрудником Bell Laboratories и главным инженером- программистом по анимации в кинокомпаниях Disney, DreamWorks, Pixar и PDI.Р–РѕР·и Лажойе, работающий ныне в кинокомпании Pixar, был членом канадской РіСЂСѓРїРїС‹ разработчиков компилятора C/C++ корпорации IBM, а также возглавлял рабочую группу базового языка С++ в составе международной организации по стандартизации ANSI/ISO.Барбара Э. Му имеет почти тридцатилетний опыт программирования. На протяжении пятнадцати лет она работала в компании AT&T, сотрудничая с Бьярне Страуструпом, автором языка С++, и несколько лет руководила РіСЂСѓРїРїРѕР№ разработчиков С++.• Узнайте, как использовать новые средства языка С++11 и стандартной библиотеки для быстрого создания надежных программ, а также ознакомьтесь с высокоуровневым программированием• Учитесь на примерах, в которых показаны передовые стили программирования и методики проектирования• Р

Барбара Э. Му , Жози Лажойе , Стенли Б. Липпман

Программирование, программы, базы данных
Programming with POSIX® Threads
Programming with POSIX® Threads

With this practical book, you will attain a solid understanding of threads and will discover how to put this powerful mode of programming to work in real-world applications. The primary advantage of threaded programming is that it enables your applications to accomplish more than one task at the same time by using the number-crunching power of multiprocessor parallelism and by automatically exploiting I/O concurrency in your code, even on a single processor machine. The result: applications that are faster, more responsive to users, and often easier to maintain. Threaded programming is particularly well suited to network programming where it helps alleviate the bottleneck of slow network I/O. This book offers an in-depth description of the IEEE operating system interface standard, POSIX (Portable Operating System Interface) threads, commonly called Pthreads. Written for experienced C programmers, but assuming no previous knowledge of threads, the book explains basic concepts such as asynchronous programming, the lifecycle of a thread, and synchronization. You then move to more advanced topics such as attributes objects, thread-specific data, and realtime scheduling. An entire chapter is devoted to "real code," with a look at barriers, read/write locks, the work queue manager, and how to utilize existing libraries. In addition, the book tackles one of the thorniest problems faced by thread programmers-debugging-with valuable suggestions on how to avoid code errors and performance problems from the outset. Numerous annotated examples are used to illustrate real-world concepts. A Pthreads mini-reference and a look at future standardization are also included.

David Butenhof

Программирование, программы, базы данных