Четверг, 06 Октября 2022, 03:13

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 4 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Форум игроделов » Движки для разработки игр и сложные системы разработки » Движки для браузерных игр » Как создать такое игровое поле?
Как создать такое игровое поле?
SektoidДата: Вторник, 17 Января 2012, 21:56 | Сообщение # 61
почетный гость
Сейчас нет на сайте
Quote (Assasin)
Вот код

Спасибо, все работает. Выглядит оно лучше, и не надо обрезать под квадрат. Но походу формулы, допустим песфайдинг, намного усложнятся. Да и банально чтоб разместить стены дома 3х3 в первом варианте даже в голове это можно представить[[11,12,13][21,22,23][31,32,33]], а вот в этом варианте это нереально представить [[11,22,23][12,13,24][03,14,15]] wacko Хотя подозреваю, что надо по-другому это представлять в этом варианте, чем в прошлом)) Хотя если придется использовать гексы, то очень пригодится))

Quote (Assasin)
Нет, нет. Не параметры картинки должны такими быть, а сам тайл должен быть нарисован с высотой 25 и шириной 50. Возможно он где то на 1 пиксель кривой, поэтому получается смещение.

Блин точно))) Спасбо biggrin


Сообщение отредактировал Sektoid - Вторник, 17 Января 2012, 21:57
anton-garДата: Вторник, 17 Января 2012, 23:09 | Сообщение # 62
WEBmaster
Сейчас нет на сайте
Ну вопрос не совсем по теме, но делая похожее игровое поле в as3.0, появился вопрос - Можно ли переменную, созданную в классе, использовать в монтажном кадре (на главной сцене)-, ответ на который значительно облегчил бы ситуацию, пока приходится делать иначе, что очень не удобно.

SektoidДата: Воскресенье, 29 Января 2012, 21:33 | Сообщение # 63
почетный гость
Сейчас нет на сайте
В флеше не разбираюсь, сорри)

Добавлено (29.01.2012, 21:33)
---------------------------------------------
Хм, есть идея и два способа реализации, только не могу выбрать между ними.
Короче допустим есть поле 10х10. В центре вода, вокруг неё земля.
Но я хочу сделать чтоб был плавный переход с земли на воду. Тоесть вода по краям должна плавно переходить в землю. Понятно, что это придется еще рисовать дополнительные тайлы и в зависимости от соседних клеток их располагать.
Получиться что-то типа:
0 0 0 0 0 0 0 0 0 0
0 1 5 5 5 5 5 5 2 0
0 8 9 9 9 9 9 9 6 0
0 8 9 9 9 9 9 9 6 0
0 8 9 9 9 9 9 9 6 0
0 8 9 9 9 9 9 9 6 0
0 8 9 9 9 9 9 9 6 0
0 8 9 9 9 9 9 9 6 0
0 4 7 7 7 7 7 7 3 0
0 0 0 0 0 0 0 0 0 0

Так вот как лучше это реализовать: на сервере - чтоб сервак считал расположение тайлов и отправлял уже готовые цифры, или на клиенте - сервак будет отправлять только 0 и 1, а клиент уже будет просчитывать где заканчиваеться вода и начинаеться земля и менять там тайлы? При этом тайлы будут изменяться, хоть и не очень часто.


Сообщение отредактировал Sektoid - Воскресенье, 29 Января 2012, 21:46
AssasinДата: Воскресенье, 29 Января 2012, 22:16 | Сообщение # 64
web-coder
Сейчас нет на сайте
Это доп. нагрузка на сервер. У меня было реализовано так.
Есть 3 слоя:
- земля
- объекты над землей
- объекты над игроком
Я сохранял эти слои полной картинкой, итого получалось 3 картинки на каждый слой. Затем в зависимости от того какая карта подгружалась я отправляль путь к этим картинкам и они подгружались.
На все это требовалось около 1 секунды времени.
А если отправлять текстовый файл, что бы клиент отрисовал всю карту, требовалось секунд 8-12.
SektoidДата: Понедельник, 30 Января 2012, 00:37 | Сообщение # 65
почетный гость
Сейчас нет на сайте
Ну ок, а что делать если у тебя изменился всего 1 тайл на земле? Допустим земля изменилась на воду. Что, заново перерисовывать и отправлять? А если на экране хотя-бы карта 50х50, и 1% тайлов изменяеться в минуту, то это придется перерисовывать её полностью 25 раз в минуту?

А что за игра если не секрет и на чем?
Ато я юзаю node.js + socket.io и мне кажеться, что передать изменения каждого тайла быстрее, чем всю карту перерисовывать.
Quote (Assasin)
На все это требовалось около 1 секунды времени.
А если отправлять текстовый файл, что бы клиент отрисовал всю карту, требовалось секунд 8-12.

Ну тоесть чтоб полностью отрисовать карту?
Просто у меня же будет обновляться только то, что нужно.

ЗЫ: я уже приблизительно представил как это будет. Сервак при запуске считывает с базы данных нолики и единички, потом переделывает это все в
0 0 0 0 0 0 0 0 0 0
0 1 5 5 5 5 5 5 2 0
0 8 9 9 9 9 9 9 6 0
0 8 9 9 9 9 9 9 6 0
0 8 9 9 9 9 9 9 6 0
0 8 9 9 9 9 9 9 6 0
0 8 9 9 9 9 9 9 6 0
0 8 9 9 9 9 9 9 6 0
0 4 7 7 7 7 7 7 3 0
0 0 0 0 0 0 0 0 0 0

а потом уже запускаеться игра. Он раздает это все и при изменении тайла просто делает проверку на 4 ближних тайла и соответственно ставит нужную цифру и отправляет клиентам. А у них грузится при запуске игры сначало набор тайлов, а потом они рисуються в зависимости от того, какие цифры.
Это первый вариант.

А второй - это то, что на клиенте уже делаеться проверка на ближаешие 4 тайла и тогда выбираеться опять таки из набора тайлов. При этом легко запилить "лайт" версию игры для мобил, у которой не будет проверок, все тайлы воды будут одинаковые и земли одинаковые - это снизит нагрузку и трафик.

Блин не умею я красиво обьяснить wacko
AssasinДата: Понедельник, 30 Января 2012, 02:12 | Сообщение # 66
web-coder
Сейчас нет на сайте
Quote (Sektoid)
Ну ок, а что делать если у тебя изменился всего 1 тайл на земле? Допустим земля изменилась на воду. Что, заново перерисовывать и отправлять? А если на экране хотя-бы карта 50х50, и 1% тайлов изменяеться в минуту, то это придется перерисовывать её полностью 25 раз в минуту?

Как они изменяются? Ты хочешь во время игры изменять ландшафт карты?
Quote (Sektoid)
А что за игра если не секрет и на чем?
Ато я юзаю node.js + socket.io и мне кажеться, что передать изменения каждого тайла быстрее, чем всю карту перерисовывать.

Вот пример того что я делал. Тоже node.js + socket.io. Локации через редактор делал, сохранял картинку и потом отдавал её клиенту для отрисовки.
http://www.youtube.com/watch?v=ZEFjZ1UZ_NI
http://www.youtube.com/watch?v=SuSq2gmzxfs
Quote (Sektoid)
Ну тоесть чтоб полностью отрисовать карту?

Не карту, а локацию, сама карта поделена на локации. На видео как раз отображается локация.
SektoidДата: Понедельник, 30 Января 2012, 03:45 | Сообщение # 67
почетный гость
Сейчас нет на сайте
Quote (Assasin)
Ты хочешь во время игры изменять ландшафт карты?

Да. Например игрок может прокопать вокруг дома ручей. Круто же cool
AssasinДата: Понедельник, 30 Января 2012, 10:50 | Сообщение # 68
web-coder
Сейчас нет на сайте
Ну раз так, то остается только так как ты описал. Попробуй, может как то удастся оптимизировать загрузку локации.
SektoidДата: Воскресенье, 12 Февраля 2012, 22:11 | Сообщение # 69
почетный гость
Сейчас нет на сайте
smile

Добавлено (12.02.2012, 22:11)
---------------------------------------------
тут был вопрос, который я удалил, но на него уже ответили, а писать его снова впадла blink


Сообщение отредактировал Sektoid - Воскресенье, 12 Февраля 2012, 22:42
anton-garДата: Воскресенье, 12 Февраля 2012, 22:33 | Сообщение # 70
WEBmaster
Сейчас нет на сайте
Dever, Open Server, Appserv, Nginx.

SektoidДата: Воскресенье, 12 Февраля 2012, 22:37 | Сообщение # 71
почетный гость
Сейчас нет на сайте
Спасибо biggrin
anton-garДата: Воскресенье, 12 Февраля 2012, 22:38 | Сообщение # 72
WEBmaster
Сейчас нет на сайте
Quote (Sektoid)
Спасибо


Не за что!


SektoidДата: Пятница, 02 Марта 2012, 02:28 | Сообщение # 73
почетный гость
Сейчас нет на сайте
Такой вопрос: для игры обязательно юзать что-то типа Nginx? Или если я не буду использовать php, а только html, то может хватить expressjs ??? Я пока-что не особо вникал ни в nginx ни в expressjs, и думаю что из них начать осваивать и стоит ли. Кстати буду использовать mongodb. Просто сейчас у меня хоть и рабочая игра, но в ней творится хаос - php(apache), mysql, node+socket.io. И я решил навести порядок smile

Добавлено (02.03.2012, 02:28)
---------------------------------------------
А как лучше сделать?
1. Сервак запускаеться, считывает всю инфу с базы данных и работает с инфой. Базу данных обновляет раз в пол часа. И при выключении.
2. Сервак запускаеться и обращаеться в базу данных только по запросам. Изменяет каждое значение сразу в бд.

Первый вариант походу должен быть шустрее, но при увеличении значений будет жрать все больше оперативы. Я прав?

Сообщение отредактировал Sektoid - Пятница, 02 Марта 2012, 02:25
AssasinДата: Пятница, 02 Марта 2012, 15:31 | Сообщение # 74
web-coder
Сейчас нет на сайте
node.js вполне может хранить данные у себя в переменных, даже очень большой объем данных. Так что лучше первый вариант.
SektoidДата: Четверг, 05 Апреля 2012, 01:43 | Сообщение # 75
почетный гость
Сейчас нет на сайте
Ладно всеткаи спрошу.
Зачем шифровать пароли во всякие там мд5 именно на ноде?
Почитал много инфы об этом шифровании, о соли и т.д.
Но сделал вывод - если есть доступ к скриптам сервера, то толку нету никакого от шифрования, потому что сразу будет виден алгоритм шифрования, а если нету, то и к бд не подключиться.

Добавлено (05.04.2012, 01:43)
---------------------------------------------
Еще такой вопрос
вот у меня есть фильтр на никнеймы
/^[А-Яа-яЁёa-zA-Z0-9]+$/
а какой лучше фильтр на пароли ставить?
Ну тоесть с одной стороны чтоб можно было юзать спец-знаки, а с другой чтоб небыло каких-то слишком коварных знаков.

Сообщение отредактировал Sektoid - Среда, 04 Апреля 2012, 21:57
AssasinДата: Четверг, 05 Апреля 2012, 11:15 | Сообщение # 76
web-coder
Сейчас нет на сайте
/^[a-zA-Z0-9]+$/
Как вариант и не надо со знаками мучаться smile
SektoidДата: Четверг, 05 Апреля 2012, 14:21 | Сообщение # 77
почетный гость
Сейчас нет на сайте
Ну это да))
А как к этому приделать проверку на то, чтоб первый символ не был цифрой?
AssasinДата: Четверг, 05 Апреля 2012, 17:55 | Сообщение # 78
web-coder
Сейчас нет на сайте
/^([a-zA-Z]+)([a-zA-Z0-9]+)$/
Не проверял, но вроде правильно.
SektoidДата: Понедельник, 09 Апреля 2012, 15:55 | Сообщение # 79
почетный гость
Сейчас нет на сайте
Спасибо, работает.

Добавлено (09.04.2012, 01:14)
---------------------------------------------
Еще слышал, что можно делать 3д модель и с неё рендерить спрайты для изометрических игр.
Где об этом можно почитать хотябы?
Ато я даже хз что искать))

Добавлено (09.04.2012, 15:55)
---------------------------------------------
И что вообще можете посоветовать по поводу отрисовки спрайтов по-разному одетых персонажей в javascript?

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

Либо персонаж будет отрисовываться с 5 разных частей, которые будут двигаться как-бы синхронно. Но тогда получаеться, что количество движущихся обьектов на экране увеличиваеться в 5 раз, а производительность падает.

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


Сообщение отредактировал Sektoid - Понедельник, 09 Апреля 2012, 15:57
AssasinДата: Вторник, 10 Апреля 2012, 18:29 | Сообщение # 80
web-coder
Сейчас нет на сайте
Самому скоро с такой траблой мучаться)) Думаю делать паками спрайтов. И подгружать их во время входа в игру.
Форум игроделов » Движки для разработки игр и сложные системы разработки » Движки для браузерных игр » Как создать такое игровое поле?
  • Страница 4 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2022 Рейтинг