|
Результаты поиска
| |
| maker-rus | Дата: Понедельник, 03 Октября 2016, 22:05 | Сообщение # 101 | Тема: Как сделать такой параметр, как "редкость" у предмета? |
Гений
Сейчас нет на сайте
| Цитата Lertmind (  ) Для меня так удобней, а генерировать числа от 0 до 99999 чтобы задать вероятность 0.125% считаю нелепым, хотя и возможным. Не знаю про какие проблемы ты намекаешь. Почти любой костыль, в php выходит боком в производительность, а так же размер потребляемой памяти, в идеале лучше использовать целые расчеты, чем использовать математику с дробными при каждом запросе, что приведет к несоизмеримому сжиранию производительности, погугли мат.тесты на php, в среднем при выполнении 100 мат.операций (косинус,синус,тангенс и тд, кроме rand()) (512 мб / 1 ядро), скорость отдачи страницы доходит до 3 секунд, что при многопользовательской игре с онлайном например, в 1000 игроков вырастет в 5-6 раз. Тут я понятно объяснил?
Цитата * Во-первых, редкость намекает, что вероятность для каждой категории одинаковая. В "4. Случайно выбираешь предмет с выбранной редкостью." я не указал, но предполагается, что будет применён фильтр или вычисления характеристик предмета, чтобы игрок 5-ого уровня не получил предмет для 40-ого. Нет. В хороших играх, коэффициент выпадания для каждой вещи уникален, но никак не обобщен. Подсказывать примеры я надеюсь не надо...
Цитата Во-вторых, как я написал, это один из вариантов и конечно он зависит от механики, так что нет смысла добавлять мысленно к моему алгоритму функционал, который сам же решаешь неэффективным методом, и жаловаться на это. Не говоря о том, что сам автор ещё не понимает как у него будет организована система предметов или не счёл важным нас посвятить в неё. Решаю не эффективным способом? Бред. В данном случае, я привел самое элементарное, что будет делать автор в данной ситуации. А по факту, при любом подходе, здесь не избежать дополнительных "пустых" запросов, потому что ваша архитектура заведомо провальная, для браузерки. Дергать эти данные из хэш-таблиц итд != делать доп. "пустые" запросы в рбд, которая и без того будет страдать.
Цитата Lertmind (  ) В-третьих, если ты разбираешься в высоконагруженных приложениях, то почему не предложил нормальный вариант? В логике твоего совета мы знаем какой предмет надо выкинуть, но не знаем частоту выпадения и обращаемся за ней в базу. Может ты предполагал, что будет выбор по всем предметам базы на основе их вероятностей, но твой код и слова на это не указывают. Нет, я предполагал, что выбор будет по вероятностям и редкости предмета и все это будет, в одном запросе. То есть получаем процент удачи получения редкой вещи, например от 1 до 10 включительно. Если удача больше 5, то получаем редкую шмотку, если больше 8, то 2 редкие шмотки, если 10, то целых три шмотки. Дальше получаем коэффициент выпадения. Определяем список вещей, которые можно получить персонажу и только потом отправляем запрос в базу, который будет содержать следующее: нам нужны перечисленные шмотки + в зависимости от удачи еще несколько, редких, у которых коэффициент +-1 = нашему, естественно все это ищется по индексам, далее, другим запросом все наши вещички отправляем в базу. В итоге база обходится легким испугом. А мы сильно не захламляем ее бесполезными запросами и бесполезно не лочим строки.
Сообщение отредактировал maker-rus - Понедельник, 03 Октября 2016, 22:06 |
|
|
| |
| maker-rus | Дата: Четверг, 29 Сентября 2016, 12:22 | Сообщение # 102 | Тема: Как сделать такой параметр, как "редкость" у предмета? |
Гений
Сейчас нет на сайте
| Цитата Lertmind (  ) Твой код равносилен: Нет, не равносилен, логика абсолютно разная. И нужда, как раз была обусловлена необходимостью из за логики вычеслений.
Цитата Lertmind (  ) Замечу, что лучше хранить во float от 0 до 1, тогда можно легко задавать, допустим, 0.125%: Код if (random() < 0.00125) { "ok" } По какой-то нелепости в php нет случайного числа для промежутка [0, 1) Замечайте после того, как вникните в особенности языка. А не сначала напишу, а потом пойму что зря написал, костыли нужны только там, где они выражены необходимостью, в данном случае можно и с целыми числами работать и не прибигать к тому, что потом вылезит боком.
Цитата Lertmind (  ) Для каждой редкости свои вероятности, значит выбираешь редкость предмета с помощью алгоритма выбора предметов с разными вероятностями. А если он захочет на конкретный предмет выставить определнный процент выпадания? Делать еще одно поле, городить запросы в базу, в пустую, что в совокупности, без понимания построения рбд для высоконагруженных систем, приведет к беде и отдаче ответа пользователю через 30-40 секунд. Все ваши примеры - для стендалона, но никак не для браузерки.
|
|
|
| |
| maker-rus | Дата: Среда, 28 Сентября 2016, 23:00 | Сообщение # 103 | Тема: Как сделать такой параметр, как "редкость" у предмета? |
Гений
Сейчас нет на сайте
| Цитата DeadDay (  ) Но да, это должно быть на php. При чем количество еденицы вероятности будет браться из БД. Так в чем проблема-то? Добавь поле с названием, например "rare" в таблицу предметов, в это поле записывает процент, например от 1 до 100 (это будут проценты). А дальше все просто, достаешь значение из этого поля и считаешь, следующим образом:
Код $db_rareItem = 15; #Допустим это значение мы взяли из поля "rare" в таблице предметов $chance = rand(1, 100) + $db_rareItem; if ($chance >= 100){ echo "Предмет получен!"; }
|
|
|
| |
| maker-rus | Дата: Суббота, 24 Сентября 2016, 13:57 | Сообщение # 104 | Тема: Авторизация, подобно Clash of Clans? Как она работает? |
Гений
Сейчас нет на сайте
| robertono, генерируешь уникальный индентификатор сессии, присваиваешь его игроку, записываешь в базу и работаешь с ним так же, как и с парой логин/пароль. Я думал, это очевидно, не понимаю, какие сложности тут могут возникнуть
Сообщение отредактировал maker-rus - Суббота, 24 Сентября 2016, 13:58 |
|
|
| |
| maker-rus | Дата: Пятница, 23 Сентября 2016, 18:41 | Сообщение # 105 | Тема: Продаю новую игру для социальных сетей FB, ОК, ВК |
Гений
Сейчас нет на сайте
| На всякий случай предупрежу пользователей, по ссылке, которую предоставил ТС лучше не переходить, потому что Касперский ругается на эту страницу и блокирует опасный элемент.
|
|
|
| |
| maker-rus | Дата: Среда, 10 Февраля 2016, 23:34 | Сообщение # 106 | Тема: Помощь с обновлением. |
Гений
Сейчас нет на сайте
| Цитата Step (  ) и даже удалял remove() и сразу создавал обратно append, на моё удивление даже такие костыльные методы не сработали. Прошу подскажите как исправить данную проблему. То, что вы делаете - визуальное изменение, из за того, что вы обновили DOM дерево, ничего не измениться. Нужно обновлять значения, загляните в JQUERY API, там написано как этой функцией пользоваться правильно. В общих чертах, что вам надо сделать: 1. Получить данные из callback. 2. Сохранить их в переменную, например в переменную A. 3. Вывести её (переменную А) в ваш блок. 4. Остановить счетчик. 5. Остановить функцию обновления блока. 6. Пользователь нажимает на кнопку. 7. Обнуляем переменную A. И повторяем все с пункта 1. ^_^
Сообщение отредактировал maker-rus - Среда, 10 Февраля 2016, 23:34 |
|
|
| |
| maker-rus | Дата: Четверг, 12 Ноября 2015, 14:51 | Сообщение # 107 | Тема: Ищу программиста |
Гений
Сейчас нет на сайте
| Цитата XyRmaT (  ) Требуется программист для написания браузерной игры с нуля! Языки программирования HTML CSS PHP JS MySQL Python or Ruby Если владеете достаточно хорошо одним из языков, пишите вк vk.com/xyrmat P.S. оплата естесственно) Написал, хочет покемонов, назвался администратором одной изподобных игр, предлагает от 500 до 1000 рублей за день, в зависимости от сложности кода, которую он определяет сам по своим методам, попросил его предоставить скрин с сумой на оплату, хотя бы за день, слился. Скорее всего кидала.
|
|
|
| |
| maker-rus | Дата: Четверг, 12 Ноября 2015, 14:39 | Сообщение # 108 | Тема: Помогите пожалуйста исправить скрипт |
Гений
Сейчас нет на сайте
| Цитата Alfe (  ) Может так надо (Screen.widht/2)); ?
Все же потом другая var идет.
Цитата Vladislav77Z (  ) // Need to put .x if (touch.position.x > (Screen.width/2)) Там комментарий, который действует на всю строку. И да, автор не полный код запостил, поэтому и помочь ему нечем, потому что ошибка в другой части кода.
|
|
|
| |
| maker-rus | Дата: Четверг, 12 Ноября 2015, 14:27 | Сообщение # 109 | Тема: Общение через микрофон |
Гений
Сейчас нет на сайте
| Цитата YellowAfterlife (  ) Запись идет не на диск, а в буфер (от того одним из параметров события и является buffer_id). А знаешь, что можно делать с буфером? Верно, передавать по сети (или копировать частями в другие буферы). Даже, если бы шла запись на диск, никто бы не мешал выходящий файл постепенно считывать и пересылать. Все верно, просто, не верно понял смысл предложения, быстро читая упустил из виду выделенную жирным часть предложения.
Цитата After that you can do what you want with the custom buffer - you could play it using the dedicated buffer audio functions, you could process it and send it over the network, you could save it to disk... ^_^
Сообщение отредактировал maker-rus - Четверг, 12 Ноября 2015, 14:30 |
|
|
| |
| maker-rus | Дата: Четверг, 12 Ноября 2015, 14:16 | Сообщение # 110 | Тема: Общение через микрофон |
Гений
Сейчас нет на сайте
| Цитата YellowAfterlife (  ) Не совсем точное утверждение - в GameMaker: Studio были добавлены функции и события для записи звука. Конечно, это всё равно подразумевает кучу работы для стабилизации качества передаваемого звука в случае нестабильной работы сети, но всё же. На сколько я понимаю запись звука на диск(если верить документации) и реализация канала для передачи аудио-сигнала всем игрокам - разные вещи. На сколько я понял из документации, там написано про потоковую ЗАПИСЬ звука на локальный диск, но не слова о ее передаче через канал связи. Поэтому свое утверждение считаю более чем точным. Если я где-то не прав, поправьте.
|
|
|
| |
| maker-rus | Дата: Четверг, 12 Ноября 2015, 13:53 | Сообщение # 111 | Тема: Общение через микрофон |
Гений
Сейчас нет на сайте
| Цитата Savok32 (  ) Добрый день, подскажите можно ли реализовать в игре общение, между игроками, по микрофону? Стандартными средствами - нет. Только написав свою библиотеку (расширение) или найти готовую.
|
|
|
| |
| maker-rus | Дата: Пятница, 06 Ноября 2015, 23:50 | Сообщение # 112 | Тема: NetWars Engine SDK 0.44b |
Гений
Сейчас нет на сайте
| Посмотрел я код его "NetWars.h", на сколько я понял, там переопределенные методы стандартного DX API + эта гадость лезет в реестр!!! ;)
ps. 70% его примеров даже не работоспособны. Запускал из папки Bin. Win8. Тупо висит в фоне процесс и жестко нагружает жесткий диск.
Сообщение отредактировал maker-rus - Суббота, 07 Ноября 2015, 00:03 |
|
|
| |
| maker-rus | Дата: Воскресенье, 25 Октября 2015, 00:45 | Сообщение # 113 | Тема: Сокет-сервер для realtime-игры |
Гений
Сейчас нет на сайте
| Цитата KamiRonin (  ) задержки какие? передачи пакетов или движения перса в игре управляемого по сети другим игроком? Я так понял он имеет ввиду, высокий ping :)
Цитата KamiRonin (  ) как часто отправлять данные и в каком формате? 1. На каждое действие, которое имеет ты хочешь сохранить или отобразить на другом клиенте. 2. Ключ - значение (шифрованное).
|
|
|
| |
| maker-rus | Дата: Суббота, 10 Октября 2015, 22:19 | Сообщение # 114 | Тема: Вопрос решен. |
Гений
Сейчас нет на сайте
| Цитата Spyker (  ) Здравствуйте, форумчане. Мне нужна ваша помощь. Что необходимо для создания подобной игры (http://cars.play.tegos.ru/)? Я имею ввиду такие пункты (помимо головы и прямых рук) : 1. Какой движок лучше всего подходит? (языки готов выучить, но желательно лучше без них) 2. Движки для офф-лайн игр не подходят, т.к. игра должна лежать именно на сервере.
1. Готовых движков - нет! 2. Языки? PHP + JS (если для пк или современных телефонов/смартфонов) + HTML5 + CSS/LESS/SASS + SQL. Это все надо выучить, что бы у тебя получилось хоть что-то, что можно показать людям.
Цитата Spyker (  ) По этим языкам есть вопросы: 1. Какой проще всего изучать? 2. Какой из них безопаснее всего? (в плане хранения данных пользователя. Про протокол HTTPS слышал, но он дорогущий)
1. Изучать надо весь список! 2. Безопасность твоей игры будет зависеть только от тебя, а не от языков скриптования.
Цитата Spyker (  ) Хотел сделать авторизацию через ВКонтакте. В этом случае, я понимаю, регистрироватся пользователям не требуется, а следовательно и хранить входные данные на сервере не нужно будет. Нужно, просто от вк ты получишь часть данных, по которым ты сможешь определять игрока, все данные будут хранится в твоей базе.
Цитата Spyker (  ) По-поводу невозможности копирования кола сайта: тоже хотелось бы сделать хоть мизерную защиту. Отчасти и потому, что в игре будут полезны и скрипты и боты, которые смогут тыкать на кнопки вместо игроков. От автокликеров нет защиты из браузера. Цитата Spyker (  ) А теперь, вопрос на засыпку: какой движок оптимален для таких задач? Смотрел Phaser, Uranium и понял, что без знания их языка не обойтись. Я многого хочу, но нет ли движка, на подобии Game Maker, дабы не химичить самому со всеми этими операторами? Только опять же, с возможностью загрузки на сервер. Движка подходящего под твои требования - нет, есть исходные коды других игр, можешь воспользоваться.
|
|
|
| |
| maker-rus | Дата: Пятница, 31 Июля 2015, 00:51 | Сообщение # 115 | Тема: Устаревший MySQL |
Гений
Сейчас нет на сайте
| Цитата Kobe24 (  ) Столкнулся с такой проблемой при создании игры. Сегодня PHP выше версии 5.6 уже не использует такую функцию как mysql_connect. Он то её использует, но при каждом использовании он выдаёт уведомление о том, что ваш mysql устарел и вам желательно использовать Mysqli. Но проблема в том, что сменить mysql на mysqli на хостинге я не могу, на Денвере то еще можно. Как можно разрешить такую проблему? Не говоря уже о банальной регистрации, будет выскакивать уведомление, а что говорить о дальнейшей игре, там ведь кругом связь с БД.
Заранее спасибо) Вариант 1 - Не использовать PHP 5.6 Вариант 2 - Отключить все уведомления о устаревших функциях Вариант 3 - Использовать хостинг поддерживающий новые версии MySQL (он же MySQLi)
|
|
|
| |
| maker-rus | Дата: Пятница, 03 Июля 2015, 20:35 | Сообщение # 116 | Тема: Скрип инвлид |
Гений
Сейчас нет на сайте
| Цитата Rassta888 (  ) мобильный вид у меня в игре. надо как видно на картинке, одну фигуру с разрешением х,у (Ios) и рандомные удары. все слепить в одно целое То есть тебе нужен уже готовый вариант, или подсказки, если готовый вариант, то тебе только на фриланс, если подсказать, то: 1. в php есть функция rand(минимальное число, максимальное), с помощью которое ты сможешь симулировать бой. То есть каждая цифра - id удара, вот и все. Бои лучше в базу не записывать, слишком емко, хотя тут как знаешь. 2. Выводить картинки с помощью html. Где ссылка на изображение вытаскивается из базы. 3. Комната - отдельный скрипт, в котором все данные вытаскиваются из базы данных!
|
|
|
| |
| maker-rus | Дата: Воскресенье, 31 Мая 2015, 00:12 | Сообщение # 117 | Тема: API для "двухстраничного" интерфейса |
Гений
Сейчас нет на сайте
| Цитата Gudleifr (  ) Как окно CUA не знает, что будет в нем нарисовано программой. Хорошо, мне стало понятно, что вы хотите изобрести собственный велосипед (операционную систему со своими плюшками и кабаками). В которой хотите реализовать оконный интерфейс, в виде двух страниц. Цитата Gudleifr (  ) Дык, мы на момент создания "панелек" знаем только, разрешение экрана, что панелек будет две (и, возможно, они будут снабжены парой кнопок "перелистывания"). Что на них будет нарисовано, мы не знаем, это выясниться только при загрузке на панельку содержимого выбранной страницы. В процентном соотношении к экрану рисовать панельки, на которые выводить все доступные кнопки, меняя наборы, с помощью тех самых кнопок "перелистывания". Само окно будет тех размеров, которые задаст программист в программе (будет фиксированным), либо на весь экран. Цитата Gudleifr (  ) Т.е. страница "слушает" только саму себя. Более того, прослушать соседнюю физически невозможно, т.к. событие случившееся "там" полностью уничтожает информационный объект "здесь". Сама страница никого "не слушает". Подразумевается, что в программу встраивается обязательный глобальный объект (как функция main()), который получает состояния всех объектов в окне или конкретно только страниц. Либо реализация на уровне самой ОС, что есть объекты за которыми надо следить в программе, это две страницы, имеющие id, в зависимости от информации на них. И на уровне ОС реализовать базу ID этих самых страниц, то есть строго определенные значения (ID 442 - это вывод ошибки, ID777 - успешное выполнение задачи, 666 - Баг который нужно отправить в службу поддержки 123 - передача информации с одной страницы, на другую и т.д). Получать значения, работать с ними. Каждому окну присваивать так же свой ID, что бы все окна были изолированы друг от друга.
Сообщение отредактировал maker-rus - Воскресенье, 31 Мая 2015, 00:15 |
|
|
| |
| maker-rus | Дата: Пятница, 29 Мая 2015, 22:46 | Сообщение # 118 | Тема: API для "двухстраничного" интерфейса |
Гений
Сейчас нет на сайте
| Цитата Gudleifr (  ) Никоим образом. Это свойства экрана, на котором программа вынуждена жить. Свойство экрана - отображать информацию, свойство системы - ее формировать. Поэтому программно должны задаваться (динамические) размеры панелек и всего, что есть на экране. Цитата Gudleifr (  ) На момент создания "шаблонизатора" число и размер объектов неизвестны - это свойства загружаемой информации. Почему же неизвестны? Любой "шаблонизатор", который выводит какую то информацию, оперирует значениями или условиями заданными создателем. Цитата Gudleifr (  ) Совершенно избыточно (за исключением отлова системного сигнала Resize). Зачем слушать, если листание производится явными действиями пользователя? Явными действиями? А как система определит эти явные действия? Или вы предполагаете, что в системе будет чип, который реализует телепатию? Любое действие, должно прослушиваться, что бы корректно его отработать. Если система не прослушивает, какие то действия, то она не не знает, какие вы там явные действия выполняете. Пример, обычный монитор, сколько по нему пальцем не води, ничего не изменится (только пыль сотрешь), но если в этот монитор добавить сенсорную панель, которая будет прослушивать нажатия, то и система будет реагировать на эти нажатия.
Сообщение отредактировал maker-rus - Пятница, 29 Мая 2015, 22:48 |
|
|
| |
| maker-rus | Дата: Пятница, 29 Мая 2015, 20:06 | Сообщение # 119 | Тема: API для "двухстраничного" интерфейса |
Гений
Сейчас нет на сайте
| Цитата Gudleifr (  ) Эти "некоторые панели" и "какие-то объекты", очевидно, должны удовлетворять некоторым требованиям. Независимо от того, "сколько на экране кнопочек". Какими? Само собой, это размер занимаемой области и позиции, для размещения. (исключение объект для прослушивания, он встроен в программу) То есть некоторые объекты имеют больший размер, а некоторые меньший, но совокупность всех этих кнопочек не должен превышать, какой-то процент от занимаемой области. И само собой это доступность панелей и кнопочек непосредственно как с клавиатуры, так и с мышки, то есть возможность использовать панели клавиатурой, не затрагивая мышь и наоборот. Прослушивающий объект должен соответствовать только одному требованию - слушать (получать состояние страничек).
|
|
|
| |
| maker-rus | Дата: Четверг, 28 Мая 2015, 23:04 | Сообщение # 120 | Тема: API для "двухстраничного" интерфейса |
Гений
Сейчас нет на сайте
| Цитата Gudleifr (  ) maker-rus, у Вас как-то все две крайности: либо теория, либо рисуем нужные кнопочки. Есть и промежуточный слой: программно-независимая концепция кнопочек. Например тот же CUA... По моему, это кажется только вам. Потому что всем мои примеры - практические, просто , мне пришлось в виду, огромного расстояния ваших знаний и новых технологий объяснять, что же я там написал. Вы начали возмущаться, а вдруг "мне не удобны навязанные автором кнопочки, "я же не такой как все"". Я и написал про Drag and Drop, что дать панельку пользователю, со всеми кнопочками и пускай он сам решит, что и куда он поставит. Cua, я так понял стандарт взаимодействия пользователя с программой. А вы устав от диктаторства Билли, решили сделать свой стандарт расположения окон, а так же их прототипирование и реализацию, причем на бестиповом языке программирования. Сейчас я все ближе и ближе, к тому, что бы понять о чем вы говорите. То есть вас интересует именно интерфейс, не как конкретный объект, а интерфейс как собственная реализация, стандарт. Свой стандарт, реализация взаимодействия пользователя с программой. Если я все же подобрался, к тому, что вы имели ввиду, то у меня есть несколько предложений по этому поводу. И по поводу двух страничной реализации интерфейса.
Как я это вижу это? 1.В структуру программ добавить некоторую панель, на которой будут находится все элементы управления, которые можно будет перетаскивать, назначать им горячие клавиши. А две страницы выдать под два глобальных и значимых объекта (например текст). Как их обрезать? По высоте экрана, а внизу вкладку окон. (прим. Одно окно включает в себя две страницы). 2. Как связать эти страницы? Ну например, установить какой-то прослушивающий объект и следить за состоянием каждой из страниц, как только страница меняется, объект сразу же об этом узнает и что то делает или передает.
ps. По поводу прикладного программирования, мне особо нечего сказать, если обсуждать теорию работы, таких приложений со "своенравным" стандартом взаимодействия, то всегда пожалуйста, но в реализации таковых на практике, увы.
|
|
|
| |
|