Ответы пользователя по тегу Разработка игр
  • Возможно ли создать игру без движка?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    конечно. Так раньше все игры и делали.
    Потом каждый писал свой движок и делал.
    Потом начали пользоваться чужими готовыми движками, ибо написать например трехмерный шутер с нуля, в одиночку займет несколько лет, при условии что ты очень крут и в алгебре и геометрии и в тонкостях работы современных возможностей видеокарточек и графических подсистем.

    А простенькие типа сапера - что там делать..
    Ответ написан
    Комментировать
  • Не нажимается "+" для создания переменной?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    название сперва ввести а потом уже жать плюс?
    Ответ написан
  • Как можно посмотреть базу данных компьютерной игры?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    А почему вы считаете, что data.bin это данные sql базы?
    Если игра пользуется SQL, то и данные в ней лежат прямо в её SQL Базе, а не в каких-то data.bin
    и уж тем более, локации в SQL?

    Во-вторых, базы данных обычно используются в сетевых играх, а не которые можно просто себе скачать, потому что ставить базу данных для singleplayer игры - оверинженеринг. Данные могут храниться в каком-то запакованном виде, оптимизированном именно для этой игры, и данная информация (формат и утилиты для работы с этим форматом) не обязательно публично доступны или задокументированы. Зачастую наоборот, для избежания того, чтобы в них лез каждый школьник, применяют простые способы защиты, которые может быть и не сложно обойти, но для этого нужно обладать определенной квалификацией, потому что объяснить на пальцах долго и неудобно, а простых программ типа эксель, чтобы взять и открыть кастомные файлы - нет.
    Те же, кто такие программы пишет, не заморачиваются красивыми и удобными кнопочками, они делают простой инструмент для себя
    Ответ написан
    4 комментария
  • Как происходит обмен с БД данными в Lineage2?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    1. Каждое открытие инвентаря это запрос к БД (т.е. при стоянии на месте и щелкая кнопку, мы будем нагружать БД запросами)?

    Нет. Данные загружаются в оперативку при логине персонажа. Изменения также касаются оперативки. В базу скидывается при логауте. Ну еще периодически для синхронизации.

    2. Каждое выпадение золота в мир это новая запись в общую таблицу мира, что в такой-то точке есть объект "золото"?

    Да. есть объект "предмет". Есть структура "список предметов", скорее всего двухсторонний список. Он обновляется, в него добавляется, из него извлекается. Предметы в мире не записываются в базу вообще (если вы помните, при ребуте все что не в чьем-то инвентаре, пропадает. Не так уж много оперативки это занимает. Просто посчитайте.
    Максимальный онлайн на шарде - 5000 игроков.
    Объект - ну учитывая тип предмета, уникальный айди, разные параметры типа заточки, владельца, место, и так далее - 10-20 байт более чем достаточно. Ну давайте 50 байт возьмем, хотя на деле я уже не помню сколько там было, явно меньше.
    50 байт * 5000 игроков и скажем 100 предметом у каждого - получим примерно 23 мегабайта.
    Добавить клановые хроанилища. ну 30 мегабайт. Много это оперативки на сегодня? По-моему вообще разговор ни о чем.

    3. Что происходит после того, когда золото было поднято, эта запись превращается в null?

    Объект удаляется из списка.

    4. При интенсивном обороте этих действий, как реализуется такая таблица, чтобы она не переполнялась за неделю?

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

    5. Для игр подходит любая БД (например Postgres) или есть определенный тип игровых БД?

    Любая. В Lineage2 использовался MSSQL, в самописном народном java эмуляторе использовался mysql
    Ответ написан
  • Возможно ли с нуля сделать сервер для игры Mafia 2?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    Реверсишь сетевую активность между сервером и клиентом. Вычисляешь все необхоимые пакеты. Пишешь свой сервер.
    Но работа эта может быть огромная.

    Свой сервер для Lineage 2 писали несколько лет множество команд добровольцев. Он смог покрыть примерно 60-70% основного функционала. Потому что на сервере и 3д геодата мира, и АИ для монстров и обработка всех событий, заклинаний, навыков с их формулами, и квесты и так далее.
    Свой сервер Battlenet для starcraft/diablo писали за месяц, потому что там в общем только авторизация и лобби для старта игры.

    В зависимости от того, что делает сервер Мафии (не играл), может быть что угодно. Ну и реверсинг, если сейчас сервер уже нерабочий - КРАЙНЕ затруднен.
    Ответ написан
    3 комментария
  • Как сделать экономику в игре?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    Єкономику делай как хочешь.
    Зависит от популярности игры, зависит от того, как ты оцениваешь создание платных ресурсов.
    Если это скины, то оцениваешь сколько стоит нарисовать новый скин, и как его отбить.
    Как ты понимаешь, чтобы это оценить нужно понимать какие есть пользователи и сколько из них готовы что-либо покупать.

    Обычно монетизацию запускают не сразу, а через какое-то время, когда игра набрала хотя бы определенную минимальную аудиторию.
    Ответ написан
  • Какие есть альтернативы Macromedia Flash в сфере геймдев?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    JS и кучи библиотек/фреймворков на JS/HTML5/CSS
    там в принципе все что угодно можно написать.
    А если взять еще и webassembly, То можно и посложнее.
    Ответ написан
    Комментировать
  • Какие языки нужны?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    Нужно понимание принципов работы windows приложений, а именно - как работать с библиотеками, как их писать, как реализовать dll injection
    сами библиотеки можно писать и на С++ и на с#. Вообще смотря на чем сервер написан.
    ну и да, отладка и ассемблер - на уровне
    Ответ написан
    Комментировать
  • Решил сделать свой пет-проект - игру, с использованием вебсоккетов, как лучше организовать неткод?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    Зависит от вашего приложения.
    В шутерах шлются упрощенно "кейпрессес", туда, действия объектов "оттуда" и достаточно часто.
    Но именно поэтому шутеры ограничены количеством игроков.

    В РПГ шлются действия типа "игрок кастанул заклинание", "игрок нажал бежать на X и Y", после чего сервер просчитывает что происходит и шлет назад уже координаты видимых объектов с их статусом.

    Это становится понятно из управления - в условном контр-страйке для передвижения ты нажимаешь и отпускаешь стрелки. В условном MMORPG ты так не можешь, ты кликаешь мышкой в нужное место, и персонаж туда бежит по логике сервера (учитывая препятствия), но микроменеджментом ты не занимаешься.
    Ответ написан
    2 комментария
  • Есть ли рпг код которых был открыт? Желательно на плюсах?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    Ответ написан
    Комментировать
  • Как обойти размер файла и хеш? Как сделать чит?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    Заказываешь работу на фрилансе, потому что именно против таких пользователей как ты и был сделан античит механизм при помощи хеширования.

    Нет никакого универсального способа обойти подобную защиту, которую можно использовать в виде простой инструкции. Самое простое - изучи программирование, отдебажь алгоритм хеширования, разберись можно ли исправить файл таким образом, чтобы новый соответствовал старому хешу.
    Учитывая современные алгоритмы, это может быть принципиально невозможно в конкретном случае, и нужно искать другие способы взлома.
    Ответ написан
    Комментировать
  • Как создать 2д мир?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    1 млн байт, это например всего лишь 1 мегабайт, что для современного компьютера немного.
    Ты точно в КАЖДОЙ клетке хочешь разместить нечто активное?
    Ответ написан
  • Как изменить скрип так что бы скорость персонажа увеличивалась с каждым шагом в Unity 3d?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    public float maxVelocityChange = 10f;

    У вас скорость меняется на это значение.
    Просто придумайте алгоритм, чтобы менять значение переменной. Например если направление не изменилось, увеличиваете на 0.5, если изменилось, то сбрасываем на 10f.
    Плюс может быть какой-то лимит добавить.
    Ответ написан
    Комментировать
  • Как инкапсулировать пользователя на сервере?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    Странный вопрос.
    А где сейчас хранишь информацию об одном боссе?
    Там же храни и про нескольких.
    Ответ написан
    Комментировать
  • Как сделать что бы со временем восстанавливались HP?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    восстанавливай без слипа.

    А если хочешь больше конкретики в ответе, добавь конкретики в вопрос.
    Ответ написан
  • Как реализовать управление для двух игроков на одной клавиатуре SFML?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Советую почитать о том, что такое NKRO
    Не факт что даже если будет верным код, найдешь клавиатуру где все будет работать
    Ответ написан
    Комментировать
  • Как получить понимание разработки игры?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    Тебе же прямо сказали. Нужно изучить язык программирования.
    Не на уровне "почитал книжку". Не на уровне интерн/джуниор. А на уровне уверенного разработчика.

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

    Поэтому правильный путь - это потратить МНОГО времени и МНОГО усилий.
    Ты же сам сказал, что все что ты изучил - там давали базовое понимание что это такое.

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

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    Стало интересно а как происходит поставка? Не могут же просто поставлять сурсы, а потом сборка локально происходит, но в таком случае как читы пишут. То есть, обычным людям все-таки доступны сурсы клиентов. Или все-таки нет?

    Почему не могут? Могут и так. есть много opensource игровые проекты, которые могут подозревать сборку у клиента.
    Но вообще вопрос дуракций. Ты никогда не ставил игрушку? Никогда не заходил в каталог с игровыми файлами?
    Что за бред в постановке вопроса.
    Ответ написан
  • Как игровые движки понимают инородные языки?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer

    Каким образом движок написанный на C++ понимает другие языки?

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

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    эм. логирование может быть разнообразным, и вообще не обязательно в файл.
    Зависит от игры, зависит от того, что надо.

    Можно логировать технические моменты, например работу 3д движка, подключаемые библиотеки и функции, детект что может карточка, разрешение, мониторы, использование ресурсов.
    Можно логировать игровые действия игроков или npc
    Можно логировать сетевую активность
    Можно логировать пользовательскую активность по интерфейсу (сбор метрик для ui дизайнеров)
    Мало ли что.
    формат НИЧЕМ не отличается от логирования любого другого софта.
    Смотришь сколько логов, думаешь нужно больше или меньше. думаешь как оптимизировать.
    можно в файл, можно в базу, можно в несколько сразу
    Ответ написан
    3 комментария