Как создать такое игровое поле?
| |
Sektoid | Дата: Вторник, 17 Января 2012, 21:56 | Сообщение # 61 |
почетный гость
Сейчас нет на сайте
| Спасибо, все работает. Выглядит оно лучше, и не надо обрезать под квадрат. Но походу формулы, допустим песфайдинг, намного усложнятся. Да и банально чтоб разместить стены дома 3х3 в первом варианте даже в голове это можно представить[[11,12,13][21,22,23][31,32,33]], а вот в этом варианте это нереально представить [[11,22,23][12,13,24][03,14,15]] Хотя подозреваю, что надо по-другому это представлять в этом варианте, чем в прошлом)) Хотя если придется использовать гексы, то очень пригодится))
Quote (Assasin) Нет, нет. Не параметры картинки должны такими быть, а сам тайл должен быть нарисован с высотой 25 и шириной 50. Возможно он где то на 1 пиксель кривой, поэтому получается смещение. Блин точно))) Спасбо
Сообщение отредактировал Sektoid - Вторник, 17 Января 2012, 21:57 |
|
| | |
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 тайла и тогда выбираеться опять таки из набора тайлов. При этом легко запилить "лайт" версию игры для мобил, у которой не будет проверок, все тайлы воды будут одинаковые и земли одинаковые - это снизит нагрузку и трафик.
Блин не умею я красиво обьяснить
|
|
| |
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) Ты хочешь во время игры изменять ландшафт карты? Да. Например игрок может прокопать вокруг дома ручей. Круто же
|
|
| |
Assasin | Дата: Понедельник, 30 Января 2012, 10:50 | Сообщение # 68 |
web-coder
Сейчас нет на сайте
| Ну раз так, то остается только так как ты описал. Попробуй, может как то удастся оптимизировать загрузку локации.
|
|
| |
Sektoid | Дата: Воскресенье, 12 Февраля 2012, 22:11 | Сообщение # 69 |
почетный гость
Сейчас нет на сайте
|
Добавлено (12.02.2012, 22:11) --------------------------------------------- тут был вопрос, который я удалил, но на него уже ответили, а писать его снова впадла
Сообщение отредактировал Sektoid - Воскресенье, 12 Февраля 2012, 22:42 |
|
| | |
Sektoid | Дата: Воскресенье, 12 Февраля 2012, 22:37 | Сообщение # 71 |
почетный гость
Сейчас нет на сайте
| Спасибо
|
|
| | |
Sektoid | Дата: Пятница, 02 Марта 2012, 02:28 | Сообщение # 73 |
почетный гость
Сейчас нет на сайте
| Такой вопрос: для игры обязательно юзать что-то типа Nginx? Или если я не буду использовать php, а только html, то может хватить expressjs ??? Я пока-что не особо вникал ни в nginx ни в expressjs, и думаю что из них начать осваивать и стоит ли. Кстати буду использовать mongodb. Просто сейчас у меня хоть и рабочая игра, но в ней творится хаос - php(apache), mysql, node+socket.io. И я решил навести порядок Добавлено (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]+$/ Как вариант и не надо со знаками мучаться
|
|
| |
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
Сейчас нет на сайте
| Самому скоро с такой траблой мучаться)) Думаю делать паками спрайтов. И подгружать их во время входа в игру.
|
|
| |
|