Ближайшие планы развития ветки WebGL Dreams Gate

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

Во первых, проекты работающие в браузере, взламываются проще, чем любые другие. Но не стоит забывать, обычные клиенты взламываются так же (используются лишь дополнительные программы для взлома), но принципы и возможность для взлома не отличается. Это анализ и изменение сетевого трафика, замена шейдеров (например для создания wallhack) и другие виды взлома (макросы, боты и тп). Обычные игровые клиенты и проекты на базе браузеров уязвимы в одинаковых местах. Даже полноценные сетевые игры с «супер защитой» взламывают точно так же. Например Counter-Strike: Global Offensive добавили народный патруль, как средство реальной борьбы с читерами. Так как их VAC и другие средства лишь частично спасали от читеров. Не стоит строить иллюзий, что «клиенты» менее уязвимы, чем браузерные игры. По этому на начальном этапе будем обнулять статистику, разрушать базы и вешать метку почетного взломщика, если такие у нас будут.

Какие же плюсы у браузерных игр:

  • Доступность. Для начала игры нужно лишь перейти по ссылке.
  • Не требуют установки
  • Не требуют обновления. Всегда актуальная версия
  • Легкая расширяемость.

Очень часто приходится слышать, что браузерные игры: «примитивны», «там не создать нормальную игру», «там убогая графика» и подобные высказывания. Это лишь миф, почему? Ответ очень прост, уже давно видеокарты стали принимать к себе данные и использовать их для вывода на экран. Чтобы было понятно: мы загружаем на видеокарту модель в буфер VBO, загружаем шейдер, загружаем текстуры. Они хранятся на видеокарте, мы лишь просим вывести их в указанную область. По этому вся наша графика и скорость вывода зависит лишь от видеокарты. Конечно, браузер уступает по скорости, в обычных вычислениях, которые идут не на видеокарте. Тут целое поле для оптимизации, по этому всегда можно добиться уровня и качества достойного AAA-класса игр.

Примеры отображения моделей в браузере:

Не мог пройти мимо звезды смерти:

Ближайшие планы и цели:

  • Добыча ресурсов
  • Создания баз на планетах
  • Строительство зданий и сооружений на базах
  • Строительство кораблей в ангарах

Как ближайшие цели будут достигнуты, будет доступна новая версия на сайте.

За эти 12 дней, было поставлено несколько экспериментов, первый был генератор текстур на JavaScript. Как показал эксперимент, это возможно, но требуется существенная оптимизация методов генерации. Модели возможно придется делать модульные, чтобы уменьшить их размер и увеличить их разнообразие.

Минусы версии основанной на браузере:
— JavaScript код исполняется медленно, только в браузерах основанных на модифицированном WebKit компанией Google (Chromium, Yandex Browser, Opera и т.п.) производительность нормальная, все кто на обычном WebKit (например FireFox) заметны лаги и тормоза, иногда очень сильные.
— Открытый исходный код, это приводит к возможности быстрого поиска уязвимостей. Но это не только минус, это и плюс, другие участники и все кто занимается тестированием смогут в случае обнаружения ошибки, помочь её устранить.
— Постоянная необходимость скачивать файлы. Исправляется увеличением размера кэша, использованием кеширующего прокси сервера. При использовании кеширующего прокси, можно настроить так, чтобы необходимые файлы скачивались только если они изменились или отсутствуют. Если у вас более одного компьютера, кеширующий прокси на входе поможет в разы ускорить работу на нескольких компьютерах. Скачивая один раз файлы он раздает их компьютерам в вашей локальной сети, без повторного скачивания одних и тех же файлов для разных компьютеров.

[WebGL] Dreams Gate. Продолжение.

Прошло несколько дней над усовершенствованием прототипа игры. На этот раз решил далеко не ходить и сразу сделать космические битвы. Но этот путь оказался не из легких.
И первое с чем пришлось столкнуться это невозможность использования логарифмического буфера. Почему? Все очень просто — не все устройства хорошо справляются с такой задачей, но и самое проблемное это поддержка теней с логарифмическим буфером. В итоге пришлось от него отказаться до лучших времен. Так же до лучших времен пришлось отложить и создание собственного формата моделей, так как формат моделей в текущем виде — громоздкий. Чем это грозит? Например у нас зашло 50 игроков, каждый скачивает по 10 моделей (например 1Мб на модель) в итоге мы получим 500Мб, которые сервер должен отправить. А теперь представим, что у нас уже 5000 игроков и 200 моделей. По этому мне еще придется вернуться к этой задаче.

Теперь поговорим о новой версии. В новой версии из изменений был новый режим «Битва», остальное на данный момент не изменилось.

webgl-dreamsgate-alpha-2-001

Посмотреть новую версию: WebGL Dreams Gate Alpha 2

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

Корабль игрока управляется клавиатурой и мышкой (чтобы сменить направления надо нажать на экран левой кнопкой мыши и двигать).
Клавиши управления на клавиатуре:
«Пробел» — стрелять
«Q» / «E» — вращение вокруг оси движения
«W» / «A» / «S» / «D» — управление
Так же можно управлять стрелками на клавиатуре

Dreams Gate на WebGL

Мысли в голове на эту тему были много раз, но всё ни как не решался. И вот, в один прекрасный день, работа началась. После нескольких успешных попыток, решил полностью освоить трехмерные просторы на браузерном пространстве и для этого выбрал Dreams Gate.
Читать дальше

Как создать генератор названий

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

WebGL Game Demo

Прошло несколько дней с момента предыдущей публикации. И Вам не терпится узнать, что же изменилось? Что нового? И сегодня хочу представить вашему вниманию, небольшую поделку. В продолжение экспериментов с WebGL на базе Threejs. Воодушевлённый от демонстрации на хабрахабре, с весьма странным названием жанра как «платформер». Хотя это типичный «шутер», Doom же шутер, как его можно было назвать «платформер», видимо автору той статьи виднее 🙂 .
Понравилась сама демонстрация, но реализация не сходится с моим представлением как всё должно быть. По этому вооружившись хорошим настроением, энтузиазмом и терпением, приступил к работе.
Читать дальше

WebGL и редактор

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

UTF-8

Сегодня всё утро ушло на борьбу с различными языками в 3D редакторе. Была поставлена задача — добавить поддержку различных языков таких как Русский, Китайский, Английский, Французский, возможно и другие. Для внедрения различных языков нужны различные шрифты и растровое изображение каждого символа. Но как и обычно бывает, мы не знаем каким языком будет пользоваться человек. Может у него будет стоять основной язык Английский, а названия предметов и объектов он захочет на Русском или Китайском. В итоге придется подгружать отдельные шрифты создавать для них отдельные текстуры, занимать лишнюю память.
Читать дальше

Визуальный язык программирования

Визуальный редактор скриптов был создан около двух лет назад. Он является основной частью процедурного моделирования в редакторе Dreams 3D, именно на нем производится основная часть расчетов. Задается логика поведения, условия при которых генератор выбирает правильный путь построения. Изначально визуальный редактор скриптов создавался для игры Space Soldiers, для управления логикой игры, но в ходе разработки было принято решение расширить его возможности.
Читать дальше

1 7 8 9 10 11