Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Игра на AS3. Нюансы. (http://www.flasher.ru/forum/showthread.php?t=171627)

ded100let 20.11.2011 21:42

Игра на AS3. Нюансы.
 
Приветствую всех!

Есть простейшая игра на "чистом" AS3 без импортированной графики типа тетрис. Игра задумывается как приложение для vkontakte.ru. Принцип игры - ловкость. Награда - деньги (голоса)/очки. Хочу узнать мнение людей, которые имеют опыт в этом.

1) Существует 2 файла . 1-й прелоадер, второй основная игра. Прелоадер грузит шрифты, музыку, основную игру и xml с настройками. Основная игра работает с клиентом и сервером.
2) Игру можно позиционировать как пошаговая и сохранять каждый шаг на сервере.

теперь вопросы.

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

goodguy 20.11.2011 21:51

Цитата:

Возможен ли такой подход в соц. сетях, когда пользователю выплачиваются деньги?
Другой вопрос, откуда эти деньги будут браться? Одни пользователи будут платить, а другие у них выигрывать? За такие игры в принципе никто не платит, значит и выигрыши выплачивать будет нечем.
Да и при желании это можно будет квалифицировать как организацию азартных игр.
Лучше уж виртуальные призы.
Цитата:

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

На что стоить обратить внимание при разработке игры, которая дает возможность выйграть деньги или же ценный предмет?
Очень расплывчатый вопрос.

Bgg 20.11.2011 22:00

По выводу игры вконтакт тут: http://vkontakte.ru/developers.php?id=8261471

Ookami 20.11.2011 22:07

Цитата:

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

Для первого своего приложения для соц.сетей лучше придумать что-то, не затрагивающее реальные ценности - чтоб понять основные принципы и не уйти при этом в минус.

expl 20.11.2011 23:36

Один из вариантов защиты на передачу данных серверу Тетриса:
- перед стартом забираем у сервера список фигур выпадающих в игре (альтернатива - забираем зерно _детерменированного_ рандом-генератора, на котором будем получать "детерменированно-случайные" значения)
- как только пользователь положил фигуру - записываем ее конечное положение
- достаем следующую фигуру из списка
- повторяем пока игрок не проиграет
- отправляем нашу запись с ходами на сервер + передаем время
- сервер "проигрывает" у себя тетрис, проверяет что игрок вприципе мог поставить сюда фигуру и возвращает количество очков
Все.
Т.е. зависимость очков от того, сколько линий игрок собрал защищена очень даже хорошо

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

Однако, если будут баловаться не подменами запросов, а соберут "свою" версию игры, то смогут подставить любое время.
Если игра доживет до таких хакеров, то можно побаловаться отсылкой не просто конечных положений фигур, а еще и действий пользователя за "квантованные" промежутки времени, которые тоже будут обсчитываться на сервере.
В этом случае хакеру придется писать искусственный интелект, который быстро-быстро соображает куда поставить фигуру. Не сказал бы, что это мегасложная задача, но если игра доживет до времени, когда в сети появятся "боты для тетриса" - это будет успех и можно будет на полученные деньги начинать писать новую :).

ded100let 21.11.2011 02:52

спасибо всем за ответы!

Цитата:

Другой вопрос, откуда эти деньги будут браться? Одни пользователи будут платить, а другие у них выигрывать? За такие игры в принципе никто не платит, значит и выигрыши выплачивать будет нечем.
Захожу на сайт вконтакте.ру->приложения и вижу на первом месте приложение "Фараон: игровые автоматы" Приложение установил 1 425 161 человек. Если учесть, что моя игра основана не на удаче, а на умении игрока, то шанс все же есть.

Цитата:

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

expl, это всё так, но представьте себе игру дартс, в которой, например, Вы кидаете дротики. Есть всего одна кнопка "кинуть". Мишень передвигается слево на право и обратно. Так вот как определить кинул ли пользователь сам дротик или же написал программу под свою ОС, которая кликает мышкой, когда мишень подходит к центру? Думаю никак...

strangedk 21.11.2011 12:33

Цитата:

Сообщение от ded100let (Сообщение 1047260)
Так вот как определить кинул ли пользователь сам дротик или же написал программу под свою ОС, которая кликает мышкой, когда мишень подходит к центру? Думаю никак...

Метод определить, может и никак. Но определить что человек читер, вполне можно, если допустим из 100 попыток 100 попаданий "в яблочко".

gloomyBrain 21.11.2011 12:46

Цитата:

если допустим из 100 попыток 100 попаданий "в яблочко".
Это то же самое, что судить человека за то, что он побил мировой рекорд по бегу.
Что касается проверки на читерство в рамках тетриса - то вероятнее всего ответ "никак". Максимум чего можно добиться - это отсутствие смысла читерить (то есть создать такие условия, при которых даже хакнутый клиент не будет набирать больше очков, чем обычный).

goodguy 21.11.2011 13:33

Цитата:

Если учесть, что моя игра основана не на удаче, а на умении игрока, то шанс все же есть.
Шанс на что? На то, что не обвинят в создании азартной игры? Конечно есть. Я бы даже сказал, он довольно большой. Да и вообще вряд ли кто-то за это там серьезно возьмется.

expl 21.11.2011 13:41

Цитата:

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


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

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.