М.Двач / Gamedev

Этого треда уже нет.
Это копия, сохраненная 12 марта 2020 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

Black Sky # OP 4 янв 2018, 23:15 465303 В конец треда | Веб

8,8 Мб, mp4,
640x360, 1:30127 Кб, 512x512

Привет, анон.
Уже где-то месяц делаю небольшую 2D игрушку на C++ и SFML.
Большую часть времени потратил на самописную физику и отладку многопоточности, сегодня, наконец, перешел к графике, а потому решил создать тред-дневник.

Геймплей пока заключается в управлении космическим аппаратом в поле тяжести различных тел. Движение всех тел считается по закону всемирного тяготения, траектории не фиксированные, в отличии от, например, KSP.

Что есть:
1) Базовая физика.
2) Возможность летать на космокорыте.
3) Простенькие визуальные и аудио-эффекты.

План максимум:
1) Сделать хоть что-то играбельное (хотя бы просто физическую головоломку).
2) Написать сюжет, внедрить его в игру в виде .lua-скриптов (соответственно выучить Lua).
3) Перенести физику на GPU, если останусь на PC.
4) Сделать удобный интерфейс и все по максимуму оптимизировать (включает в себя переход на чистый OpenGL), если захочу продолжить на мобилках.

Учитывая, что ЕГЭ не за горами и что я пилю один,
Реальный план:
1) Перенести все основное управление аппаратом с WASD на мышку или тач.
2) Научиться базе C++ за время разработки.
3) Научиться базе CUDA за время разработки.
4) Запилить что-то более серьезное в плане физики.

Ответы465318465322465792466771467745468974470103478669480814483850

6,5 Мб, mp4,
640x360, 0:42
# OP 2 4 янв 2018, 23:20 2 465308

В дополнение к плану максимуму:
1) Графика - векторная, flat.
2) Музыка - ambient
3) Сюжет основан на идее об одиноком исследовании космоса.

По физике:
Я много игрался с движком, по этому в нем есть много всякого, что не будет использовано в игре:
1) Электрические заряды и электромагнитные поля.
2) Физика газов.
3) Реализация различных методов численного интегрирования.
Кому интересно, спрашивайте.

Ответы465317465322

11 Кб, 512x768
# OP 3 4 янв 2018, 23:28 3 465310

На пикче видны мои потуге в Illustrator'е. С графикой, пожалуй, будет труднее всего.
Благо, этот спрайт сжимается до 16 x 11 px и только в таком виде присутствует в игре.

4 4 янв 2018, 23:44 4 465317

>>465308
Прикольно. Можно и вправду сделать интересный паззл про маняврирование в газах и ЭМ-полях.

Ответы465323

16 Кб, 385x387
5 4 янв 2018, 23:45 5 465318

>>465303 (OP)
>Учитывая, что ЕГЭ не за горами
>ЕГЭ

Ответы465320465324

75 Кб, 500x461
6 4 янв 2018, 23:47 6 465320

>>465318

7 4 янв 2018, 23:51 7 465322

>>465303 (OP)
>Уже где-то месяц делаю небольшую 2D игрушку на C++ и SFML.
Мазохист.
>>465308
Из-за того, что центр камеры прикреплен к кораблю, вообще не очень выразительно видно орбитальное движение.

Ответы465325465473

8 4 янв 2018, 23:51 8 465323

>>465317
Там "не", правда, стоит, но учитывая твои слова, я пересмотрю свое отношение к данным фичам.

9 4 янв 2018, 23:52 9 465324

>>465318
Вы все на 500 баллов претендуете, я не понимаю? ЕГЭ - тупейший экзамен, чистое дрочево тестиков.

Ответы465326465379

10 4 янв 2018, 23:52 10 465325

>>465322
Завтра сниму нормальный геймплей с разным крепежом камеры.

Ответы465473

11 4 янв 2018, 23:53 11 465326

>>465324
Я в МФТИ хочу, там не ниже 290.

Ответы465327

12 4 янв 2018, 23:55 12 465327

>>465326
Жесть, ну удачи, вперед к мечте. Я бы не осилил учебу в МФТИ.

Ответы465343

13 5 янв 2018, 01:24 13 465342

Земля пухом

14 5 янв 2018, 01:26 14 465343

>>465327
Осилил бы. Сложность (и нужность) учебы в МФТИ сильно преувеличены. Но это оффтоп, а потому - до свидания.

15 5 янв 2018, 03:51 15 465379

>>465324
Я к тому, что он школота.

9,7 Мб, mp4,
854x480, 1:49
16 5 янв 2018, 13:45 16 465473

>>465322
>>465325
Ладно, насчет геймплея я, конечно, немного соврал...
На видео показано:
1) Летание (к сожалению, его плохо видно, так как спрайт выхлопа двигателя пока не завезли).
2) Врезание в планеты(?) (упругие шарики).
3) Переключение камеры на ближайшие к курсору тела (только что запилил)
4) Очередной тест точности ускорения времени.

Ответы468675

17 5 янв 2018, 14:30 17 465479

Выглядит словно ты собрал простенькую сцену на гамаке/конструкте/фазере и сейчас пытаешься наебать гд типа что то там навелосипедил.

Ответы465481

18 5 янв 2018, 14:31 18 465480

https://www.youtube.com/watch?v=-7Ggi7hFTc8

80 Кб, 1021x680
19 5 янв 2018, 14:39 19 465481

>>465479
Если хочется пруфов и есть идеи для пруфов, могу предоставить.
Иначе, в общем-то, даже пофиг. Мне в любом случае хвастаться нечем.

Ответы465564465623

36,5 Мб, mp4,
1280x720, 0:35
20 5 янв 2018, 15:14 20 465489

Неупругие столкновения вместо упругих.
Новая проблема: сильно скачет скорость расчетов при уменьшении количества тел, приходится постоянно палец на кнопке замедления времени держать. Это нехорошо.

Ответы465517

262 Кб, 540x414
21 5 янв 2018, 16:34 21 465517

>>465489
Годно, анончик. Пили дальше. А лучше заливай на github, авось местные кириллы, что-нибудь делать начнут(вряд ли)

22 5 янв 2018, 18:04 22 465564

>>465481
Нахуя, рабивать степень на тонну умножений? Оптимизация? Открою секрет, извлечение корня в твоей функции расстояния занимает в тысячу раз больше времени, чем разница по времени между pow(a,12) и aaaaaaa*a...

Ответы465596

23 5 янв 2018, 19:21 23 465596

>>465564
Спасибо, но все уже подсчитано и учтено до меня:
1) Я не извлекаю корень. Все степени кратны двум, поэтому я просто возвожу квадрат расстояния в половину степени. Это для потенциала 6-12
2) pow рассчитана не только на целые степени (принимает в качестве аргумента double), так что и работает она не быстрее sqrt.

Ответы465599468676

24 5 янв 2018, 19:24 24 465599

>>465596
>Все степени кратны двум, поэтому я просто возвожу квадрат расстояния в половину степени
Ебать, ты жесткий.
>pow рассчитана не только на целые степени
Дык напиши свою степень, просто 12 умножений - это просто пиздец.

Ответы465601

25 5 янв 2018, 19:25 25 465601

>>465599
>просто просто
Нутыпонял

26 5 янв 2018, 19:53 26 465616

>>465614
> 98% про быстрый инверсный квадратный корень от Кармака
Хуита начала 90-ых.
Сейчас так писать не следует.

27 5 янв 2018, 19:54 27 465617

>>465614
>95% /gd/ не знают про разложения функций в ряд
На 1 семестре проходится.
>98% про быстрый инверсный квадратный корень от Кармака
Бля, ну это мем вообще. Стыдно не знать, если ты считаешь себя разработчиком игр.

28 5 янв 2018, 20:24 28 465623

>>465481
Как считаешь взаимодействия между кучей тел?Методом Рунге-Кутты?

Ответы465645465835

40 Кб, 830x505
29 5 янв 2018, 20:50 29 465645

>>465623
Ты, наверно, говоришь об экстраполяции координат и скоростей.
Это регулируется. На выбор предоставлены методы
1) Эйлера
2) Эйлера с ускорением
3) Верле-Штермера
4) Бимана
5) Бимана (модификация для лучшего поведения в ЭМ полях).

Рунге-Кутта ведет себя плохо в плане сохранения энергии при больших шагах симуляции, а также не даёт уж слишком сильных преимуществ при точном счёте, зато жрет где-то в четыре раза больше ресурсов процессора, поэтому он был когда-то реализован, но я его не стал переписывать, когда изменил код для хранения и обработки данных о телах, так что по факту его нет.

Прикрепленная пикча из старого кода, так что не начинайте новый срач, пожалуйста.

Ответы465651465834465835466214546071

30 5 янв 2018, 21:07 30 465651

>>465645
Зачем столько комментариев?

Ответы465652

31 5 янв 2018, 21:11 31 465652

>>465651
Почему комментарии не на английском?

Ответы465653

1,8 Мб, 750x1098
32 5 янв 2018, 21:12 32 465653

>>465652
> английском

33 6 янв 2018, 13:29 33 465792

>>465303 (OP)
Как считаешь взаимодействия между n-телами? Допустим есть планета на орбите звезды, и в ещё сторону движется тело, которое в теории должно выйти на орбиту, в таком плане, только объектов в разы больше

Ответы465834465835

18 Кб, 400x280
34 6 янв 2018, 14:56 34 465834

>>465792
Все пока честно, без упрощений (никаких сфер влияния, замены траекторий коническими сечениями и пр.).
Формула на пикче считается для каждой пары тел (итого N(N-1)/2 вычислений). Далее, для каждого тела: зная силу и массу, считаю ускорение; зная ускорение и время одной итерации (dt), считаю dV и dr (приращения скорости и радиус-вектора). Формулы, по которым считаю dV и dr, можно видеть тут:
>>465645

Чем меньше dt, тем точнее расчеты.

Ответы465835

35 6 янв 2018, 15:00 35 465835

>>465792
>>465623

>>465645
>>465834

Может, мне в sci запилить тред конкретно по физике?

Ответы465836465837

56 Кб, 512x512
36 6 янв 2018, 15:02 36 465836

>>465835
Хотя, не, слишком жирно мне два треда посвещать.

37 6 янв 2018, 15:05 37 465837

>>465835
Не надо, лучше тут пиши что велосипедишь. Пробовал оптимизировать? Это побольше занимает времени ЦП, чем pow(a,12) ^_^

Ответы465839465840

38 6 янв 2018, 15:11 38 465839

>>465837
Я уже сравнительно близок к пределу оптимизации физики (так мне сказали, по крайней мере). Дальше, пожалуй, уже всякие хаки идут, ибо, по сути, я просто в цикле формулы прогоняю. Тут уже только грамотное распараллеливание.

Но:
1) Для игры, где мало тел, уже можно остановиться, ведь все достаточно точно считается даже при десятитысечных таймварпах и более.
2) Для чисто физических симуляций лучше послать CPU куда подальше и считать на GPU.

39 6 янв 2018, 15:13 39 465840

>>465837
Забыл еще добавить всякие методы упрощения вычислений за счет уменьшения точности, но это уже не оптимизация.

40 7 янв 2018, 01:20 40 466022

Космос в 2д неинтересный, имхо. С приличной симуляцией физики можно было бы побаловаться с какими-нибудь гало-орбитами, или смотреть на прецессию орбиты в гравитационном поле не сферы, а эллипсоида вращения, например. Много интересностей двадэ вырезает, вот.

Ответы466046466047

41 7 янв 2018, 09:39 41 466046

>>466022
2D у меня искусственное. Так как все вычисления на векторах идут, я могу просто все векторы на трехмерные поменять и сразу же скомпилировать.

Я специально ввел ограничение на размерность пространства, так как:
1) Управление в трехмерном пространстве не настроить на мышь или тач, а я тут хочу аркадности.
2) Я не могу даже в треугольники на OpenGL, что уж говорить о 3D.

Ответы466121

42 7 янв 2018, 09:50 42 466047

>>466022
А для прецессии, вроде, все и в 2D работать будет.

43 7 янв 2018, 18:06 43 466121

>>466046
> не могу в треугольники
https://learnopengl.com/
Тут всё очень понятно разжевано, вот.
По управлению -- сделай как в KSP сферу направлений, да и всё. Просто интересных орбит в 2д не будет.

Ответы466175

44 7 янв 2018, 20:57 44 466175

>>466121
>сделай как в KSP сферу направлений
Это даже для клавы неудобно, что уж говорить про тач.
>Просто интересных орбит в 2д не будет.
Пока что только гало-орбит и нет.

>https://learnopengl.com/
Спасибо за руководство. Я думаю, что в будущем никогда не поздно будет перейти на 3D, если действительно окажется скучно.

Сейчас же пока не до этого. Только что начал пилить пробную прогу на CUDA, если получится, добавлю вычисления на GPU в игру как опцию для Nvidia-бояр.
Хотя, может в игре оно и не нужно (разве что только если кому-нибудь не захочется в режиме песочницы из кучи камней запустить формирование планеты). Но мне в любом случае надо это в движке, так как я на нем не только игру пилю.

36,1 Мб, mp4,
1024x720, 0:25
45 8 янв 2018, 00:45 45 466214

Короче, я закончил пока с CUDA. Мне мой прогресс в ней понравился, поэтому я чутка перераспределил время и в следующий раз больше внимания уделю наружностям игры, а не внутренностям (а то тред превращается в смесь /pr/ и /sci/).

Что же на видео? На видео видна примерная разница в скорости моделирования волн на тонкой мембране между CPU и GPU. Сей примерчик запилил дабы разобраться в основах CUDA и просто порадоваться перспективам прироста скорости. Ничего пока еще не оптимизировал (вообще), замерял время тупо на секундомер и характеристики компа выкладывать не буду, ибо это ничуть не бенчмарк, а просто так.

Если кому-нибудь интересно чуть больше:
Белое - мембрана сильно выгнута вверх.
Красное - просто выгнута.
Черное - не выгнута.
Синяя - выгнута вниз.

Что в основе:
https://ru.wikipedia.org/wiki/Волновое_уравнение
Быстрое вычисление дивергенции на сетке:
http://crecs.ru/ru/numlabs2/Wave_index.html
Дальше всё теми же методами:
>>465645

95 Кб, 1250x2250
46 8 янв 2018, 00:55 46 466217

А пока можете попроигрывать с моих "рисунков".

Хотя, нет, это еще не все.
Вопрос к знатокам Иллюстратора.
Поставил через CreativeCloud Illustrator 2017.3.
Вначале работает быстро, потом начинаются тормоза. При этом чем дольше программа работает, тем больше тормозит. Через полчаса тормозит даже палитра: цвет выбирается по пять секунд.
Насколько это нормально?

Ответы466243466433546074

47 8 янв 2018, 04:51 47 466243

>>466217
>Насколько это нормально?
Очевидно, не очень. Зачем он тебе вообще? У тебя же не очень сложные векторы, можно забить на этот старый кусок говна и рисовать их, например, в фигме.

Ответы466393466433

48 8 янв 2018, 16:25 48 466393

>>466243
Ты про это, что ли?
https://www.figma.com
Выглядит как какой-то WYSIWYG редактор вебстраничек. Я, наверное, ошибся, и ты что-то другое подразумевал.

Ответы466427466433

49 8 янв 2018, 17:49 49 466427

>>466393
Все верно. Нет, это не WYSIWYG для веб-страниц. Это редактор для запилки интерфейсов, типа Sketch. Вся база для работы с вектором там есть, плюс он бесплатный и оче удобный.

50 8 янв 2018, 17:54 50 466433

>>466217
>>466243
>>466393
В чем проблема PS юзать?

Ответы466434

51 8 янв 2018, 17:55 51 466434

>>466433
Для работы с вектором он не ОЧ. Да и вообще не фонтан.

Ответы466435

155 Кб, 1250x2250
52 8 янв 2018, 17:59 52 466435

>>466434
Для создания чего-то такого хватит с головой, разве нет? Может дело привычки, хз.

281 Кб, 1255x719
53 9 янв 2018, 12:58 53 466626

Первые попытки сделать рандомные кольца. Получилось что-то странное и страшное. Я, вроде как, все запрогал так, чтоб на равном расстоянии от тела кольца были одинаковой интенсивности, а получил какой-то шум, как будто каждый пиксель рандомом считается.

Хотя, я, кажется, даже знаю в чем проблема. Пошел фиксить.

Ответы466628

9 Кб, 190x57
54 9 янв 2018, 13:01 54 466628

>>466626
На пикче, кстати, можно наблюдать весьма загадочное явление - кольца внутри колец. Таких штук появляется от пяти до десяти. Я вообще не понимаю, что это такое и как так получается, что они тоже круглые.

1 Мб, 1707x2560
55 9 янв 2018, 14:16 55 466666

Хотелось бы такие кольца, конечно...

56 9 янв 2018, 19:51 56 466771

>>465303 (OP)
1. Какие начальные скорости использовал? Подбором?
2. Все делал пропорционально пиксель=расстояние(пренебрегая размерами объекта), или просто подкорректировал константы типа гравитационной?

Ответы466796

57 9 янв 2018, 20:23 57 466796

2 Кб, 497x163 Кб, 235x80

>>466771
>1. Какие начальные скорости использовал? Подбором?
Ты про ту мини-звездную систему? Считая, что масса звезды велика в сравнении с массами планет (а так и есть, они отличаются на три-четыре порядка), считал скорости для круговых орбит (первая картинка). В конце генерации всей системы еще добавлял немного доп. скорости всем телам, чтоб ЦМ системы на месте стоял.

>2. Все делал пропорционально пиксель=расстояние(пренебрегая размерами объекта), или просто подкорректировал константы типа гравитационной?
Никаких пропорций пока нет. Все константы и размеры я выбрал как степени двойки (1, 2, 4, 8 и т.д.) просто из личных предпочтений. Если что-то надо будет согласовать с реальностью, то достаточно будет все константы сделать как в реальности в нужной системе единиц (например, СИ) и пиксели автоматом превратятся в метры, единицы массы - в килограммы и т.д.
Вторая картинка - все используемые и часть неиспользуемых констант.

58 9 янв 2018, 20:35 58 466800

Вообще, рано или поздно все придется перемасштабировать, чтоб было что-то похожее на это по размерам:
http://joshworth.com/dev/pixelspace/pixelspace_solarsystem.html

Это у меня пока все такое гигантское, чтоб всякие кольца да градиенты дебажить. Сейчас радиусы некоторых планет даже больше, чем их условная сфера влияния.

59 9 янв 2018, 22:39 59 466839

218 Кб, 1266x720196 Кб, 1266x718

https://youtu.be/-OdCq9Monw4

60 13 янв 2018, 18:33 60 467544

227 Кб, 1280x72081 Кб, 1280x720

Еще поковырялся в графике.
1) Улучшил качество и скорость рендера колец. Теперь они чуть больше похожи на реальные, и не так видны пиксели при зуме (хотя все равно есть определенный предел, см. третье видео).

К сожалению (или к счастью), уже уперся в максимальный размер текстуры, и поэтому собираюсь кольца да свечение рендерить в динамическом качестве (зависящем от зума) и не полностью, а только как сегмент круга, вращая его так, чтобы он всегда был полностью в камере.

2) За пять минут сделал тень и спрайт планеты (нагло украденная у НАСА текстура Сатурна, свернутая в блин). К сожалению, видео плохо передают цвета, поэтому прикрепил еще и скриншоты.

Ответы467545467618

61 13 янв 2018, 18:35 61 467545

>>467544
Класс просто. Не Двач, а сказка.
Капча становится невалидна к моменту окончания загрузки видоса. Обожаю.

62 13 янв 2018, 18:40 62 467550

>>467546
Лель.
Я же еще ничего особо-то не сделал.

9,2 Мб, mp4,
1280x720, 0:06
63 13 янв 2018, 23:31 63 467618

>>467544

64 14 янв 2018, 03:21 64 467652

Ты умничка, продолжай в том же духе.
Я уже универ закончил, но половины этой хуйни не знаю даже (хотя не особо и хотел когда-то, но скоро наверстаю).

65 14 янв 2018, 16:56 65 467745

>>465303 (OP)
Хотел-бы заняться на добровольной основе музыкой и аудио.

Ответы467749467797

66 14 янв 2018, 17:12 66 467749

>>467745
Чего умеешь?
Покажи.

195 Кб, 2048x1024
67 14 янв 2018, 18:26 67 467797

>>467745
ОП на связи.
С музыкой я уже примерно определился: хочу использовать работы 3six, многие из них бесплатны и, вроде, проблем с авторскими правами не будет, если я просто упомяну композитора. Если напишешь хорошую музыку и разрешишь её использовать, ничего не буду иметь против её добавления в игру.
https://youtu.be/vxvTddIzVFE

Проблемы пока только со звуками. Я в этой области умею только качать всякие библиотеки звуковых эффектов и не более. Тут уже твоя помощь будет неоценима, особенно если ты умеешь делать звуки работы двигателей (которые, скорее всего, будут не химические, поэтому для них звуки фиг достанешь), звуки стыковки, ударов о космическую пыль и пр.

68 17 янв 2018, 09:08 68 468675

>>465473
Описал бы в тредике, что и как ты там пилишь. Например, как глоу реализован, как физику считаешь. Потом можешь в блогпост перепилить.

Ответы468809

69 17 янв 2018, 09:10 69 468676

>>465596
>pow рассчитана не только на целые степени (принимает в качестве аргумента double), так что и работает она не быстрее sqrt
Ээ... Вот только ты забыл, что сейчас 20!8, и компиляторы оптимизируют и инлайнят вызовы типа pow(x, n), где n - компайл-тайм константа. Так что на скриншоте у тебя эталонный говнокод, да.

Ответы468809

70 17 янв 2018, 15:45 70 468809

>>468675
Я отвечаю на все тематические вопросы, что мне задают. Про физику уже написал много, если интересует что-то еще, спрашивай.
Про свет:
Интенсивность пикселя обратно пропорциональна квадрату расстояния до центра (r). Там, где интенсивность больше 255, все заполняется белым (255). Где меньше 0.5 - прозрачным. Как входной параметр задается радиус белой области (R0).

Y = 255 x (R0 / r)2
И еще те условия на макс. и мин. интенсивность.

>>468676
Я уже писал по этому поводу. Могу повторить вкратце:
Использую MS VS 15.
Дизасм и профилирование показало, что в том участке кода ничего не оптимизируется (из того, о чем мы говорим). Впрочем, это ведь очевидно, так как pow() принимает в качестве степени переменную типа double независимо от того, насколько качественно скомпилирована программа. А возведение в вещественную степень не быстрее извлечения квадратного корня.

Ответы468928546080

71 17 янв 2018, 20:44 71 468928

>>468809
>качестве степени переменную типа double независимо от того, насколько качественно скомпилирована программа
Ты не понимаешь, как работают оптимизирующие компиляторы.

Ответы468962

72 17 янв 2018, 23:10 72 468962

>>468928
Согласись, что программист может использовать в функции некоторые "хаки" или "магические константы", работающие только для определенного типа входных данных. Например, тот же самый быстрый квадратный корень. Если компилятор "насильно" заставит функцию работать с входными данными другого типа, то все сломается. В реале все сломается даже без хаков в силу того, что одни и те же операторы дают разный результат для разных типов (деление целых чисел дает целое, вещественных - вещественное).

Единственный вариант заставить заточенную под один тип функцию работать с другими типами так, как хочется - честно переписать. Насколько я понял, pow() использует взятие логарифма и экспоненцирование, заточенное под быструю работу с набором команд x86. Тут могу, конечно, ошибаться, но суть все равно остается та же: ни один компилятор это не переделает в цикл с умножением. Значит, и работать это быстрее не будет, что я и наблюдаю.

Возможно, я в корне ошибаюсь. В таком случае, буду рад узнать,
>как работают оптимизирующие компиляторы.
в моем случае.

Ответы468994

73 18 янв 2018, 01:48 73 468974

>>465303 (OP)
Немного говнокодил подобное, но не так хардкорно как Оп. Подписался на тред.
https://github.com/Gitard/kosmach

Ответы468985

74 18 янв 2018, 08:58 74 468985

>>468974
>.html
)

75 18 янв 2018, 09:43 75 468994

>>468962
>ни один компилятор это не переделает в цикл с умножением.
False.

Ну, точнее цикл тут не нужен, так что технически верно, но ты не это имел в виду.

Ответы468998

76 18 янв 2018, 10:04 76 468998

>>468994
Для того, чтоб оптимизировать цикл и превратить его в цепочку умножений, нужно сначала оптимизировать логарифм и экспоненту в цикл. Этого компилятор не сделает. Значит, и цепочки умножений не будет.
Иначе говоря, никаких оптимизацией из разряда целочисленного pow() не будет, пока, собственно, pow() не станет целочисленным, что может устроить только программист.

Если ты не про это, то я уже не знаю, про что.

Ответы469040

77 18 янв 2018, 10:14 77 468999

Малаца оп. Продолжай, интересно наблюдать.

78 18 янв 2018, 11:59 78 469040

>>468998
Дебил ты ебаный, pow(x,n) переводится в x...x для целочисленных литеральных n, сколько еще раз надо это написать

Ответы469132

79 18 янв 2018, 15:38 79 469132

>>469040
Хорошо, я решил еще раз изучить эту проблему.
Ссылка на аналогичный вопрос и бенчмарк:
https://www.quora.com/In-C-C++-is-there-any-performance-difference-to-compute-x-4-by-using-pow-x-4-or-xxxx-For-example-x-is-a-double-floating-number

На самом деле таких замеров куча, я просто взял один из самых недавних (конец 2017)

Прогнал код из верхнего ответа у себя с максимальными параметрами оптимизации по скорости (+ /fp:strict, хотя он, вроде, ни на что не повлиял):
x = 0.1, n = 4

std::pow(x, n)
Took 716.273 ms, error: 0

xxxx
Took 30.0069 ms, error: 1.35525e-20

tmp=xx; tmptmp
Took 31.4583 ms, error: 2.71051e-20

tmp=(long double)xx; tmp*tmp
Took 29.9972 ms, error: 2.71051e-20

Тут следует заметить две вещи:
1) "Ошибка" может сильно скакать с изменением тестируемого основания. Время же от этого не зависит.
2) У Microsoft double и long double идентичны, так что последние два теста - одно и то же.

Как видно, ничего тут не оптимизируется. А еще видно то, о чем я писал: pow(x, 4) и цепочка умножений xxxx дают разные результаты (error разный).

Пожалуй, я закрываю этот вопрос. Надоело уже вокруг одной строчки кода топтаться. Тем более все, что мне о ней пишут - какие-то общие мысли без доказательств.

P.S. Пока писал, решил проверить для n = 2. Тут pow() действительно заменяется умножением.
https://www.reddit.com/r/cpp/comments/70tl51/c11_performance_tip_when_to_use_stdpow/dn5t75w/

Мои замеры:
std::pow(x, 2)
Took 35.7014 ms, error: 0

xx
Took 35.8977 ms, error: 0

Однако, уже для pow(x, 3) скорость снова падает примерно в 20 раз.
std::pow(x, 3)
Took 719.445 ms, error: 0

xxx
Took 36.0844 ms, error: 0

https://www.reddit.com/r/cpp/comments/70tl51/c11_performance_tip_when_to_use_stdpow/dn6nctu/

79 18 янв 2018, 15:38 79 469132

>>469040
Хорошо, я решил еще раз изучить эту проблему.
Ссылка на аналогичный вопрос и бенчмарк:
https://www.quora.com/In-C-C++-is-there-any-performance-difference-to-compute-x-4-by-using-pow-x-4-or-xxxx-For-example-x-is-a-double-floating-number

На самом деле таких замеров куча, я просто взял один из самых недавних (конец 2017)

Прогнал код из верхнего ответа у себя с максимальными параметрами оптимизации по скорости (+ /fp:strict, хотя он, вроде, ни на что не повлиял):
x = 0.1, n = 4

std::pow(x, n)
Took 716.273 ms, error: 0

xxxx
Took 30.0069 ms, error: 1.35525e-20

tmp=xx; tmptmp
Took 31.4583 ms, error: 2.71051e-20

tmp=(long double)xx; tmp*tmp
Took 29.9972 ms, error: 2.71051e-20

Тут следует заметить две вещи:
1) "Ошибка" может сильно скакать с изменением тестируемого основания. Время же от этого не зависит.
2) У Microsoft double и long double идентичны, так что последние два теста - одно и то же.

Как видно, ничего тут не оптимизируется. А еще видно то, о чем я писал: pow(x, 4) и цепочка умножений xxxx дают разные результаты (error разный).

Пожалуй, я закрываю этот вопрос. Надоело уже вокруг одной строчки кода топтаться. Тем более все, что мне о ней пишут - какие-то общие мысли без доказательств.

P.S. Пока писал, решил проверить для n = 2. Тут pow() действительно заменяется умножением.
https://www.reddit.com/r/cpp/comments/70tl51/c11_performance_tip_when_to_use_stdpow/dn5t75w/

Мои замеры:
std::pow(x, 2)
Took 35.7014 ms, error: 0

xx
Took 35.8977 ms, error: 0

Однако, уже для pow(x, 3) скорость снова падает примерно в 20 раз.
std::pow(x, 3)
Took 719.445 ms, error: 0

xxx
Took 36.0844 ms, error: 0

https://www.reddit.com/r/cpp/comments/70tl51/c11_performance_tip_when_to_use_stdpow/dn6nctu/

Показать весь текст
Ответы469133469459469512

80 18 янв 2018, 15:40 80 469133

>>469132
>...or-xxxx-For...
Тут должны быть звездочки между x.

sage 81 19 янв 2018, 12:31 81 469459

>>469132
>Тем более все, что мне о ней пишут - какие-то общие мысли без доказательств.
Первая же ссылка в гугле с листингом сгенеренного асм: https://stackoverflow.com/questions/6321170/is-there-any-advantage-to-using-powx-2-instead-of-xx-with-x-double

Ответы469512

82 19 янв 2018, 14:46 82 469512

>>469459
Прочитай, пожалуйста, еще раз:
>>469132

Можешь еще на ту самую строчку кода взглянуть, ведь там вовсе не в квадрат возводится.

83 21 янв 2018, 14:32 83 470103

>>465303 (OP)
GUI сам пишешь?

Ответы470322

84 22 янв 2018, 07:38 84 470322

>>470103
Да.
Правда, его ещё, как такового, нет.
Просто рисуются тела и не более.

85 22 янв 2018, 08:38 85 470324

Впечатляюще. А игровая составляющая планируется?

Ответы470717

86 23 янв 2018, 17:31 86 470717

9,1 Мб, webm,
320x240, 4:40134 Кб, 1920x1080

>>470324
Конечно.
Вообще, если рассматривать чисто геймплей, то все будет сводится к полету куда надо за минимально возможное количество топлива.

Планирую сделать песочницу. Минимум одна полуслучайная звездная система с полной свободой выбора, куда лететь и что делать. В распоряжении будет что-то вроде очень навороченного космического корабля, на борту у которого есть челноки для сбора топлива и материалов.

Предполагается, что материалы будут нужны для починки корпуса корабля (если потребуется) и для создания ненаукомеких деталей и корпусов для различных исследовательских зондов. Наукоемких деталей будет ограниченное количество. Топливо, что очевидно, используется для полетов.

Материалы, скорее всего, будут собираться с астероидов. Топливо черпается с газовых гигантов (будет минимум один). Двигатели, скорее всего, будут термоядерными.

Конечная цель - исследовать всю систему, насажать зонды на планеты, навыводить спутники на орбиты, составить карты, узнать составы атмосфер, океанов и пр.

Но это все очень примерно, я до твоего вопроса сильно не задумывался над геймплеем. Скорее всего, все еще не раз поменяется. Или уточнится, а то тут только общие идеи.

86 Кб, 512x512
87 31 янв 2018, 15:18 87 472124

bump

sage 88 15 фев 2018, 02:49 88 476333

Оп соснул

89 20 фев 2018, 07:47 89 478067

Але, блять, бамп.

90 20 фев 2018, 09:29 90 478077

>Учитывая, что ЕГЭ не за горами и что я пилю один
Видимо ОП готовится к ЕГЭ

Ответы478268

91 20 фев 2018, 20:10 91 478268

4,9 Мб, mp4,
960x540, 0:2910,3 Мб, mp4,
960x540, 0:09

>>478077
В целом, это можно назвать и так.
В свободное время больше занимался именно движком. В основном игрался с диполями (п1) и моделями реального вещества. Также пытался сделать быструю симуляцию вещества, состоящего из гранул (п2).

Еще чутка поковырял тени и изменил порядок отрисовки слоев, чтобы было красивее. В остальном все.

Тред почти утонул, лол.

Ответы478647478668492886497366

92 21 фев 2018, 21:19 92 478647

>>478268
>2
Сколько гранул?
https://www.youtube.com/watch?v=v3WY5E4-mBc&t=27s

Ответы478651

93 21 фев 2018, 21:38 93 478651

>>478647
В четыре раза меньше, чем на твоем видео. Но muzkaw использовал более продвинутый метод обнаружения столкновений - spacial hashing. Я же просто запоминал, кто с кем столкнулся на прошлом шаге. Если будет время, пойду дальше в этом направлении. Но пока в приоритете космос.

Ответы478652

94 21 фев 2018, 21:41 94 478652

>>478651
Точнее, не в 4 раза меньше, но ФПС у меня 60, а не 150, как у Muzkaw. Короче, у меня 4000 тел на 60 фпс.

95 21 фев 2018, 23:05 95 478668

>>478268
Что нужно знать кроме програмирования чтобы такое делать? Математику , физику?

Ответы478672

96 21 фев 2018, 23:08 96 478669

>>465303 (OP)
Писал топ ДАУН шутер на С++ и SFML, потратил дохуя времени и еле-еле получил играбельную демку. Забил хуй и сейчас делаю игры на юнити, что и тебе советую.

Ответы478671478675478677

97 21 фев 2018, 23:12 97 478671

>>478669
Если ты знаешь С++ то почему не делаешь игры на UE4?

Ответы478673

275 Кб, 700x525
98 21 фев 2018, 23:14 98 478672

>>478668
Честно скажу, я не знаю. Я даже не совсем понимаю вопроса, ведь от физики тут только формулы для сил и второй закон Ньютона. Большую часть времени (~80%) у меня занимает именно программирование (отчасти это из-за навелосипеденной многопоточности). Физика, пожалуй, нужна больше для того, чтоб реально получать удовольствие от симуляций, чтоб были идеи, что симулировать.

Мои знания чуть выше 11 класса. Физику я учу углубленно, математику только как придаток к ней.

Ответы478674

99 21 фев 2018, 23:17 99 478673

>>478671
Пытался сначала на уе4 вкатиться, но почти не нашел нормального обучающего материала, да и он не заточен под 2д игры, которые я делаю, . В отличие от юнити у которого есть как и 3д так и 2д компоненты. + начал учить юнити, потому что где-то прочитал, что с него легче на уе4 вкотиться, да и после шараги, в которой учил кресты, я на них забил и начал учить шарп. Все звезды встали в ряд, короче

11 Кб, 643x321
100 21 фев 2018, 23:17 100 478674

>>478672
>Я даже не совсем понимаю вопроса
Я имел виду ты же брал готовые формулы из книг по физике как на пикче и внедрял в свою программу?

Ответы478676

101 21 фев 2018, 23:17 101 478675

>>478669
На Юнити нет CUDA. И нет нормального интерпретатора lua. И не охота учить шарп, особенно в 11 классе и в вузе, когда времени крайне мало. И вообще, зачем из пушки по воробьям?

И вообще, я не ориентирован на конечный продукт, о чем в первом посте и написал. У меня слишком мало времени для этого.

Ответы479429

102 21 фев 2018, 23:18 102 478676

>>478674
Брал готовые формулы, но с пониманием, откуда они и почему именно такие.

103 21 фев 2018, 23:19 103 478677

>>478669
>sfml
>дохуя времени
это нужно специально постараться

Ответы478679

104 21 фев 2018, 23:21 104 478679

>>478677
Затеял, как обычно бывает, сделать первую игру неебически большой. В итоге жиденько обосрался.

48 Кб, 350x262
105 21 фев 2018, 23:25 105 478682

Кстати, тут один анон спрашивал про то, буду ли я выкладывать все это на гитхаб. Я тут решил вернуться к этому вопросу и поэтому спрашиваю вас, есть ли в этом смысл? По идее, это только трата времени на залив апдейтов, вряд ли кто-то будет ковыряться в моем говнокоде ради с целью его улучшения. Короче, как это вообще работает на двачах? И зачем?

Ответы478684478686479431

106 21 фев 2018, 23:26 106 478684

>>478682
>ради с целью
*с целью

107 21 фев 2018, 23:28 107 478686

>>478682
Хотят посмотреть на то, как ты реализовывал какие-то функции и поучится мудрости.

108 23 фев 2018, 23:07 108 479429

>>478675
В шаражке у тебя времени куча будет, не беспокойся, полностью отдашься своему делу и воссоединишься с вселенной.

Ответы479671

109 23 фев 2018, 23:09 109 479431

>>478682
Петя из 9 класса хочет посмотреть как писать пограммы

110 24 фев 2018, 18:40 110 479671

>>479429
>В шаражке у тебя времени куча будет
Ох ты лол блять. Ну в шаражке, наверное, да. Но в более-менее тех. вузах ДС-1/2 свободного времени до 5 семестра не больше, чем в школе.

Ответы479673479689

111 24 фев 2018, 18:46 111 479673

>>479671
> чем в школе.
Глупо выразился. Чем в 11 классе, когда помимо школы 100500 репетиторов и постоянная самоподготовка.

112 24 фев 2018, 19:13 112 479689

44 Кб, 1274x718104 Кб, 935x514

Времени не прибавилось, поэтому пока исправляю ошибки и немного ковыряюсь в графике.
Добавил всяких полезных астрономических функций. Теперь, зная расстояние между телами, их скорости и массы, могу находить полуоси орбит, периоды, сферы влияния, сферы действия, сферы Хилла. Это нужно для генерации реалистичных и, главное, стабильных звездных и планетарных систем. Особенно важна сфера Хилла. Вне ее у планеты не может существовать стабильных спутников.

Первая картинка - просто снимок экрана одной из простеньких звездных систем, вторая пикча - колебания орбитальных периодов трех массивных (10-3 массы звезды, примерно как Юпитер к Солнцу) планет с течением времени. Как видно, колебания гармонические и в среднем орбиты с целым отношением периодов обращения стабильны.

Нашел классный эмбиент - ЭМ-фон планет, переведенный в аудио-сигнал. Звучит круто и атмосферно, ИМХО. Я бы даже сказал, криповато.
https://youtu.be/oWTC7P1Dprw
https://youtu.be/X_JAvVjKeWI

>>479671
Я тоже думаю, что если в хороший ВУЗ поступлю, то свободного времени будет мало.

Ответы480774

113 27 фев 2018, 15:47 113 480774

>>479689
https://youtu.be/4xpR4hyPSlE

33 Кб, 400x400
114 27 фев 2018, 16:54 114 480814

>>465303 (OP)
Ебать, Артёмка. Ты уже сам движок написал и тред на гдаче сделал? Я в ахуе.

Ответы480816

115 27 фев 2018, 17:04 115 480816

>>480814
Это какие-то локальные мемы?

Ответы480820

116 27 фев 2018, 17:23 116 480820

>>480816
Нет, я просто отчим его.

Ответы480840

117 27 фев 2018, 18:56 117 480840

>>480820
Очевидно, ОП - не Артемка.

Ответы481193

118 28 фев 2018, 18:37 118 481193

>>480840
Это кому оно очевидно?

119 1 мар 2018, 22:19 119 481779

59 Кб, 1212x8193 Кб, 235x80

Я ОП и я официально и при свидетелях заявляю, что я не Артемка.

Ответы481903

120 2 мар 2018, 01:01 120 481903

>>481779
Пруфы или гтфо.

Ответы482660

121 4 мар 2018, 16:23 121 482660

>>481903
Пруфы того, что Артемка?

Ответы482719

122 4 мар 2018, 21:05 122 482719

>>482660
Ну ты определись уже.

123 8 мар 2018, 08:43 123 483850

>>465303 (OP)

124 11 мар 2018, 17:32 124 485025

Bump

125 11 мар 2018, 17:39 125 485027

бумп

sage 126 12 мар 2018, 01:54 126 485296

оп-соснул

Ответы485421487753

127 12 мар 2018, 08:39 127 485421

>>485296
Что ты тут уже во второй раз забыл?

Ответы485548

sage 128 12 мар 2018, 15:22 128 485548

>>485421
То, что оп-соснул.

129 16 мар 2018, 22:45 129 487749

Не Тони.

Ответы487753

sage 130 16 мар 2018, 22:48 130 487753

>>487749
>>485296

Ответы487853

131 17 мар 2018, 11:26 131 487853

>>487753
Bump

sage 132 17 мар 2018, 12:09 132 487864

Ого, очередная хуета, ничего себе, молодец, оп, продолжай в том же духе, еще советую попробовать выпилиться.

133 29 мар 2018, 15:39 133 492886

>>478268
Почему близкие диполи отталкиваются?

Ответы496778

134 21 апр 2018, 17:02 134 496778

>>492886
Экспоненциальное отталкивание из-за перекрытия электронных оболочек. На самом деле, в этом видосе особого физического смысла нет, просто тестил стабильность расчетов.
Я надеялся, что тред утонул...

135 26 апр 2018, 17:54 135 497366

>>478268
Очень круто, прям кристаллизация.

sage 136 4 сен 2018, 01:39 136 525688

Оп соснул!

Ответы545960

137 15 янв 2019, 12:47 137 545960

>>525688
У ОПа сессия.

Ответы546000

138 15 янв 2019, 16:28 138 546000

>>545960
Ебать, Оп уже не школьник! Пёрнул тебе в лицо

139 15 янв 2019, 20:02 139 546071

>>465645
>switch в методе для интеграции
Ебать ты додик, про branch misprediction не слышал? Вообще не должно быть ветвлений в таком коде, если хочешь получить нормальную производительностью

Ответы546105

140 15 янв 2019, 20:05 140 546074

>>466217
>Вначале работает быстро, потом начинаются тормоза. При этом чем дольше программа работает, тем больше тормозит.
Скорее всего, ты поставил пиратку с майнером.

Ответы546105

141 15 янв 2019, 20:07 141 546080

>>468809
>что в том участке кода ничего не оптимизируется
А ты какую сборку дизасмил-то, не дебажную случаем?

Ответы546105

18 Кб, 570x305
142 15 янв 2019, 20:46 142 546105

>>546071
Это вариант функции для дебага, с возможностью менять методы интегрирования на ходу. Для конкретных задач пишется отдельная функция, где есть только то, что будет использоваться, без ветвлений и вызова других функций.

>>546074
Проблема уже решена но, тем не менее: нет, качал официально через CreativeCloud. Баг был уже в 14-дневном демо-режиме. Так и снес, не крякнув.

>>546080
Релиз с максимальными настройками оптимизации времени выполнения.

sage 143 19 авг, 22:40 143 603280

Оп соснул!

Тред утонул или удален.
Это копия, сохраненная 12 марта 2020 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /gd/В начало тредаВеб-версияНастройки

/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.gq, m2ch.cf, m2ch.fapp.in, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion