Tcp/ip между Unity и Python

Сеть в Unity3D

Tcp/ip между Unity и Python

Сообщение GrueGames 11 апр 2009, 17:31

Добрый день!
Открыл для себя Unity, почитал англоязычный форум, почитал ваш форум. По своему вопросу ничего не нашел :( Вот собственно вопрос:

Можно ли организовать передачу данных client-server между Unity и приложением на питоне?

Ситуация такая:
Сейчас наша небольшая команда использует Panda3d, начата разработка небольшого "некоммерческого/обучающего" ммо проекта. Начало положено есть зачатки клиента-сервера, пайплайн отработан. Я сам больше 3дшник чем программист, и так вышло что хорошо знаю только питон.

Unity очень понравился фичами/ценой/работой в браузере. Вчера скачал триал, поковырял потестил пайплайн - все подходит, чудо двиг. Заинтересовался. Но существующие ммо решения такие как smartfox не подходят: цены не для проекта нашего масштаба, и ориентировано не под питон.

Было бы очень перспективно на клиентской стороне использовать Unity, а на серверной - простой и ориенитрованный на скорость разработки питон. И хочется это как-нибудь "безболезненно" устроить. Объем передаваемых данных небольшой (реалтайм перемещение по тейлам, походовый бой). Никакой физики, колизий итд между сервером и клиентом передавать ненужно.
Вопрос: реально ли это. Насколько сложно? Хотелось бы обстоятельных рекомендаций, подходит ли Unity в нашей ситуации. Отлично было бы узреть какойнибудь пример, желательно попроще чем Networking tutorial с офф сайта.

Спасибо большое!!
Аватара пользователя
GrueGames
UNITрон
 
Сообщения: 200
Зарегистрирован: 11 апр 2009, 16:42
Откуда: Samara, Russia
  • Сайт
  • ICQ

Re: Tcp/ip между Unity и Python

Сообщение Neodrop 11 апр 2009, 18:07

Один из языков, поддерживаемых [unity 3D] Юнити - Boo. Это вариант Питона. Я не работал в нём, но почти наверняка в нём поддержены те функции, которые вы используете в Питоне.
Вы пробовали осмотреться в Boo ?
Второй вариант - использовать встроенное сетевое решение. Что мешает?
Третий вариант - использовать работу с TCP/IP используя методы C#.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Tcp/ip между Unity и Python

Сообщение GrueGames 11 апр 2009, 19:23

Большое спасибо что откликнулись!
Не думаю что буду использовать boo - это практически полное отсутствие информации, за исключением сайта разработчика. На сайте Unity информации по boo практически нет. Ситаксис похожий, но о быстром переносе кода на него даже речи нет, да и глупость: все примеры в которых придется разбираться - на js

Ваш ответ вызвал еще несколько вопросов по 2 и 3 пункту ;)

Встроенное сетевое решение: можно поподробнее?
Про третий вариант - опять же, можно поподробнее? Чем отличается от второго?
Например в разделе фич написано следующее:
Backend Connectivity
.NET socket libraries can be used for real-time networking, by opening TCP/IP sockets. Вот про это тоже хотелось бы подробнее.
Если я открою в питоне сокет и начну слушать какой либо порт, потом на него отправлю данные из unity, разве обмен данными не получится? Меня не пугает необходимость использовать шарп или js в клиенте, более того мне придется это делать. Но сервер на питоне - это очень желательно.
Аватара пользователя
GrueGames
UNITрон
 
Сообщения: 200
Зарегистрирован: 11 апр 2009, 16:42
Откуда: Samara, Russia
  • Сайт
  • ICQ

Re: Tcp/ip между Unity и Python

Сообщение Neodrop 11 апр 2009, 20:00

Ну конечно же, если вы пошлете данные на известный открытый порт, они будут получены.
С# с легкостью работает с сокетами и (даже) в отдельном потоке, так что особой проблемы это не составит.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Tcp/ip между Unity и Python

Сообщение GrueGames 11 апр 2009, 20:20

Спасибо большое. А, собственно, как это сделать в Unity?
Было бы _очень_ круто увидеть какой-нибудь пример!
Спасибо еще раз!!
Аватара пользователя
GrueGames
UNITрон
 
Сообщения: 200
Зарегистрирован: 11 апр 2009, 16:42
Откуда: Samara, Russia
  • Сайт
  • ICQ

Re: Tcp/ip между Unity и Python

Сообщение Neodrop 11 апр 2009, 21:21

Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Tcp/ip между Unity и Python

Сообщение GrueGames 11 апр 2009, 21:40

Спасибо! Буду разбираться
Аватара пользователя
GrueGames
UNITрон
 
Сообщения: 200
Зарегистрирован: 11 апр 2009, 16:42
Откуда: Samara, Russia
  • Сайт
  • ICQ

Re: Tcp/ip между Unity и Python

Сообщение Neodrop 12 апр 2009, 01:13

Встроенное сетевое решение это Сервер/Клиент на базе РакНет. Работает отлично. Писать, используя его, очень и очень просто. Но не сильно силен в плане единовременных коннектов. В зависимости от нагруженности самого Сервера (программы) от 500 до 1000 единовременных коннектов.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Tcp/ip между Unity и Python

Сообщение GrueGames 12 апр 2009, 03:42

Вот теперь вы меня запутали окончательно :(
Нужно устанавливать Roknet в качестве сервера? Какие ситуации покрывает его (Roknet) лицензия Indie, какие нет? Чем вызван такой "несовременый" лимит на пользователей? Или обе стороны это Unity?
Где можно почитать информацию об этом? Артихектура? Примеры кода?

Ткните, пожалуйста, меня носом в пример кода, тутор какой-нибудь.! Это тот самый Networking туториал, его ковырять?

Если делать сервер на Unity, очень пригодился бы пример такого плана: 2 скрипта: клиент, сервер. Клиент передает переменную на сервер. Сервер просматривает данные в памяти, загруженные при старте с жесткого диска или sql базы, сравнивает с ними переменную, отвечает серверу на основе сравнения. Я бы от этого плясал уже.

Спасибо!!!
Аватара пользователя
GrueGames
UNITрон
 
Сообщения: 200
Зарегистрирован: 11 апр 2009, 16:42
Откуда: Samara, Russia
  • Сайт
  • ICQ

Re: Tcp/ip между Unity и Python

Сообщение Neodrop 12 апр 2009, 04:18

Ничего устанавливать не нужно. Никаких ограничений нет.
Сравнительно небольшое колличество коннектов не проверено, это только разговоры на forum.unity3d.com, думаю тут сильно все зависит от конкретной реализации. Для пошаговой игры точно хватит для начала.
Примеры : именно Networking Demo там готовая имплементация Сервер/Клиента.
Не ищите в [unity 3D] Юнити отдельные функции для Сервера и для Клиента. Они одинаково работоспособны в обоих вариантах, поэтому разделения нет, что, видимо и является для вас преградой на начальном этапе чтения кода. Когда разберетесь, сами поразитесь как все просто и удобно.
Исходный код Мастер-Сервера есть на сайте Unity3D.com
Но можно написать его и прямо в Юнити. Сервер можно запустить даже прямо в броузерной композиции.
Работу с файлами и БД вам писать самостоятельно. Примеров именно этой части сетевой работы, нет. C# и JavaScript позволяют писать и читать с диска, а так же работать с БД (шарп точно).
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Tcp/ip между Unity и Python

Сообщение GrueGames 12 апр 2009, 05:07

Большое спасибо, вы очень помогли!
Попробую реализовать сервер на Unity, сел разбираться.
Аватара пользователя
GrueGames
UNITрон
 
Сообщения: 200
Зарегистрирован: 11 апр 2009, 16:42
Откуда: Samara, Russia
  • Сайт
  • ICQ

Re: Tcp/ip между Unity и Python

Сообщение Mr_Anderson 21 апр 2009, 08:03

Интересная тема :)... еще один нубский вопрос: если ли у юнити библиотеки для встраивания юнитевских сетевых фреймворков в другие приложения, или в своих приложениях (на C#) можно только TCP/IP использовать для обмена данными с приложением на юнити?
Mr_Anderson
UNIт
 
Сообщения: 143
Зарегистрирован: 16 апр 2009, 13:32

Re: Tcp/ip между Unity и Python

Сообщение Neodrop 21 апр 2009, 14:04

Нет таких библиотек. Нужно писать свои дополнения на C#. Есть много методов связать два приложения. Копайте справку MSDN.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт


Вернуться в Сеть

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2