Вторник, 03 Декабря 2024, 23:20

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Результаты поиска
last2424Дата: Среда, 30 Июля 2014, 17:03 | Сообщение # 761 | Тема: Новые уроки по создание броузерной игры – 3
30 мл. блоков
Сейчас нет на сайте
Folleah, затем, для меня всегда удобнее всё делать на php, нежели юзать отдельный сервер. Да и наконец избавить сайт от вопроса кхм... цитирую:
Цитата
Как сделать браузерную онлайн игру.
biggrin


Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
last2424Дата: Среда, 30 Июля 2014, 16:57 | Сообщение # 762 | Тема: Новые уроки по создание броузерной игры – 3
30 мл. блоков
Сейчас нет на сайте
Vinchensoo, это уже 3 часть. biggrin

Folleah, блин, раз такой умный иди свои уроки по браузерке пиши а меня не учи, как надо писать, надо думать что бы всё было нормально, а не как курица лапой.
Как ты будешь писать код не думая, что писать?


Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)

Сообщение отредактировал last2424 - Среда, 30 Июля 2014, 16:58
last2424Дата: Среда, 30 Июля 2014, 16:47 | Сообщение # 763 | Тема: Новые уроки по создание броузерной игры – 3
30 мл. блоков
Сейчас нет на сайте
Folleah, мне нужно подумать, прежде чем написать. Эти раздумья уходят на час-два.

Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
last2424Дата: Среда, 30 Июля 2014, 16:31 | Сообщение # 764 | Тема: Новые уроки по создание броузерной игры – 3
30 мл. блоков
Сейчас нет на сайте
Vinchensoo, все ответы во второй части. biggrin
Мне лень писать, я устал. Я пилил этот урок с 11:00 до 17:00. smile


Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
last2424Дата: Среда, 30 Июля 2014, 15:35 | Сообщение # 765 | Тема: Новые уроки по создание броузерной игры – 3
30 мл. блоков
Сейчас нет на сайте
dima9595, это не для таких как ты. А для тех, кто в этом вообще нифига не понимает. biggrin
Цитата
Нужно все таки отделять HTML код от PHP кода, потому что это очень засоряет проект

Буду, буду отделять. smile


Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)

Сообщение отредактировал last2424 - Среда, 30 Июля 2014, 15:36
last2424Дата: Среда, 30 Июля 2014, 15:01 | Сообщение # 766 | Тема: Новые уроки по создание броузерной игры – 3
30 мл. блоков
Сейчас нет на сайте
Всем привет. Вот и 3 часть подошла к своему началу. В этом уроке мы наконец то начнём пилить пилой код. В данном случае авторизацию и регистрацию.

Графическое оформление базы данных.
Перед тем, как начать, давайте дадим графики базе данных.

Откройте “C:\WebServers\home\”, и создайте в ней новую папку, ну например thebestgame.
Внутри thebestgame создайте папку www, там будут находиться наши файлы.
Внутри www создайте папку sessions, там будут находиться наши игровые сессий.

Для умных людей:
Почему там будут находиться сессий? Потому что папка с сессиями которую имеет Denwer, не подходит для игры, ведь сессия через 30 минут пропадает.

Тыц , скачиваем графический интерфрейс для MongoDB. Скачали, откройте архив и залейте папку в “C:\WebServers\thebestgame\www”.
Теперь открываем браузер и переходим по http://thebestgame/rockmongo/index.php или http://вашапапка/rockmongo/index.php

Host: Localhost
Логин: Admin
Пароль: Admin


Последнюю строчку не трогаем, это для тех у кого нет права на админку.
Нажимаем “Войти и отжечь”.


Если же когда вы зашли в БД, у вас в браузере белый экран с ошибкой(не запомнил слова).
Выключаем denwer, открываем cmd и пишем “net stop mongodb”.
Переходим по “C:\WebServers\database”, и удаляем от туда файл mongod.lock.
После этого пишем “net start mongodb”. И включаем denwer. Воуля, заработало.

Авторизируйтесь, в самом вверху нажмите на ссылку “Базы данных”.
У вас появится список всех БД которые у вас есть, в данном случае у вас есть только local.
Нажмите создать новую базу данных, назовите её "thebestgame" или как вам угодно.

Для работы с кодом я рекомендую использовать NodPad++, но если хотите можете работать в блокноте(только потом не обижайтесь что у вас, ошибка с session_start() и какие то корявые символы в начале страницы).

Теперь давайте приступим к коду. Открываем папку “thebestgame” и создаём в ней файл “conf.php”.

В него записываем:
conf.php
Код
<?session_start(); // запускаем сессию
ini_set('session.save_path', $_SERVER['DOCUMENT_ROOT'] .'../sessions/'); //меняем место положение наших сессий(возможно на бесплатных хостингах работать не будет закомементируйте, если что)
ini_set('session.gc_maxlifetime', 120960); //долгая жизнь сессий
$dbhost = 'localhost'; //адрес хоста к mongodb
$dbname = 'thebestgame'; //имя базы данных

//подключение к mongodb
$m = new Mongo("mongodb://$dbhost");
$db = $m->$dbname;

//коллекций из которых делается выборка
$users = $db->users;
?>


С начала идёт функция session_start(); которая инициализирует данные сессии, в дальнейшем они нам пригодятся.

Через ini_set я устанавливаю настройки так что бы все сессий сохранялись у нас в “C:\WebServers\home\thebestgame\sessions\”.

Через следующий ini_set я устанавливаю настройки долговечности сессий.

После этого у нас идёт подключение к базе.

$dbhost – адрес сервера базы данных
$dbname – имя базы данных. Название базы не “thebestgame”, то стоит поменять название на то которое у вас.

После комментариев “Подключение к mongodb” у нас идёт функция подключения к серверу базы данных.

Ну а в конце указываются коллекций в которых делается выборка.
Коллекций – этакая замена таблицам.

После первой записи в БД коллекция users появится самостоятельно.

index.php
Код
<?
include 'conf.php'; //подключаем конфиг
$log_in = $users->findOne(array('login' => $_POST['login'], 'password' => $_POST['password'])); //делаем выборку по логину и паролю
if(isSet($_POST['log-in']) && $log_in && preg_match('/[0-9a-zA-Z]/', $_POST['password']) && preg_match('/[0-9a-zA-Z]/', $_POST['login'])){
$_SESSION['login_player'] = $_POST['login']; //записываем в сессию логин
echo '<script>
document.location.href = "http://25.120.133.229/game.php";
</script>';//и переходим на страницу с игрой
}
?>
<!DOCTYPE html>
<html>
<head>
<title>THE BEST GAME</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<form action="index.php" method="post">
<body>
<input type="text" placeholder="Login" name="login" class="textinputlogin"/>
<input type="password" placeholder="Password" name="password" class="textinputpassword"/>
<input type="submit" value="Войти" name="log-in" class="button"/>
<a href="reg.php" class="reg">Регистрация</a>
</form>
</body>
</html>

Про html я рассказывать не буду, про формы и дизайн вы сами должны всё прекрасно знать.

А вот про php я расскажу.
В начале у нас идёт include, это подключение другого скрипта, html, php, javascript – всё равно подключит. В данном случае подключается conf.php.

$log_in содержит в себе выборку данных из базы по логину и паролю.
Потом идёт уловие:
Если кнопка войти нажата, данные указанные в $log_in есть в базе, в логине и в пароле что-нибудь написано. Тогда заводим сессию с логином и перебрасываем на страницу с игрой.

Данные о логине и пароле передаются из формы(<form>) методом post(<form action=”index.php” method=”post”>), которые берутся из данных введённых пользователем в input login и input password.
Вместо моего 25.120.133.229(мой айпи в хамачи) вы должны поставить название вашей папки “thebestgame” или как-нибудь ещё.

Стили я вам дам без картинок, объяснять по ним ничего не буду, если вы пытались создать браузерные игры, наверняка вы думали что их надо делать на html+css. biggrin

style.css
Код
.textinputlogin{
position: fixed;
top: 40%;
left: 44%
}
.textinputpassword{
position: fixed;
top: 50%;
left: 44%
}
.button{
background: #eee;
position: fixed;
top: 60%;
left: 44%
}
.reg{
position: fixed;
top: 60%;
left: 49%
}
body{
background: #eee;
}


stylereg.css

Код
.textinputlogin{
position: fixed;
top: 20%;
left: 44%
}
.textinputpassword{
position: fixed;
top: 40%;
left: 44%
}
.textinputrepassword{
position: fixed;
top: 50%;
left: 44%
}
.textinputemail{
position: fixed;
top: 30%;
left: 44%
}
.button{
background: #eee;
position: fixed;
top: 60%;
left: 44%
}
body{
background: #eee;
}


Ну и у нас остался последний скрипт на сегодня. smile

reg.php

Код
<?
include 'conf.php'; //подключаем конфиг
if(isSet($_POST['regestration']) && $_POST['password'] == $_POST['repassword'] && preg_match('/[0-9a-zA-Z]/', $_POST['password'] && preg_match('/[0-9a-zA-Z]/', $_POST['login'])){
$users->insert( //запись в бд
array(
'login' => $_POST['login'], //логин пользователя
'password' => $_POST['password'], //пароль пользователя
'email' => $_POST['email'], //эмэйл пользователя
//основные характеристики персонажа
'charaster_class' => 0,
'lvl' => 0,
'xp' => 0,
'hp' => 0,
'mn' => 0,
//второстепенные характеристики персонажа
'strength' => 0,
'speed' => 0,
'intelligence' => 0,
'faith' => 0
));
$_SESSION['login_player'] = $_POST['login'];
echo '<script>
document.location.href = "http://25.120.133.229/charcreater.php";
</script>';//и переходим на страницу с с созданием персонажа
}
?>
<!DOCTYPE html>
<html>
<head>
<title>THE BEST GAME</title>
<link rel="stylesheet" type="text/css" href="stylereg.css">
</head>
<form action="reg.php" method="post">
<body>
<input type="text" placeholder="Login" name="login" class="textinputlogin"/>
<input type="email" placeholder="Email" name="email" class="textinputemail"/>
<input type="password" placeholder="Password" name="password" class="textinputpassword"/>
<input type="password" placeholder="Repeat password" name="repassword" class="textinputrepassword"/>
<input type="submit" value="Зарегистрироваться" name="regestration" class="button"/>
</form>
</body>
</html>

Html код почти такой же, там только изменены имена некоторых объектов, и некоторые объекты типа emai,l или повторения пароля были добавлены.

Перейдём к php.

В начале всё так же, подключён conf.php.

Дальше идёт условие:
Если кнопка зарегистрироваться нажата, пароль равен повторению пароля, и в логине с паролем чего-нибудь написано, тогда делаем запись в БД.

Записываем:
Login, который равен,введённому логину.
Password, который равен введённому паролю.
Email, который равен введённому эмейлу.
Про остальные вы узнаете в следующей части когда мы будем делать редактор персонажа, пока что они все по нулям.

Умникам, которые спросят почему ты не проверяешь что бы в эмейле что то было:
Ответ прост, если не будет написано name@email.com, без “@” и без домена, скрипт просто не пропустит.

Ну и вроде бы как всё.
До встречи, пошёл отдыхать. biggrin


Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)

Сообщение отредактировал last2424 - Четверг, 07 Августа 2014, 15:42
last2424Дата: Среда, 30 Июля 2014, 13:21 | Сообщение # 767 | Тема: Новые уроки по создание броузерной игры – 2.
30 мл. блоков
Сейчас нет на сайте
lvovand, не парься, просто не парься. happy

Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
last2424Дата: Среда, 30 Июля 2014, 12:44 | Сообщение # 768 | Тема: Новые уроки по создание броузерной игры – 2.
30 мл. блоков
Сейчас нет на сайте
Чатом? Прокачкой можно даже накрыть всё. Это сугубо моё личное мнение, что скуль для такого не подходит, если можете доказать что сможет выдержать, аргументы в студию. biggrin MongoDB, я использую не только во этой причине, он удобен, длиннющие строки на PHP(я очень криво обращаюсь с вызовами Mysql в PHP, у меня выходит на одна строчка на это), в то время, как на вызов MongoDB мне хватает одной строчки на то что бы просто сделать выборку из базы.

Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)

Сообщение отредактировал last2424 - Среда, 30 Июля 2014, 13:09
last2424Дата: Среда, 30 Июля 2014, 11:25 | Сообщение # 769 | Тема: Новые уроки по создание броузерной игры – 2.
30 мл. блоков
Сейчас нет на сайте
Assasin, да, верно, как всегда на высоте. biggrin
Но по сути HerrPotapov хотел аргументов к тому что Mysql не выдержит 1000 игроков.


Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)

Сообщение отредактировал last2424 - Среда, 30 Июля 2014, 11:44
last2424Дата: Среда, 30 Июля 2014, 09:43 | Сообщение # 770 | Тема: Новые уроки по создание броузерной игры – 2.
30 мл. блоков
Сейчас нет на сайте
liker, но опять же, она не реал-тайм. happy

Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)

Сообщение отредактировал last2424 - Среда, 30 Июля 2014, 10:02
last2424Дата: Среда, 30 Июля 2014, 09:36 | Сообщение # 771 | Тема: Новые уроки по создание броузерной игры – 2.
30 мл. блоков
Сейчас нет на сайте
Блин, зыбыл ответить на счёт реал-тайма, вон человечек 7 часов проснулся и отписался. biggrin
Нет, игра не реал-тайм. Зафига реал-тайм мморпг? Хотя бывают квесты здать которые надо в определённый час, но смысл тут парится?

Добавлено (30.07.2014, 09:36)
---------------------------------------------
P.S. пошёл пилить 3 часть. biggrin


Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)

Сообщение отредактировал last2424 - Среда, 30 Июля 2014, 09:29
last2424Дата: Среда, 30 Июля 2014, 00:38 | Сообщение # 772 | Тема: Новые уроки по создание броузерной игры – 2.
30 мл. блоков
Сейчас нет на сайте
Paugep, ну я думаю умный человек может понять, в первой части ведь было указано, что нужны хоть какие-нибудь знания.
Потому что я думаю что при изучении php, хоть раз ссылались на denwer. В крайнем случаю, можно почитать, посмотреть про эту систему.


Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
last2424Дата: Среда, 30 Июля 2014, 00:20 | Сообщение # 773 | Тема: Новые уроки по создание броузерной игры – 2.
30 мл. блоков
Сейчас нет на сайте
Paugep, хм, сейчас посмотрим.

Добавлено (30.07.2014, 00:20)
---------------------------------------------
Блин, надо скинуть не в C:\WebServers\denwer, а в C:\WebServers\. biggrin


Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
last2424Дата: Среда, 30 Июля 2014, 00:15 | Сообщение # 774 | Тема: Новые уроки по создание броузерной игры – 2.
30 мл. блоков
Сейчас нет на сайте
HerrPotapov, он сможет выдержать сразу 1000 запросов в секунду? Нет!

Каждую секунду с клиента на сервер отправляется запрос к базе данных. Таким образом получается место расположение и направление движения тех или иных игроков. Если игрок передвигается, то делается еще одно обращение к бд в котором производится запись о текущей точке расположения и точке в которую двигается игрок. Данная система проверенна и работает на ура, но проблема заключается в том, сто mysql не выдерживает такого количества запросов в секунду.

P.S. информация о том что не выдержит Mysql 100 игроков взята с другого, но достоверного источника.


Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)

Сообщение отредактировал last2424 - Среда, 30 Июля 2014, 00:41
last2424Дата: Среда, 30 Июля 2014, 00:05 | Сообщение # 775 | Тема: Новые уроки по создание броузерной игры – 2.
30 мл. блоков
Сейчас нет на сайте
HerrPotapov, ну в принципе я знаю как это делается, меня пока что бросает в ступор такая вещь, как сортировка. biggrin
Как записывать, обновлять, выводить всё знаю. JavaScript ещё.
P.S. а эти два слова случайно не "Sharding Introduction"?

Добавлено (30.07.2014, 00:05)
---------------------------------------------
HerrPotapov, на счёт мускуля, это не банально моя выдумка, ты считаешь что мускуль выдержить хотя бы 1000 игроков? biggrin


Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)

Сообщение отредактировал last2424 - Среда, 30 Июля 2014, 00:06
last2424Дата: Вторник, 29 Июля 2014, 23:34 | Сообщение # 776 | Тема: Новые уроки по создание броузерной игры – 2.
30 мл. блоков
Сейчас нет на сайте
ты папку mongodb выложил в denwer?
Переименуй скинутую папку в "mongodb".


Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)

Сообщение отредактировал last2424 - Вторник, 29 Июля 2014, 23:49
last2424Дата: Вторник, 29 Июля 2014, 23:12 | Сообщение # 777 | Тема: Новые уроки по создание броузерной игры – 2.
30 мл. блоков
Сейчас нет на сайте
Folleah, да, я соединил их. Мне очень линиво переустанавливать Denwer и MongoDB. biggrin

Добавлено (29.07.2014, 23:12)
---------------------------------------------
Folleah, Node.JS сам подсказывает что тут кроме HTML5 надо использовать JS.
Куда ты торопишься. Мы с Saitei уже думаем на счёт такого варианта, но опять же, не все хосты, машины поддерживают его.


Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)

Сообщение отредактировал last2424 - Вторник, 29 Июля 2014, 23:15
last2424Дата: Вторник, 29 Июля 2014, 22:55 | Сообщение # 778 | Тема: Новые уроки по создание броузерной игры – 2.
30 мл. блоков
Сейчас нет на сайте
DeadDay, ты бы знал что было когда я впервые XAMPP поставил, у меня был такой с ним кипеш, так и не смог его запустить. Denwer для меня удобен и мне комфортно с ним работать. Я в принципе не говорю что нужен именно Denwer, умеете пользоваться чем то другим - воляйте, только потом не жалуйтесь что у вас ошибки в коде из-за разных компиляторов.

Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)

Сообщение отредактировал last2424 - Вторник, 29 Июля 2014, 22:57
last2424Дата: Вторник, 29 Июля 2014, 22:52 | Сообщение # 779 | Тема: Новые уроки по создание броузерной игры – 2.
30 мл. блоков
Сейчас нет на сайте
Paugep, да нет. Не должно быть.
Нам в принципе функций которые есть только в PHP 5.3 не нужны.


Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)

Сообщение отредактировал last2424 - Вторник, 29 Июля 2014, 22:57
last2424Дата: Вторник, 29 Июля 2014, 22:49 | Сообщение # 780 | Тема: Новые уроки по создание броузерной игры – 2.
30 мл. блоков
Сейчас нет на сайте
Paugep, да, придётся. Если только, сейчас...

Добавлено (29.07.2014, 22:49)
---------------------------------------------
mongo-1.1.4-php5.2vc6ts поставь эту.


Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг