"Сочувствие Z" исходник мультиплеерной игры Вконтакте.
Добавлено: 07 окт 2013, 13:38
Игра сделана на этом исходнике Teddy W viewtopic.php?f=13&t=18853#p134974 Сеть - Встроенная сеть Юнити, Мастер Сервер
Расшариваю старую версию игры, а не ту которая чистовая. Главное комуникации с апи контакта и базой в старой и новой не отличаются.. Что здесь есть по функциям Контакта:
1. На веб странице - получение id контакта, password контакта, имени, фамилии игрока контакта (из API) и передача в юнити.
2. Запись в БД MySQL на хосте id, password , имени , фамилии полученной из контакта
3. Запись покупки оружия в БД MySQL- типа оружия.
4. Запись колличества убитых за игру зомби в БД MySQL. Событие - нажатие клавиши ESC.
5. PHP Скрипт таблицы рекордов, который возвращает в юнити - имя, фамилию игрока и количество убитых зомби в порядке убывания.
6. Печеньки. (Нет печенек нет - за печеньками Вконтакт)
http://i.piccy.info/i8/409e04159334457c ... 255/bd.jpg
Загрузка сцены происходит из бандлов - менее 30 мб.
Запускать игру из папки Main/Network/Appstart и там 3 сцены последовательно в билде. Все написано по рабоче крестьянски.
Демо веб плеер под спойлером
Исходник 300 мб v. Unity 4.1.2 winXP
Бандлы ставяться в скрипте "Bundles" на сцене "Mycorrect" на го _SpawnMap
Там какой то layer в настройках может быть не правильно выставлен - какие то динамически е объекты могут не иметь колайдера.
Когда ставите свою сцену очистите мой бейк навмеша (работает только на про версии из за навмеша) в бейке короче удалите тот который был и бейкайте свою сцену. Это навмеш для АИ зомби.
Покупку оружия и отображение сообщений на оружии придется доработать. Сейчас он на шару дает все оружие - надо залочить в зависимости от количества очков. Переключение оружия по кнопкам 1,2,3,4,5. Но в базу он сохраняет кореектно по событию подбора оружия.
Файл который идет в настройки приложения - с которого снимается апи контакта timezed.html - с него происходит игра. Тол есть делаете билд переименовываете его в _house.unity3d и запускаете его файлом timezed.html . Эти файлы как пример находятся в архиве в папке WEB
и в этой же папке в подпапке "_phptimez" лежат все php скрипты которые используются в игре. вы в исходнике просто можете найти путь в глобальных переменных к каждому такому скрипту на хосте(чтоб сделать у себя так же) В пхп скриптах я затер свои реквизиты базы -то есть там ставьте свои. Например на моем хосте для указания хоста надо было писать localhost (это редко) У вас скорее всего на хостинге укажут какой будет хост для базы MySQL какой юсер наме и имя базы. и на хост забросте файл кродомен в папку с пхп скриптами - без него не будет доступа.
registr.php - для регистрации юсера в базе по контакт ай ди контакт пасворд - затем запись в базу имени и фамилии необходимых для таблицы рекордов а так же получения начальной инфы о убитых зомби - настрелянных в предыдущих играх. Сначала имя и фамилию получаем с веб страницы от апи контакта и сразу же запускаем этот скрипт пхп и регистрируем имена в базе
weap66.php - записывает оружие когда юсер его покупает. Купил пистолет - значит пишется в базу - он его купил
poin6.php - это типа записи очков - он пишет количество убитых игроком зомби - по событию нажатие клавиши еск
records.php - скрипт таблицы рекордов - просто передаем в юнити отсорированный по определенному полю массив первых 100 пользователей.
структура базы (поля)
http://i.piccy.info/i8/409e04159334457c ... 255/bd.jpg
Тут все поля понятны кроме Walter AK47 AK74 M4 LR300 - это поля для покупки оружия. Если купили Walter заносим в это поле цифру 10 - это признак что оружие куплено, а по умолчанию 1. Поля points и more лишние - они не используются.
В новой версии я еще сделал обновление списка серверов по таймеру - через 10 секунд - а здесь обновления нет. То есть динамику не покажет.
В папке MAP находятся пресловутые бандлы сцены - но нового бандла который сносит весь фпс там нет.
Бандл с новой версии игры тут (пока что) http://3dsocialnettest.ru/zomby/mapz.unity3d
Cцену бандл я делал из префаба MyCorrect (щас ее там нет) находиться в папке Network
В этой версии не сделан выбор персонажей. У него там всего 6 персонажей готовых но из них работает только 3 (готовых) плеер тес маил 1 - плеер тест маил2 - плеер тест маил оптимайзед1 - но проверьте - на них поставьте таг Player иначе пахать не будут.
Ну для работы АИ не забывайте делать навмеш бейк вашего терана.
Гейм объект который принимает в статик переменные инфу из АПИ контакта -имена ид и пр называется Kontakt - он на первой сцене.
И само меню игры там нечетко отлажено.
И вроде там еще плохо с отображением имени - я его потом переделывал. Оно по высоте неправильно показывается - там первое что установите в скрипте дроу наме в переменную таргет сам гейм объект на котором скрипт - то есть определяет положение имени над игроком.
Еще кнопка играть на возврате глючит.
Также по самому исходнику - там не сделана синхронизация зомби. Они конечно по сети, но синхронизации никакой - не надейтесь (гоняются за таогм плеер - при том что таги плеер у всех игроков). Затем нет никакой синхронизации по стрельбе - только бег и ходьба персонажа. Я даже в новом не сделал нормальную синхронизацию стрельбы - только звук выстрела.
Также учтите, что база будет работать только в связке с АПИ контакта. Потому что если не будет ай ди и пасворта - то ему просто некуда будет писать
Это вроде все что вспомнил. Больше ниче в теме размусоливать не буду (типа учить- отвечать) если только что то очень важное.
Затем смотрите демо находиться тут
http://3dsocialnettest.ru/zombytest/timezed.html
Это уже страница подготовленная для апи контакта. Вы можете ее задать в своем приложении и у вас игра будет работать с использованием апи - отображение имени и т д
Например вот так http://vk.com/app3920272
скрипт таблицы рекордов
Расшариваю старую версию игры, а не ту которая чистовая. Главное комуникации с апи контакта и базой в старой и новой не отличаются.. Что здесь есть по функциям Контакта:
1. На веб странице - получение id контакта, password контакта, имени, фамилии игрока контакта (из API) и передача в юнити.
2. Запись в БД MySQL на хосте id, password , имени , фамилии полученной из контакта
3. Запись покупки оружия в БД MySQL- типа оружия.
4. Запись колличества убитых за игру зомби в БД MySQL. Событие - нажатие клавиши ESC.
5. PHP Скрипт таблицы рекордов, который возвращает в юнити - имя, фамилию игрока и количество убитых зомби в порядке убывания.
6. Печеньки. (Нет печенек нет - за печеньками Вконтакт)
http://i.piccy.info/i8/409e04159334457c ... 255/bd.jpg
Загрузка сцены происходит из бандлов - менее 30 мб.
Запускать игру из папки Main/Network/Appstart и там 3 сцены последовательно в билде. Все написано по рабоче крестьянски.
Демо веб плеер под спойлером
Скрытый текст:
Исходник 300 мб v. Unity 4.1.2 winXP
Бандлы ставяться в скрипте "Bundles" на сцене "Mycorrect" на го _SpawnMap
Там какой то layer в настройках может быть не правильно выставлен - какие то динамически е объекты могут не иметь колайдера.
Когда ставите свою сцену очистите мой бейк навмеша (работает только на про версии из за навмеша) в бейке короче удалите тот который был и бейкайте свою сцену. Это навмеш для АИ зомби.
Покупку оружия и отображение сообщений на оружии придется доработать. Сейчас он на шару дает все оружие - надо залочить в зависимости от количества очков. Переключение оружия по кнопкам 1,2,3,4,5. Но в базу он сохраняет кореектно по событию подбора оружия.
Файл который идет в настройки приложения - с которого снимается апи контакта timezed.html - с него происходит игра. Тол есть делаете билд переименовываете его в _house.unity3d и запускаете его файлом timezed.html . Эти файлы как пример находятся в архиве в папке WEB
и в этой же папке в подпапке "_phptimez" лежат все php скрипты которые используются в игре. вы в исходнике просто можете найти путь в глобальных переменных к каждому такому скрипту на хосте(чтоб сделать у себя так же) В пхп скриптах я затер свои реквизиты базы -то есть там ставьте свои. Например на моем хосте для указания хоста надо было писать localhost (это редко) У вас скорее всего на хостинге укажут какой будет хост для базы MySQL какой юсер наме и имя базы. и на хост забросте файл кродомен в папку с пхп скриптами - без него не будет доступа.
registr.php - для регистрации юсера в базе по контакт ай ди контакт пасворд - затем запись в базу имени и фамилии необходимых для таблицы рекордов а так же получения начальной инфы о убитых зомби - настрелянных в предыдущих играх. Сначала имя и фамилию получаем с веб страницы от апи контакта и сразу же запускаем этот скрипт пхп и регистрируем имена в базе
weap66.php - записывает оружие когда юсер его покупает. Купил пистолет - значит пишется в базу - он его купил
poin6.php - это типа записи очков - он пишет количество убитых игроком зомби - по событию нажатие клавиши еск
records.php - скрипт таблицы рекордов - просто передаем в юнити отсорированный по определенному полю массив первых 100 пользователей.
структура базы (поля)
http://i.piccy.info/i8/409e04159334457c ... 255/bd.jpg
Тут все поля понятны кроме Walter AK47 AK74 M4 LR300 - это поля для покупки оружия. Если купили Walter заносим в это поле цифру 10 - это признак что оружие куплено, а по умолчанию 1. Поля points и more лишние - они не используются.
В новой версии я еще сделал обновление списка серверов по таймеру - через 10 секунд - а здесь обновления нет. То есть динамику не покажет.
В папке MAP находятся пресловутые бандлы сцены - но нового бандла который сносит весь фпс там нет.
Бандл с новой версии игры тут (пока что) http://3dsocialnettest.ru/zomby/mapz.unity3d
Cцену бандл я делал из префаба MyCorrect (щас ее там нет) находиться в папке Network
В этой версии не сделан выбор персонажей. У него там всего 6 персонажей готовых но из них работает только 3 (готовых) плеер тес маил 1 - плеер тест маил2 - плеер тест маил оптимайзед1 - но проверьте - на них поставьте таг Player иначе пахать не будут.
Ну для работы АИ не забывайте делать навмеш бейк вашего терана.
Гейм объект который принимает в статик переменные инфу из АПИ контакта -имена ид и пр называется Kontakt - он на первой сцене.
И само меню игры там нечетко отлажено.
И вроде там еще плохо с отображением имени - я его потом переделывал. Оно по высоте неправильно показывается - там первое что установите в скрипте дроу наме в переменную таргет сам гейм объект на котором скрипт - то есть определяет положение имени над игроком.
Еще кнопка играть на возврате глючит.
Также по самому исходнику - там не сделана синхронизация зомби. Они конечно по сети, но синхронизации никакой - не надейтесь (гоняются за таогм плеер - при том что таги плеер у всех игроков). Затем нет никакой синхронизации по стрельбе - только бег и ходьба персонажа. Я даже в новом не сделал нормальную синхронизацию стрельбы - только звук выстрела.
Также учтите, что база будет работать только в связке с АПИ контакта. Потому что если не будет ай ди и пасворта - то ему просто некуда будет писать
Это вроде все что вспомнил. Больше ниче в теме размусоливать не буду (типа учить- отвечать) если только что то очень важное.
Затем смотрите демо находиться тут
http://3dsocialnettest.ru/zombytest/timezed.html
Это уже страница подготовленная для апи контакта. Вы можете ее задать в своем приложении и у вас игра будет работать с использованием апи - отображение имени и т д
Например вот так http://vk.com/app3920272
скрипт таблицы рекордов
Синтаксис:
Используется javascript
<?php
$con=mysqli_connect("localhost","username","password","dbname");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con, "SELECT * FROM members ORDER BY zomby DESC LIMIT 100");
while($row = mysqli_fetch_array($result))
{
echo $row['firstname'];
echo " " . $row['secondname'];
echo " " . $row['zomby'];
echo "\r\n";
}
//mysqli_close($con);
?>
$con=mysqli_connect("localhost","username","password","dbname");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con, "SELECT * FROM members ORDER BY zomby DESC LIMIT 100");
while($row = mysqli_fetch_array($result))
{
echo $row['firstname'];
echo " " . $row['secondname'];
echo " " . $row['zomby'];
echo "\r\n";
}
//mysqli_close($con);
?>