Комментарии 39
Суховатенько. Выложите то что уже есть. Цитирую: «У нас на руках — вполне полнофункциональная игра, в которую уже сейчас можно играть»
Процесс и его описание интересно, но не стрельба ли это из пушки по воробьям? Более чем достаточно браузерных ресурсов, без работы с графическими библиотеками.
После десяти лет JavaScript’а иногда хочется развлечься hello-world’ом на C#, с OpenGL пыль сдуть.
К слову, не совсем ясно, почему компилируемый в байткод язык + фреймворк + специально предназначенная для графики библиотека, поддерживаемая на аппаратном уровне, — это пушка; а вот интерпретируемый язык, выполняемый в окружении браузера + манипуляции текстовыми компонентами при помощи языка оформления текстовых страниц — это не пушка. Про воробья-то не спорю.
Потому что мощности много, она не используется полностью, но это ладно; главное — для каждой платформы вынуждены компилировать свою программу. Браузерная игра будет один раз на все платформы написана, мощности заведомо хватит, компилировать не нужно (только думать, как без сервера запустить с сохранениями данных, если это надо).
На C#/.NET как раз не надо перекомпилировать, главное, чтобы у клиента стоял соответствующий браузер фреймворк.
Я когда картинку увидел, сразу вот что вспомнил.
image
А вы говорите GL, C#… На ассемблере игрушка такого плана еще более колоритно бы смотрелась.
Было дело, да; но как-то скучно в 2011 году использовать те же самые инструменты, что в 1996. Опять же, мама текстовый режим не оценит.

Книжка, кстати, хорошая вышла в 1983 году, «Программирование игр и головоломок»; в ней не раз примечания делались, что, мол, эта игра особенно хорошо будет смотреться на цветном мониторе, а если вы к тому же мажор и у вас графический режим есть…
Странно, что базовый класс окна называется GameWindow, OpenGL ведь не только для игр.
Это надстроечка из OpenTK, не чистый OpenGL; но почему называется GameWindow, действительно непонятно, OpenTK не позиционируется как только/преимущественно для игр.
Кстати, как вам последний OpenTK? Нашли какие-нибудь баги-глюки?
Метод OnKeyDown базового класса GameWindow почему-то никогда не вызывается, пришлось цепляться к Keyboard.KeyDown; а так вроде всё нормально, но здесь, как видите, пока мало что задействовано.
C# + OpenGL?
Странное сочетание. Для C# (тем более для такой простой игры) лучше брать XNA, тогда получается кросс-платформа Windows-XboX-WinPhone.
А для OpenGL лучше взять что-нибудь более кроссплатформенное, чем C# — С++/Java/Python.
XNA, я боюсь, не заработает под Arch Linux, например.

Чем Java кроссплатформеннее? OpenTK заявляет поддержку Windows, Linux, Mac OS X (под последней не проверял).
Java на всех платформах от одного производителя, а C# — от разных.
Так и что же? Браузеры, допустим, тоже все от разных производителей, что теперь, HTML не использовать?

C#, к слову, меня первый из компилируемых языков действительно впечатлил кроссплатформенностью. Сделал проект в Visual C# Express под Windows, открыл в MonoDevelop под Arch Linux — запустился сразу, вообще без необходимости что бы то ни было настраивать. Более того, исполняемый файл, который получился под Linux’ом, в Windows запустился за милую душу. Вот это я понимаю: кроссплатформенность.
Год назад Mono был установлен где-то на четверти компьютеров с линукс (сейчас должно быть больше, но я думаю, что меньше 50%). Python — на 97%.
Мне встречались игры, написанные на Python, которые распространялись сразу с интерпретатором и на 100% работоспособные после обычного копирования. Может ли таким же успехом похвастаться Mono?
Кстати, в попытках найти игру (см. вступление к статье) встречал как раз аналогичную игру, сделанную на Python. Ох и пришлось помучиться, чтобы её смогли люди с рабочего стола запускать! От чёрного окошка командной строки, висящего в фоне, так и не удалось избавиться.
Кстати, о кросс-платформенности C# и Java. Если вы захотите портировать свою игру на Android, который основан на Linux, какой из этих языков предпочтительнее?
Про разработку под Android ничего не знаю, слышал только краем уха, что там Java за основу взята.
Приложение, написанное на C#, можно запустить под Android (Mono for Android), iOS (MonoTouch) и под WP7 (нативно).
Приложение на Java запустится только под Android.
Java, к слову, меня первый из компилируемых языков действительно впечатлил кроссплатформенностью. Сделал GUI проект в NetBeans (бесплатный), открыл в Windows, Ubuntu, Mac — одинаковый результат. Более того, исполняемый файл, который получился запускался везде за милую душу без единых изменений )
НЛО прилетело и опубликовало эту надпись здесь
Когда пишут кросс-платформа про ПО, тогда имеют в виду вин и никсы, но когда говорят про кросс-платформу (или мультиплатформу) для игр, обычно имеют в виду PC и консоли.
НЛО прилетело и опубликовало эту надпись здесь
Скажем так, в случае XNA здесь и такой кроссплатформенности не будет: под PlayStation-то не заработает.
Если рассматривать количество устройств, на которых можно запустить игру, то Xbox и даже Windows Phone 7 явно предпочтительнее, чем Linux.
Есть проект MonoGame (делают реализацию XNA поверх OpenGL, говорят, что работает на iOS, андройде, макоси и линуксе). Ещё есть билды моно на PS3 (их, правда, сложно достать, они под свободными лицензиями не распространяются). При желании можете подружить первое со вторым, всё в ваших руках.
Интересно, сколько лет пройдет, прежде чем glVertex перестанет мелькать перед моими глазами? :)
А чем обусловлен выбор 2.0 фреймворка? Он чуточку устарел к 2011му году за 6 лет то.
Проект не требует более высокую версию, а значит, незачем её выбирать. (Если бы проект не компилировался, то я выбрал бы другую версию.) Как следствие, люди, у которых стоит чуточку устаревший фреймворк 2.0, смогут запустить приложение без необходимости обновлять фреймворк.
Просто что касемо игр, даже небольших инди проектов, то +-20Mb к проекту не остановят игрока от игры. А более высокая версия вполне может дать больше перформанса.
Хотя я не в курсе того, что находиться в тех необъятных объемах вышедших к 2.0 Service Update'ов.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.