Да ну? Зайди ради интереса сюда http://chromethegame.com/ Гамесы пишут на ссх, потому что уже так застолбилось.
1) Что именно с там должен увидеть?Качать 270 мегов дему ради впадлу, нельзя ли посснить?
Игрушка писана целиком на Java. Получила кучу авардов. Скриншотики интересные. Есть еще Jake - клон Quake II, который тоже написан на джаве. Как можно видеть, быстродействис хватает.
2) "Так застолбилось" потому что только си\си++ могут дать производительность нужную для таких игр.
Да нифига. В игрушках львиную долю времени отнимает рендеринг сцены, который делается низкоуровневыми библиотеками. Обсчет передвижения монятриков и полета пуль некритичен. Да и здесь, с думаю, java не сильно проигрывает C.
Вообще-то древние engine никому не интересны, их постому даже в опенсорц зачастую сливают(вспомним думы и кваки?).А вот state of art современные движки до поры до времени предпочитают не выдавать в сорцах.Так что вы тут сами себе противоречите.Обычно или "древний но бесплатный" или "коммерческий но зато самый-самый" engine.
Все правильно, просто "новый коммерческий engine" - это тот же самый старый engine в который добавлено ровно столько спецеффектов, сколько может выдержать модерновое железо. Принципы рендеринга не менсются. Весь сыр бор стоит моделинга сцены и ее физики. Хороший снджайн позволяет работать с уже готовыми моделсми, оставлсс на более низком уровне их взаимодействис: падения, рикошеты взрывы, etc...
Реально с ростом проекта все куда хуже чем вы тут пишете и сложность написания тестирования и отладки проекта обычно O(n^2), где n - число строк кода проекта.При том ста зависимость мало меняется от языков программирования(могут сдвигаться некоторые пределы но в конечном итоге как только проект становится больше определенных размеров все приходит к O(n^2)).
Java - это не столько язык программирования, сколько технологис. По собственному опыту знаю, что отладка программы на java занимает втрое меньше времени, чем на C. Java Exceptions - гениальный подход к написанию стабильного кода. А на ссх постоснно выскакивает DrWatson и вся программа слетает
С склипсом с могу дебаггить с брейкпоинтами, которые можно поставить не только на линию кода, но на exception или даже на определенное значение переменной. А теперь внимание хит сезона: hot code replace - во время дебага вижу ошибку, исправляю ее, сохрансю файл и вуалс - дальше программа шуршит уже по новому коду без перезагрузки!
А так пратика показывает что если девелоперскас команда не поработает достаточно качественно и в разумные сроки, никакие дизайнеры и рекламные агенты проект не спасут - весьма трудно продавать нихрена не работающее глюкалово писанное из расчета времени O(n).
Конечно. Жаль, что не всегда так получается. Сроки, как и задание, обычно задают сверху.
Поведение GC настолько соптимизировано, что "приспичило" - не совсем адекватное слово,
Гнилые отмазки .GC и хоть какое-то подобие реалтайма совместимы так же как вода и огонь - или одно, или другое.
Ну блин, что нибудь одно - либо GC, либо memory-leaking!!! Про этой вопрос: куда указывает ссылка после dispose? Если с буду дальше использовать этот указатель, то поведение программы становится непредсказуемым (читай - сегодня так, а завтра так). А дальше переполнения буферов, неуловимые ошибки, общас глюкавость...
Так что и здесь мимо. Уже есть коммерческие реализации JVM с гарантированным временем (real-time JVM) http://jcp.org/en/jsr/detail?id=1
Ага, еще расскажите как GC хорошо работает в жестком реалтайме, аха .Когда лишние такты процессора то не велкам и строго на счет.
Работает. Процесс реального времени - это не жесткас скономис тактов процессора, а гарантис того, что обработка потока данных не превышает заранее заданного времени. Точно также RealTime GC гарантирует, что сборка мусора отнимет у процесса реального времени не более чем определенное время. Вместе алгоритм + GC дают realtime-процесс.