Задать вопрос
  • Используются ли контекстные меню в играх?

    @Mercury13
    Программист на «си с крестами» и не только
    По правой кнопке не помню, хотя вроде бывают.
    При щелчке показываются иконки вокруг, например, в Incredible Machine. Или во многих квестах. Или в Fallout 1/2.

    Что контекстному меню мешает.

    1. Плохая раскрываемость (discoverability, возможность найти всё это тыком и интуицией). Игры всё-таки должны собирать большую публику необученных пользователей, верно? Я когда-то учил одну даму ходить по Witness (у неё FPS-управление, но никакой реакции не нужно) — так и не смог. Сам прошёл с большим удовольствием, хотя посторонних головоломок нашёл от силы половину.

    Опытный пользователь рабочих программ просто привык — и то, например, в редакторе Unreal Tournament есть одно очень подлое контекстное меню, которое хрен раскроешь (на заголовке каждого из четырёх видов: спереди, сверху, слева, в перспективе).

    В том же Fallout 1/2 есть команда «оттолкнуть» — неписи ходят по своим делам, и если он загородил нужный проход и никуды, приходится на него действовать этой командой. Понятна только через инструкцию.

    2. Нежелание превращать игру в рабочую программу. Чем дальше интерфейс игры от программы, тем лучше иллюзия. Некоторые авторы — сейчас, правда, это сложно, с управлением из шести осей и десяти кнопок — вообще не делают интерфейса. Хоть «↑ = зайти» да и делают даже в играх вроде Braid и Fez.

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

    4. Теряется правая кнопка мыши. У опытного игрока, который использует всю клавиатуру и даже больше, вдруг отбирают одну кнопку.

    5. Опять-таки раскрываемость — если есть команда, скажем, «патрулировать», не очень понятно, что кнопка P действует, даже если контекстное меню не раскрывать.

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

    7. А если ещё важно заранее раскрыть и момент улучить — меню мешать будет.

    В общем, контекстное меню может пригодиться, но, во-первых, в интерфейсе, а не на игровом поле. Ну или в медленной игре, где игровое поле мало чем отличается от интерфейса. А во-вторых, оно по определению дублирует команды, а если в игре их немного (иначе хрен этой игре обучишься), ничего не стоит вывалить их все другим методом. А те игры, которые делают доступ ТОЛЬКО через контекстное меню — ну, учитесь у Fallout 1/2 и Incredible Machine.

    UPD. Вспомнил. В Mafia и некоторых частях Hitman, если действий вокруг много, по кнопке «Действие» выводит меню: что выбираешь?
    Ответ написан
    Комментировать
  • Как "правильно" моделировать мелкие детали на объектах?

    Kentavr16
    @Kentavr16
    long cold winter
    По логике следует избегать ненужных полигонов - меньше нагрузка на ПК игрока. Во взятом тобой примере нет большой разницы, но если таких объектов на сцене сотни, то можно получить ощутимую разницу в нагрузке. Вот если твоя бочка должна распадаться при взрыве к примеру, то ее деление оправдано. Но просто так добавлять грани - зачем?
    Ответ написан
    Комментировать
  • Можно ли установить NFC-модуль в телефон?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Вполне реально, но набор компетенций, который нужен для этого и количество человекочасов специалиста с такими компетенциями обойдутся в десятки раз дороже нового телефона с NFC-модулем.
    Ответ написан
    Комментировать
  • Почему странно работает видеокарта?

    GavriKos
    @GavriKos
    делал замену термопасты и термопрокладок

    Зачем, а главное нафига? Выросла нагрузка - выросла температура, все логично.

    Вам вот чем то это поведение мешает? Фризы. зависания, просадки FPS? Доверьтесь уже инженерам, выпустившим видюху - если по потребительским качествам вопросов нет - то максимально монопенисуально что она там делает и почему.
    Ответ написан
    Комментировать
  • Как сделать распределение по процентам, чем дороже цена тем меньше шансов?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Ну вы же привели 99% решения. Добавьте просто вычитание из 100 получающегося у вас шанса, чтобы его инвертировать. Ну или используйте ту цифру, что получается у вас, просто считайте, что это не шанс, а сложность.
    Ответ написан
  • Как проверить АЦП на Arduino МЕГА 2560?

    @kalapanga
    Как проверить АЦП на Arduino МЕГА 2560?

    Без всяких шилдов подать на проверяемый аналоговый вход напряжение от 0 до 5В, прочитать его и вывести значение в Serial.
    Ответ написан
    1 комментарий
  • Болт для крепления видеокарты к корпусу?

    @Drno
    1е фото - крайний справа
    Ответ написан
    Комментировать
  • Кто брал модели из Game guru(формат. X и .3ds), как их перевести в более распространённый формат под блэндер или 3д макс?

    GavriKos
    @GavriKos Куратор тега Разработка игр
    Ищите конвертеры. X точно поддерживался когда то 3dмаксом через плагин. 3ds вообще звучит как нативный. Возможно нужно в максе делать эксопрт, а не open
    Ответ написан
    Комментировать
  • Какие есть решения для создания чертежа/развёртки из 3D модели созданной на основе другой модели?

    WNeZRoS
    @WNeZRoS
    У Blender есть встроенный аддон Paper Model для генерации схемы бумажной модели, возможно и для обёртки подойдёт.
    https://docs.blender.org/manual/en/latest/addons/i...
    Ответ написан
    Комментировать
  • Как писать код на android?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Нужна нормальная клавиатура. Купи себе недорогое устройство класса "нетбук".
    На телефоне писать не надо. Это просто неэффективно. Зря портить себе зрение и пальцы.
    Ответ написан
    Комментировать
  • ПК: сборку какого производителя выбрать?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    идите в днс и вдумчиво подбирайте под себя у них есть конструктор.
    либо выбирайте из готовых вариантов.
    Ответ написан
    Комментировать
  • Исходный код языка Си?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Язык Си не является программой, по этому у него нет исходного кода. Исходный код может иметь компилятор языка, которых есть более чем один.
    Ответ написан
    Комментировать
  • Как практиковаться в программировании?

    @evgeniy_lm
    В том весь и прикол. Программист это не тот кто пишет код, а тот кто решает конкретную задачу и создает нужное, важное ПО. Для этого необходимо знать и уметь так много, что непосредственное написание кода это дело даже не десятое.
    Начни с того что найди какую ни будь проблему, можно свою, но лучше чужую. Подумай что можно автоматизировать для мамы/папы/бабушки/дедушки, для одноклассников (лучше одноклассниц), если работаешь то, разумеется, на работе. Опиши проблему в виде "черного ящика", разработай математическую модель проблемы. Записать матмодель на каком ни будь ЯП это уже мелочи.
    Ответ написан
    Комментировать
  • Какой вид графики лучше для самостоятельного рисования не художником?

    @lekras
    Если рассуждать по-дизайнерски, то выбор стиля рисования зависит от того, какого эффекта/впечатления нужно добиться, чему нужно соответствовать (культуре, временной эпохе, возрасту итп).
    А художнику (нехудожнику в том числе) все это по барабану, потому что он так самовыражается. И на любой вопрос может ответить "я так вижу".
    Отвечаю на вопрос. Самостоятельно можно рисовать как удобно и как угодно. Все зависит от цели.
    Делая дизайн для камерного оркестра скрипачей, я найму каллиграфа, потому что сам с вензелями красиво не разберусь. А на обложку к треку гаражной банды могу и сам что-то накидать.
    Но развитие и обучение еще не отменили)
    Ответ написан
    Комментировать
  • Достаточно ли изучить 1 книгу по Java Core что бы перейти к Spring Framework?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тема топика - экстремальное изучения языка и фреймворков.

    Лет 10 назад я-бы запретил. И себе и другим. Но сегодня условия войти-в-айти таковы что на все времени не хватает а фичи языков и фреймворков растут. Уже просто изучать целый семестр один язык недостаточно. Вообще мне термин Core непонятен. Если у тебя Java приложение падает по OOM а для решения этой задачи нужен еще ох какой пласт знаний по Linux по организации памяти и по виртуализации Docker то скажите пожалуйста какой Core это описывает. Или другой пример. Вы сделали бизнес приложение с БД которое быстро работает на детских объемах базы. Но когда зашли продуктовые данные - приложение залагало и упало. Вот скажите какой Core этот процесс оптимизации описывает? Да никакой. Есть совокупность инженерных практик начиная от теории алгоритмов и заканчивая тестированием и контрактами.

    Вобщем автор. Ты можешь читать хоть 10 книг одновременно. Просто у тебя должно быть видение того на какую вакансию и должность ты пойдешь. И какие хоть примерно задачи ты будешь решать. Ну и сроки хотя-бы осязаемые. А то так 10 лет можно просидеть.
    Ответ написан
    2 комментария
  • Каким образом одна и та же игра может рендериться за счёт разных графических библиотек?

    @MarkusD
    все время мелю чепуху :)
    Любой GAPI является инструментом прикладного уровня, который инженер может встроить в свой код с целью пользоваться его возможностями. Прямое использование любого API является примером тесной интеграции кода программы с кодом целевой платформы.
    Целевой платформой является аппаратно-программный комплекс, на котором планируется запускать разрабатываемый код. Целевой может быть Sony Playstation, ПК с виндой, Мак или мобила с Андроидом.

    Код с тесной интеграцией целевых API нередко пропитан их общей "атмосферой". Это выражается в стиле кода, в общих конструкциях, в заточенности кода проекта на использование совместно с конкретными API.
    Использующий DirectX8 код не так просто перевести на использование DirectX9, еще сложнее перевести на использование DirectX10/11 или DirectX12. Код с использованием OpenGL1.1 тяжело поддается модификации для использования OpenGL2.0, 3.0 или дальше. Любая кодовая база с тесной интеграцией DirectX/OpenGL очень тяжело переводится на Vulkan, Metal или профильные GAPI некоторых закрытых целевых платформ.

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

    В задачах кроссплатформенности решающую роль играет знание архитектуры П.О. Потому что кроссплатформенность требует разработать агностический слой, под которым будет находиться настраиваемая связь с целевым API. Когда речь идет о системных API целевых платформ, агностический слой представляет из себя фасад универсальной операционной системы. Когда речь идет о GAPI, агностический слой представляет собой API для универсального GPU. Когда речь идет о звуке, агностический слой представляется универсальной звуковой системой.
    Без всеобъемлющего знания архитектуры П.О. такие инструменты разработать крайне сложно. Без глубокой экспертизы во всех целевых API и целевых платформах разработать такой слой возможным не представляется. Без экспертных знаний используемых в разработке языков построение кроссплатформенного кода выливается в не распутываемый клубок взаимопереплетающихся проблем, решение каждой из которых на одной платформе гарантированно сломает поддержку другой.
    Я об этом пишу потому что знаю множество подходов к решению задач разработки кроссплатформенного кода. Я сталкивался с подходами которые не решают задачу кроссплатформенности и знаю пути более эффективного решения этих задач для конкретных случаев в конкретных проектах.

    Когда агностический слой выведен, весь кроссплатформенный код пользуется только им. Под агностическим слоем, тем или иным способом, весь код сводится к использованию целевого API.
    Таким образом, для того чтобы позволить игре рендериться и через DirectX, и через OpenGL, и через Vulkan, нужно в движке игры разработать универсальный внутренний GAPI, вызовы которого будут передаваться в выбранный пользователем целевой GAPI. Форматы данных, ресурсы и шейдеры, при этом, ровно так же выбираются исходя из выбранного пользователем целевого GAPI и могут пересекаться между разными GAPI.
    Те же шейдеры сегодня спокойно транслируются из HLSL в GLSL или SPIR-V специальными трансляторами. Геометрия может быть одинакова, форматы текстур на целевой платформе между всеми GAPI, как правило, одинаковы.
    Дело остается только за грамотной разработкой своего маленького виртуального GPU.
    Ответ написан
    Комментировать
  • Где можно собрать команду для разработки игры?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Организуйте движение в тюрьме или ИТУ.
    Времени там целая куча, ЗК реально страдают фигней. На выходе будут иметь проффессию и какой то статус.
    Начать можно с подачи запроса вашему депутату, он примет ваше предложение и возможно оно пройдет
    Ответ написан
    Комментировать
  • Можно ли без высшего образования работать в Геймдеве?

    @MarkusD
    все время мелю чепуху :)
    Без вышки работать можно не только в геймдеве. Вообще везде можно работать. Это иногда даже негласно приветствуется.
    За такую работу можно даже получать некоторые деньги, которых будет хватать на жизнь.

    Я работал с несколькими самородками. Эти ребята - реальные спецы своего дела. Вышка им бы только мешала в их работе, оттягивая на себя их реально ценное время. Они многого добились и продолжают добиваться. Это такие немного особые люди. А для всех остальных людей без образования будут мои следующие строки.

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

    Оттарабанить 4-6 лет, вытягивая лямку нормативов на экзаменах без четкого понимания требований к тебе - это пустить деньги и время на ветер.
    В ВУЗ нужно идти за обучением самоконтролю, за обучением самодисциплине, за обучением самоорганизации. Вот те самые навыки, которые сегодня дает ВУЗ. Диплом магистра, бакалавра или специалиста - это дополнительный бонус. Разовьешь эти навыки самостоятельно - станешь одним из точно таких же самородков.
    В ВУЗ стоит идти за трамплином к знаниям. Чаще всего человека надо только подтолкнуть чтобы он стал специалистом. А толчком таким и является программа базового обучения в ВУЗе. Обучение базовое потому что его для последующей работы все равно хватать не будет. Дальше с этого трамплина нужно рвать во весь опор, находя и усваивая самые важные и самые нужные для своей работы знания. Осилишь найти все эти знания сам - ну чтож, ты один из немногих способных.
    По окончании ВУЗа человек не выпускается готовым к работе. На этом этапе он обладает только самыми базовыми навыками и дальше нужно продолжать учиться по профилю работы. Для этого есть стажировки, квалификационные курсы, а так же разнообразные книги и циклы статей для самостоятельного обучения.
    ВУЗы не готовят людей к работе, ВУЗы готовят людей к самостоятельной профессиональной подготовке.

    Люди без вышки спокойно работают в геймдеве рядовым персоналом десятки лет без шанса и желания повышения. Деньги идут, работа делается, проблем нет. Кое-где я таких людей наблюдал целыми отделами. Прекрасно работают, их все устраивает. Некоторым людям не нужны перспективы карьеры или роста, это нормально. А значит, таким людям и вышка тоже не сильно нужна.
    Ответ написан
    1 комментарий
  • Какие разработчики работают с алгоритмами?

    @dmshar
    Так и не смог понять, как мог устареть алгоритм сортировки или поиска пути за лет 5... Тогда мне это показалось диким и, как оказалось, не зря.
    Не знаю, что вы поняли из того, что вам сказали загадочные "мидолами" с несколькими лет стажа, но вот что вам сказал выше уважаемый Wataru вы похоже таки и не поняли.
    Поясню. Алгоритмы учат не для того, что бы запомнить еще один "самый современный" алгоритм, - все равно завтра вы его забудете, а если надо будет применить - поищете в Гуугле. Алгоритмы УЧАТ для того, что бы приобрести навыки алгоритмического мышления. А ВЫСОКОквалифицированный разработчик тем и отличается от "мидола" с "несколькими годами опыта работы", что в первую очередь умеет проанализировать ЛЮБОЙ алгоритм, найти его ограничения, сильные и слабые стороны и пр., а не похвастаться, что он запомнил самый новейший алгоритм, который улучшает некоторые ранее известные на 0.00002%.

    Это как в музыке - сначала учатся играть гаммы (изучают язык программирования), потом учатся играть этюды - простые и незамысловатые пьесы, что-бы приобрести навыки, а уж потом играют сложные композиции. Так вот в программировании, изучение алгоритмов - это и есть этюды. Только тренируете вы не руки, как музыканты, а мозги. И не важно, по учебнику какого года вы это делаете.
    Ответ написан
    Комментировать