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

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

Беседка для программистов, или «Бутерброд с кодом»

Тема в разделе "Флейм", создана пользователем Рыжий Тигра, 25 окт 2013.

  1. Alex Kagansky

    Alex Kagansky

    Регистрация:
    17 дек 2007
    Сообщения:
    3.054
    Есть некий "допустимый уровень качества", с которым рынок готов мириться.
    Игры - не софт для марсохода, к ним требования гораздо ниже.
    Порой качество игры не столь высоко, сколь ее забагованность, тогда она проваливается. :)
     
  2. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    За простор не знаю, а по факту говнокод всё ж бывает куда реже. Вероятно, дело в том, что где меньше запретов, там больше шансов смертельно (хорошо хоть для программы, а не для программиста :-) ) накосячить и выживают только имеющие самодисциплину.
    Впрочем, я повторяюсь: про карго-электриков и карго-подрывников уже было.
    Не скааажи. Отлично лечится (a) разбиением большой программы на малые как можно более изолированные друг от друга функции (и ни-ка-ких глобальных переменных!) и чтобы каждую функцию отдельно можно было прогнать (и таки чтобы кто-то прогонял!) на время в термостате на вибростенде с осциллографом, (b) строгой унификацией интерфейсов между функциями (опять же с тестированием заглушкой с воткнутыми в неё проводами к осциллографу, (ц) тщательным отбором программистов по критерию "максимальное количество регистров в мозгах одновременно удерживаемых в голове переменных" (см.тж.: Марков "Эволюция человека" - почему только одна из 30-40 обезьян может колоть орехи между двумя камнями?).
    Классический сишный процедурный подход этим критериям удовлетворяет. Правда, дороговато получается - поэтому для себя и для военных этот способ годится, а для игр и даже автопрома уже нет. :-(

    ---------- Сообщение добавлено в 18:37 ---------- Предыдущее сообщение размещено в 18:36 ----------

    Не годится - "окно Овертона" никуда не делось. :-(

    ---------- Сообщение добавлено в 18:42 ---------- Предыдущее сообщение размещено в 18:37 ----------

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

    ---------- Сообщение добавлено в 18:50 ---------- Предыдущее сообщение размещено в 18:42 ----------

    Кстати, ещё и цена. Доплюдям надо платить допзарплату, а "нет такого преступления, на которое капитал не пойдёт за 300% прибыли" (L) :-(
    И потом, раздувание штата тестировщиков тоже не спасает. Уж на что тщательно Origin Systems тщательно тестировал свои игры, а и то в первом Wing Commander'е допустил тупейший косяк: сравнение времени от вывода предыдущего кадра перед выводом текущего с пороговым значением как знаковых целых. Эффект потрясающий: играешь-играешь, ставишь на паузу, уходишь на 9 минут перекурить, возвращаешься, снимаешь с паузы и ещё 9 минут ждёшь, когда ж наконец гейма соизволит шелохнуться. :-(
     
  3. gudleifr

    gudleifr

    Регистрация:
    16 сен 2006
    Сообщения:
    2.592
    Это тот самый путь, предложенный Дейкстрой (позднее его опошлили до структурного программирования). Но он тоже работает только до определенного предела. Допустим, я могу понять программу размера N. Т.е. могу поверить, что программа размера "N раз по N кусков, минус размер куска, соединяющего их вместе" тоже работает... И - все.

    Военные (США) как-то похвастались, что в их программах ракетных войск стратегического назначения всего 5 ошибок на 1000 строк кода. С тех пор все коммерческие производители хвастаются: 4, 3.5, 3... На самом деле, обычно около 30.
     
  4. Alex Kagansky

    Alex Kagansky

    Регистрация:
    17 дек 2007
    Сообщения:
    3.054
    Безусловно, одна из ключевых.
     
  5. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Ха, РВСНщики вообще никогда не воевали - и, соответственно, не видели, чем чревата хоть одна ошибка. А после 1991 года и все остальные тоже на "контроль качества" забили - ну даже если и косяк, всё равно качественно вставить им никто не может. :-(
    Увеличивать количество уровней декомпозиции?
    ЕМНИП "структурный подход" появился раньше - во всяком случае, я с ним познакомился в древнем как не знаю что Фортране (60-е?), а в конце 70-х на Рапире этому уже семиклассников учили как самой-самой тривиальщине.
    У нас в политехе был в ходу "рекурсивный порог Петрова-Сляднева" (по фамилиям преподов, внятно сформулировавших): "в любой программе больше 100 строк есть хотя бы одна ошибка, и даже после её устранения это утверждение остаётся истинным". :-)
    Дык количество обнаруженных - это как раз хорошо; но что бесит - что даже обнаруженные остаются неисправленными, игровые конторы не стесняются даже перечислять их в мануалах. :-(
    И при всём при этом они имеют наглость заявлять отмазки вида "да, мы знаем, что многие из вас легко бы эти ошибки исправили, если бы мы предоставили вам исходники; но, к сожалению, копирайтные законы позволяют нам послать вас с такими запросами нах@р" и делают грустную мордочку. :-(
     
  6. gudleifr

    gudleifr

    Регистрация:
    16 сен 2006
    Сообщения:
    2.592
    ??? Количество ядерных ударов, нанесенных (правда, по собственной территории) было достаточно значительным. Как и привлеченных на это дело вычислительных ресурсов. Не говоря уже о том, что полеты в космос обеспечивались во многом этими же ресурсами.
    Не слышал чтобы до Дейкстры о нем не говорили.
    Ошибочное цитирование. На самом деле порог в 100 строк не обязателен, а число ошибок всегда - 2.
    Об обнаруженных речь не идет.
    Не работает.
     
    Последнее редактирование: 21 дек 2014
  7. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Невада, Бикини, Эниветок и прочие - это ж вроде бы стационарные устройства, не? Из наших Царь-бомбу везли самолётом. Или про ещё какие-то именно ракетные доставки не знаю?
    Не совсем. У янки на космос работали либо списанные (и не факт что не проапгрейдженные) ракеты, либо отдельно для этого разработанные (и для РВСН не применявшиеся, кроме разве что (так и не вышедшего за пределы обсуждений) "овермуна") "сатурны".
    Хотя да, глюк с венерианским зондом - знаменитое "DO 10 I = 1.3".
    Из наших - косяки с хардом помню (кронштейн из неправильно кроенной стеклоткани рвал баллоны нескольких "Лун" подряд; датчики ориентации не тем концом; приварившиеся к краске парашюты на первых "Союзах"; что-то с пироболтами у Добровольского-Волкова-Пацаева...), с софтом не знаю ни одного.
    Петрова-Сляднева помню точно, а с кого они цитировали - ХЗ. :-(
    Где как... У меня вполне - ясен перец, декомпоную не по уровням, а просто из раздувшейся функции выделяю подветки. Т.е. дерево вызовов получается крайне несбалансированное. Но работает.
     
  8. gudleifr

    gudleifr

    Регистрация:
    16 сен 2006
    Сообщения:
    2.592
    Рыжий Тигра, широко известен французский космический ляп - после замены процессора, программа тестирования не дождалась ответа от железа (на медленном процессоре оно успевало) и выключила двигатель "Ариан".
    Но мы ушли в сторону, речь не о том, что у военных "в мирное время никто не спросит, а война все равно все спишет". Речь о том, что невыловленные 5 ошибок на 1000 строк - это голубая мечта программистов.


    Метод "наращивания уровней" не может работать по простой причине: как я писал, "N - понимаю, N*N-T1 - верю" (T1 - затраты на согласование частей). Поэтому, либо за "понимаю" и "верю" следует "а это навряд ли", либо имеем (N*N-T1)*N-T2 и т.д. что достаточно быстро приведет к N=T1+T2+...+Tk.
     
  9. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Не-а. Надо тестировать каждый Tn на отдельном "вибростенде" и по возможности изолировать выделенные подветки друг от друга и от материнской. Благо на Си не бывает "вложенных функций" и переменные от разных функций не смешиваются, а выделение блока в функцию тут же детектит сразу все переменные, заюзанные из охватывающих блоков (а способ делать в блоке только переменные с именами идентичными переменным в охватывающих блоках - всё-таки не для слабонервных :-) ).
    Не слыхал.
    Опять же, индустриальных. Для постиндустриала этот критерий не годится. :-(
     
  10. gudleifr

    gudleifr

    Регистрация:
    16 сен 2006
    Сообщения:
    2.592
    Рыжий Тигра, речь не в том, что все "все куски кода проверены", а в том, что их совместная работоспособность не следует из "индивидуальных проверок", а количество "вариантов согласования" уже в одну программистскую голову не влазит.
    Это как в отечественном космическом ляпе: через клапан со свинцовой прокладкой погнали перекись водорода. Ведь, и клапан соответствовал всем ГОСТ и параметры перекиси. Но кто мог учесть, что они где-то пересекутся?
     
    Рыжий Тигра нравится это.
  11. hobot Оператор ДВК.

    hobot

    Регистрация:
    6 авг 2009
    Сообщения:
    1.777
    Приставочный сегмент - его ведь не выкинешь?
    Похоже там и сроки присутствуют и в опред. смысле с "апдейтом" никаких проблем,
    однако приставочные игры так адаптированы и вылизаны под конкретные железки,
    что любо дорого.

    Чисто потребительский вывод:
    команды пишут игру для приставки(любой) на ПК, но при этом действуют в рамках
    тщательно изученной (со всеми ньансами) среды в которой игра будет работать,
    видимо при портировании игр на ПК или изначальной разработки для ПК подход
    несколько иной.

    И второй момент:
    Получается что часть компаний для своих проектов находят возможность релизить
    без баж. игры, а часть других не находят? (indi-не обсуждаются, только корпорации,
    мега издатели). И даже более "забивают" на нерешённые проблемы выпуская вторую
    часть игры исходя из статистики продаж наверное. А поддержку недоделок объявляют
    закрытой - выпуская НЕДОДЕЛКУ-2 )))

    b0a18a6bccf77f3a18ebaf22d3704553.gif

    Пример кстати из отечественного игростроя: ПАРКАН - Хроники империи.
    Позже разработчики только добавили поддержку ускорителей. Писали
    долго, но выпустили продукт работающий как часики. (!) Так может
    взять это как одно из определений (характеристик) для игр
    "СТАРОЙ ШКОЛЫ", вместо маркетинговых пикселей - "КАЧЕСТВО ПЕРВОГО РЕЛИЗА".

    И тогда споры какую игру считать такой, а какую нет будут однозначный ответ иметь.
    ИГРА "СТАРОЙ ШКОЛЫ" - работает как часы с первого запуска. В дальнейшем она
    в виде поддержки имеет только DLC и аддоны с доп. картами,предметами,миссиями,
    вплоть до выхода полномасштабного продолжения. А год или жанр создания, исп.
    технология суть не важно. Чувствуете? Мне нравиться такое определения, поскольку
    из современных игр натыкаюсь на такие шедевры всё реже. Но зато те что есть - работают и в них просто приятно поиграть время от времени.

    Приятного аппетита всем жующим кодо-бутеры )))
    Мне тут вроде припекает уже очередной ретро обряд в любимую игру закликать )))
     
  12. R4kk00n Benched arcade playa

    R4kk00n

    Модератор

    Регистрация:
    28 мар 2005
    Сообщения:
    9.292
    hobot, TES II - игра старой школы?
     
    hobot нравится это.
  13. gudleifr

    gudleifr

    Регистрация:
    16 сен 2006
    Сообщения:
    2.592
    Там, наверное, нет Windows...
     
  14. hobot Оператор ДВК.

    hobot

    Регистрация:
    6 авг 2009
    Сообщения:
    1.777
    R4kk00n,
    Offtop

    Для этой темы обсуждение конкретных игр персонально со мной - это ОФФТОП )))
    К тому же я не эксперт - это вы мне скажите, я из этой серии только 1-у игру пощупал
    это "ЗОЛОТОЕ ИЗДАНИЕ" ОБЛИВИОН - для меня она ОЛД_СКУЛЬНАЯ вполне оказалась.
    У "Древних Свитков-2" - очень аппетитная олд-скул картинка )))

    Опять таки я через программистов пытался фундамент некий подвести и передать "радость" "восторг" "изумление" - которое испытываю всякий раз запуская современный проект, который "ух ты!" работает ))) Тут уже начинаешь задумываться - что играть
    лучше на приставках - нервы дороже, удовольствие гарантировано. А игры "СТАРОЙ
    ШКОЛЫ" для них есть десктоп-калькулятор )))


    ---------- Сообщение добавлено в 21:56 ---------- Предыдущее сообщение размещено в 21:53 ----------

    Offtop

    Только я хотел упор сделать что в 2014
    считать "СТАРОЙ ШКОЛОЙ" не только непосредственно старые игры, ну в целом я
    выше уже написал об этом достаточно вроде бы. )))
     
  15. daemolisher

    daemolisher

    Регистрация:
    2 дек 2009
    Сообщения:
    1.704
    нет, не разнообразие железа.
    нет, не необозримый листинг программы.



    причина:

    халтурные методы работы:

    набираем толпу фрилансеров-индусов,

    они пишут много-много г_внокода

    потом приглашается пара профи-программеров,

    они быстро это просматривают, фейспалмят, правят самые грубые косяки - и всё!



    тупая нехватка профи.

    их просто на всех не хватает, и их заменяют индусами.


    развелось слишком много фирм, разрабатывающих игры.


    жадность мешает, и наплевательское отношение к игрокам - "пипл схавает".


    а одного профи не заменит сотня индусов.



    за каждый патч игры (для xbox360) надо платить $10 000 за цифровую подпись .exe-файла.

    об этом писал разработчик одной инди-игры (подзабыл название), в общем он назвал за это Микрософт г_вном. )


    любой апдейт для консольной игры - это дорого.


    тем более, почти все нормальные игры выходят на дисках, а за кривой релиз на диске, издатель не погладит по голове.



    даже самая трешевая игра для консолей, получившая самые низкие рейтинги, приносит, как минумум, ~ 2 миллиона долларов (но из них только 10% получит разработчик игры)

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



    на ПК таких явлений нет.
    даже близко



     
    Рыжий Тигра и hobot нравится это.
  16. Ulysses

    Ulysses

    Регистрация:
    28 апр 2011
    Сообщения:
    1.517
    При последовательном применении и доведении до логического конца получится функциональное программирование. Кстати, заметил, что в тех случаях, где написал в функциональном стиле, надёжность когда намного выше.
     
  17. gudleifr

    gudleifr

    Регистрация:
    16 сен 2006
    Сообщения:
    2.592
    Там, насколько понимаю, есть неприятное ограничение. Наличие сложной (значит - глючной) и ограничивающей возможности роста вверх виртуальной машины.

    Надо учесть, что частое употребление коллегой Рыжий Тигра, слова "сам" - это намек на еще два обходных пути:
    1. Написание всего самому, т.е. безжалостное отрезание от кода всяких, универсальных, переносимых, применимых в будущем, и прочих неработающих вещей. Т.е. сокращение размера (т.е. сложности) за счет выбрасывания мусора. (Именно здесь скрыт корень вражды C и C++).
    2. Не объединение программистов в группу, а обвес одного программиста группой поддержки - от бухгалтера, до Интернет-искателя (описано у Брукса).

    С наращиванием уровней связан и способ проблемно-ориентированных языков, когда вместо "сверхформализованного интерфейса" работают более философские методы: от отношения к коду, как к расширению железа, до перекладывания проблем на пользователя.

    Т.е. как я писал выше, методов много, обсуждать их можно бесконечно, но сложнось "от размера непобедима".
    И не надо кивать на "постиндустрию", я и в коротеньком HIGN HOON ошибки находил. Постиндустрия - это не отказ от индустрии, это сложение лапок не в силах ей противостоять.
     
  18. Steel Rat Stainless

    Steel Rat

    Регистрация:
    28 дек 2006
    Сообщения:
    3.260
    Вражда между C и С++ она в головах у отдельных индивидуумов. Нет её.
     
  19. gudleifr

    gudleifr

    Регистрация:
    16 сен 2006
    Сообщения:
    2.592
    Как и любая вражда.
     
  20. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Вовсе не обязательно. Хорошо зарекомендовавший себя сторонний код вполне допускается: используем же мы, к примеру, msvcrt. Или, к примеру, у меня нашли широкое применение не-помню-откуда-стянутая ф-ция strtok_r() и самоклёпные макры для сортировки и для работы с битовыми картами - достаточно универсальные, "шитые на вырост" и неплохо вылизанные (в т.ч. на "вибростенде с осцилографом").
    Хм. Брукс, Брукс... Не помню. Впрочем, идея про "программиста с обвязкой" мне нравится. Кинь ссылочку (или хотя бы фразу для погуглить), где про это прочитать подробнее?
    Кстати, логично. С последующей заменой пользователя на ещё одну программу - получается вполне себе удачно. :-)
    Фигушки. Просто постиндустриал поступает с индустриалом так же, как индустриал в своё время с кустарным производством: включает его в цикл производства. Учебникообразно выражаясь, "производственные отношения"(R) на следующем витке эволюции становятся
    новой верхушкой имеющейся пирамиды "производительных сил"(R). Подробно это расписано у Сократа Платонова в "После коммунизма" и у Розова в начале какого-то из последних романов "меганезийского цикла".
    В где-где? :-)
    (авторитетно) Будет-будет! Как только человечество додумается до т.н. "нейропроцессоров", произвольно перестраивающих свою структуру на лету под конкретную задачу - образующих отдельное АЛУ по каждому new'у и разбирающих его обратно на запчасти по delete'у. Особенно если изготовители процов решат продавать отдельно процы "для Си" и "для C++". :-(
    (Если интересно - пример самоперестраивающегося процессора расписан у Савченко в "Пятом измерении" в двух эпизодах: про анатомию-физиологию обитателей Венеры и про формирование диодной матрицы по радиосигналу. Но четверть века назад задача формирования отдельного проца под каждый объект была нафиг неактуальна.)

    ---------- Сообщение добавлено в 23:31 ---------- Предыдущее сообщение размещено в 23:27 ----------

    Кстати, по Лазаревичу это переход от социально-психологического способа решения проблемы к техническому.
    (В скобках: это ещё и маркер - наблюдаем мы технический прогресс (при преобладании перехода от первого ко второму) или деградацию (при обратном).)
     
    Последнее редактирование: 23 дек 2014
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление