Comments 50
Статья понравилась, очень жаль что в свое время эксперементировал не с Java, а с Delphi, в результате через некоторое время ему настал конец в геймдеве.
P.S. При комбинации клавиш «Alt + Print Screen» будет захвачено только активное окно и не будет необходимости резать скриншоты.
P.S. При комбинации клавиш «Alt + Print Screen» будет захвачено только активное окно и не будет необходимости резать скриншоты.
0
Спасибо, насчет скриншотов учту, а сейчас фоткал с помощью Gyazo.
0
UFO just landed and posted this here
А я как раз таки наоборот, очень рад что не связался с джавой =) на делфи, кстати, можно легко писать казуалки, в том числе и тридешные (ну это я еще о том времени, когда люди ставили игры на комп, а не играли в социалках), да и в любом случае, нативный код будет быстрее чем джавовский через ВМ, а в играх это довольно критично.
И в качестве оффтопика (надеюсь меня не забрасают тапками, но меня действительно волнует эта тема). Кроме того что в играх важна скорость реакции, она так же важна и в любых других приложениях, а в особенности мне, как программисту, хочется скорости и гибкости среды разработки, в которой я работаю (пишу на флеше и js). Так вот, я не понимаю, как стали столь популярными IDE на основе еклипса? С огромнейшим контекстным меню, с кучей всяких не особо полезных и не всегда работающих штук, аля комбайн. Может быть я как то не правильно пользуюсь ими? Даже вебшторм подтормаживает, когда в процессе прокрутки попробовать открыть контекстное меню (MBA 2011). Быть может правильно использовать данные программы для того же C++ или самой Java? Но непонятно, почему тогда те же JetBrains используют ее для своих продуктов? И самым недоразумением во всей этой компании для меня является Flash Builder. Почему Adobe не написали на том же ейр удобный и заточенный именно под флеш инструмент? Еще в эклипсе предусмотрен механизм установки плагинов, но почему он такой не прозрачный и непонятный? почему нет маркета какого-то по категориям например?
Заранее благодарю за ответ на мою эмоциональную простыню и готов признать, что я предосудительно отношусь к ПО на java в случае приведения рациональных аргументов)
И в качестве оффтопика (надеюсь меня не забрасают тапками, но меня действительно волнует эта тема). Кроме того что в играх важна скорость реакции, она так же важна и в любых других приложениях, а в особенности мне, как программисту, хочется скорости и гибкости среды разработки, в которой я работаю (пишу на флеше и js). Так вот, я не понимаю, как стали столь популярными IDE на основе еклипса? С огромнейшим контекстным меню, с кучей всяких не особо полезных и не всегда работающих штук, аля комбайн. Может быть я как то не правильно пользуюсь ими? Даже вебшторм подтормаживает, когда в процессе прокрутки попробовать открыть контекстное меню (MBA 2011). Быть может правильно использовать данные программы для того же C++ или самой Java? Но непонятно, почему тогда те же JetBrains используют ее для своих продуктов? И самым недоразумением во всей этой компании для меня является Flash Builder. Почему Adobe не написали на том же ейр удобный и заточенный именно под флеш инструмент? Еще в эклипсе предусмотрен механизм установки плагинов, но почему он такой не прозрачный и непонятный? почему нет маркета какого-то по категориям например?
Заранее благодарю за ответ на мою эмоциональную простыню и готов признать, что я предосудительно отношусь к ПО на java в случае приведения рациональных аргументов)
+1
Про eclipse ничего не скажу, а вот netbeans — это моё все, очень удобная IDE.
А по поводу производительности, думаю здесь немного разные задачи у нативного приложения и java. Что что нативное выиграет в скорости, то java отыграет в переносимости.
А по поводу производительности, думаю здесь немного разные задачи у нативного приложения и java. Что что нативное выиграет в скорости, то java отыграет в переносимости.
0
Переносимость? Почему у меня кроссплатфореммый саблим не тормозил даже на лоуэнд ноуте? Соответственно не тормозит и сейчас. ГТК приложения в основном не тормозят, да и имеют родной (более-менее) интерфейс под операционку. Даже редактор на яваскрипте в браузере не тормозит (правда на старом ноуте тормозило). Кроме того, есть переносимое Моно, QT. В чем проблема джавы? Почему она не ускоряется? Или может это проблема движка редактора текста? Может он тормозит? Потому что на джаве есть быстрое ПО (по крайней мере я думаю что ВиртуалБокс именно на джаве написан). Ведь довольно обидно покупать ноут за стопицот денег и все равно видеть, как на нем тормозит текстовый редактор…
+1
Тоже раньше был поклонником NetBeans, пока не начал изучать Android. Со временем как то стало привычно.
0
Первое: JetBrains делает свои среды разработки не на основе Эклипс — у них, как и у NetBeans, все свое.
Почему Эклипс:
— он бесплатный, исходники открытые — бери и делай свою IDE. Писать IDE с нуля — дело сложное и хлопотное, если для компании важно время выхода среды разработки на рынок, то Eclipse — как раз для нее.
— есть куча документации, а также готовых плагинов с открытыми исходниками — сделать свой плагин для этой среды также достаточно легко.
— Eclipse — стандарт в мире корпоративной разработки. Весьма вероятно, что он уже стоит у разработчиков, а значит и поставить ваш плагин им будет нетак и сложно.
— Eclipse Marketplace — аппстор для плагинов, доступен и из самого Эклипса, и через веб.
Да, у него есть проблемы с производительностью, но если честно, я не знаю ни одной современной среды разработки, которая бы не тормозила. И Visual Studio, и JetBrains IDEs, и НетБины, и Эклипс — все они весьма задумчивы даже на хорошем железе (4 ядра i7, 16 гиг оперативы — все тормозят, не переживайте). Не термозят легковесные редакторы — тот же SubLime или N++, — или среды разработки попроще — например, Code::Blocks или в какой-то степени XCode — но они и умеют гораздо меньше, чем «титаны».
Почему Эклипс:
— он бесплатный, исходники открытые — бери и делай свою IDE. Писать IDE с нуля — дело сложное и хлопотное, если для компании важно время выхода среды разработки на рынок, то Eclipse — как раз для нее.
— есть куча документации, а также готовых плагинов с открытыми исходниками — сделать свой плагин для этой среды также достаточно легко.
— Eclipse — стандарт в мире корпоративной разработки. Весьма вероятно, что он уже стоит у разработчиков, а значит и поставить ваш плагин им будет нетак и сложно.
— Eclipse Marketplace — аппстор для плагинов, доступен и из самого Эклипса, и через веб.
Да, у него есть проблемы с производительностью, но если честно, я не знаю ни одной современной среды разработки, которая бы не тормозила. И Visual Studio, и JetBrains IDEs, и НетБины, и Эклипс — все они весьма задумчивы даже на хорошем железе (4 ядра i7, 16 гиг оперативы — все тормозят, не переживайте). Не термозят легковесные редакторы — тот же SubLime или N++, — или среды разработки попроще — например, Code::Blocks или в какой-то степени XCode — но они и умеют гораздо меньше, чем «титаны».
+4
Ух ты. Alt+PrntScrn работает даж в старых виндах?
0
очень жаль что в свое время эксперементировал не с Java, а с Delphi, в результате через некоторое время ему настал конец в геймдеве.
Так вот из-за кого это…
+2
Блин, спасибо! :)
0
Я бы отнес ИЛ-2 Штурмовик к играм ААА-класа! Как по мне, так на 2001 год вполне себе ААА, главное, проект «наш» и написан на Java!
+1
Насколько я знаю, там только часть написана на Java…
+1
Только скрипты на Java, если не изменяет память. А все остальное православно написано — на C++.
+1
UFO just landed and posted this here
откуда такая информация?
0
Когда-то, в далеком детстве, эта игра падала с ошибкой java'овской. Ну и в процессе гугления и были обнаружены обсуждения по поводу использования Java в игре. Вот так я и узнал. :)
К слову, сейчас вбил в гугл и вот в этом review написано:
К слову, сейчас вбил в гугл и вот в этом review написано:
Next urban legend says, that IL-2 is coded in Java. Again, this assumption is based on rumors only, and has no substance. Java is used in IL-2, but just in small part. C++ is mostly used in coding this baby.
+1
Это всё или будет продолжение?
0
Вы бы хоть рассказали, что за игру пишите и что хотите получить в конечном итоге, а то сразу после выбора IDE:
Итак, создаем проект, в нем класс Game(попутно создав в нем точку входа).
+2
Minecraft же на java вроде бы. Вполне себе ААА-класс.
0
Майнкрафт — инди-игра. Класс игр определяется отнюдь не количеством игроков, в неё играющих.
+6
А чем он определяется? Есть какая-то общепринятая классификация?
0
Майнкрафт стартанул как инди игра, но как по мне, так сейчас ее смело можно ставить в один ряд с другими играми ААА-класса.
+1
UFO just landed and posted this here
Соглашусь, да, коментарии не очень. Но насчет второго: у Нотча наблюдается точно такая же конструкция. О его навыках я высокого мнения. Может и не стоит оглядываться на других, но все же…
-3
Не стоит, не стоит. Надо самому понимать каждый символ в своей программе. Конкретно while(running) приводит к тому, что ваша програмка жрет 100% времени ЦП, даже когда ей нечего делать. И нигде в программе нет running=false, даже пожаловаться на отсутствие синхронизации не получается :). То есть фактически while(true).
Я от геймдева далек, но мне кажется, основные проблемы там как большому количеству пользователей взаимодействовать с еще более большим количеством объектов, некоторые из них сами активные. И while(true) там совершенно недопустим — тормознет всех.
Я от геймдева далек, но мне кажется, основные проблемы там как большому количеству пользователей взаимодействовать с еще более большим количеством объектов, некоторые из них сами активные. И while(true) там совершенно недопустим — тормознет всех.
+6
UFO just landed and posted this here
notch обычно пишет прототипы, которые потом сильно допиливаются (если возникает нужда).
Из текущего кода например вычисление delta в game loop, не взлетит на нормальном проекте.
Как только рендер и(или) игровой цикл начнут расти по времени, а gc будет активно работать, на разных машинах вы получите в лучшем случае — дерганную картинку и не играбильность, а в худшем — ошибки синхронизации игровой логики.
Если почитать тот-же www.java-gaming.org/, то там это момент обсуждался очень долго. В том числе еще тогда, когда там notch активно писал, а minecraft был прототипом.
Из текущего кода например вычисление delta в game loop, не взлетит на нормальном проекте.
Как только рендер и(или) игровой цикл начнут расти по времени, а gc будет активно работать, на разных машинах вы получите в лучшем случае — дерганную картинку и не играбильность, а в худшем — ошибки синхронизации игровой логики.
Если почитать тот-же www.java-gaming.org/, то там это момент обсуждался очень долго. В том числе еще тогда, когда там notch активно писал, а minecraft был прототипом.
+1
Статья очень слабая.
1 цикл для рендера и для просчета, это никто уже сейчас не оценит.
Собственно поддерживаю gvsmirnov.
Такие статьи не для Game Development, а просто для программок, которым надо вывести графику в какое либо место.
1 цикл для рендера и для просчета, это никто уже сейчас не оценит.
Собственно поддерживаю gvsmirnov.
Такие статьи не для Game Development, а просто для программок, которым надо вывести графику в какое либо место.
+9
Создадим три функции — update(long delta), render() и init(). Я надеюсь что их значение вам понятно.
Тем кому понятно, этот код не нужен, а тем кому не понятно, конечно статья может была бы интересна, но для них не все понятно. Вы на какой уровень читатель рассчитывали?
Тем кому понятно, этот код не нужен, а тем кому не понятно, конечно статья может была бы интересна, но для них не все понятно. Вы на какой уровень читатель рассчитывали?
+1
Мне кажется, код этот был создан под впечатлением Нотчевского Minicraft. Однако следует учесть, что та игра делалась на конкурсе за 48 часов, и поэтому образцом хорошего стиля служить не может. Хотя, конечно, общие принципы там верные.
0
Добавим нашу картинку в папку assets(папку создать в корне проекта), саму папку надо добавить в build path.
А можно поподробнее про то, как это сделать? Я добавил в Project -> Properties -> Java Build Path -> Source папку assets, но, тем не менее, строка
URL url = this.getClass().getClassLoader().getResource(path);
выбрасывает null. Что я делаю не так?
0
Я так понял, пример идет без использования OpenGL, т.е. просто рисование по канве.
А нет ли проблем с framerate при таком способе? Возможно ли удерживать 50-60 кадров в секунду в динамических сценах? (При условии, что компьютер в принципе поддерживает подобный FPS в других программах)
А нет ли проблем с framerate при таком способе? Возможно ли удерживать 50-60 кадров в секунду в динамических сценах? (При условии, что компьютер в принципе поддерживает подобный FPS в других программах)
0
Не пишите такие комментарии в коде никогда. По программе и так видно, что она делает в каждой строке кода. Лучше писать, зачем она это делает.
Например
Лучше написать что-то типа //делаем черный фон
Ну и JavaDoc тоже не просто так придумали.
Например
g.fillRect(0, 0, getWidth(), getHeight()); //заполнить прямоугольник
Лучше написать что-то типа //делаем черный фон
Ну и JavaDoc тоже не просто так придумали.
0
На самом деле хочу поблагодарить за статейку. Очень коротко и понятно! Сам просто с java вообще никогда не работал, а тут попросили на скоряк для девушки в универе сделать простецкую игру чтобы сбивать самолеты. Но в инете прям отвратно кусками инфу собирать, особено когда с java не работал. Статья очень помогла и за 2 часика игрушка была готова! Еще раз спасибо!
0
Sign up to leave a comment.
Создание игры на Java без сторонних библиотек, часть первая