Веб-игра (эксперимент) (Что использовать?)

Модератор: Модераторы разделов

petrushka_sch2
Сообщения: 252
ОС: Mandriva 2007.1

Веб-игра (эксперимент)

Сообщение petrushka_sch2 »

Хочу написать игру, что-нибудь типа шашек, но немного похитрее. Суть не в этом, а в том, что необходимо нарисовать поле из многоугольников с заданным числом углов (например, из квадратов или, например, из гексов). И надо что б в каждом гексе могла отображаться картинка фигурки (пешка). И что б эти фишки можно было бы интерактивно подвигать.

Поскольку в веб-программировании я, так сказать, ноль,то прошу у вас совета, какой язык и технологию для этого использовать. Желательно свести к минимуму использование тяжелых технологий вроде flash (да и к тому же она закрыта). Мне пока не очень ясно, может быть подойдет AJAX? Или JavaFX. Про две последние, я слышал звон, да не знаю где он :) В общем, помогите, товарищи - куда копать?
Спасибо сказали:
NIS
Сообщения: 26
ОС: Kubuntu 7.10, OpenSUSE 10.3

Re: Веб-игра (эксперимент)

Сообщение NIS »

SVG (Scalable Vector Graphics)
http://ru.wikipedia.org/wiki/SVG
Только если не установить плагин от Adobe, не будет работать на вражеском браузере. В Opera и Firefox всё из каробки
Спасибо сказали:
petrushka_sch2
Сообщения: 252
ОС: Mandriva 2007.1

Re: Веб-игра (эксперимент)

Сообщение petrushka_sch2 »

Спасибо за совет! А аякс?
Спасибо сказали:
Аватара пользователя
Denjs
Сообщения: 1685
ОС: SuSe 10.2

Re: Веб-игра (эксперимент)

Сообщение Denjs »

а ты его сначала купи) я так понимаю оно платное на сервере? или я что-то путаю?

чем Java-script не подходит или тот-же Java под виртуальной машиной? (последнее - уже будет полнойценное клиентское приложение)
да, это (и первое и второе) геморно.. первое - геморройнее имхо... но можно...

а в идеале - это как раз Flash... имхо...
QDroid - Среда исполнения и фреймворк для QtScript.
OTPD - Открытые драйвера промышленных принтеров чеков и этикеток (кроссплатформенная подсистема печати).
Спасибо сказали:
crop
Сообщения: 81

Re: Веб-игра (эксперимент)

Сообщение crop »

petrushka_sch2
Скорее всего тебе пригодятся Javascript Framework'и. Наилучшим, на мой взгляд, является YAHOO User Interface. Посмотри их сайт http://developer.yahoo.com/yui/, там приведено очень много примеров, в том числе с использованием AJAX. Есть Drag'n'Drop. И все это только лишь средствами Javascript.
Вот пример карточной игры с использованием YAHOO User Interface:
http://gallery.yahoo.com/apps/13289
Интервью с разработчиком:
http://yuiblog.com/blog/2007/08/20/schultz-solitaire/
Спасибо сказали:
petrushka_sch2
Сообщения: 252
ОС: Mandriva 2007.1

Re: Веб-игра (эксперимент)

Сообщение petrushka_sch2 »

за YAHOO User Interface спасибо, очень интересно. А я правильно понимаю, что и YAHOO User Interface и SVG для интеркативности используют java script?
Спасибо сказали:
petrushka_sch2
Сообщения: 252
ОС: Mandriva 2007.1

Re: Веб-игра (эксперимент)

Сообщение petrushka_sch2 »

И еще вопрос: насколько я понял, любой может скачать мою страничку со всеми исходниками? Т.е. это не пхп, где код скрыт от пользователя? А если я там хочу например логин\пароль от mysql базы держать, что бы очки занести в нее? Вообще можно ли там скрывать участки кода от пользователя странички?
Спасибо сказали:
Аватара пользователя
Denjs
Сообщения: 1685
ОС: SuSe 10.2

Re: Веб-игра (эксперимент)

Сообщение Denjs »

насколько я понял, любой может скачать мою страничку со всеми исходниками? Т.е. это не пхп, где код скрыт от пользователя? А если я там хочу например логин\пароль от mysql базы держать, что бы очки занести в нее? Вообще можно ли там скрывать участки кода от пользователя странички?

в Javascript Framework? думаю нет) код должен быть полностью скачан к клиенту "в его браузер" для выполнения на его машине.

логин\пароль конечно держать в таком скрипте не стоит.
кроме того - редкий провайдер позволит вам иметь доступ к Mysql базе из вне. только с вашей хостинговой платформы.
Да и сильно я сомневаюсь что есть какое либо решение для доступа к базам данных из Java-Script.

а "что бы очки занести в нее" - надо отдельно думать как это сделать.
я бы сделать "поддерживающие" php-скрипты на сервере, к которым серез http-запрос обращается скрипт и получает данные.
Кроме того - как без них организовать взаимодействие нескольких игроков (как я понимаю это будет сетевая игра "на сервере из браузера"?).

__________________________________
Вообще - имхо - конечно задачка вырисовывается не для среднестатического первого курса... но похвально что вы решили этим заняться. тем более что в веб-програмировании вы как вы сказали - вы ноль...
QDroid - Среда исполнения и фреймворк для QtScript.
OTPD - Открытые драйвера промышленных принтеров чеков и этикеток (кроссплатформенная подсистема печати).
Спасибо сказали:
crop
Сообщения: 81

Re: Веб-игра (эксперимент)

Сообщение crop »

petrushka_sch2
насколько я понял, любой может скачать мою страничку со всеми исходниками?

Правильно думаете. Однако существуют минификаторы, которые делают текст скрипта трудным для разбора и понимания (проще новый написать)
А если я там хочу например логин\пароль от mysql базы держать, что бы очки занести в нее?

Хранить на этой странице логин.пароль не нужно. Передавать логин в открытом виде можно, а вот пароль лучше передавать в зашифрованном виде (MD5), и сравнение проводить не паролей, а их MD5.
Алгоритм md5 на java script:
http://pajhome.org.uk/crypt/md5/

Denjs
я бы сделать "поддерживающие" php-скрипты на сервере, к которым серез http-запрос обращается скрипт и получает данные.
Кроме того - как без них организовать взаимодействие нескольких игроков (как я понимаю это будет сетевая игра "на сервере из браузера"?).
Абсолютно верно. Поскольку YAHOO User interface - это только frontend, а ведь нужен еще и backend. Как правило, взаимодействие между ними происходит через такие форматы данных, как JSON или XML.

То есть выглядит это примерно следующим образом: делается асинхронный запрос к скрипту, скрипту методами GET или POST передается строка запроса параметр1=значение1&параметр2=значение2&...
Параметры должны иметь определенный смысл (например, имя таблицы и т.д.). Скрипт, написанный на любом языке (php, perl, java, ruby, да хоть CGI скрипт на си:-)) должен в зависимости от значений параметров выводить в консоль, например, следующее:

<ResultSet>
<Result>


petrushka_sch2
насколько я понял, любой может скачать мою страничку со всеми исходниками?

Правильно думаете. Однако существуют минификаторы, которые делают текст скрипта трудным для разбора и понимания (проще новый написать)
А если я там хочу например логин\пароль от mysql базы держать, что бы очки занести в нее?

Хранить на этой странице логин.пароль не нужно. Передавать логин в открытом виде можно, а вот пароль лучше передавать в зашифрованном виде (MD5), и сравнение проводить не паролей, а их MD5.
Алгоритм md5 на java script:
http://pajhome.org.uk/crypt/md5/

Denjs
я бы сделать "поддерживающие" php-скрипты на сервере, к которым серез http-запрос обращается скрипт и получает данные.
Кроме того - как без них организовать взаимодействие нескольких игроков (как я понимаю это будет сетевая игра "на сервере из браузера"?).
Абсолютно верно. Поскольку YAHOO User interface - это только frontend, а ведь нужен еще и backend. Как правило, взаимодействие между ними происходит через такие форматы данных, как JSON или XML.

То есть выглядит это примерно следующим образом: делается асинхронный запрос к скрипту, скрипту методами GET или POST передается строка запроса параметр1=значение1&параметр2=значение2&...
Параметры должны иметь определенный смысл (например, имя таблицы и т.д.). Скрипт, написанный на любом языке (php, perl, java, ruby, да хоть CGI скрипт на си:-)) должен в зависимости от значений параметров выводить в консоль, например, следующее:

<ResultSet>
<Result>
Спасибо сказали:
crop
Сообщения: 81

Re: Веб-игра (эксперимент)

Сообщение crop »

petrushka_sch2
насколько я понял, любой может скачать мою страничку со всеми исходниками?

Правильно думаете. Однако существуют минификаторы, которые делают текст скрипта трудным для разбора и понимания (проще новый написать)
А если я там хочу например логин\пароль от mysql базы держать, что бы очки занести в нее?

Хранить на этой странице логин.пароль не нужно. Передавать логин в открытом виде можно, а вот пароль лучше передавать в зашифрованном виде (MD5), и сравнение проводить не паролей, а их MD5.
Алгоритм md5 на java script:
http://pajhome.org.uk/crypt/md5/

Denjs
я бы сделать "поддерживающие" php-скрипты на сервере, к которым серез http-запрос обращается скрипт и получает данные.
Кроме того - как без них организовать взаимодействие нескольких игроков (как я понимаю это будет сетевая игра "на сервере из браузера"?).
Абсолютно верно.

Поскольку YAHOO User interface - это только frontend, а ведь нужен еще и backend. Как правило, взаимодействие между ними происходит через такие форматы данных, как JSON или XML.

То есть выглядит это примерно следующим образом: делается асинхронный запрос к скрипту, скрипту методами GET или POST передается строка запроса параметр1=значение1&параметр2=значение2&...
Параметры должны иметь определенный смысл (например, имя таблицы и т.д.). Скрипт, написанный на любом языке (php, perl, java, ruby, да хоть CGI скрипт на си:-)) должен в зависимости от значений параметров выводить в консоль, например, следующее:

Код: Выделить всё

<?xml version="1.0" encoding="UTF-8"?>
<ResultSet>
<Result>Результат1</Result>
<Result>Результат2</Result>
............................................
</ResultSet>


А YAHOO User Interface отображает этот XML в пользовательском интерфейсе так, как Вам нужно. То есть роль php/perl/ruby и т.д. сводится к минимуму:
расшифровать строку запроса и сгенерировать XML. Можно в одном проекте использовать несколько языков (в случае нескольких разработчиков, знающих разные языки). А все потому, что есть универсальный формат обмена - XML :-)
Спасибо сказали:
petrushka_sch2
Сообщения: 252
ОС: Mandriva 2007.1

Re: Веб-игра (эксперимент)

Сообщение petrushka_sch2 »

вопрос такой, а как бы вы посоветовали организовать одновременную игру нескольких человек на одной доске? Ведь фактически у каждого запущена своя собственная копия приложения...
Спасибо сказали:
Аватара пользователя
BlackStar
Сообщения: 1338
Статус: We are all Kosh
ОС: Fedora 10

Re: Веб-игра (эксперимент)

Сообщение BlackStar »

клиент-сервер?
LightLang Team
Спасибо сказали:
petrushka_sch2
Сообщения: 252
ОС: Mandriva 2007.1

Re: Веб-игра (эксперимент)

Сообщение petrushka_sch2 »

Как вариант, наверное. А что в качестве сервера использовать? MySQL для хранения текущего состояния доски? Или как-то по-другому принято делать?
Спасибо сказали:
crop
Сообщения: 81

Re: Веб-игра (эксперимент)

Сообщение crop »

А что в качестве сервера использовать? MySQL для хранения текущего состояния доски?

Совершенно правильно. Можно PostgreSQL. Это уже на Ваш выбор. И при каждом ходе игроков состояние БД будет изменяться.
Спасибо сказали:
petrushka_sch2
Сообщения: 252
ОС: Mandriva 2007.1

Re: Веб-игра (эксперимент)

Сообщение petrushka_sch2 »

Просто мне кажется немного кривовато - использовать SQL базу для хранения текущего состояния... А если досок одновременно, ну предположим, 1000, то что - 1000 обращений к базе дополнительных? Просто хочется делать по-человечески сразу же, а такое решение мне кажется несколько кривым, или я не прав?
Спасибо сказали:
crop
Сообщения: 81

Re: Веб-игра (эксперимент)

Сообщение crop »

Просто мне кажется немного кривовато - использовать SQL базу для хранения текущего состояния... А если досок одновременно, ну предположим, 1000, то что - 1000 обращений к базе дополнительных?

Не вижу в этом ничего плохого. Это уже вопрос аппаратной мощности сервера, скоростных характеристик web-сервера и типа подключения к БД.
Спасибо сказали:
Аватара пользователя
ояб
Сообщения: 107
ОС: FreeBSD

Re: Веб-игра (эксперимент)

Сообщение ояб »

Самое оптимальное использовать технологию Java Web Start
Спасибо сказали: