Сразу скажу - запускаю твой движок впервые, поэтому, возможно, не понял, что именно надо тестировать.
Визуально неплохо. Освещение хорошее. Фпс ограничен 60 - так и задумано?
В консоли не работает команда cmdlist, надо бы сделать.
После ввода cm и нажатия Tab игра закрывается.
Деревья не рубятся, а ящики берутся.
Я посоветовал бы добавить интерполяцию между кадрами анимации - слишком уж дёргано игрок шагает. Вроде у дяди Миши было нечто подобное в ксаше для спрайтов.
И как насчёт показывать игрока под деревьями, делая их прозрачными? Помнишь, как в фоллаут 1-2 игрока через стены показывало? Иначе ведь играть будет сложно.
XaeroX спасибо фпс ограничен в самом lwjgl, но вроде кто-то получал больше с отключенным vsync в драйвере. cmdlist пока рано еще, там всего 4 команды. Автокомплит надо подправить, что-то я там недоглядел. Деревья и ящики пока не взаимодействуют с игроком, это все вынесено в игровую библиотеку, а я сейчас работаю над ядром. Деревья можно, причем несколькими способами, потом надо будет подумать.
Интерполяцию даже не знаю, она какая, попиксельная? Я думал вообще 2D скелеталку прикрутить, сделать ноги отдельно, туловище отдельно
KiQ писал: Интерполяцию даже не знаю, она какая, попиксельная?
Для начала можно попробовать обычный альфа-блендинг между двумя кадрами.
Но кадров надо сделать всё-таки побольше. Четыре кадра на анимацию бега в 2015 году - это слишком... хардкорно.
Цитата:
KiQ писал: cmdlist пока рано еще, там всего 4 команды
Ну так закалённые в боях квакеры-халферы первым делом вводят в незнакомую консоль команды cmdlist и cvarlist.
А вот и доработка теней. Теперь они могут отбрасываться от множественных источников, также берут их цвет и вектор, искажаются в зависимости от расстояния и направления, изменяют прозрачность. По сути, конечно, все те же плющмодели, но существенно доработанные. Все же честные тени будут очень и очень кушать филлрейт, в то время как с этими FPS ниже 100 не опускался, даже при нескольких источниках на экране.
Доработал и оптимизировал тени. Теперь они учитывают яркость источника света, причем реальную а не просто альфа-канал (воспользовался формулой перевода RGB в показатель интенсивности цвета). Также теперь источникам света, как и всем другим объектам можно задать height и они не будут освещать все, что находится выше них. Нормалмаппинг наверное все же не буду добавлять, ибо он тяжеловесный, хотя я даже оригинальный скринспейс алгоритм разработал. Но, имхо, и не особо он смотрится тут. Лучше просто качественные текстуры.
Что нового:
- Переписана система UI
- Появилось меню
- Исправлена куча мелких багов
- Оптимизация
- Можно строить и удалять ящики (R и E), ну это чоб не скучно было
В основном изменения в коде, например, теперь у движка нет отдельного стейта для UI, поэтому теперь можно прямо в игре вставлять различные окошки, поп-апы и прочие ништяки, система будет дорабатываться, но уже сейчас она превосходит все, что я писал до этого. Вкратце устроена она следующим образом: есть три базовых объекта UI->UIElement->UIBase. Все они нужны для необходимого уровня абстракции, но наследоваться можно только от UIBase. Он предоставляет весь необходимый функционал из всех трех объектов. Также есть UIManager, который занимается обновлением и отрисовкой всех UI. Также есть некоторые шаблоны элементов в базовом функционале.
Также серьезно обновилось ядро:
- Убраны все игровые клавиши из ядра, теперь их можно получить через метод getKeyCode(String name)
- Серьезно доработан UI, теперь осталась система отложенных эвентов
- Исправлены ошибки в рендере, теперь координаты считаются корректно
- Исправлено огромное количество мелких багов
- Обновлен и расширен EngineAPI, добавлена возможность скрывать/показывать системный курсор
- Исправил отображение мира при выходе камеры за его границы. Теперь автоматически включается клип по реальным границам игрового пространства (раньше, если камера уезжала за пределы мира, объекты рисовались на сером фоне, теперь же они отсекаются границей мира)
Было:
Промежуточный вариант (артефакты по краям):
Стало:
В целом это можно было бы исправить просто сменой цвета очистки мирового фреймбуфера на черный, но с дополнительным clipRect надежнее
- Добавил показ центра камеры в r_debug (полезно, если используется кастомная камера и нужно ее тонко настроить)
- Исправил некорректную работу дебаг переменной r_lightning, раньше она забывала очистить лайтмапу и свет навечно зависал на экране, теперь он отключается как положено (это чисто для отладки, разумеется).
- Добавил метод boolean isMoving() в класс Entity, возвращает true, если current_speed не нулевая
- Улучшил физику, теперь игрока так не колбасит при столкновении и вероятность всяческих глюков с полетами через полкарты намного уменьшилась
- Добавил метод Entity[] getCollides() в класс Entity, который возвращает все Entity, с которыми в данный момент столкнулась данная
- Добавил метод setUniform(String name, boolean value) в класс Shader, теперь задавать uniform bool стало удобнее (используется для режима grayscale, например)
- Добавил метод create_int_buffer(int size) в BufferUtils (помимо byte и float)
- Исправил нижнюю границу консоли (не отображалась почему-то)
- Подкорректировал имена переменных, удалил дубль UIFont font из класса Console, кое-где раскидал новые комменты
А движок между тем дополз до версии 2.6. Нормальной демки нет, ибо она перестала заводиться уже месяца два назад, а когда я сел ее переписывать на новые интерфейсы, понял, что проще написать заново с использованием появившихся фич. Ну а что есть - это небольшая демка UI https://www.youtube.com/watch?v=CSu9ElFWSTw
P.S. все время забываю, как видео вставлять, может в плагин добавить, чтобы при youtube в ссылке он сам нужные тэги проставлял?
KiQ
Чувак, я тебе реально тему говорю.
Есть хорошая идея для того чтобы твой проект поднялся и стал известным в какой то мере.
Сейчас идет огромный тренд на ККИ проекты смотри Харстоун, Мэджик дуэлс и прочее.
И если ты организуешь движок таким образом, чтобы он смог быть чем то вроде RPG MAKER , тоесть создашь основу для создания и легкого модернизирования для ККИ , твой проект ждет большой успех!
Если интерисует оставь в личку свои контакты, попытаюсь помочь.
Даже некоторые наработки есть
П.С Ксер прости линк на ксм http://cs-mapping.com.ua/forum/showthread.php?t=36534