Старый 11.01.2004, 16:42   #1   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 39

LSL вне форума Не в сети
Lightbulb

В этой теме будет обсуждаться создание онлайн-игры для форума.

Это будет простая логическая, пошаговая, многопользовательская, онлайн - игра.

Игра будет построена по модели "клиент-сервер". Клиентом будет .net-приложение пользователя, сервером будет php-скрипт выполняющийся на сервере u-antona.

Рады выслушать любые советы и предложения, присоединяйтесь к нам в компанию..


В разделе "games"- обсуждается сама игра:
http://www.u-antona.vrn.ru/forum/sho...threadid=21422

(этот раздел посвящен только разработке игры)
  Ответить с цитированием
Старый 11.01.2004, 16:50   #2   
я фигею
 
Аватар для Druid VAV
 
Сообщений: 193
Регистрация: 29.09.2003
Возраст: 35
Записей в дневнике: 1

Druid VAV вне форума Не в сети
Собственно, ХЗ как... лучше сделать просто на php через браузер, иначе просто давать php скрипту GETили POST запросы, причём неважно из каких приложений, эти запросы никто не отменял
  Ответить с цитированием
Старый 11.01.2004, 17:59   #3   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 39

LSL вне форума Не в сети
Druid VAV
Собственно, ХЗ как... лучше сделать просто на php через браузер, иначе просто давать php скрипту GETили POST запросы, причём неважно из каких приложений, эти запросы никто не отменял

В том то и дело что надо без использования браузера.
GET и POST для передачи данных скрипту, а как получить данные ? В Виде html-страницы не пойдёт...

Нужно что-то типа ASP.NET Web-сервиса.
.
  Ответить с цитированием
Старый 16.01.2004, 00:55   #4   
Memory test: failed
 
Аватар для DMakeev
 
Сообщений: 699
Регистрация: 21.03.2003
Возраст: 41
Записей в дневнике: 7

DMakeev вне форума Не в сети
LSL, Работа с сокетами не нужна - к какому боку вы их вообще пихать собрались?

Пишешь прогу на людимом тобою .NET, которая коннектится к скрипту по 80 порту (или что там у тебя на хостинге), по HTTP передаешь ему запрос нужного скрипта и передаешь ему в качестве параметра необходимые данные. Все, скрипт данные получил.
Получаешь локальной прогой ответ скрипта в виде строки, в которую ты можешь записать все что душа пожелает, в том числе и формализованную запись переменных (а-ля serialize в PHP), которую потом ты и парсишь.
Если я путанно изложил, могу набросать алгоритм взаимодействия. Только опиши, какие информационные потоки будут ходить.
  Ответить с цитированием
Старый 16.01.2004, 01:28   #5   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 39

LSL вне форума Не в сети
DMakeev Ты нормально изложил, но я даже представить не могу как это всё делается на практике, нужен человек разбирающийся в php с которым можно будет написать игру для форума! Не хочешь ? Я же возьму на себя создание клиента.

Про функции скрипта-сервера я писал многократно:

Он должен создавать(по запросу клиента "начало игры") и хранить до конца игры, состояние игры. Он должен позволять клиентам модифицировать это состояние(read/write). ВСЁ!

Состояние будет хранится в любой наиболее удобной форме. Я незнаю какая форма лучше подойдёт для php, хороший вариант - это набор переменных, массивов. Это состояние должно передаваться клиенту и обратно (например в сериализованном виде)
  Ответить с цитированием
Старый 16.01.2004, 03:25   #6   
Memory test: failed
 
Аватар для DMakeev
 
Сообщений: 699
Регистрация: 21.03.2003
Возраст: 41
Записей в дневнике: 7

DMakeev вне форума Не в сети
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, 11:08   #7   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 39

LSL вне форума Не в сети
DMakeev Не торопись !!! Ещё ничего не придумали а ты уже написал. Сейчас скачаю.

В дальнейшем нужен будет полигон для тестирования... есть много вопросов.
  Ответить с цитированием
Старый 16.01.2004, 22:46   #8   
Memory test: failed
 
Аватар для DMakeev
 
Сообщений: 699
Регистрация: 21.03.2003
Возраст: 41
Записей в дневнике: 7

DMakeev вне форума Не в сети
LSL, проге, собсно, пофиг что ты будешь в нее пихать - просто интерфейс для хранения данных на сервере. Пользуй по усмотрению Если будут замечания/пожелания - пиши. Эта версия сырая - ночью туго думаю. Так что за баги пардон.

Будет тебе полигон Как только увижу движение вперед, сделаю.
  Ответить с цитированием
Старый 17.01.2004, 00:35   #9   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 39

LSL вне форума Не в сети
DMakeev Всё отлично ! Я кажется разобрался как с ней взаимодействовать .net клиенту.

Нужно решить что за игра будет, у меня есть варианты.

1) Hexxagon или Ataxx - интересные пошаговые логические игры, известные давно.. (1-4 игрока)

2) Можно сделать онлайн карточную игру, например дурака. (1-4 игрока)

Предлагайте свои варианты.

Сперва должна быть концепция, потом будем думать над реализацией.
  Ответить с цитированием
Старый 18.01.2004, 11:20   #10   
няшечка
 
Аватар для mikе
 
Сообщений: 5,316
Регистрация: 13.06.2003

mikе вне форума Не в сети
Цитата:
5) лучше всего выделить домен на форуме типа game.u-antona.vrn.ru или отделбную ветку u-antona.vrn.ru/game
u-antona.vrn.ru/game - по-любому. Под лозунгом "нет платному интернету".
  Ответить с цитированием
Старый 18.01.2004, 11:34   #11   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 39

LSL вне форума Не в сети
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   
няшечка
 
Аватар для mikе
 
Сообщений: 5,316
Регистрация: 13.06.2003

mikе вне форума Не в сети
Цитата:
Всё будет внутри приложения. Игроку достаточно подключится к интернету и запустить программу. Ни о каких доменах знать он не будет.
неа, всё равно

Цитата:
u-antona.vrn.ru/game
потому что так можно будет на халяву играть (через тест),
а халяву любят все. вот.
  Ответить с цитированием
Старый 18.01.2004, 13:54   #13   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 39

LSL вне форума Не в сети
mike_s Я же сказал что будет возможность игры по халяве, что тебе этот адрес дался Кстати подумай как будет выглядеть партия в карты из четырёх человек, когда каждые 15 минут кто-то будет отключаться..
  Ответить с цитированием
Старый 18.01.2004, 14:14   #14   
я фигею
 
Аватар для Druid VAV
 
Сообщений: 193
Регистрация: 29.09.2003
Возраст: 35
Записей в дневнике: 1

Druid VAV вне форума Не в сети
Затея какая-то бредовая. Честно. LSL Сделай просто взаимодействие прог друг с другом и всё. Не заморачивайся с php
  Ответить с цитированием
Старый 18.01.2004, 14:46   #15   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 39

LSL вне форума Не в сети
Druid VAV
Затея какая-то бредовая. Честно. LSL Сделай просто взаимодействие прог друг с другом и всё. Не заморачивайся с php.

Действительно и что я с этим php заморачиваюсь Как же я раньше не додумался сделать просто взаимодействие прог !

Ты хоть понял что сказал ? Ты знаешь способ "взаимодействия прог", лучше того что придумал я (через php) ?
  Ответить с цитированием
Старый 18.01.2004, 15:20   #16   
Memory test: failed
 
Аватар для DMakeev
 
Сообщений: 699
Регистрация: 21.03.2003
Возраст: 41
Записей в дневнике: 7

DMakeev вне форума Не в сети
NeoExpert, ты, конечно, не обижайся, но есть вещи, которые лучше не писать в целях обучения (к примеру - форум. Намучаешься, голову забьешь, а толком ничего не напишешь). Да и мпотом, нет тут работы для двух человек

А вот в качестве тестера и генератора идей буду рад тебя видеть
  Ответить с цитированием
Старый 19.01.2004, 13:24   #17   
ЕвГений
 
Аватар для JOHN_PROFF
 
Сообщений: 497
Регистрация: 14.11.2003
Возраст: 41

JOHN_PROFF вне форума Не в сети
LSL Самое простое - крестики нолики, НО вся фишка будет в том, что в игре будет приватный чат, а сама игра для отвлечения. (Только в первой версии, а потом видно будет).
  Ответить с цитированием
Старый 19.01.2004, 16:08   #18   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 39

LSL вне форума Не в сети
JOHN_PROFF
вся фишка будет в том, что в игре будет приватный чат, а сама игра для отвлечения.

Врядли, чат у форума и так есть и не один. В игре будет не чат а "комментарий хода", он не дотягивает до полноценного чата.., впрочем, я пока смутно это всё вижу.. со временем всё прояснится.
  Ответить с цитированием
Старый 19.01.2004, 19:28   #19   
я фигею
 
Аватар для Druid VAV
 
Сообщений: 193
Регистрация: 29.09.2003
Возраст: 35
Записей в дневнике: 1

Druid VAV вне форума Не в сети
LSL Свой сервер и куча клиентов - но с php у тебя будет больше гемороя
  Ответить с цитированием
Старый 19.01.2004, 20:13   #20   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 39

LSL вне форума Не в сети
Druid VAV
Свой сервер и куча клиентов

И что будет на этом сервере, если не php ?

но с php у тебя будет больше гемороя

Всё проще чем ты думаешь. Задача элементарная
  Ответить с цитированием
Старый 20.01.2004, 08:36   #21   
я фигею
 
Аватар для Druid VAV
 
Сообщений: 193
Регистрация: 29.09.2003
Возраст: 35
Записей в дневнике: 1

Druid VAV вне форума Не в сети
Я понимаю задачу, всё элементарно, но нерационально использовать пхп. у С больше возможностей для создания извращений, но если решите писать на пхп у меня есть соображения как сделать это чудо
  Ответить с цитированием
Старый 21.01.2004, 12:05   #22   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 39

LSL вне форума Не в сети
Druid VAV
у С больше возможностей для создания извращений

Ты о чём ?? Как ты себе представляешь сервер на C ?

у меня есть соображения как сделать это чудо

Делись своими соображениями, и по возможности ответь на вопросы которые я задал DMakeev'у выше.
  Ответить с цитированием
Старый 21.01.2004, 12:57   #23   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 39

LSL вне форума Не в сети
NeoExpert Бойцовский клуб - это слишком сложно.
  Ответить с цитированием
Старый 21.01.2004, 13:01   #24   
Форумец
 
Аватар для fishca
 
Сообщений: 708
Регистрация: 23.12.2002
Возраст: 50
Записей в дневнике: 1

fishca вне форума Не в сети
LSL
Цитата:
Ты о чём ?? Как ты себе представляешь сервер на C ?
Это программа которая крутится на сервере и общается по определенному протоколу с тобой. Только чтобы эту прогу засунуть на сервак надо доступ иметь для запуска этой проги.
  Ответить с цитированием
Старый 21.01.2004, 14:11   #25   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 39

LSL вне форума Не в сети
fishca Это всё усложняет. php-скрипт будет выполнять простейшие функции. Я бы вообще с этой дребеденью не заморачивался если бы был asp.net, тогда можно было бы и покруче БК сделать...


Этот вопрос решён, лучше предлагайте что писать...
  Ответить с цитированием
Старый 21.01.2004, 23:45   #26   
Memory test: failed
 
Аватар для DMakeev
 
Сообщений: 699
Регистрация: 21.03.2003
Возраст: 41
Записей в дневнике: 7

DMakeev вне форума Не в сети
LSL,
1) обрабатывается великолепно. Собсно, данные по разным играм хранятся отдельно, никаких наслоений не будет. У тебя есть номера (ID-шники) игр, оперируй с ними как хочешь.

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

3) Ессно. Но не обязательно он будет нести какую-либо информацию - к примеру, если пользователь создает игру, ему возвращается сообщение, что все ок. Ты это сообщение можешь просто игнорировать.

4) Скрипт запросить клиента может... мороки с этим довольно много, но делать, имхо, придется бо так мы сможем достаточно легко отслеживать статус пользователя (онлайн/оффлайн), слать ему сообщения и т.д. Но в первой версии мы делать этого НЕ БУДЕМ. Бо заморочка на пару ночей, да и рабочий клиент мне нужен для тестирования. Оставим на будущее. Пока что просто опрашивай скрипт каждые дцать секунд. Команду статистики по данной игре и по играм в общем я свараню завтра-послезавтра.

PS Моя аська в профайле, давай не будем засорять ветку проектной перепиской .

Druid VAV,
соединение клиент-клиент (то бишь без использования хостинга, все данные лежат у клиентов)? А если "главный" отваливается все остальные откисают? ИМХО, проще сделать постоянно доступное хранилище в нете - надежнее.
А если писать cgi и вешать на своем хостинге - те же ... вид сбоку.

mike_s, размещать, скорее всего (если Антон не против), будем на хостинге форума, так что трабл с тестом быть не должно

NeoExpert,
1) У меня самого FrameWork нет, качать не особо хоца. Но, в принципе, почему бы и нет?
2) Можно и это сделать - сейчас главное сваять движок, что на него навесим - вопрос техники.
3) Предлагай свои варианты.
  Ответить с цитированием
Старый 22.01.2004, 10:00   #27   
Форумец
 
Аватар для fishca
 
Сообщений: 708
Регистрация: 23.12.2002
Возраст: 50
Записей в дневнике: 1

fishca вне форума Не в сети
LSL
Еще надо про проксю не забыть...
  Ответить с цитированием
Старый 23.01.2004, 23:09   #28   
Форумец
 
Сообщений: 1,696
Регистрация: 24.11.2002
Возраст: 39

LSL вне форума Не в сети
NeoExpert
Народ! Сюдя по отстутствию новый постов должен заметить, что это означает полный тормоз

Ошибаешься, просто сей час все немного заняты.
  Ответить с цитированием
Старый 09.04.2005, 22:25   #29   
Модератор
 
Сообщений: 665
Регистрация: 09.01.2002

Kerish вне форума Не в сети
Вообще-то сервер стоит на unix-е.
  Ответить с цитированием
Старый 09.04.2005, 22:26   #30   
Модератор
 
Сообщений: 665
Регистрация: 09.01.2002

Kerish вне форума Не в сети
Поэтому VBNet не катит...
  Ответить с цитированием
Поиск в теме: 



Быстрый переход:

  Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Support by DrIQ & Netwind