Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел. |
Проект: "Онлайн - игра для форума !" |
Философия, технологии, алгоритмы! |
|
Опции темы |
11.01.2004, 16:42 | #1 |
Форумец
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 39
Не в сети |
В этой теме будет обсуждаться создание онлайн-игры для форума.
Это будет простая логическая, пошаговая, многопользовательская, онлайн - игра. Игра будет построена по модели "клиент-сервер". Клиентом будет .net-приложение пользователя, сервером будет php-скрипт выполняющийся на сервере u-antona. Рады выслушать любые советы и предложения, присоединяйтесь к нам в компанию.. В разделе "games"- обсуждается сама игра: http://www.u-antona.vrn.ru/forum/sho...threadid=21422 (этот раздел посвящен только разработке игры) |
11.01.2004, 16:50 | #2 |
я фигею
|
Собственно, ХЗ как... лучше сделать просто на php через браузер, иначе просто давать php скрипту GETили POST запросы, причём неважно из каких приложений, эти запросы никто не отменял
|
11.01.2004, 17:59 | #3 |
Форумец
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 39
Не в сети |
Druid VAV
Собственно, ХЗ как... лучше сделать просто на php через браузер, иначе просто давать php скрипту GETили POST запросы, причём неважно из каких приложений, эти запросы никто не отменял В том то и дело что надо без использования браузера. GET и POST для передачи данных скрипту, а как получить данные ? В Виде html-страницы не пойдёт... Нужно что-то типа ASP.NET Web-сервиса. . |
16.01.2004, 00:55 | #4 |
Memory test: failed
|
LSL, Работа с сокетами не нужна - к какому боку вы их вообще пихать собрались?
Пишешь прогу на людимом тобою .NET, которая коннектится к скрипту по 80 порту (или что там у тебя на хостинге), по HTTP передаешь ему запрос нужного скрипта и передаешь ему в качестве параметра необходимые данные. Все, скрипт данные получил. Получаешь локальной прогой ответ скрипта в виде строки, в которую ты можешь записать все что душа пожелает, в том числе и формализованную запись переменных (а-ля serialize в PHP), которую потом ты и парсишь. Если я путанно изложил, могу набросать алгоритм взаимодействия. Только опиши, какие информационные потоки будут ходить. |
16.01.2004, 01:28 | #5 |
Форумец
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 39
Не в сети |
DMakeev Ты нормально изложил, но я даже представить не могу как это всё делается на практике, нужен человек разбирающийся в php с которым можно будет написать игру для форума! Не хочешь ? Я же возьму на себя создание клиента.
Про функции скрипта-сервера я писал многократно: Он должен создавать(по запросу клиента "начало игры") и хранить до конца игры, состояние игры. Он должен позволять клиентам модифицировать это состояние(read/write). ВСЁ! Состояние будет хранится в любой наиболее удобной форме. Я незнаю какая форма лучше подойдёт для php, хороший вариант - это набор переменных, массивов. Это состояние должно передаваться клиенту и обратно (например в сериализованном виде) |
16.01.2004, 03:25 | #6 |
Memory test: failed
|
http://www.expocity.ru/files/netcore_beta_1.rar
Как работает: Данные от клиента принимаются в виде GET-запроса. Выдает данные в stdout Хранение - MySQL (Дамп прилагается) В таблишце БД следующие поля: gametype - тип игры. Поле предусмотрено для того, чтобы в одной таблице можно было хранить игры разных типов. Поле типа INT, нумеруй типы игр как пожелаешь. game - состояние игры - поле типа TEXT, пиши туда любую инфу по игре в любом удобном виде. players - максимальное число игроков. Поле типа INT. finished - Флаг того, что игра завершена. Для текущих игр -1, для завершенных 1. Поле типа TINYINT. started - дата и время создания игры - поле типа TEXT. lastchanged - дата и время последнего изменения игры - поле типа TIMESTAMP. Формат выдаваемых данных: "!MESSAGE:***" - сообщение. Вместо звездочек текст "!ERROR:***" - сообщение об ошибке. Вместо звездочек текст "!GAME:***" - инфа игры. Формат принимаемых данных см. по коду - там прокомментировано. Что есть: Создание игры Чтение информации игры Изменение информации игры Чего пока нет: Не выдает список всех игр Нет статистики Нет завершения игры Нормальной документации Все, сегодня ночью я уже больше ни на что не способен Чуть физиономией в клавиатуру не уснул... Если найдешь в этом разумное зерно - на выходных доведу до ума. |
16.01.2004, 22:46 | #8 |
Memory test: failed
|
LSL, проге, собсно, пофиг что ты будешь в нее пихать - просто интерфейс для хранения данных на сервере. Пользуй по усмотрению Если будут замечания/пожелания - пиши. Эта версия сырая - ночью туго думаю. Так что за баги пардон.
Будет тебе полигон Как только увижу движение вперед, сделаю. |
17.01.2004, 00:35 | #9 |
Форумец
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 39
Не в сети |
DMakeev Всё отлично ! Я кажется разобрался как с ней взаимодействовать .net клиенту.
Нужно решить что за игра будет, у меня есть варианты. 1) Hexxagon или Ataxx - интересные пошаговые логические игры, известные давно.. (1-4 игрока) 2) Можно сделать онлайн карточную игру, например дурака. (1-4 игрока) Предлагайте свои варианты. Сперва должна быть концепция, потом будем думать над реализацией. |
18.01.2004, 11:34 | #11 |
Форумец
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 39
Не в сети |
NeoExpert
1) действительно, сделайте в браузере. Не у всех есть framework, это будет не удобно ... Объясняю один раз. Писать игру я буду преследуя две цели, первая цель - набраться опыта в .net, вторая цель - принести пользу форуму, за которую, надеюсь, быть вознаграждён благодарностями игроков ! Писать буду не один. К тому же - как ты себе представляешь OpenGL 3D графику со звуковым оформлением в браузере ?? Это всего лишь пример, конечно же такой графики не будет в первой версии игры, но ведь не исключено что она появится в дальнейшем. Я уверяю, что отдельное приложение куда удобнее чем браузер ! .net скачать не проблема. Этот вопрос не обсуждается... 2) можите бойцовский клуб забабахать, аля "дай мо морде модеру" ? Честно сказать я не знаю что такое "БК"... шашки и карты -в жопень. Ты ошибаешься это очень интересные игры ! Проверенные временем 3) делайте что-нибудь интересное, Предлагай. 4) нужна возможность общаться в процессе игры Будет. "Комментарий хода". 5) лучше всего выделить домен на форуме типа game.u-antona.vrn.ru или отделбную ветку u-antona.vrn.ru/game Всё будет внутри приложения. Игроку достаточно подключится к интернету и запустить программу. Ни о каких доменах знать он не будет. 6) могу быть тестером. Конечно.. 7) если успею подучить РНР, то попытаюсь помочь Всегда рады. LSL добавил [date]1074420742[/date]: DMakeev Некоторые моменты, которые я смутно представляю: Одновременно может идти несколько игр (сессий). Сможет это сделать скрипт ? Данные для каждой сессии должны храниться отдельно (кол. игроков, текущий счёт, расп. фигур) мне это представляется как таблица, где строки - сессии, а столбцы данные... Вся хитрость в том что нужно будет как то отслеживать текущие сессии, и если игрок закончил игру или у всех оборвалась связь и игра осталась незаконченой, то скрипт должен это отследить и удалить сессию. (Например, чат выкидывает если оборвалась связь, пингует чтоли...) Я так понял после запроса скрипту (Request) сразу последует возвращённое значение(Response). Может ли скрипт сам запросить клиента. Например послать ему сигнал "твой соперник сделал ход, очередь твоя." ? Если не может, придётся постоянно опрашивать скрипт, пришла ли очередь хода. .../polygon/lsl.php Просто интересно, приведи пример запроса. Хочу поглядеть что скрипт мне ответит |
18.01.2004, 12:56 | #12 | ||
няшечка
Сообщений: 5,316
Регистрация: 13.06.2003
Не в сети |
Цитата:
Цитата:
а халяву любят все. вот. |
||
18.01.2004, 14:46 | #15 |
Форумец
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 39
Не в сети |
Druid VAV
Затея какая-то бредовая. Честно. LSL Сделай просто взаимодействие прог друг с другом и всё. Не заморачивайся с php. Действительно и что я с этим php заморачиваюсь Как же я раньше не додумался сделать просто взаимодействие прог ! Ты хоть понял что сказал ? Ты знаешь способ "взаимодействия прог", лучше того что придумал я (через php) ? |
18.01.2004, 15:20 | #16 |
Memory test: failed
|
NeoExpert, ты, конечно, не обижайся, но есть вещи, которые лучше не писать в целях обучения (к примеру - форум. Намучаешься, голову забьешь, а толком ничего не напишешь). Да и мпотом, нет тут работы для двух человек
А вот в качестве тестера и генератора идей буду рад тебя видеть |
19.01.2004, 13:24 | #17 |
ЕвГений
Сообщений: 497
Регистрация: 14.11.2003
Возраст: 41
Не в сети |
LSL Самое простое - крестики нолики, НО вся фишка будет в том, что в игре будет приватный чат, а сама игра для отвлечения. (Только в первой версии, а потом видно будет).
|
19.01.2004, 16:08 | #18 |
Форумец
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 39
Не в сети |
JOHN_PROFF
вся фишка будет в том, что в игре будет приватный чат, а сама игра для отвлечения. Врядли, чат у форума и так есть и не один. В игре будет не чат а "комментарий хода", он не дотягивает до полноценного чата.., впрочем, я пока смутно это всё вижу.. со временем всё прояснится. |
20.01.2004, 08:36 | #21 |
я фигею
|
Я понимаю задачу, всё элементарно, но нерационально использовать пхп. у С больше возможностей для создания извращений, но если решите писать на пхп у меня есть соображения как сделать это чудо
|
21.01.2004, 12:05 | #22 |
Форумец
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 39
Не в сети |
Druid VAV
у С больше возможностей для создания извращений Ты о чём ?? Как ты себе представляешь сервер на C ? у меня есть соображения как сделать это чудо Делись своими соображениями, и по возможности ответь на вопросы которые я задал DMakeev'у выше. |
21.01.2004, 13:01 | #24 | |
Форумец
|
LSL
Цитата:
|
|
21.01.2004, 14:11 | #25 |
Форумец
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 39
Не в сети |
fishca Это всё усложняет. php-скрипт будет выполнять простейшие функции. Я бы вообще с этой дребеденью не заморачивался если бы был asp.net, тогда можно было бы и покруче БК сделать...
Этот вопрос решён, лучше предлагайте что писать... |
21.01.2004, 23:45 | #26 |
Memory test: failed
|
LSL,
1) обрабатывается великолепно. Собсно, данные по разным играм хранятся отдельно, никаких наслоений не будет. У тебя есть номера (ID-шники) игр, оперируй с ними как хочешь. 2) Данные хранятся не в сессиях, а в БД (разница, для тех. кто в танке, принципиальна). Нет никакой зависимости от того, в онлайне или в оффлайне пользователь. Юзверь послал данные, они записались в БД, и может делать что хочет. БД выступает постоянным хранилищем информации, не зависящим от пользователей. Отсюда вытекает вопрос необходимости авторизации. По этому поводу надо нам с тобой продумать хорошенько. 3) Ессно. Но не обязательно он будет нести какую-либо информацию - к примеру, если пользователь создает игру, ему возвращается сообщение, что все ок. Ты это сообщение можешь просто игнорировать. 4) Скрипт запросить клиента может... мороки с этим довольно много, но делать, имхо, придется бо так мы сможем достаточно легко отслеживать статус пользователя (онлайн/оффлайн), слать ему сообщения и т.д. Но в первой версии мы делать этого НЕ БУДЕМ. Бо заморочка на пару ночей, да и рабочий клиент мне нужен для тестирования. Оставим на будущее. Пока что просто опрашивай скрипт каждые дцать секунд. Команду статистики по данной игре и по играм в общем я свараню завтра-послезавтра. PS Моя аська в профайле, давай не будем засорять ветку проектной перепиской . Druid VAV, соединение клиент-клиент (то бишь без использования хостинга, все данные лежат у клиентов)? А если "главный" отваливается все остальные откисают? ИМХО, проще сделать постоянно доступное хранилище в нете - надежнее. А если писать cgi и вешать на своем хостинге - те же ... вид сбоку. mike_s, размещать, скорее всего (если Антон не против), будем на хостинге форума, так что трабл с тестом быть не должно NeoExpert, 1) У меня самого FrameWork нет, качать не особо хоца. Но, в принципе, почему бы и нет? 2) Можно и это сделать - сейчас главное сваять движок, что на него навесим - вопрос техники. 3) Предлагай свои варианты. |