Game Programming Patterns / Паттерны программирования в играх: 0.1. Architecture, Performance, and Games
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
До того, как мы погрузимся в кучу паттернов, я думаю можно помочь вам, дав некоторое большое разъяснение о том, что я думаю об архитектуре программ и как она применима к играм. Qeruim 30.04.14 в 16:16 Перед тем, как мы погрузимся в бездну паттернов, я хочу дать вам немного больше разъяснений о том, что такое "архитектура программного обеспечения", и каким образом она относится к играм. r0me 30.04.14 в 19:08 Перед тем, как окунуться с головой в паттерны, я думаю, надо немного больше рассказать о своем мнении по поводу архитектуры программ и ее применимости к играм. IngaJolly 01.05.14 в 11:55 |
|
|
Это поможет вам лучше понять оставшуюся часть книги. Vladislav86 30.04.14 в 13:58 Они помогут вам лучше понять, оставшуюся часть книги. r0me 30.04.14 в 19:15 Возможно, это поможет вам лучше понять следующие главы книги. IngaJolly 01.05.14 в 11:56 |
||
|
По крайней мере, когда вас втянут в спор о том, как паттерны проектирования и программная архитектура сосут или же удивляют, это даст вам несколько аргументов. BendLHuck 30.04.14 в 19:05 По крайней мере, когда вас втянут в спор о том, как паттерны проектирования и программная архитектура сосут или же рулят, это даст вам несколько аргументов. BendLHuck 30.04.14 в 19:06 По крайней мере, когда вы влезете в спор о том, насколько паттерны проектирования вместе с архитектурой ПО ничтожны, или наоборот, клёвы, то вы будете во всеоружии. r0me 30.04.14 в 19:25 По крайней мере, когда вас втянут в спор о том, насколько ничтожны или, наоборот, великолепны паттерны проектирования и архитектура приложения, у вас будут в запасе некоторые доводы. IngaJolly 01.05.14 в 12:00 |
||
|
Заметьте, что у меня нет даже предположения о стороне, которую вы занимаете в этом споре. Qeruim 30.04.14 в 16:49 Заметьте, что я не делал предположений о том, чью сторону вы занимаете в этом споре. IngaJolly 22.08.14 в 17:17 |
||
|
Как любой продавец оружия, я продаю товары всем сторонам конфликта. Qeruim 30.04.14 в 16:51 Как у любого продавца оружия, у меня есть, что предложить любому участнику конфликта. IngaJolly 01.05.14 в 12:01 |
||
|
Что же такое архитектура программного обеспечения? Vladislav86 30.04.14 в 13:59 |
||
|
Если вы прочитаете эту книгу от корки до корки, вы не выучите линейную алгебру, геометрию и физику. marapper 30.04.14 в 14:09 Если вы прочитаете книгу от корки до корки, вы не вынесете знаний о линейной алгебре, стоящей за 3D графикой, или о вычислениях, стоящих за игровой физикой. Qeruim 30.04.14 в 16:53 |
||
|
В ней нет описания алгоритма альфа-бета отсечения для вашего дерева поиска AI и симуляции отражений звука от стенок комнаты. marapper 30.04.14 в 14:11 В этой книге вы не найдете, как сделать альфа-бета-отсечение для дерева поиска в коде искусственного интеллекта или как имитировать эхо в комнате для звуковой дорожки. IngaJolly 01.05.14 в 12:08 |
||
|
Ух, такой параграф может стать плохой рекламой для этой книги. Vladislav86 30.04.14 в 14:04 Мда, этот абзац - просто катастрофа для рекламной кампании книги. IngaJolly 01.05.14 в 12:10 |
||
|
Вместо этого, она о коде, скрывающемся за всем этим. marapper 30.04.14 в 14:12 Вместо этого, книга - о коде, который связывает все перечисленное. IngaJolly 01.05.14 в 12:10 |
||
|
Тут не много о том как писать код, тут больше о том как все структурировать. Vladislav86 30.04.14 в 14:07 Меньше о написании самого кода и больше - о его организации. marapper 30.04.14 в 14:13 В меньшей степени книга раскрывает написание кода, в большей - правильную его организацию. IngaJolly 22.08.14 в 17:25 |
||
|
Каждая программа имеет какую-либо структуру, даже когда весь код написан в main() просто для того, что бы посмотреть, а как это работает. Vladislav86 30.04.14 в 14:10 Каждая программа имеет какую-то организационную структуру, даже если она просто подчиняется слогану "засунуть все это в main() и посмотреть, что получится" IngaJolly 01.05.14 в 12:14 |
||
|
так что я считаю более интересным поговорить о том, как создать хорошую структуру. Vladislav86 30.04.14 в 14:15 , поэтому я считаю, более интересно поговорить о том, что делает структуру хорошей. IngaJolly 01.05.14 в 12:15 |
||
|
Как мы отличим хорошую архитектуру от плохой? Vladislav86 30.04.14 в 14:16 Как отличить хорошую архитектуру от плохой? IngaJolly 22.08.14 в 17:29 |
||
|
Я обдумывал этот вопрос более пяти лет. Qeruim 30.04.14 в 16:55 Я думал над этим вопросом примерно пять лет. IngaJolly 01.05.14 в 12:22 |
||
|
Конечно, как и вы, я чувствую интуицией, какой код хороший. Qeruim 30.04.14 в 17:00 Конечно, как и вы, я интуитивно чувствую хороший проект. IngaJolly 01.05.14 в 12:23 |
||
|
Все мы сталкивались с таким плохим кодом, что лучше было бы стереть его, избавив от страданий. Qeruim 30.04.14 в 17:09 Все мы страдали от такого плохого кода, пробираясь по чужим кодовым базам, что лучшее, что бы мы могли сделать для него, это взять и сжечь, избавив себя от страданий. IngaJolly 01.05.14 в 12:25 |
||
|
Большинство из нас создавали что-то подобное, учась программировать. Qeruim 30.04.14 в 17:02 Большинство из нас писали что-то из такого кода по мере того, как учились программировать. IngaJolly 01.05.14 в 12:26 |
||
|
Некоторые счастливчики имели противоположный опыт — шанс работать с красиво спроектированным кодом. Qeruim 30.04.14 в 17:04 Только некоторые счастливцы имели противоположный опыт, напротив, получив шанс работать над блестяще спроектированным кодом. IngaJolly 01.05.14 в 12:28 |
||
|
Тот вид кода, сравнимый с роскошным отелем, консьержи которого жаждут удовлетворить любое ваше желание. Qeruim 30.04.14 в 17:06 Такая кодовая база напоминает прекрасно обставленный роскошный отель, украшенный консьержами, которые с готовностью ожидают выполнить каждое ваше желание. IngaJolly 01.05.14 в 12:31 |
||
|
Какая между ними разница? Vladislav86 30.04.14 в 14:17 Какая разница между двумя этими видами кода? IngaJolly 01.05.14 в 12:32 |
||
|
Какая архитектура ПО годная? Vladislav86 30.04.14 в 14:18 Что такое хорошая архитектура приложения? IngaJolly 01.05.14 в 12:32 |
||
|
Для меня годная структура та, в котороый при внесении изменений кажется, что программа и была написана для этих изменений. Vladislav86 30.04.14 в 14:22 Для меня проект хорош, если при внесении изменения кажется, что вся программа была создана в его предвкушении. IngaJolly 01.05.14 в 12:33 |
||
|
Я могу решить таск всего лишь с несколькими отборными вызовами функции, что идеально вставятся, не потревожив спокойной глади кода. BendLHuck 30.04.14 в 19:25 Я могу решить задачу с помощью нескольких вызовов функций, представленных на выбор, которые идеально подходят, не подняв ни малейшей волны на спокойной глади кода. IngaJolly 01.05.14 в 12:36 |
||
|
Миленько звучит, но не совсем действенно. BendLHuck 30.04.14 в 19:26 |
||
|
"Просто пиши свой код так, чтобы изменения не побеспокоили его спокойной глади." BendLHuck 30.04.14 в 19:28 |
||
|
Верно. Vladislav86 30.04.14 в 14:25 |
||
|
Позвольте мне попытаться разобрать это немного подробней. BendLHuck 30.04.14 в 19:31 Давайте попытаемся разобраться с этим. IngaJolly 22.08.14 в 17:42 |
||
|
Первой ключевой частью является то, что проектирование это о переменах. BendLHuck 30.04.14 в 19:36 Первой ключевой частью является то, что проектирование должно учитывать перемены. BendLHuck 30.04.14 в 19:53 Первым ключевым фактором является то, что проектирование - это ожидание изменений. IngaJolly 22.08.14 в 17:43 |
||
|
Кто-то должен модифицировать исходный код. BendLHuck 30.04.14 в 19:47 |
||
|
Если никто не трогает этот код - неважно потому что он полон и прекрасен или потому, что столь плох, что никто не хочет марать им свой текстовый редактор - его проектирование не важно. BendLHuck 30.04.14 в 19:52 Если никто не трогает этот код - то ли потому что он совершенный и исчерпывающий, или такой ужасный, что никто не будет марать им свой текстовый редактор - его проект не имеет значения. IngaJolly 01.05.14 в 15:23 |
||
|
Мерило проектирования это простота модифицирования. BendLHuck 30.04.14 в 19:55 Мера правильности архитектуры - это то, насколько легко она принимает изменения. IngaJolly 01.05.14 в 15:24 |
||
|
Отсутствие изменений, это бегун, всё время торчащий на линии старта. BendLHuck 30.04.14 в 19:57 Без изменений, архитектура - это бегун, который никогда не покидает стартовую линию. IngaJolly 01.05.14 в 15:27 |
||
|
В этом кроется загадка из Дзен. BendLHuck 30.04.14 в 20:00 Где-то здесь кроется загадка Дзен. IngaJolly 01.05.14 в 15:29 |
||
|
"Если программа падает в лесу и никто не читает исходники, компилит ли это звук?" BendLHuck 30.04.14 в 20:02 "Если программа падает в лесу и никто не читает исходники, порождает ли это звук?" BendLHuck 30.04.14 в 20:02 "Слышен ли звук падающей программы в лесу, если никто не читает исходников?" IngaJolly 01.05.14 в 15:37 "Скомпилируется ли программа, если никто не видел исходников?" GromHoll 12.06.14 в 12:18 |
+2 | |
|
Как вам внести изменения? BendLHuck 30.04.14 в 20:03 Как же внести изменения? IngaJolly 23.08.14 в 07:55 |
||
|
Перед тем, как вы сможете изменить код для добавления новой фичи или исправления бага, или по любой другой причине побудившей вас запустить свой редактор, вы должны понимать, что делает существующий код. BendLHuck 30.04.14 в 20:08 Перед тем как вы сможете изменить код, чтобы добавить новую функцию, или поправить ошибку, или по другой причине, побудившей вас запустить редактор, вам нужно понять, что делает существующий код. IngaJolly 01.05.14 в 15:39 |
||
|
Вы не должны знать всю программу, конечно же, но вам необходимо загрузить все связанные кусочки в свой примитивный мозг. BendLHuck 30.04.14 в 20:13 Вам, конечно, не нужно знать всю программу, но потребуется загрузить все требующиеся кусочки в свой примитивный мозг. IngaJolly 01.05.14 в 15:42 |
||
|
Странно думать, что это буквально процесс оптического распознавания символов. BendLHuck 30.04.14 в 20:19 |
||
|
Мы склонны замалчивать этот шаг, но он чаще всего является самой затратной частью программирования. BendLHuck 30.04.14 в 20:20 Мы склонны умалчивать про этот шаг, но часто это наиболее трудоемкая часть программирования. IngaJolly 01.05.14 в 15:46 |
||
|
Если вы думаете, что передача данных с оперативки на диск медленная, попробуйте передавать их в обезьяний мозг парой оптических нервов. BendLHuck 30.04.14 в 20:23 Если вы думаете, что подкачка данных из оперативной памяти на диск - процесс медленный, попробуйте подкачать данные в мозг примата посредством пары оптических нервов. IngaJolly 01.05.14 в 15:48 |
||
|
Как только в вашей голове оказывается верный контекст, вы немного думаете и выдаете решение. IngaJolly 01.05.14 в 15:50 |
||
|
Здесь может быть много шагов вперед-назад, но часто это относительное движение вперед. IngaJolly 01.05.14 в 15:53 |
||
|
Как только вы поймете задачу и определите участки программы, которые она затрагивает, само написание кода часто становится весьма тривиальным процессом. IngaJolly 01.05.14 в 16:55 |
||
|
Вы стучите своими мясистыми пальцами по клавиатуре некоторое время, пока на экране не появятся нужные разноцветные лампочки, и на этом все, не так ли? IngaJolly 01.05.14 в 16:56 |
||
|
Как бы не так! IngaJolly 01.05.14 в 16:56 |
||
|
Перед тем как вы напишете тесты и направите их на проверку кода, часто приходится проводить некоторую чистку. IngaJolly 01.05.14 в 16:59 |
||
|
Я сказал "тесты"? Qeruim 01.05.14 в 11:00 |
||
|
О, да, я сказал. Qeruim 01.05.14 в 11:01 О да, тесты. IngaJolly 02.05.14 в 08:49 |
||
|
Некоторый игровой код сложно написать в виде юнит-тестов, но большая часть отлично тестируется. Qeruim 01.05.14 в 11:01 Часть кода для игр сложно покрыть юнит-тестами, но большая часть кода отлично поддается тестированию. IngaJolly 01.05.14 в 17:20 |
