tgindex
Великоземье

Великоземье

Статистика
@velgameрусский

Открытый дневник Админа. Про разработку и просто так.

Последний пост
14 февр.
Последнее чтение
13 авг.
Постов за неделю
0
Всего постов
20
Тип
открытый
Язык
русский
В каталоге с
13 авг.
Подписчики
197
0 за 2 дн.
Сутки
0
0,00%
Неделя
 
Месяц
 
Просмотров на пост
406
20 постов
Вовлечённость
206,1%
к подписчикам
Постов в день
0,0
всего 20
Упоминаний
0
каналов
Охват размещения
оценка
1/24сутки в ленте
1/48двое суток
1/72трое суток

Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.

Посты

  • Сегодня всю ночь доделывал крафтовые материалы. Сперва составлял все списки. Потом вбивал в базу данных новые вещи и месторождения. Ну и правил старые вещи и месторождения. Ещё осталось вбить новые схемы крафта. Но это я пока делать не хочу. Я хочу доделать новый крафт предметов экипировки, который я делал ранее, но был вынужден прерваться на составление упорядоченной структуры материалов.

  • Для примера - черновик работы по придумыванию крафтовых материалов, сделано за 2 суток, в том числе с помощью ии (варианты от ии в конце).

  • Привет, народ! Давно ничего не писал. Итак, сочинение, как прошёл месяц. Сперва я две недели отдыхал и ничего не придумывал. Но следил за игрой и отловил последние три фатальные ошибки. С тех пор прошло ровно две недели и игра ни разу не упала. Конечно, это не гарантирует, что прям все ошибки найдены и исправлены, но стабильность работы присутствует. Потом я сел писать обнову и пишу её до сих пор. И буду писать ещё долго. Я же обещал сделать умения в феврале, а я слово свою держу, прошлый январь не даст соврать. Боюсь, этот февраль тоже может затянуться. Не на год, конечно, но всё же. Да и не буду я выкладывать в этот раз обнову по частям. Сразу будут новые умения и квесты. Просто потому что иначе это не имеет смысла. Всё будет хорошо.

  • Итак, остаётся вопрос: как правильно обращаться к элементам массива - по индексу или по ИД? Обращение по ИД всегда гарантирует, что мы получим именно тот элемент, который запрашивали (если он есть). Но требует проведения поиска этого элемента, что замедляет программу. Обращение по индексу не требует поиска элемента, но мы можем получить не то, чего ожидали. На самом деле, ответ прост и базируется исключительно на свойствах массива и дискретности обращений к нему. Например, если у нас изначально массив определён как неизменный, то обращаться надо по индексам. Так же, если мы можем быть уверены, что в рамках текущей рабочей сессии индекс элемента не может измениться - то опять же обращаться по индексу. Если же массив меняется, если мы даже в рамках одной рабочей сессии не можем гарантировать неизменность индекса элемента - то обращение должно идти только по его ИД. Пример из игры. Обращение к элементам списка «Кто здесь?» идёт по индексам этих элементов. То есть предполагается, что все видимые элементы не изменят свой индекс в процессе обращения к ним. На самом деле, индексы этих элементов действительно остаются неизменными на всё время от включения до выключения сервера, а при новом включении уже могут измениться, если кто-то был удалён. А вот подпись вещи идёт по ИД героя. Потому что она должна сохраняться правильной и при выключении сервера, а, как я написал выше, неизменность индексов гарантируется только для одной рабочей сессии.

  • Пока ничего не делаю, решил чего-нибудь написать на общую тему. Это можно не читать, это просто для общего развития. Просто чтобы знать, что это за ИД такое, которое я постоянно у вас прошу указывать. Давайте поговорим про такие интересные вещи, как ИНДЕКС и ИД. Рассмотрим это на примере одномерного массива элементов типа ИГРОК. Массив назовём ИГРОКИ. Для простоты тип ИГРОК пусть содержит только три поля: ИД, ИМЯ, АКТИВНОСТЬ. Придумаем от балды пять элементов (для примера этого должно быть достаточно). Итак: 0. 1 Вася 1 1. 2 Петя 1 2. 3 Маша 1 3. 4 Саша 1 4. 5 Борис Иванович 1 Итак, у нас есть массив из 5 элементов. Нумерация в массиве начинается с нуля. Номер элемента в массиве это и есть его индекс. В нашем примере мы взяли в качестве ИД целое положительное число больше нуля, и для каждого нового игрока мы это число увеличиваем. Поэтому ИД у Васи 1, а у Борис Ивановича ИД 5. Как мы работаем с массивом на программном уровне? Опуская низкоуровневые замуты, что мы работаем с определённой ячейкой памяти, для получения доступа к элементу массива надо обратиться к массиву по индексу этого элемента. Записывается это так: ИГРОКИ[ИНДЕКС]. Таким образом, зная индекс элемента, мы можем к нему обратиться. И это самый быстрый способ доступа к элементу. Зачем же тогда нужен ИД и что это вообще такое: ИД — это сокращение от ИДЕНТИФИКАТОР. Это некое уникальное значение, которое однозначно характеризует элемент. Уникальность ИД заключается в том, что ни у какого другого элемента этого массива не может быть такого же значение ИД. В нашем примере в качестве ИД выбрано числовое значение. Но это не принципиально. ИД может быть и текстовое. Например, сессия авторизации по своей сути — это строка из определённых символов, однозначно идентифицирующая подключение. По сути, это ИД подключения. Зная ИД, мы можем найти элемент. Правда, для этого нам сперва нужно выполнить поиск по массиву, сравнивая ИД каждого элемента с искомым. Таки образом, обращение к массиву по ИД гораздо дольше обращения по индексу, так как сперва нужно найти сам элемент, а потом обратиться к нему по найденному индексу. В нашем примере видно, что для каждого элемента ИД = ИНДЕКС + 1. Может возникнуть желание вместо полноценного поиска по ИД просто вычислять его из этой формулы. Но это ложный мираж, который исполняется лишь до той поры, пока мы не начали изменять массив. Допустим, мы решили удалить игрока с именем Петя. Тут есть два варианта изменения массива. Мы можем либо физически удалять элемент, смещая последующие элементы, либо просто помечать удалённый элемент неиспользуемым. В первом случае массив превратится в такой: 0. 1 Вася 1 1. 3 Маша 1 2. 4 Саша 1 3. 5 Борис Иванович 1 Во втором случае поставим Пете АКТИВНОСТЬ = 0, и массив станет таким: 0. 1 Вася 1 1. 2 Петя 0 2. 3 Маша 1 3. 4 Саша 1 4. 5 Борис Иванович 1 Теперь заведём нового игрока. В первом случае он добавится в конец массива, во втором - запишется на место Пети. Пусть нового игрока зовут Василиса. Первый вариант: 0. 1 Вася 1 1. 3 Маша 1 2. 4 Саша 1 3. 5 Борис Иванович 1 4. 6 Василиса 1 Второй вариант: 0. 1 Вася 1 1. 6 Василиса 1 2. 3 Маша 1 3. 4 Саша 1 4. 5 Борис Иванович 1 Как видим, по итогу в обоих вариантах изначальное соотношение ИД = ИНДЕКС + 1 поломалось, о чём я изначально и предупреждал. Далее, мы можем просто переставить элементы местами. Например, упорядочить массив по имени игрока. Т.к. в обоих вариантах набор элементов у нас одинаковый, то после упорядочивания по имени оба они так же будут выглядеть одинаково. Вот так: 0. 5 Борис Иванович 1 1. 6 Василиса 1 2. 1 Вася 1 3. 3 Маша 1 4. 4 Саша 1 В таком виде изначальное соотношение индексов и ид помахало ручкой и умчалось в даль. То есть его больше нет. Поменялись индексы элементов. Теперь, если бы мы обращались к массиву по индексу 4, желая получить Бориса Ивановича из изначального массива, мы бы получили только Сашу. Но ИД элемента-то осталось без изменений. Поэтому если бы мы обратились к массиву по ИД 5, то Борис Иванович по-прежнему был бы на месте.

  • Трям, народ. На этой неделе буду отдыхать. Потом я собирался делать квесты, но решил изменить планы. В первую очередь я доделаю систему умений в игре и кое-что по крафту. Сейчас мне кажется, что это не займёт много времени, т.к. большая часть уже сделана, но вы ж меня знаете, у меня никогда не получается предугадать срок. Единственное, чем я буду заниматься по игре на этой неделе - это исправление ошибок и какие-нибудь мелкие правки. Просто я последний раз делал недельный перерыв больше полугода назад, а после запуска теста у меня постоянное стрессовое состояние на тему "не успеваю". Даже не НГ сидел и правил ошибки, коих ушло в релиз довольно много. Да, кто должен получить награду мецената - найдитесь. Половина человек ещё не отписалась. Если кто кого знает - ткните их там.

  • Игра обновлена. Добавлены: 1. обмен вещами между героями 2. новый упрощённый интерфейс и функция "маршрут" 3. немного функций за дукаты так же символ косая черта во многих местах заменён на слово "из" для удобства чтения. для тех же целей дробный разделитель изменён с точки на запятую. Исправлены найденные ошибки в базе данных.

  • Привет, народ! Пора получить свои награды за ранее оказанную финансовую помощь. На данный момент награда, как я и писал ранее, будет постоянным бонусом на покупку дукатов (это так донатная валюта в игре называется). Со временем, если кто-то вдруг решится отказаться от такой награды в пользу чего-то ещё, я рассмотрю такую возможность. Мне в этом смысле всё равно, какую награду вам нарисовать, лишь бы вы не чувствовали себя обделёнными. Так, для получения награды мецената, отпишитесь в комментариях к этому посту, под каким именем вы записаны в закреплённых постах. И какой ид вашего текущего аккаунта в игре. Разумеется, каждое сообщение я перепроверю через комментарии к закреплённым постам, чтобы никто не смог утянуть себе чужую награду. Если кто-то сейчас пишет не с того аккаунта в телеграме, с которого было сообщение о задоначенной сумме, то тут сложность с идентификацией, но как-нибудь решим. Закреплённые посты со списками меценатов (если кто не умеет пользоваться телегой) вот: https://t.me/velgame/214 https://t.me/velgame/412

  • Трям. На тесте доработаны основной и упрощённый интерфейс (внешне там почти ничего не изменилось, но исправил недоделки, возникшие из-за разделения). Добавил на тест новые функции за дукаты. Можно зайти, потыкать. Учтите, есть великая путаница с тестом. Чтобы прям увидеть все изменения, надо зайти с ТЕСТОВОГО клиента на сервер ТЕСТ. А то вы либо заходите с основного клиента на тест, либо с тестового на основу и ничего не видите. Тестовый клиент здесь: https://velgame.ru/test/ Обратите внимание, если вы были в игре с основного клиента, а потом зашли с тестового с того же браузера, то вы остались на игровом сервере, просто теперь с тестового клиента. Надо выйти на страницу аккаунта и выбрать там нужный сервер. Мне осталось доделать немного по этой обнове. Может быть, завтра доделаю.

  • Трям. На тест добавил упрощённый текстовый интерфейс. Кнопка смены режима называется "сменить вид". Она последняя на джойстике в режиме карты и последняя ссылка на странице в режиме текстовом. Тестовый клиент находится здесь: https://velgame.ru/test/ (можно просто velgame.ru/test). Так же на тесте добавлена возможность покупки опыта за дукаты (дукаты на тесте раздаются просто так персонажем на центральной площади). Заходим, смотрим, говорим чо не так. Не забудьте обновить страницу (кэш) при входе на тест.

  • И о погоде. На тестовый сервер добавлена исправленная версия игры. Так же на тест добавлен функционал обмена вещами (торговля) между героями. Обратите внимание! Тестовый клиент теперь расположен по адресу velgame.ru/test Тестовый клиент отличается от обычного тем, что в нём уже добавлены новые функции. Так то на тестовый сервер вы можете заходить и с основного клиента, но в нём, разумеется, не будет новых функций. С тестового клиента можно заходить и на основной сервер, но уже непосредственно на сервере не будет новых функций для новых ссылок в клиенте. Надеюсь. понятно всё объяснил. Итак, тест тут: velgame.ru/test Важное добавление на тесте: добавил дублирование текстового лога на диалоговых окнах. Тут проблема была в том, что диалоговое окно (это то, что перекрывает экран, а не страница диалога с неписью!) перекрывает вывод текстового лога, из-за чего зрячие текстовые сообщения видят, а читалка их не читает. Попробуем пока так. Если не получится - придётся вообще отказаться от диалоговых окон (точнее, переделать их с тега dialog на искусственную конструкцию из div-ов). В общем, заходите на тест, проверяйте как там торговля и как там сообщения на диалоговых окнах.

  • Трям всем. Итак, игра отработала уже 11 суток. Поначалу было много фатальных ошибок, но постепенно удалось исправить многие из них. Тем не менее, заходят новые люди, делают что-то новое и вызывают ошибки там, где до этого никто не тыкал. Это нормальный рабочий процесс. Как я уже писал, на тесте играло всего пара человек, а потому отследить все ошибки было вообще не реально. На игровом сервере сейчас играет на порядок людей больше, а потому и ошибки находятся быстрее и больше. Так же за это время было много недовольства. что игра не соответствует ожиданиям. И это тоже нормально. Я несколько лет подробно писал тут, чем я занимаюсь и странно было бы ожидать, что в результате этих занятий я бы сделал что-то не то, о чём писал. Главная же для меня проблема в том, что игру ещё делать и делать. Я очень не хотел запускать её на текущей ранней стадии, но вы просили. Говорили, запускай, в процессе доделаешь. Я предупреждал, что в игре будет очень урезанный функционал. Что это будет "продукт игросодержащий". Получилось всё же лучше, чем я думал. На старте у нас уже функционала больше, чем было на старте первой или второй игры. Но, конечно, до итогового функционала обеих версий ещё ипашить и ипашить. В общем, играйте пока играется, а я буду делать пока делается.

  • Трям всем. Запущен первый игровой сервер. Конечно, до завершения работы над игрой ещё очень много времени, но на данный момент уже есть во что поиграть. Пока что игра не содержит социальной части - взаимодействий между игроками. Вы, конечно, можете сражаться и мешать друг другу, но пока нет ни кланов, ни нормального обмена вещами между героям. Так же я пока не сделал донатных функций. Но я займусь этим сразу, как отмечу Новый Год. ВЫДАЧА НАГРАД МЕЦЕНАТА БУДЕТ СДЕЛАНА СРАЗУ ЖЕ С ДОБАВЛЕНИЕМ ДОНАТНЫХ ФУНКЦИЙ В ИГРУ, но не раньше. Выдача будет происходить в порядке явки: вы здесь в комментах напишите свой итоговый логин, я начислю вам игровую валюту и награду. В январе я собираюсь сделать донатные функции, обмен вещами между игроками и пару десятков второстепенных квестов. Такие дела. ПС. если есть проблемы со входом в игру - обновите кэш. Да, я со временем сделаю обновления кэша максимально автоматическими, но пока так.

  • Трям всем. Итак, на вторые сутки сервер уже работает стабильно, новых падений пока не было. Правда, без нормальной рабочей нагрузки все ошибки всё равно найти не получится, а на тесте у нас бегает всего пара человек. Так что мы можем зафиксировать только самые частые ошибки. Ну что же. Ночью открою игровой сервер. Вход там же: velgame.ru под той же учёткой. На странице аккаунта есть селект с выбором сервера, сейчас там только тест, будет ещё и игра. Вот игру и выбирайте, когда появится. Так же я продолжаю настраивать почту, чтобы письма от admin@velgame.ru перестали приходить в спам. Возможно, со временем, я решу эту проблему. А пока что при проверке почты ищите письмо в папке спам своего почтового ящика.

  • Первый день нового сервера прошёл в постоянных падениях. Из-за этого вы не могли зайти, а герои и прогресс не сохранялся. К данному моменту удалось решить ряд проблем и уменьшить количество вылетов. Отладка продолжается.

  • Трям. Мне удалось запустить игру. Было сложно и много проблем, о которых я напишу может позже. Игру ещё надо отлаживать, т.к. сейчас она падает хз почему. Можете зайти, поронять, насобирать мне логов, чтобы было что анализировать. Игра доступна по адресу velgame.ru. Все, кто не мог зайти на старый адрес через http, на текущий смогут зайти. Если вы ранее заходили на velgame.ru - очистите кэш. Уже можно заранее зарегистрировать себе аккаунт (этот аккаунт будет и для основной игры). Привязать почту и сделать героя на тесте. Далее нас ждёт пара суток отладки.

  • Трям всем. На данный момент игра недоступна по ссылке velikozemie.ru Теперь вход будет на velgame.ru (потом опять будет отдельный тестовый вход на velikozemie.ru, но это потом) Работа по обновлению сервера почти завершена. При размещении итоговой программы на сервере возник ряд проблем. Основные проблемы я решил, осталась всего одна, но на данный момент я немного утомился и сделаю перерыв. Продолжу вечером. К ночи тестовый сервер уже должен будет запуститься. Ну или там всё хуже чем кажется. В общем, если сегодня получится порешать все проблемы, то ещё пару дней последим за происходящим и 30 декабря можно будет запустить игру.

  • Работа идёт, успехи есть. Непосредственно с работой tls сервера я разобрался (в общих чертах). осталось подружить его с кодом игры. а там есть много нюансов. но всё решаемо.

  • Трям всем. Я тут пытаюсь понять, как сделать tls соединение, чтобы можно было работать через https/wss. Пока что результат околонулевой. Вообще, для игры это самое шифрование нафиг не надо, но оно необходимо для подключения всей периферии (работа с почтой, платёжной системой, возможность залогиниться через всякие вк/гугл). Вообще, я хочу сделать эту поддержку именно в своей собственной программе. Но, если я уж совсем никак никогда не смогу, можно будет сменить архитектуру проекта, впендюрив между клиентом и программой прокси-сервер на более высокоуровневом языке программирования, где все эти замуты уже решены через свои библиотеки (например, на node.js). Правда, такой подход так же приведёт к необходимости перестройки всей системы отдачи данных от игры к проксе. Да и не хочу я никакую проксю. Так что пока сижу думаю, читаю литературу и ставлю опыты. Если ничего не смогу решить, первое время игра будет запущена без шифрования (как сейчас на тесте). А там чо-нибудь придумаю. Точную дату запуска я не скажу, но раз обещал запустить к НГ, то к НГ запущу. Даже если это будет 31 декабря. Ну а там посмотрим. Конечно, если не будет форс-мажоров.

  • Трям всем. Как и планировал, 10 декабря выложить обнову, выложил её сегодня. С объёмом работ опять не угадал, поэтому по итогу сделал намного меньше, чем хотел, а времени потратил больше. Как видите, я всё ещё укладываюсь в сроки, просто сроки приходится переносить. Теперь мне надо решить ряд глобальных технических задач. И когда я их решу, можно будет приоткрыть игру. Сколько конкретно времени это займёт, я не знаю. Ориентировочно - ещё неделя. ПС. Кто будет заходить на тест - обязательно обновите кэш браузера. Зачем каждый раз обновлять кэш браузера? В кэше хранится старый клиент игры, а после обновы его надо заменить на новый. На компе большинство браузеров обновляют кэш клавишами ctrl+f5 На мобильных браузерах ищите в настройках параметр "очистка данных" и очищайте что там есть.

Великоземье — tgindex