smt005 писал(а):
Что значит воссоздать?
Т.е. чтоб выглядело и работало всё так же, как было в М. Как "по примеру". Я считаю это просто тратой времени.
smt005 писал(а):
Движок полностью новый.
И чем он лучше М2, к которым СДК есть? Физику вижу, да. Пока что это единственное, чего не было в М. Хотя если ограничивать эффект физики реалистичным скатыванием контейнеров и колобков по склонам, то она себя не оправдывает. Нет смысла вводить в игру физику и моделировать антиграв всё теми же жёсткими читерскими методами. Какой эффект должен быть от физического движка? От взрывов мин глайдер должно реалистично кренить, подбрасывать; от выстрелов должно подёргивать стрелка и врага; камни и обломки глайдеров, разбросанные взрывами, сталкиваясь с глайдами должны также дёргать их и доставлять повреждения, пропорциональные кинетической энергии предметов; убитые машины должны разлетаться на куски или падать на землю, становясь пассивными объектами.
Другими словами, я предлагаю условится с набором устройств глайдера, имеющих конкретное местоположение на корпусе и являющимися точками приложения сил, приводящих глайд в движение. Также нужна подпрограмма, управляющая этими устройствами в зависимости от целей, определяемых пилотом (т.е. Игроком). К примеру, на Скарабее два движка. Если игрок двигает мышу вправо, левый движок даёт тягу, если мыша идёт влево - наоборот. Если Игрок жмёт стрейф влево, эффекторы правого борта увеличивают силу отталкивания; если глайд накреняется налево слишком сильно, правые эффекторы вырубаются, левые дают импульс; если указываемый мышью вектор и вектор направления взгляда сближаются, дисбаланс тяги уменьшается, или меняет знак, чтобы сгасить инерцию... И т.д. Чтобы не прошивать каждый глайд в коде, нужен скриптовый механизм, путём которого определяется реакция устройств на нажимаемые Игроком кнопки, а также реакции на возникающие с глайдом ситуации. Так мы, наконец, поимеем симулятор, а не фри камеру с инерцией, как в М1-М2. Это будет отдельный ИИ, заточенный конкретно на управление глайдом. Это будет сложно и поначалу, могу предположить, глайд будет вести себя, как черепашка - неуклюж и будет переворачиваться при кренах, поворотах, влётах на уступы, столкновениях с объектами и т.д. Потребуется большая головомойка по разработке нормального вестибулярного механизма, однако плюс к геймплею это даст невпупенный - помимо "рукопашного боя" и реалистичных реакций глайдеров на ландшафт, взрывы и удары, глайдеры разной конструкции станут вести себя действительно по-разному и потребуют приспособления к нюансам каждой машины.
В плане графики всё ещё пока хуже, чем в М1. У тебя ж были эксперименты с тенями, помнится? Вот тени убогие даже в М2 - только от глайдов, и с низким разрешением. Если сравнивать карты теней и трафаретные тени (как в Дум-3), то карты теней перспективней, поскольку проще в реализации (не требуют шейдеров - достаточно расширений текстур и ОпенГЛ 1.3), а также в отличие от второго варианта, позволяют делать рамытости по краям.
Однако я не советую избегать шейдеров. Бамп-маппинг и кучу других эффектов нельзя осуществить на встроенной функциональности ОпенГЛя ниже двойки - лишь убогую извратную тормознутую симуляцию. Т.е. шейдеры так или иначе придётся внедрять, если нет желания органичивать графу пластмассовыми мультиками. Поэтому на встроенную функциональность ГЛя меньше двойки не советую тратить время. А шейдеры поддерживаются сейчас уже везде - интел коры без видюхи шпарят шейдеры мама не горюй. Ноуты некоторые ещё могут не поддерживать, но эта проблема исчезнет очень скоро и недостойна особого внимания. А самая первая модель шейдеров (ОпенГЛ 2.0) уже имеет всего достаточно для рисования реалистичной картинки.
smt005 писал(а):
А может мне одному CryEngine 3 сделать?
Край-не край, а мне тени и бамп обязательно подавай!
Наф теневые объёмы и параллаксы, ИМХО, отражения попроще - земля и небо и вполне достаточно.
Чтобы не залететь на жёсткости написанного движка, внезапно ощутив желание добавить ещё чё-нить эдакого, советую deferred shading. Т.е. не вычислять освещение фрагментов, трафареты, наложение теней и прочее при рендере каждого полигона, а отвести буффера под все аттрибуты пикселя (положение, нормаль, цвет текстуры, цвет блика, бликовость, эмиссия), набросать треуги на картинку, ничего не вычисляя - просто тупо заполняя буффера данными пикселя, а затем уже к этой картинке применять все требуемые эффекты: шлёп раз - наложил карту теней (или освещения) от одного светильника, шлёп два - от другого, шлёп три - добавился туман, шлёп четыре - объёмный эффект дыма от взрыва; шлёп пять - засветился объём газа из сопла движка, шлёп шесть - вокруг глайда возникла полупрозрачная сфера энергощита и так до бесконечности - сменил фрагментный шейдер и отшлёпал эффект, им создаваемый; сменил снова, и отштамповал другой тип эффектов. И так каждый кадр. Т.е. первый шейдер ничего не вычисляет - тупо набивает буфера кадра данными, а все остальные шейдеры эти данные используют, вычисляя конечные цвета каждого из фрагментов. Очень гибкий подход - не находишь? Не нужно перекомпиллировать проект, чтобы добавить новый тип эффекта - просто написал шейдер и в загрузчике файлов прописал путь к нему.
Добавлено спустя 12 минут 24 секунды:smt005 писал(а):
А может мне одному CryEngine 3 сделать?
Та не злися ты! Вообще, ты уже сделал то, что никто тут не осилил и не осилит, но это так явно, что признавать сие даже необходимости нет. А советы и критика - это ленивый способ помощи. Но и это тоже бывает очень даже полезно.