![]() |
ЯП & Gamedev(взгляд изнутри)
Привет форумчане!
Хочу узнать я, насколько C++ вообще пригоден для создания игровых приложений? Я уже такую тучу инфы начитался, что у С++ управление памятью не динамическое и писать игру на нём - это настоящее задротство, но опятьже я думаю, что управлять памятью можно и ручками, зато скорость. Еще мне расхваливают, постоянно, Python, мол лучше для игр не найти. Правда? А как же защитить код на нём? Ведь скрипт... Также мой взор нацелен и на Java, конечно 3D возможности её ранее были убоги, но сейчас уже не первый год живет проект jMonkeyEngine(Open Source), который финансируют очень крупные и солидные фирмы(SUN MicroSystems, NCSoft(Lineage I, II; GuildWars, AION). И НЦСофт даже разрабатывает игру на этом движке, следовательно наверно есть в связке Java-jMonkeyEngine толк? А что посоветуете вы из профессиональных инструментов? Лично мне на Си++ известны OGRE и Nebula Device и если на первом написать игру можно только к старости, то второй в принципе очень неплох и структура его понятна, а последний проект "Drakensang" оставил только лучшие впечатления. |
Ответ: ЯП & Gamedev(взгляд изнутри)
Цитата:
и ну почти все на с++ О чем это говорит, да, игры не плохо делать на нем! ;) |
Ответ: ЯП & Gamedev(взгляд изнутри)
Собственно те что я назвал это единственные что подходят для создания игры, остальные это поделки какието студенчиские(ну не считая уже устаревших idTech 1, 2 и коммерческих CryEngine, Unreal Engine) =)
|
Ответ: ЯП & Gamedev(взгляд изнутри)
Цитата:
пусть назовут список игр сделаных на плюсах и соответствующий список игр сделаных на питоне. и просто сравни их длину. Цитата:
а new и delete тогда зачем? а malloc и free? из всех инструментов которве я когда либо юзал (C++, delphi, blitz, dark basic) в первом самая гибкая система управления памятью. С ней можно делать что хочешь. |
Ответ: ЯП & Gamedev(взгляд изнутри)
Дак ёмоё все мировые хиты (ну, 99%) пишутся на плюсах для всех ОС и приставок :lol: Это ли не аргумент?
|
Ответ: ЯП & Gamedev(взгляд изнутри)
Цитата:
|
Ответ: ЯП & Gamedev(взгляд изнутри)
Цитата:
1. С++ пригоден. 2. ручное управление памятью в некоторых случаях предпочтительней сборщика мусора. есть задачи, когда память хочется выделять на этапе компиляции. 3. писать игру целиком в 2009 году на С++ настоящее задротство, либо техническая неграмотность. 4. врут про Питон 5. Java - отстой (субъективно бездоказательно). Только для игровой логики и ничего больше. 6. OGRE - гуано. Моя любимая Nebula Device - архитектурный фейл. Печально. Андре Вайсфлог сам это признал. А как же правильно? Архитектура "слоев". Как в UNIX. нижний слой (native): API для графики, физики, звука, сети, привязка к конкретной оси, загрузка ассетов. средний слой (binding managed to native) верхний слой (managed/script): игровая логика, система событий, GUI, граф сцены, загрузка/выгрузка игрового состояния и т.д. |
Ответ: ЯП & Gamedev(взгляд изнутри)
Цитата:
я думаю САМУ ИГРУ пишут таки на С++. а вот скрипты, тулзы, всякие конверторы и експортеры конечно надо писать на том инструменте, который более пригоден для конкретной задачи. |
Ответ: ЯП & Gamedev(взгляд изнутри)
Цитата:
движок на С++, игра на скриптах/managed языках, игра в моем понимании все же игровая логика + ассеты, т.е. все то что не движок и тулзы. |
Ответ: ЯП & Gamedev(взгляд изнутри)
т.е. поменяли скрипты и уже стала другая игра?
|
Ответ: ЯП & Gamedev(взгляд изнутри)
Цитата:
пример из жизни: колода карт одинаковая (52 штуки), а игры разные: покер, преферанс, спортивный бридж, дурак, подкидной дурак (ну это типо мод:-) и т.д. Еще пример: какая тебе как игроку разница, если бы Готика 3 была бы сделана не на своем движке, а на движке Обливиона? С теми же (как в Готике) ассетами, игровыми правилами и сюжетом? Только на другом движке? |
Ответ: ЯП & Gamedev(взгляд изнутри)
Какая вам разница если бы Фоллаут 3 был сделалн на движке Обливиона?
Тебе может и никакой, но народ возмущался... |
Ответ: ЯП & Gamedev(взгляд изнутри)
я всё же склоняюсь больше к концепции представленной valve в играх half-life 1,2, id software в quake,doom 3 и других
в общих чертах : 1) есть библиотека render.dll, это графический движок 2) есть библиотека engine.dll, это игровой движок 3) есть библиотека game.dll, это игровые обьекты описаные на языке на котором написан движок (обычно C++) 4) есть медиа, карты, скрипты - это всё уже составляющие игры те к чему это всё : в game.dll описываются игровые обьекты, например обьект дом, а моделей этих домов может быть куча, сложное взаимодействие (скриптовые сцены) пишутся на скриптах, а обобщенное (например AI) пишется уже на C++ получаем некоторую data-driven игру, по-сути программер один раз пишет обобщённые типы обьектов, а потом все остальные клепают самые разнообразные обьекты и движок нормально их воспринимает самое главное - без каких либо проблем вся сцена сохраняется в файл и так же от туда полностью загружается потому выходит : 1) писать враппер графического двига для скриптового языка не имеет смысла 2) описывать полностью базовые игровые обьекты в скриптах тоже не имеет смысла 3) писать сложное взаимодействие или расширение базовых типов в скриптах имеет смысл из этого можно сказать что игра это : 1) игровой движок (зачастую написано на C++) 2) игровые обьекты (зачастую написано на C++ и на скриптовых языках) 3) игровая логика (зачастую написано на скриптовых языках) вот и выходит что надо юзать и C++ и скрипты и не боятся :) |
Ответ: ЯП & Gamedev(взгляд изнутри)
Насчет Питона, на нем есть даже ММОРПГ небезысвестная от студии Дисней - Пираты Карибского Моря.
Ну я почемуто был уверен, что в итоге в основном люди будут за С++ и скрипты. А что посоветуете из движков? Почему Небула не прёт? И почему в сторону Java такое отношение? =) Ведь Джава - это вопервых большая прибавка аудитории людей сидящих на Маках и Линуксах.. |
Ответ: ЯП & Gamedev(взгляд изнутри)
Хинт: никого не волнуют люди сидящие на маках и линуксах в плане игр, их аудитория ничтожна, в то время как линуксойды не привыкли за что либо платить а на маках непривыкли играть.
Иными словами под них неделают непотому что сложно а потому что невыгодно. З.Ы. на с++ можно и под маки с линуксами писать..хоть под программируемые контроллеры станков :) |
Ответ: ЯП & Gamedev(взгляд изнутри)
Цитата:
ты не понял, я тут как раз больше всех за Питон. Красивый язык, богатая библиотека, много биндингов. Но есть и недостатки и их никто (Гвидо) не собирается исправлять, так как они объявлены фичами. Контроль типов параметров просили - в ругани на форуме идея утонула. Просили быстродействия - подняли в 2.5, но его недостаточно для движков. Питон - язык прикладной, а не системный. И в качестве языка для игровой логики подходит. Памяти жрет много, тоже аргумент против. На вебе, где он хорошо прижился, он конечно в тысячу раз лучше чем PHP. Но в игропроме другие проблемы и другие решения. Цитата:
Цитата:
Цитата:
Цитата:
|
Ответ: ЯП & Gamedev(взгляд изнутри)
ffinder
я тебя обрадую, используя boost время компиляции увеличивается раз в 10, потому что boost так и написан - даешь удобство, компиляцию реже STL к разным компиляторам тоже различается, зачем делать изменения когда можно свой STL накатать ? ну или на крайний случай использовать STLPort, но с ним тоже возится надо к тому же даже C Runtime между компиляторами может отличатся, к примеру наличие дополнительных критериев безопастности в visual studio Nebula мне нравится некоторыми решениями, но стиль у них гадкий имхо |
Ответ: ЯП & Gamedev(взгляд изнутри)
Цитата:
|
Ответ: ЯП & Gamedev(взгляд изнутри)
2 ffinder: Mono, насколько я знаю, это просто пародие на .NET CLR и более, менее "дышащий" софт запустить на нем нереально.. Java в отличии, это поддерживаемое ОпенСорсом детище и даже если Майкрософт перестанет поддерживать свой .NET, то Джава не умрет, а идеология почти таже что у C#, что у Джава.
Итак, как показало обсуждение, лучшим на сегодняшний день решением является использование C++ совместно со скриптами(тот же Питон). Но вот для меня открыт еще вопрос, ежели Небьюла это ужос, Огр, как выше сказали, гуано.. То какой двиг юзать? Хочется чтобы был заточен на рендеринг именно оутдор сцен. |
Ответ: ЯП & Gamedev(взгляд изнутри)
а вот в том то и прикол что хороших движков за приемлимые деньги нет, а какие есть требуют тщательной доработки напильником.
|
Ответ: ЯП & Gamedev(взгляд изнутри)
Цитата:
Идея в том что .NET interop делается легче чем JNI. Цитата:
|
Ответ: ЯП & Gamedev(взгляд изнутри)
Цитата:
Огр нормальный граф двиг:) |
Ответ: ЯП & Gamedev(взгляд изнутри)
О FDsagizi - Казахстанец =) Салам земляк!
Цитата:
2FDsagizi: Я вижу у тебя в подписи ссылка на сайт с игрой, которая на ОГРЕ сделана тобой, как вообще ощущения от него? Подойдет ли он для игр РПГ жанра? Я вроде как помню у него есть несколько режимов рендеринга: оутдор, индор и т.п. |
Ответ: ЯП & Gamedev(взгляд изнутри)
Цитата:
Огр, ну разные, были не приятные моменты, но приятных куда больше! К примеру те - же режимы out indor , ты можешь изменять без изменения кода, просто изменяешь тип используемого сцене менеджера. А дальше все само. Удобно плагины подключать, комьюнити очень большое, в том числе русско язычное. Очень много тулз, хорошая скорость работы, приятный стиль кода использован в нем, неплохой менеджмент ресурсов, материалы вообще прикольно сделано! А стабильность - выше всех похвал! Очень много чего для него сделано, и практически все в опен сорсе! Развиваеться, и довольно хорошо. |
Ответ: ЯП & Gamedev(взгляд изнутри)
Да на русском сайте огра посмотрел скрины тамашних людей, очень даже приличные они, да и ОГР вроде не такое уж и гуано, почему его так не любят здешние не пойму.. И насколько знаю можно без насилования кода одним кликом задействовать OpenGL вместо DirectX.
Значит всетаки из доступных на сегодня инструментов первенство держат C++ в связке с OGRE и скриптами(скорее всего Lua). =) |
Ответ: ЯП & Gamedev(взгляд изнутри)
Короче, FDsagizi, тебе только рекламщиком работать, расхвалил мощно, я аж на сайт ихний пошел:)
Движок повзрослел, вернее его поддержка. Теперь всё есть в бинарниках, есть скрины, демы, плагины. Есть интегрированные ODE и Newton. И главное что есть враппер под .NET/Mono! Когда я смотрел на Ogre всё было значительно печальнее. Но за это время и DX9 стал массовым, и интернет теперь такой что скачать 80-100 метров казуалки - не вопрос. Baisangur Lua на PC - нонсенс и инерция мышления, создает столько же проблем, сколько и решает. Я для себя выбрал Boo = .NET + Python + опциональная(!) статическая типизация + умеет перезагрузку кода на лету (умные люди говорят) Где взять? SharpDevelop идет с ней в комплекте. Сейчас сижу и под Boo пробую примеры от Mogre:cool: |
Часовой пояс GMT +4, время: 03:38. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot