forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   JavaScript / HTML (http://forum.boolean.name/forumdisplay.php?f=136)
-   -   [проект] Tower Defense на WebGL (http://forum.boolean.name/showthread.php?t=18510)

ABTOMAT 02.09.2013 06:08

[проект] Tower Defense на WebGL
 
Вложений: 1
Актуальная информация (23.10.2013)

Ссылка на демо

------
Итак, я вздумал сделать ещё один проект на WebGL и моём смеходвижке, название которому (движку-то) уже придумано, но не публикуется.

Скажу сразу: эта игра будет являться аллюзией на Cursed Treausre. Или клоном, называйте как хотите (хотя если на то пошло, то все Tower Defensы клоны друг друга, а все шутеры от первого лица — клоны Quake'а). По крайней мере основная механика будет та же.

Мудель, скажете, нехрен копировать то, что уже есть. Но я решил, что лучше уж подражать чему-то хорошему, чем выдумывать что-то своё, но плохое. По крайней мере, оригинал мне очень понравился, и я бы не прочь поиграть в продолжение, которого нет. Так что берём бразды в свои руки! Тем более, простора для творчества будет и так предостаточно!

Вся игра планируется в 3D, довольно лоупольном, но симпатичном. Ведь делать это я буду своими кривыми ручонками с минимальным third-party (в идеале вообще без него, т.к. я ничего не знаю о том, ждёт ли проект коммерческий успех), а, значит, заранее нужно замахнуться на тот уровень медии, который я могу осилить сам и при этом в чтоб не увязнуть на год. Запланирована 1 неделя на рисовку всей графики, не больше.

Цели проекта:

1. Тестирование, "укрепление" и прокачка движка (ибо фичи есть, но не оттестированы, и есть список желаемых фич). Игра, как известно, лучший тест для движка.
2. Готовый проект в портфолио, который не стыдно продемонстрировать >>:(
3. Прокачка навыков, куда без этого?
4. Возможно, копеечка на ВК :-D И в дальнейшем на ФБ. Впрочем, не рассчитываю на окупаемость, но если упадёт копеечка, это поднимет моё ЧСВ :-D

Что на данный момент сделано:
1. Левопяточный редактор уровней (на скрине). Сделан он на HTML/JS и его даже можно потыкать: http://maslov.co/webgl/2/editor.html Обозначения схематичные, сохранять он пока не умеет (ещё не решил, будет он сохранять в бинарник или же будет высирать мне JSON)


Дальнейший план:

Задача 2: заставить движок хавать высер из левел-эдитора и расставлять кубики как полагается
пока что моделек не будет будут просто кубики разных цветов
Задача 3: заставить генерировать именно меш земли, т.е. цельный, а не из разных дипов
Задача 4: сделать красивые переходы между разными типами террайна
Задача 5: вставить тестовые модельки и текстуры чтобы когда придёт время заменять на релизные, я бы просто заменил файлы и всё, не пришлось бы ничо в коде переделывать
Задача 6: пик по этому добру (о да, в движке до сих пор нет пика! значит надо сделать)
Задача 7: расстановка начальной и конечной точки
Задача 8: враги-кубы, бегущие из начала в конечную точку, путенах А*
Задача 9: башни, стрельба говном по врагам
Задача 10: апгрейды башен, меню апгрейда

Далее по обстоятельствам.
Итак, я начал. Надеюсь, кончу. :-D О прогрессе буду постить сюда.

И да, не пора ли нам сделать раздел "Проекты на WebGL" ? У нас их уже, как-никак, два :-D

Mr_F_ 02.09.2013 11:11

Ответ: [проект] Tower Defense на WebGL
 
Цитата:

Задача 6: пик по этому добру (о да, в движке до сих пор нет пика! значит надо сделать)
алсо, по деревьям пикать вряд ли будет полезно для игры, скорее всего достаточно будет пика по террейну + некоторым AABB.
из террейна можно посчитать distance field заранее, пикать его будет оч быстро и весьма точно.

ABTOMAT 02.09.2013 16:01

Ответ: [проект] Tower Defense на WebGL
 
Да конечно не по деревьям, а по клеткам. Террейн не обычный террейн а скорее майнкрафтоподобный.

ABTOMAT 03.09.2013 00:15

Ответ: [проект] Tower Defense на WebGL
 
Вложений: 1
В редакторе сделал экспорт и импорт в игру (пункт "Задача 2").
Я даже знаю, кто у меня будет тестовой моделькой крипа :-D

http://maslov.co/webgl/2/maps/1.map
Вот json этой мапы

http://maslov.co/webgl/2/editor.html
Можно даже его сюда заимпортить и посмотреть

moka 03.09.2013 03:05

Ответ: [проект] Tower Defense на WebGL
 
Делай массив индексов для мапы, а то такой формат как у тебя солько же будет занимать?

Вот так лучше будет ( http://files.moka.co/map.json ):
PHP код:

{
  
"tiles": [
    
"grass-trees",
    
"rock-trees",
    
"grass",
    
"road",
    
"snow-trees",
    
"rock",
    
"snow"
  
],
  
"width"15,
  
"height"15,
  
"map": [ 4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,4,4,4,4,3,3,3,3,3,3,4,1,1,1,1,4,4,3,3,3,3,3,3,3,3,3,3,1,1,1,4,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3,6,6,6,6,3,3,3,3,1,1,3,3,3,6,6,6,6,6,6,5,5,3,3,3,1,3,3,4,4,4,4,4,4,4,5,5,3,3,3,1,4,4,4,4,4,4,0,1,1,1,5,5,3,3,1,4,4,4,4,4,0,0,1,1,1,5,5,3,3,1,1,4,3,3,3,0,0,0,2,2,2,3,3,3,1,1,4,3,3,3,0,2,2,2,2,2,3,3,3,1,1,1,3,3,3,3,2,2,2,3,3,3,3,2,0,1,1,3,3,3,3,3,3,3,3,3,3,3,2,0,1,1,1,3,3,3,3,3,3,3,3,2,2,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,]


Да и в BSON'е такое ваще хранить сказка, можно сделать tile максимум 8, или 16, тем самым юзать соответственно 1 или 2 байта на тайл.
А можно его вообще одной строкой а не массивом выводить.

Читаем:
PHP код:

for(var 0level.height; ++y) {
  for(var 
0level.width; ++x) {
    var 
tileInd level.map[level.height];
    var 
tile level.tiles[tileInd];
  }


Или если один цикл (ну кому как):
PHP код:

for(var 0len level.width level.heightlen; ++i) {
  var 
level.width;
  var 
Math.floor(level.width);
  var 
tileInd level.map[i];
  var 
tile level.tiles[tileInd];


Результат будет (tileInd):
PHP код:

4 4 4 4 4 4 4 4 4 4 4 1 1 1 1
4 4 4 4 3 3 3 3 3 3 4 1 1 1 1
4 4 3 3 3 3 3 3 3 3 3 3 1 1 1
4 3 3 3 3 3 3 3 3 3 3 3 3 1 1
3 3 3 3 3 6 6 6 6 3 3 3 3 1 1
3 3 3 6 6 6 6 6 6 5 5 3 3 3 1
3 3 4 4 4 4 4 4 4 5 5 3 3 3 1
4 4 4 4 4 4 0 1 1 1 5 5 3 3 1
4 4 4 4 4 0 0 1 1 1 5 5 3 3 1
1 4 3 3 3 0 0 0 2 2 2 3 3 3 1
1 4 3 3 3 0 2 2 2 2 2 3 3 3 1
1 1 3 3 3 3 2 2 2 3 3 3 3 2 0
1 1 3 3 3 3 3 3 3 3 3 3 3 2 0
1 1 1 3 3 3 3 3 3 3 3 2 2 0 0
1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 

Так в разы экономнее.

ЗЫ, с div'ами ты конечно прикольнулся в редакторе, не мог канвой сделать?

ABTOMAT 03.09.2013 03:11

Ответ: [проект] Tower Defense на WebGL
 
Да мне не жалко пары килобайт на это дело, пусть останется словами. 225 клеток всего-то. В конце-то концов, это же не основополагающая вещь и не боттлнек даже.
Канвой не мог, мне в разы удобнее с дивами. И если ты посмотришь на editor.js, то там всё завязано на эвентах по html-элементам. С канвой бы пришлось писать намного больше.

Планы на ближайшее время:

1. Делаю в Максе тестовые тайлы.
2. Делаю объединение буферов
3. Делаю чтоб делалась карта не из кубиков, а из смоделленных тайлов и не отдельными Entity, а а один буфер
4. Разберусь наконец с проецированием в камеру, что-то я там накосячил в прошлый раз
5. Делаю пик по полигонам
6. Делаю ещё второй меш попроще тупо из квадов, чтобы пикать уже по нему, к тому же по дороге пикать не надо будет вообще
7. По координатам пика делаю определение клетки куда ткнули
8. Отлично, теперь я могу мышкой выбирать нужную клетку и у меня террайн, который я потом могу сделать красивый!

moka 03.09.2013 03:35

Ответ: [проект] Tower Defense на WebGL
 
Кода да - мало..

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

Да и почему 15х15, ведь числа корявые :D 16х16 давай.

ABTOMAT 03.09.2013 04:25

Ответ: [проект] Tower Defense на WebGL
 
Да ладно гемор распаршивать? Это ж JSON!
И кто его захочет заюзать? Это как раз одна из тех вещей, которые делаются "на 1 раз".

ABTOMAT 05.09.2013 00:00

Ответ: [проект] Tower Defense на WebGL
 
Вложений: 1
Запилил объединение буферов (Задача 2).
Ничего выдающегося, да и показывать пока нечего.
Ну, покажу, пожалуй, пирамиду и сферу, с которыми я тренировался (синий объект - результат объединения буферов двух раздельных объектов), ведь тема должна содержать картинки, верно?

ABTOMAT 09.09.2013 01:45

Ответ: [проект] Tower Defense на WebGL
 
Вложений: 1
Делаю тайлы.
Решил разделить их на два яруса: нижний (земля гориз. -> земля верт.) и верхний (земля верт. -> один из трёх типов местности либо переход между ними).
Пока что мучаю нижний ярус, накопилась куча лапши, придётся это дело размотать прежде чем двигаться дальше.

ABTOMAT 09.09.2013 02:13

Ответ: [проект] Tower Defense на WebGL
 
Вложений: 1
Во! Сделал нижний ярус как полагается! Серые клетки соответствуют отсутствию в них меша. Просто пока второй ярус не готов, я их вставил, чтобы было понятно, что там что-то есть.

ABTOMAT 09.09.2013 04:27

Ответ: [проект] Tower Defense на WebGL
 
Вложений: 1
Убил последние косячки. Теперь можно браться за второй ярус тайлов.
Там будет посложнее, ибо там уже будут переходы не только между низом/верхом но и разными типами местности. Это значит, что будет нужно по 13 однородных тайлов для каждого типа местности и по 24 для каждой пары.
То есть
13 * 3
+
24 * 3
Итого ещё 111 тайлов надо сделать. Такие дела. Зато как в Варкравте 3 :-D и даже лучше.

Arton 09.09.2013 04:48

Ответ: [проект] Tower Defense на WebGL
 
Цитата:

Сообщение от ABTOMAT (Сообщение 266688)
Убил последние косячки. Теперь можно браться за второй ярус тайлов.
Там будет посложнее, ибо там уже будут переходы не только между низом/верхом но и разными типами местности. Это значит, что будет нужно по 13 однородных тайлов для каждого типа местности и по 24 для каждой пары.
То есть
13 * 3
+
24 * 3
Итого ещё 111 тайлов надо сделать. Такие дела. Зато как в Варкравте 3 :-D и даже лучше.

А что это у такое в левом, верхнем углу артефактное?

Nex 09.09.2013 04:57

Ответ: [проект] Tower Defense на WebGL
 
Это похоже на какой то своеобразный дебаг отображающий какой то цикл. :)

Phantom 09.09.2013 06:18

Ответ: [проект] Tower Defense на WebGL
 
Цитата:

Сообщение от ABTOMAT (Сообщение 266688)
Убил последние косячки. Теперь можно браться за второй ярус тайлов.
Там будет посложнее, ибо там уже будут переходы не только между низом/верхом но и разными типами местности. Это значит, что будет нужно по 13 однородных тайлов для каждого типа местности и по 24 для каждой пары.
То есть
13 * 3
+
24 * 3
Итого ещё 111 тайлов надо сделать. Такие дела. Зато как в Варкравте 3 :-D и даже лучше.

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

P.S. Оригинальную игру прошёл дважды: один раз как-то давно, а второй раз, когда увидел эту тему.

ABTOMAT 09.09.2013 23:03

Ответ: [проект] Tower Defense на WebGL
 
Вложений: 1
Цитата:

Сообщение от Arton (Сообщение 266689)
А что это у такое в левом, верхнем углу артефактное?

Это загруженные прямо из Макса тайлы, из которых генерится меш уровня.

Цитата:

Сообщение от Phantom (Сообщение 266691)
Я, конечно, в программировании три дэ, да и игр вообще, не особо разбираюсь и некоторые обороты речи твоих постов даже не совсем понимаю (всякие меш, дип, пик и т. п.), но разве нельзя применить какую-то технологию вроде этой: Смешивание текстур ландшафта, чтобы сократить количество пререндеренных тайлов и чтобы в будущем можно было добавлять новые виды ландшафта?

P.S. Оригинальную игру прошёл дважды: один раз как-то давно, а второй раз, когда увидел эту тему.

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

ABTOMAT 10.09.2013 03:15

Ответ: [проект] Tower Defense на WebGL
 
Вложений: 1
Сделал верхний ярус.
Тайлы криво сходятся, да и насрать — на то они и тестовые.
Сначала "промахнулся" с габаритами, но теперь понял, как ннада. По такому случаю можно сразу и "чистовые" сделать.
Завтра надо будет подумать над текстурой.

ABTOMAT 11.09.2013 21:15

Ответ: [проект] Tower Defense на WebGL
 
Вложений: 1
SUPER GLADKOU

Harter 11.09.2013 22:25

Ответ: [проект] Tower Defense на WebGL
 
Даёшь геймплей!

ABTOMAT 12.09.2013 01:33

Ответ: [проект] Tower Defense на WebGL
 
Вложений: 1
KAK W WARCRAFTE POCONI

MiXaeL 12.09.2013 13:44

Ответ: [проект] Tower Defense на WebGL
 
Такая же плиточка, ага)
Даже вовка он нее не избавилась, хотя чего уж проще казалось бы.

ABTOMAT 15.09.2013 20:44

Ответ: [проект] Tower Defense на WebGL
 
Вложений: 2
Тайлы в Максе и что из них получается.
Я принял гениальное решение заменить камень на осень. Таким образом получается различие только в текстуре и не надо городить сложные переходы в сетке (от такого количества тайлов я охренел бы когда стал бы это вырисовывать).
Нынешняя текстура — дерьмо наколеночное, но я считаю, что годная текса вкупе с различными вариантами тайлов и неровными бортиками сделает зашибись.

moka 15.09.2013 22:29

Ответ: [проект] Tower Defense на WebGL
 
А почему не генерить это дело процедурно? В разы более гибко получиться, и никакой зависимости от текстур и переходов - корректный шейдер и готово.

ABTOMAT 16.09.2013 03:40

Ответ: [проект] Tower Defense на WebGL
 
Вложений: 1
Сделал балду, по которой будет делаться пик для строительства башен. Ещё бы сам пик в движке сделать :-D Это моя следующая задача. Для простоты пока сделаю без получения 3D-координаты, а лишь номер треугольника, по которому уже буду опеределять клетку, куда ткнули. Если так, то такой "пик" вообще плёвое дело, а в будущем при надобности доделаю как полагается.

А да, ещё карта сама себя окружает аналогичными тайлами, чтобы не было пустоты по краям.

mauNgerS 16.09.2013 05:47

Ответ: [проект] Tower Defense на WebGL
 
Вложений: 1
Форма тайлов, как вариант.
Только это было для одного типа местности на одну карту.

ABTOMAT 16.09.2013 15:30

Ответ: [проект] Tower Defense на WebGL
 
Вложений: 1
Мини-апдейт: сделал [аналог блицовского] cameraProject

ABTOMAT 17.09.2013 02:47

Ответ: [проект] Tower Defense на WebGL
 
Вложений: 1
Делаю говнопик. Меня убедили таки делать его частным случаем. Вот тест разпроецирования из камеры:

ABTOMAT 18.09.2013 04:15

Ответ: [проект] Tower Defense на WebGL
 
Вложений: 1
Сделал камераПик на плоскость.
Как меня убедил мр_ф, (кстати, неоценимо меня проконсультировавший по данному вопросу), в таком частном случае пик по поликам не нужен.
Таким образом я буду получать координаты x,z и по ним простецки получать номер ячейки игрового поля. А больше мне ничего и не надо на данном этапе. Завтра у лошков военная кафедра, а у благородных военбилет-донов свободный день, так что я посвящу его продолжению работы над пиком игровой клетки и можно будет уже переходить к следующей задаче.

ABTOMAT 19.09.2013 01:27

Ответ: [проект] Tower Defense на WebGL
 
Вложений: 2
Джентльмены! Представляю вашему вниманию новейшие образцы моего творчества!

Полотна называются: "5-минут-текстура" и "5-минут-модель" соответственно.

Естественно в финальной версии башни будут нарисованы красиво

moka 19.09.2013 03:05

Ответ: [проект] Tower Defense на WebGL
 
Вертикальные рёбра - фи, делай их кривыми и широкими сверху.

Arton 19.09.2013 03:47

Ответ: [проект] Tower Defense на WebGL
 
Цитата:

Сообщение от moka (Сообщение 267328)
Вертикальные рёбра - фи, делай их кривыми и широкими сверху.

Цитата:

Сообщение от ABTOMAT (Сообщение 267324)
Естественно в финальной версии башни будут нарисованы красиво

...

ABTOMAT 22.09.2013 23:32

Ответ: [проект] Tower Defense на WebGL
 
Продолжаем 5-минут-творчество


moka 23.09.2013 00:18

Ответ: [проект] Tower Defense на WebGL
 
Снова - симетричность в таком стиле - только всё портит. Делай не симетрично..

ABTOMAT 23.09.2013 02:36

Ответ: [проект] Tower Defense на WebGL
 
Цитата:

Сообщение от moka (Сообщение 267515)
Снова - симетричность в таком стиле - только всё портит. Делай не симетрично..

Рикаминдую обратить внимание на спойлер в этом посте:
http://forum.boolean.name/showpost.p...4&postcount=29
Он точно так же относится и ко всему, что я буду моделлить тут до тех пор, пока я не напишу пост с тремя капсовыми словами: "БУТЫЛКА ТРОЛЛЕЙБУС БУБЛИК" (это будет кодовый сигнал о том, что я начал переделывать тестовые модели в релизные).

ABTOMAT 23.09.2013 07:40

Ответ: [проект] Tower Defense на WebGL
 
Вложений: 1
Так. надо ещё сделать чтоб за пределами поля тоже были деревья. И очертить границу вверенной игроку области.

moka 23.09.2013 18:20

Ответ: [проект] Tower Defense на WebGL
 
Деревья инстансингом рендеришь?

ABTOMAT 24.09.2013 00:14

Ответ: [проект] Tower Defense на WebGL
 
Нет, я не знаю, как на WebGL делается инстансинг. Потом как-нибудь выясню.

moka 24.09.2013 00:50

Ответ: [проект] Tower Defense на WebGL
 
Всё пихается в один вершинный и индексный буффера, далее заводиться много матриц и в вершинном также будет записан индекс матрицы, для того чтобы в шейдере применять соответствующую матрицу. Один проход рендера и все объекты (матрицы) можно двигать независимо.

ABTOMAT 24.09.2013 02:07

Ответ: [проект] Tower Defense на WebGL
 
Да знаю я принцип, мне бы инфу, более приближенную к практике.
Но дело не в этом. Я думаю, что прекрасно обойдусь и без инстансинга в конкретном данном случае. Ведь я поставил цель сделать игру как можно скорее и не делать то, что не необходимо (вместо инстансинга отлично работает объединение всех деревьев в один буфер).

moka 24.09.2013 03:02

Ответ: [проект] Tower Defense на WebGL
 
Ну это не "вместо" а на пути. Если всё в сингл сюрфейс зафигачить, двигать то ими нельзя будет, а вот если ещё им назначить свои матрицы и индекс матрицы в вершинном буфере - то будет инстансинг. Это как сингл-сюрфейс лвл2.

ABTOMAT 24.09.2013 05:58

Ответ: [проект] Tower Defense на WebGL
 
Цитата:

Сообщение от moka (Сообщение 267577)
Ну это не "вместо" а на пути. Если всё в сингл сюрфейс зафигачить, двигать то ими нельзя будет, а вот если ещё им назначить свои матрицы и индекс матрицы в вершинном буфере - то будет инстансинг. Это как сингл-сюрфейс лвл2.

Двигать не надо. Максимум что нужно - это удалять, но в этом случае я просто перестрою заново их сингл-сюрфейс, думаю, лишних 20 мсек в момент клика никто не заметит, а реалтайм-манипуляций мне не надо. Если у каждого будет своя матрица, это сомнительное удовольствие, ведь в JavaScript математика дорогая, а лишние полики в буфере почти что бесплатны. Собственно я из-за математики, а не из-за дипов решил всё объединить.

ABTOMAT 24.09.2013 07:16

Ответ: [проект] Tower Defense на WebGL
 
Вложений: 1
118 мсек готовится синглсурфейс для игровой области что вполне приемлемо.
1276 мсек делается синглсурф для области вокруг, что не совсем уж вкусно. Но уж что-что, а область за пределами-то игрового поля должна быть синглсурфейсом, а не какими-то инстансами. Думаю, её размер сильно завышен. Во-первых, камера будет висеть ниже и её можно будет двигать (а-ля Варкрафт 3), во-вторых, по горизонтали и вертикали она должна быть разной (потому что по горизонтали мы видим больше сцены, чем по вертикали), а у меня она одной переменной задана. Так, даже с теперешней камерой, хватило бы и 1-2 доп клетки по вертикали, но по горизонтали не хватает и 9, в результате по вертикали тоже 9 и, соответственно, много лишнего.

Nex 24.09.2013 07:37

Ответ: [проект] Tower Defense на WebGL
 
А что если по бокам карты сделать туман? Так например сделано в игре В тылу врага 2.

ABTOMAT 24.09.2013 07:56

Ответ: [проект] Tower Defense на WebGL
 
Цитата:

Сообщение от Nex (Сообщение 267585)
А что если по бокам карты сделать туман? Так например сделано в игре В тылу врага 2.

Была такая мысль (в WC3 сделано зачернение по бокам, но это смотрится голимо).
Что-то не могу найти скрин "В Тылу Врага 2" с туманом, может, там получше.

Nex 24.09.2013 08:04

Ответ: [проект] Tower Defense на WebGL
 
Цитата:

Сообщение от ABTOMAT (Сообщение 267586)
Что-то не могу найти скрин "В Тылу Врага 2" с туманом, может, там получше.

Левый верхний угол.



ABTOMAT 25.09.2013 01:32

Ответ: [проект] Tower Defense на WebGL
 
Вложений: 1
Огораживаем зону влияния игрока

ABTOMAT 26.09.2013 04:40

Ответ: [проект] Tower Defense на WebGL
 
Вложений: 1
Можно рубить деревья.
Можно ставить башни.
Можно не хватать золота и маны.

*То чувство, когда ты наконец кодишь геймплей, а не движки, загрузки, обработки, прочие приготовления

Arton 26.09.2013 06:20

Ответ: [проект] Tower Defense на WebGL
 
ABTOMAT, ты вообще спишь? :-)

mauNgerS 26.09.2013 08:34

Ответ: [проект] Tower Defense на WebGL
 
Он написал себе Ai двойника;) Работают посменно.

Arton 26.09.2013 08:39

Ответ: [проект] Tower Defense на WebGL
 
Цитата:

Сообщение от mauNgerS (Сообщение 267641)
Он написал себе Ai двойника;) Работают посменно.

Он купил китайского клона по дешёвке.

ABTOMAT 28.09.2013 06:47

Ответ: [проект] Tower Defense на WebGL
 
Вложений: 1
Итак, в игре появились враги и проджектайлы.
Представляю вашему вниманию скриншот.
Сейчас я объясню, что же на нём происходит.
Мы видим башни. Они нарисованы как башни. На них написано число — время до перезарядки. Оно всё время уменьшается до нуля, а при выстреле — сброс.
Далее мы видим врагов. Враги — это белые кубики. У них на пузе написана красная цифра — это их здоровье.
В них летят тоже белые кубики. Это проджектайлы. Их синяя надпись P - 'Projectile'. Они на данный момент наносят по 40 урона. Нетрудно подсчитать, что враг откидывает коньки от 3 попаданий.
За врага даётся золото — сообщение об этом мы видим по центру.
Кстати, было непросто поймать на скриншот, чтобы сразу всё в него попало.
В планах — путенах А*. А то сейчас враги безмозглы и бегут по прямой.
Что-то уже на игру похожее нарисовывается.

ABTOMAT 29.09.2013 03:17

Ответ: [проект] Tower Defense на WebGL
 
Вложений: 1
Дорабатываю редактор чтоб можно было ставить спавн крипов и точку куда они все идут.

ABTOMAT 30.09.2013 05:48

Ответ: [проект] Tower Defense на WebGL
 
Вложений: 1
Делаю путенах. Визуализировал пока кубиками. Он у меня любит обшарить все углы прежде чем попасть куда надо. Ну это не беда, сейчас добавлю оценку расстояния...

Nex 30.09.2013 05:54

Ответ: [проект] Tower Defense на WebGL
 
Волновой поиск пути будет наверно быстрее A*.
http://pmg.org.ru/ai/path.htm

ABTOMAT 30.09.2013 06:02

Ответ: [проект] Tower Defense на WebGL
 
Вложений: 1
Спасибо, но я как-то давно прочитал статью про А* и хотел реализовать, так что уж доделаю А*.
Да и дело не реалтаймовое, и 15х15 клеток всего, так что вопрос производительности тут ребром не стоит.
Теперь путенах в ту же точку ищет так. Уже лучше.

ABTOMAT 30.09.2013 06:06

Ответ: [проект] Tower Defense на WebGL
 
Вложений: 1
Ну в принципе к цели путь уже находит, так что считай свою задачу выполнил. Однако я его ещё доработаю.

ABTOMAT 30.09.2013 06:20

Ответ: [проект] Tower Defense на WebGL
 
Вложений: 1
А теперь ищем путь вот так.

ABTOMAT 30.09.2013 06:42

Ответ: [проект] Tower Defense на WebGL
 
Вложений: 1
Ну вот, путенах доделан окончательно. Теперь в игре можно просрать Родину и позорить погоны.

ABTOMAT 30.09.2013 07:36

Ответ: [проект] Tower Defense на WebGL
 
Вложений: 1
Другая карта. Всё пучком.

ABTOMAT 01.10.2013 05:19

Ответ: [проект] Tower Defense на WebGL
 
Вложений: 1
Да, это они.
Олсо, с опущенной камерой выглядит не так ущербно всё.
Экспортнуть анимацию, к сожалению, не вышло, так что риггил и анимировал сам. Аниматор из меня не очень, но ничего, когда пойду работать в Близзард, там меня всему научат :cool: А пока годится в качестве временного контента.

Nex 01.10.2013 07:35

Ответ: [проект] Tower Defense на WebGL
 
Надо еще ssao прикрутить и с краями у травы что то сделать ибо острые концы у травы глаз колят. :)

pax 01.10.2013 09:07

Ответ: [проект] Tower Defense на WebGL
 
Теперь стало заметно "не правильное освещение" забора

ABTOMAT 01.10.2013 10:22

Ответ: [проект] Tower Defense на WebGL
 
Цитата:

Сообщение от Nex (Сообщение 267927)
Надо еще ssao прикрутить и с краями у травы что то сделать ибо острые концы у травы глаз колят. :)

Насчёт ссао - вряд ли, я не разобрался с рендером в текстуру в webgl. Вернее не смог отрендерить ничего кроме степени двойка, ну а экран это ж не степень двойки. Может, плохо искал, но забил (я тогда с анимацией парился, и так было много чего делать). Так что отказался от постэффектов, решил пока их не трогать. Посмотрю по обстоятельствам: если после прилизки графики всё ещё будет не хватать ссао, то придётся сделать.

Цитата:

Сообщение от pax (Сообщение 267929)
Теперь стало заметно "не правильное освещение" забора

Освещение в движке в принципе неправильное. Вектор нормали даже не трансформируется. Освещение я не трогаю пока не настанет стадия вылизывания графики. Потом конечно исправлю.

Очень жаль что WebGL не умеет в alpha-to-coverage, в 2.0, правда, обещались добавить, но 2.0 будет ещё не скоро.

Mr_F_ 01.10.2013 12:34

Ответ: [проект] Tower Defense на WebGL
 
ссао для такой игры это мега оверкилл, зачем?
тут всё отлично запекабельно, и напомню что запеченное АО будет выглядеть гораздо лучше, чем ссао.

на башнях и деревьях запечь в тексу. под башнями и дереьями - поставить квад с альфанутой текстурой АО (и zwrite=false).
на кусках террейна в углах микролайтмапы.

чтобы сгладить края и не париться с сортировкой для бленда, есть двухпассовый метод (заюзано в флетаут2):
http://www.gamedev.net/topic/455616-...g-image-heavy/


Часовой пояс GMT +4, время: 01:15.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot