Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование игр, графики и искусственного интеллекта > Вопрос про возможности игр


Автор: Proud 20.2.2012, 20:25
Добрый вечер, день, утро, уважаемые любители и профессионалы программированияsmile
Есть несколько жизненноважных вопросов к гуру языковsmile

Перейдем к делу: есть небольшая идея по созданию приложения в контакте, основная суть в нем то что игроки будут соперничать в реальном времени друг с другом, игра скорее всего будет довольно простой... Возможно ли это создать, на каком лучше языке программирования это делать и насколько сейчас технологии позволяют КОМФОРТНО соперничать друг с другом в реальном времени именно в контакте???

Так же вопрос, если это не получится сделать приложением в контакте, на каком языке програмирования стоит делать данный проект, что бы потом его интегрировать в сайт?!

Буду премного благодарен ответам, уточняющим вопросам и обсуждениям, так как все находится в зачаточном состоянии и любая информация и мысль способна помочь!

Всем заранее спасибо!!!


Автор: SEvg 21.2.2012, 14:39
Обычно на подобные вопросы отвечают так: "какой язык лучше знаешь на том ипиши".

А вобще, узнай на чём сделаны игры в контакте - на том и делай.

Автор: KaraKum 22.2.2012, 16:36
Это проблема, которую я сейчас для себя решаю smile
Решаю очень просто - реализовываю свой язык программирования smile

Суть проблемы в следующем: многопользовательский real-time реализовывается посредством прогона игровой логики одновременно на сервере и всех клиентах с очень частым обновлением (10-15 раз в секунду), что позволяет сократить пинг с помощью предсказаний и прочего. Это весьма общирная тема и о ней следует читать в-отдельности (например из статей Tim'a Sweeny (создателя Unreal Tournament), инноватором является John Carmack) - в этом много тонкостей и большое поле для работы (ping compensation, dead reckoning...).
Так вот, чтобы была возможность прокручивать игровую логику И на клиенте И на сервере - она должна быть написана на таком языке, который можно скомпилять И для клиента И для сервера.
Пример моего случая: у меня сервер на C++, а клиент Unity3D (можно выбрать между JS, AS3, C#).
Я пытался использовать для этого язык HaXe, но он не подошёл даже после модификаций.

Ко всему прочему в real-time мультиплеерных играх можно использовать только UDP для соединения (причины также можно найти в статьях), поэтому Flash (AS3) не подходит. В Unity3D есть UDP, поэтому и выбрал его. Хотя Adobe обещает ввести в своём следующем релизе возможность использования UDP (правда это будет весьма хитро реализовано).

Автор: ksnk 22.2.2012, 17:07
Цитата(KaraKum @  22.2.2012,  16:36 Найти цитируемый пост)
Решаю очень просто - реализовываю свой язык программирования

Оригинальный подход... В свое время мир тоже создавался простыми словами "да будет свет". Правда до появления копьютеров прошло довольно много времени  smile 

Цитата(KaraKum @  22.2.2012,  16:36 Найти цитируемый пост)
Unity3D 

Unity - это JavaScript или/и С#. Вот и ограничение.

На C# несложно слепить серверное приложение, вроде... Так что он вполне себе самодостаточен. 

Mожно ограничится JS для серверных и клиентских узлов, так как на сервере можно ставить Node.js, а клиент Unity очень прилично лопает скрипты на Js. При такой компоновке несложно перекидывать логику с сервера на клиента и обратно, если понадобится.

Другое дело, что писать серверные приложения на Node.Js народ, в основном, опасается, так как очень просто словить сильно неочевидные ошибки с освобождением памяти. Можно почитать про отзывы разработчиков NodeJs. Впрочем, удобнее верить в лучшее  smile 

Есть еще мультиплатформенный клиент - Marmalade - очень приличная платформа, которая основана на С++. Правда она идет за деньги...
Зато она действительно кроссплатформенна... И на С++ чего только не написано...



Автор: KaraKum 22.2.2012, 17:35
Цитата(ksnk @  22.2.2012,  18:07 Найти цитируемый пост)
На C# несложно слепить серверное приложение, вроде...

Да и более того - Unity3D идёт с уже готовым сервером. Здесь нужно вдаваться в подробности задуманной игры TS'а. Лично для моей задачи какие-либо managed языки не подошли - слишком медленно. Ну а если планируется реализовать мультиплеер с 8-32 игроками на карте, то вполне, вполне (есть даже такая игра на facebook'е).

P.S. : 
Цитата(ksnk @  22.2.2012,  18:07 Найти цитируемый пост)
Оригинальный подход... В свое время мир тоже создавался простыми словами "да будет свет"

Это не так сложно как кажется  smile . Domain-specific языков, пожалуй, столько же сколько и программистов, а с современными boost::spirit - это ещё проще.

Автор: Proud 25.2.2012, 21:50
Да ребят.... очень много новых терминов для меня и новых понятий, но что-то я подчерпнул для себя...

В общем, ребят подведите пожалуйста черту: НА КАКОЙ ПЛАТФОРМЕ ДЕЛАТЬ ИГРУ - например ТЕННИС ВКОНТАКТЕ, что бы ничего не тормозило?! 

Дайте пару советов или наставлений, где искать исполнителей? и как их искать?

Автор: ksnk 25.2.2012, 22:46
http://habrahabr.ru/blogs/gdev/138811/ на хабре проскочила. Так что нужно писать на Unity, а все остальное приложится. ;)

Вконтакте будут флешовый клиент, на сервере что удобнее/что получится...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)