ФлеймФорумПрограммирование

Общие вопросы по разработке движков (7 стр)

Страницы: 13 4 5 6 7 8 Следующая »
#90
15:11, 23 авг 2025

war_zes
> в пик его популярности там весь код (движок, редактор, игра) - это 5к строчек кода.
Для как-нибудь узко специализированной задачи этого может и достаточно, но при масштабировании проекта оказывается, что нужно переписать все на 100к строк, чтобы ничего не ломалось при добавлении функционала.

#91
15:47, 23 авг 2025

5к*20=100к
Ты отмаштабировал в 20 раз.

Если надо в 50 раз, то будет 250к

#92
12:30, 24 авг 2025

/A\
> Для как-нибудь узко специализированной задачи этого может и достаточно, но при масштабировании проекта оказывается, что нужно переписать все на 100к строк, чтобы ничего не ломалось при добавлении функционала.
лучше продумать архитектуру заранее

#93
12:41, 25 авг 2025

/A\
> что нужно переписать все на 100к строк
а можно не переписывать, а сделать 20 проектов по 5к говнокода с копипастом, чем пытаться написать идеальный движок под 20 проектов сразу

Мисс_Самец
> лучше продумать архитектуру заранее
нереально:
- чтобы продумать - надо знать, а чтобы знать - надо сначала сделать десяток проектов с плохой архитектурой.
- никогда не знаешь - какие технологии появятся через год и как они все поменяют. тут даже язык в любой момент может придется менять.
- да и не нужно все это - Unreal engine 6 в одно лицо написать невозможно. а для мелких вещей все это излишне.

#94
12:56, 25 авг 2025

grv
> Вообщем, отправил ветку legacy в саркофаг. В develop полностью и бесповоротно вырезал все легаси, перевёл проект на C++ 20. Закоммитить не успел, болею, сцуко. Короче, сейчас дела пойдут шустрее и веселее. Интеграция наработок Directx9 остановлена. Буду курить гайды и туторы по 11-му директу.
> Вы как архивы и паки делаете - кастомный или zlib-based?

Имхо, вместо 11-ого директа лучше взять готовую графическую либу и не париться.
У меня был шустрый рендер на 11-ом дирике, но для своего нового движка я решил взять bgfx - отличный выбор для игр с ненавороченной графикой.

Похоже что я иду по твоим стопам, только мне пока ещё 35 (но уже куча проблем со здоровьем).
До 2020 г. я писал на C++03 на визуалке 2008 - было неудобно адаптировать ворованный код, написанный на C++11 и выше.

Год назад начал новый движок на C++20, но завяз в тулзах: редактор, конвертеры и компиляторы ресурсов (все выхи переписывал систему ресурсов).
До пак файлов мне ещё как пешком до Луны, но я читал, что zlib уже устарел, ZStandard быстрее и лучше (ра)сжимает.

Для экономии времени я разработал свой C++ стиль, чтобы писать как можно меньше кода и было комфортно кодить на ноутбуке (у меня нет стационарного компа).
Вот пример кода:

void PhysicsSystem_XPBD::solveDistanceConstraints(let f32 dt) {
  let f32* inv_masses = m_particle_data.inv_masses.raw();
  V3f* positions = m_particle_data.x.raw();

  // Compliance 𝛼 is the inverse of physical stiffness:
  // Infinitely stiff (hard) when 𝛼 = 0
  let f32 𝛼 = m_settings.compliance_alpha / (dt * dt);

  let uint num_distance_constraints = m_distance_constraints.num();

  f32* lambdas = m_lambdas.raw();

  for (uint i = 0; i < num_distance_constraints; i++) {
    let DistanceConstraint& distance_constraint = m_distance_constraints[i];
    let f32 inv_mass1 = inv_masses[distance_constraint.idx1];
    let f32 inv_mass2 = inv_masses[distance_constraint.idx2];

    V3f& p1 = positions[distance_constraint.idx1];
    V3f& p2 = positions[distance_constraint.idx2];

    V3f n = p1 - p2;    // points towards p1
    let f32 d = n.normalize();  // current length/distance

    let f32 C = d - distance_constraint.rest_length; // Cj(x)

    f32& λ = lambdas[i];
    let f32 Δλ = (-C - 𝛼 * λ) / (inv_mass1 + inv_mass2 + 𝛼); // eq.18 in XPBD paper [2016]
    λ += Δλ;
    // eq.17 in XPBD paper [2016]
    let V3f correction_vector = n * Δλ;
    p1 += correction_vector * inv_mass1;
    p2 -= correction_vector * inv_mass2;
  }
}

Неделю назад подключил copilot, отлично помогает - полезные подсказки для тривиальных кодо-портянок и natvis, шикарно пишет комментарии, но всё равно разработка идёт слишком медленно.
Боюсь, что через несколько лет я превращусь в злобного обиженного деда у разбитого движка.

#95
12:59, 25 авг 2025

Мисс_Самец
> лучше продумать архитектуру заранее
Да
war_zes
> чтобы продумать - надо знать, а чтобы знать -
Ну теперь, имея опыт, можно включить мозги, чат-бота для структурирования сумбурно составленных мыслей и цензурирования дабы не слезть в мёртвые устаревшие подходы и продумать архитектуру, что я и сделал. Вышло 200 страниц пи3... жа

#96
13:02, 25 авг 2025

PVSector
> но всё равно разработка идёт слишком медленно.
Юзай библиотеки максимально, делай только под винду. Делай ECS. Сделай так, чтоб писать меньше кода. Не пиши сам то, что можно не писать. Время героев, пишущих велосипеды, прошло.

#97
13:06, 25 авг 2025

PVSector
> bgfx - отличный выбор для игр с ненавороченной графикой.
Bullet Physics - отличный выбор, чтоб самому не писать физический движок

#98
(Правка: 13:13) 13:09, 25 авг 2025

PVSector
> У меня был шустрый рендер на 11-ом дирике, но для своего нового движка я решил взять bgfx

вот бы еще в этих рендерах не внедряли какую-нибудь "изюминку". конкретно в bgfx это свой шейдерный язык (на кой ляд-то? их и так уже зоопарк) и сортировка дипов(а она там зачем? я сам разберусь как мне надо)
почему нельзя сделать просто обертку, не впендеривая туда свои "архиважные" идеи

#99
13:19, 25 авг 2025

war_zes
> почему нельзя сделать просто обертку
Обертка не нужна, если оставить только один GAPI

#100
14:15, 25 авг 2025

grv
> Юзай библиотеки максимально, делай только под винду. Делай ECS. Сделай так, чтоб писать меньше кода. Не пиши сам то, что можно не писать. Время героев, пишущих велосипеды, прошло.
Так я так и делаю. И всё равно времени не хватает.

grv
> Bullet Physics - отличный выбор, чтоб самому не писать физический движок
Jolt быстрее Булита работает, особенно на современных многоядерниках.

#101
14:47, 25 авг 2025

PVSector
> Так я так и делаю. И всё равно времени не хватает.
Меня ограничивало легаси и старье. Сейчас оборудование придёт, все пойдёт быстрее, думаю. В обиженного дедулю не успею трансформироваться

#102
14:47, 25 авг 2025

PVSector
> Jolt быстрее Булита работает
Ну или его, слышал о нем

#103
(Правка: 15:18) 15:09, 25 авг 2025

PVSector
> только мне пока ещё 35 (но уже куча проблем со здоровьем)
и как это мешает писать код? это же не мешки разгружать

> но всё равно разработка идёт слишком медленно.
используй ECS

#104
16:00, 25 авг 2025

Мисс_Самец
> и как это мешает писать код? это же не мешки разгружать
Быстро устаёшь, уже через полчаса сидения хочется полежать.
Сильно отвлекают боли в шее и пояснице, с шеей вообще беда. Не могу расслабить глаза и плечи.
Физио не помогает. Я купил новые стул и стол, но уже было слишком поздно.

Мисс_Самец
> > но всё равно разработка идёт слишком медленно.
> используй ECS
ECS не везде подходит, для низкоуровневых систем лучше использовать специализированную укладку данных, всякие кэш-френдли блобы и SoA.
А до игровой логики, которая на ECS хорошо ложится, я ещё не дошёл.

Страницы: 13 4 5 6 7 8 Следующая »
ФлеймФорумПрограммирование