powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / C++ [игнор отключен] [закрыт для гостей] / Изучение C++ после java
25 сообщений из 225, страница 5 из 9
Изучение C++ после java
    #40038123
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучшие образцы игр эпохи 90х - написаны вообще без ООП.
...
Рейтинг: 0 / 0
Изучение C++ после java
    #40038129
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эти образцы не публиковали исходники так что как они написаны - никому неизвестно.
Но по крайней мере Х2 - точно использовал ООП, у него в дизасемблере светится наследование
классов.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изучение C++ после java
    #40038137
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему?

Супер-Марио опубликован много раз и в разных видах. Doom2. Descent. Quake.
Я думаю что если продолжить список то минимум 10 штук я насчитаю.
...
Рейтинг: 0 / 0
Изучение C++ после java
    #40038138
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Ну и я первую прогу на Си писал без классов процедурно)
...
Рейтинг: 0 / 0
Изучение C++ после java
    #40038143
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonСупер-Марио опубликован много раз и в разных видах.

Он был для приставок (фактически микроконтроллеров), там вообще с С++ напряг.

maytonDoom2. Descent. Quake.

Это были официально опубликованные исходники или результат работы какой-нибудь софтины для
реверс-инженеринга?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изучение C++ после java
    #40038146
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

Это были официально опубликованные исходники или результат работы какой-нибудь софтины для
реверс-инженеринга?

Кажется сами создатели публиковали.
...
Рейтинг: 0 / 0
Изучение C++ после java
    #40038147
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

maytonСупер-Марио опубликован много раз и в разных видах.

Он был для приставок (фактически микроконтроллеров), там вообще с С++ напряг.

Точняк. И для игровых автоматов.
...
Рейтинг: 0 / 0
Изучение C++ после java
    #40038165
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какие вообще предпосылки не использовать в играх ООП? Это же чистой воды взаимодействие именно объектов. Как и GUI.
...
Рейтинг: 0 / 0
Изучение C++ после java
    #40038180
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
А какие вообще предпосылки не использовать в играх ООП? Это же чистой воды взаимодействие именно объектов. Как и GUI.

Вопрос как-то странно звучит. Легче наверное было наоборот ответить.

Думаю что был исторический фактор.

Если мысленно перенестись в ту эпоху (допустим для Dendy (Nindendo) это был 1993 год. Я точно
не уверен что это дата создания платформы. Скорее дата импорта в бывш СССР первых игровых приставок.
Тогда я ее впервые подержал эту консоль в руках.)
и вспомнить какие вообще царили компилляторы - то все станет
ясно. Старичок Бьярне еще не был так известен. И только мечтал. Торвальдс еще не успел популяризировать Линуксы.
Интернета в СОВРЕМЕННОМ понимании этого слова не было. Царили техно-стандарты государств. Програмнные продукты
распространялись на дискетках. Особого вольнодумства в принятии решения по компиллятору не было.

Я думаю что программирование от создателей могло быть на чем угодно но С здесь больше подходит.

А местные радио-любители и пираты после вскрытия схемотехники спокойно могли кодить игры в машиных кодах
как например это делали для Радио-86РК или для БК или z80.

Можно придумать еще кучу факторов типа - малый размер адресуемой памяти (типа 64к) что очень сильно
ограничивало бинарник.
...
Рейтинг: 0 / 0
Изучение C++ после java
    #40038181
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Мы тут обсуждаем Спектрум и т.п. или современную разработку игр? Я тоже программировал под Z80 и тогда мы просто не знали об ООП и не было инструментов (компиляторов) к этому.
...
Рейтинг: 0 / 0
Изучение C++ после java
    #40038186
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
А местные радио-любители и пираты после вскрытия схемотехники спокойно могли кодить игры в машиных кодах
как например это делали для Радио-86РК или для БК или z80.

Кстати, этим занимались не "местные радио-любители и пираты", а НИИ и заводы Советского Союза.
...
Рейтинг: 0 / 0
Изучение C++ после java
    #40038189
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я говорил про 90е.

Насчет современных. Не знаю. Я-бы классифицировал современные на такие направления.

- Browser/Unity/WebGL/C#/UnityScript
- Android/Kotlin
- Apple/Swift
- Windows/XBox/С/C++?
- Приставочные Sony PS* / неизвестный язык? Может С++ (знатоки прокомментируйте плз)
- Прочие гаджеты и игровые автоматы и смарт-телевизоры / неизвестный язык

и возможно в общей массе окажется что С++ там меньше.

Тем более что в современном гейм-деве производтсво игры - это такой себе проект
где есть строгое разделение на движки и сценарии и звуко-эффекты и художественные
и 3D съемки и вообще весь игровой продакшен настолько сложен и набит фреймворками
и скриптами что оценить эту долю С++ еще труднее. По факту - он используется но как - ХЗ.
...
Рейтинг: 0 / 0
Изучение C++ после java
    #40038197
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Я вообще запутался. Мне казалось, что мы про ООП в разработке игр.

Зачем-то прикрутили опыт 90-х. Или какие-то языки где тоже есть ООП. Потом закончили, что мол доля С++ мала. Может и мала.

Но мы же говорили про ООП в играх?
...
Рейтинг: 0 / 0
Изучение C++ после java
    #40038231
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
А какие вообще предпосылки не использовать в играх ООП? Это же чистой воды взаимодействие именно объектов. Как и GUI.

главная предпосылка - это 60 раз в секунду юзать одно и тоже
и при этом параллельно 60 раз в секунду юзать логику
всё дело в кэше...
с ООП это всё в одной куче
с DOD данные и логика идут раздельно.
Посчитал всю логику сразу... Посчитал все данные сразу... Кэш счастлив.
В итоге DOD выдаёт до 6 раз лучшую производительность (в играх, CSS-анимации, и ещё где-то).
авторMature programmers know that the idea that "everything is an object" IS A MYTH. Sometimes you really DO want simple data structures with funcs operating on them.
( Robert C. Martin - очень Объектно-Ориентированный парень)
Chandler Carruth - тоже топит за DOD.
пример DOD:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
C++ призывает юзать Array-of-Structures (AOS), но большинство CPU лучше работают, когда данные упакованы, как Structures-of-Arrays (SOA).
DOD как раз упрощает помещение данных в SOA.

// OOP data layout:
// Logical Entity 0:
Field A[0]      Field D[0]
Field B[0]      Field E[0]
Field C[0]      Field F[0]

// Logical Entity 1:
Field A[1]      Field D[1]
Field B[1]      Field E[1]
Field C[1]      Field F[1]


# Struct-of-Arrays
// DOD layout:
// Data A:
Field A[]
Field B[]
Field C[]
// что-то вроде:
struct A{
    vector<int> A, B, C;
};

// Data B:
Field D[]
Field E[]
Field F[]

System a (A + B)        -> Data C: Field G[]
System b (B)            -> Data D: Field H[]
// в итоге:
System y (C + D)

// и тогда User превращается в:
struct User{
    vector<string> name;
    vector<Date> birth;
    vector<Passport> pass;
    vector<SS> sex;
};


// ещё раз: OOP:
struct Node{
    Parent*
    Child[]
    DomLevel
    ChangedStyles*
    ComputedStyles*
    Id
    Classes
    MatchedStyles*
    ...
};

// DOD:
// Hierarchy:           used in phase 1
    Parent*
    Child[]
    DomLevel
// Styling:             used in phase2
    ChangedStyles*
    ComputedStyles*
// Style Matching       used in Style matching (not in this talk)
    Id
    Classes
    MatchedStyles*
// ...

...
Рейтинг: 0 / 0
Изучение C++ после java
    #40038235
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78,
+1
Архитектура игр и CRUD приложений кардинально отличается. Принципы и парадигмы другие. И форум другой (геймдев ру)
...
Рейтинг: 0 / 0
Изучение C++ после java
    #40038242
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
Но мы же говорили про ООП в играх?

Я не игродел. И я не знаю как принято делать игры сегодня.

Но я предполагаю что при разработке игр самым главным критерием качетва игры - будет
счастливый игрок. А он - счастлив когда шутер выдает 50 фпс и не зависит от количества
физики летающих объектов в сцене.

Игроку - не нужен ООП от слова вообще. Поэтому разраб будет отключать фичи наподобие
RTTI, VMT, до тех пор пока он не увидит что массивы летающих частиц попал в кеши и дальше
улучшать уже некуда.

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

В остатке будет С++ с плоскими структурами.

Это ООП? Я не знаю. Это как онанировать на порнхаб. Вроде и кончил - но есть ощущение
легкого обмана.
...
Рейтинг: 0 / 0
Изучение C++ после java
    #40038248
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Инкапсуляция, область видимости,.... отсутствие глобальности.
Плюсы ведь выросли из просто Си. Без ООП.
И по умолчанию не предлагается никаких имен. Все валится в глобальное.
Я надеялся, что мы будем говорить о чем-то более фундаментальном.
...
Рейтинг: 0 / 0
Изучение C++ после java
    #40038250
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AmKad,
Увы. Теория без практики мертва. Выше вы неплохую аналитику показали. Но разницу java и плюсов можно ощутить только попробовав самому. Увы.
Удачи!
...
Рейтинг: 0 / 0
Изучение C++ после java
    #40038252
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Игроку - не нужен ООП от слова вообще. Поэтому разраб будет отключать фичи наподобие
RTTI, VMT, до тех пор пока он не увидит что массивы летающих частиц попал в кеши и дальше
улучшать уже некуда.

Я тебе авторитетно могу сказать, что ООП вообще не нужен ни одному пользователю ПО, любого ПО.

Я не считаю, что ООП подход сам по себе ведёт к потере производительности. Единственный аргумент в плане производительности привёл пользователь tip78 . И это DOD. Но я боюсь, что тут есть какие-то подводные камни. Всё зависит от алгоритмов игровой логики о которых я могу только догадываться.
...
Рейтинг: 0 / 0
Изучение C++ после java
    #40038253
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
главный алгоритм - 60 раз в секунду показать одно и тоже
всё остальное - на заднем плане
petrav
Я тебе авторитетно могу сказать, что ООП вообще не нужен ни одному пользователю ПО, любого ПО.

вообще-то он таки сильно упрощает сопровождение
и когда во время создания класса можно проверить что угодно, посчитать что угодно, изменить что угодно - тоже роляет
...
Рейтинг: 0 / 0
Изучение C++ после java
    #40038254
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78
вообще-то он таки сильно упрощает сопровождение
Пользователю -то это зачем???
...
Рейтинг: 0 / 0
Изучение C++ после java
    #40038255
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,
-1
...
Рейтинг: 0 / 0
Изучение C++ после java
    #40038257
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
tip78
вообще-то он таки сильно упрощает сопровождение
Пользователю -то это зачем???
а он причем?))
...
Рейтинг: 0 / 0
Изучение C++ после java
    #40038260
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78
главный алгоритм - 60 раз в секунду показать одно и тоже
всё остальное - на заднем плане
petrav
Я тебе авторитетно могу сказать, что ООП вообще не нужен ни одному пользователю ПО, любого ПО.

вообще-то он таки сильно упрощает сопровождение
и когда во время создания класса можно проверить что угодно, посчитать что угодно, изменить что угодно - тоже роляет

Да я тебя умоляю. Это можно всё решить и без ООП.

Код: plaintext
1.
2.
struct MyPig pig;
init_pig(&pig);


И вызывай init_pig() когда хочешь, а не когда компилятор по высоким принципам ООП захочет. И считай что угодно и в той позиции какую захочешь. И как быстро захочешь. Или долго. :)
...
Рейтинг: 0 / 0
Изучение C++ после java
    #40038263
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
mayton
Игроку - не нужен ООП от слова вообще. Поэтому разраб будет отключать фичи наподобие
RTTI, VMT, до тех пор пока он не увидит что массивы летающих частиц попал в кеши и дальше
улучшать уже некуда.

Я тебе авторитетно могу сказать, что ООП вообще не нужен ни одному пользователю ПО, любого ПО.

Я не считаю, что ООП подход сам по себе ведёт к потере производительности. Единственный аргумент в плане производительности привёл пользователь tip78 . И это DOD. Но я боюсь, что тут есть какие-то подводные камни. Всё зависит от алгоритмов игровой логики о которых я могу только догадываться.


Зачеркнул про авторитетность. Что мы в 90х живем?
...
Рейтинг: 0 / 0
25 сообщений из 225, страница 5 из 9
Форумы / C++ [игнор отключен] [закрыт для гостей] / Изучение C++ после java
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]