HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > XashNT: блог разработчика
Часть II
Страницы (32): « 1 [2] 3 4 5 6 » ... Последняя »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 13497
Возраст: 33

Рейтинг



Цитата:
Дядя Миша писал:
Но в халфе оно не так. Да и в новом Ксаше тоже. У объекта может не быть никакого имени, имя ему по большому счёту нужно только для корректной десериализации.


Ну ID наверное всеравно какой то есть? В Юнити ты кстати можешь ещё объекты перемещать в слои и давать им теги, например чтобы они по разному взаимодействали с физикой, рейкастом или триггерами.

Цитата:
Дядя Миша писал:
Очень странный механизм, очень. Я использоую наследование, ну как и в халфе, собственно, хотя там оно было добавлено скорее от балды, а у меня несёт реальную функциональность.
Т.е. вот есть класс CBaseEntity - на его основе можно создавать совсем простые объекты. Есть класс CBaseAnimating - на его основе уже создаются анимированные модели. Есть класс CbaseToggle - тут у нас двери и лифты.
Прикол в том, что побольшому счёту (а особенно в новом Ксаше) это дикая условность. Все эти классы добавлены просто для удобства и ничего не мешает создать класс вообще без наследника и получить в нём ровно тот же самый функционал, что и в унаследованных классах. То есть здесь нет каких-либо ограничений. Можно вообще нагородить сколько угодно изолированных классов, которые ни от чего не наследуются - это будет так же корректно работать как и существующая система. В Юнити, насколько я знаю подобный трюк провернуть нельзя - там все объекты обязаны наследоваться от какого-то базового, который корнями уходит в движок.


Ну вот это и есть компоненты да, т.е. класс например который проигрывает звук это компонент, а класс который проигрывает звук и двигает дверь это уже пользователь. Ты можешь эти компоненты использвовать как энтитии, только тебе не надо городить гирлянду из объектов, т.к. ты можешь повесить их все на 1 объект, удобно.

Цитата:
Дядя Миша писал:
Да нет же. Монстр это один объект. Унаследованный от CBaseMonster.


Не правда. Это композиция. Что такое CBaseMonster? Он проигрывает звуки? Да. Он реагирует на физику? Да. Он включает ИИ? Да. Какой же это объект? Это гиперкласс который или дублирует или включает в себя композицию других объектов.

Цитата:
Дядя Миша писал:
Да, но мой салют не был брашевым...


Ну я просто объяснил как работает инстанс префаба.

Цитата:
Дядя Миша писал:
Я такое не делал. В принципе это не противоречит архитектуре движка, но я пока не представляю где и зачем мне это понадобится. А пока я этого не представляю, лучше и не пытаться это делать. Вполне вероятно, что это костыль самого Юнити, призванный компенсировать какие-то недостатки. Ну например отсутствие бесшовного чейнджлевела.


Это нужно больше для асинхронной загрузки уровней, у тебя я так понимаю такое не планируется?

Цитата:
Дядя Миша писал:
Я долго думал над иерархической природой сцены, но так ни к чему и не пришёл. Тут ещё сказывается мой опыт в разработке языка программирования. Подобное упражнение очень сильно прочищает мозги и те вещи, которые всегда казались очевидными - перестают таковыми быть, открываются новые горизонты. Вот и в случае с иерархичностью сцены. Нет четкого критиерия, по которому должна осуществляется эта иерархичность. Родительский трансформ? Но этого явно недостаточно чтобы заявить об иерархии. Объекты бывают связаны между собой разными неявными способами и далеко не всегда можно определить какой у какого в подчинении. К примеру модель оружия приаттачена к модели NPC физически, но она же отправляем ему эвенты с анимаций своей модели оружия. Т.е. в каком-то смысле выступает источником команд, хотя с точки зрения физики - это явно подчинённый предмет.


Тут я согласен с тобой, объекты помимо иерархии могут быть связаны собой ещё и ссылками и другими способами. Но всётаки общее определение у них есть - объекты иерархии имеют глобальное и локальные пространства, когда дочерние объекты реагируют на изменение трансформа родителя. У тебя такая система уже есть - кости, но в Юнити это работает для всех объектов, вот почему там очень легко вставить скелет на сцену и всячески его редактировать.

Цитата:
Дядя Миша писал:
А что касается физики, то я выбрал такой подход, где разработчику вообще не надо думать ни про какие коллайдеры. Единственный выбор который приходится делать - это аппроксимация NPC. По хитбоксам или просто коробкой\капсулой там.
А статичная геометрия всегда имеет точную коллизию. Ну и в дальнейшем надо будет сделать коллизию для анимированных моделей с обратной связью. Это когда анимированная дверь может реально давить игрока и отъезжать назад. Что-то такое.


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

Насчёт точной колизии тоже поаккуратнее, что если у тебя уровень будет иметь десятки миллионов полигонов? Что будет с этой коллизией?

Цитата:
Дядя Миша писал:
Я мог бы это сделать, но по моему убеждению это нарушает тиеричность и путает. Когда у простейшего объекта появляются дополнительные свойства. И это всегда приводит к проблемам менеджмента. Т.к. мы даже не знаем толком сколько моделей у объекта и за что они отвечают, если получаем доступ в него со стороны.


А что такое тиеричность? Ты думаешь у одного объекта может быть только один коллайдер? Вспомни сколько хитбоксов и триггеров у игрока и монстров. Опять всё это хардкодить? И плодить дублирующие системы? Вместо того чтобы просто накинуть их в редакторе на нужные кости.

Цитата:
Дядя Миша писал:
Свойство - это проперти, а не констрейнт. Констрейнт в переводе на русский это ограничение, ограничитель. А что касается физики, то я выбрал такой подход, где разработчику вообще не надо думать ни про какие коллайдеры.


Я пытался оперировать твоим языком, ты начал с констрейнтов я продолжил и похоже мы запутались окончательно. Ладно ты про свойство правильно написал, про констрейнт тоже в целом. Давай их пока в сторону. В Юнити на объекты ты вешаешь именно компоненты, вот так они и называются и никак иначе. Компонент с точки зрения движка это просто класс из которых ты складываешь композицию объекта.

Цитата:
Дядя Миша писал:
Это вот щас чо было? Это не официальный термин Юнити, ты сам его придумал использовать в таком качестве?


Компоненты, про остальные названия забудь. Я просто пытался в твой язык, получилось плохо.

Цитата:
Дядя Миша писал:
Нет, ты путаешь. Это анимационные события. Причём тут система ввода-вывода? Впрочем, в халфе такое тоже было. Когда Гордон после поездки в вагончике заходит в холл, его встречает Барни на крутящемся стуле. Так вот верчение этого стула как раз и рулится из эвента анимации. Там таргентейм жестко закомпилен прямо в модель барни.


Было конечно, но в весьма зачаточном состоянии и очень не интуитивно. Тебе не обязательно отслеживать так именно анимационные события. Ты можешь точно так же отслеживать какую то переменную из другого объекта. Разница не особо большая, это не захардкоженая система и она применима для всего, а не только для эвентов. Просто в данном случае я обернул её в скрипт анимейшен эвентс, чтобы в него можно было засунуть только эвенты и больше ничего.

Добавлено 05-08-2024 в 13:20:

По поводу кстати языка, рекомендую подсмотреть такие фичи:

Процедурная анимация интефейса:
https://www.youtube.com/watch?v=ZfvxdEASPIE

Работа с асинхронными функциями:
https://www.youtube.com/watch?v=jVFXnDd40CE
https://www.youtube.com/watch?v=7eDJbRWyj2A
https://www.youtube.com/watch?v=Rju9x_P0nKM

Реактивное программирование (работа с потоками)
https://youtu.be/1mqHUQIO3rM

Работа с адресуемыми ресурсами
https://youtu.be/LBOAMYHU2mg

Этот набор используется Юнити программистами сейчас повсеместно. Хотелось чтобы такие или подобные фишки шота уже поддерживал из коробки.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!

Сообщить модератору | IP: Записан
Сообщение: 221497

Старое сообщение 05-08-2024 10:20
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33010
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
FiEctro писал:
Ну вот это и есть компоненты да, т.е. класс например который проигрывает звук это компонент, а класс который проигрывает звук и двигает дверь это уже пользователь.

Нет, у меня вообще не так. Все классы создаёт пользователь. Проигрывание звука - это функция из интерфейса. А движение двери - это пользовательская физика. Я понял о чём ты, но я не стал так делать, потому что крайне негибкая система, хотя на первый взгляд кажется удобной и логичной.

Цитата:
FiEctro писал:
Что такое CBaseMonster? Он проигрывает звуки? Да. Он реагирует на физику? Да. Он включает ИИ? Да. Какой же это объект? Это гиперкласс который или дублирует или включает в себя композицию других объектов.

У тебя ложное представление об объектах. Объект это просто кусок памяти с переменными, которые надо хранить. Вот и всё. Проигрывание звуков, поиск пути, коллизию он получает, обращаясь к движковым функциям.

Цитата:
FiEctro писал:
Это нужно больше для асинхронной загрузки уровней, у тебя я так понимаю такое не планируется?

Архитектура не препятствует, может и введу когда-нибудь.

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

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

Цитата:
FiEctro писал:
Насчёт точной колизии тоже поаккуратнее, что если у тебя уровень будет иметь десятки миллионов полигонов? Что будет с этой коллизией?

Да что ей будет-то? Десятки миллионов я не тестировал, но 5-6 миллионов вполне. Прекрасно коллидит, не тормозит. Впрочем можно вручную грузить упрощённую копию коллизии, сделанную так же вручную.

Цитата:
FiEctro писал:
Но всётаки общее определение у них есть - объекты иерархии имеют глобальное и локальные пространства

Нет, это ложное определение, хотя на первый взгляд и кажется истинным. Вам просто навязали на ровном ненужную сущность, ну пример как 186 гендеров. Вот простой пример - если мы удалим родительскую энтить, что должно произойти с дочерними? Они должны удалиться тоже? Они должны отвалиться и включить собственную физику? Они должны зависнуть в определённой точке пространства? Только не надо мне говорить "как сделаешь так и будет" это было бы справедливо для конструкций, созданных самим юзером. Но здесь навязанная абстракция.
Значит она должна как-то решать и подобные ситуации.

Цитата:
FiEctro писал:
Ты думаешь у одного объекта может быть только один коллайдер? Вспомни сколько хитбоксов и триггеров у игрока и монстров

Это смотря что считать коллайдером. Технически все хитбоксы - это один коллайдер, принадлежащий одной модели.

Цитата:
FiEctro писал:
Я пытался оперировать твоим языком, ты начал с констрейнтов я продолжил

Я начал? Но где?

Цитата:
FiEctro писал:
Я просто пытался в твой язык, получилось плохо.

Цитату пожалуйста.

Цитата:
FiEctro писал:
По поводу кстати языка, рекомендую подсмотреть такие фичи:

Шарп изначально убогий язык, в который постоянно вводили недостающее. Не вижу особого смысла это смотреть, тем более на лагающем ютубе.
Но напомню что всё вышеперечисленное - не самоцель, оно скорее всего нужно для компенсации каких-то родовых травм языка или самого Юнити.
А маркетологами естественно преподносится как невероятный прорыв.
Ну что-то типа "эй, мы наконец-то починили старое дерьмо при помощи другого дерьма и это круто".

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 221498

Старое сообщение 05-08-2024 10:43
-
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 13497
Возраст: 33

Рейтинг



Цитата:
Дядя Миша писал:
Нет, это ложное определение, хотя на первый взгляд и кажется истинным. Вам просто навязали на ровном ненужную сущность, ну пример как 186 гендеров. Вот простой пример - если мы удалим родительскую энтить, что должно произойти с дочерними? Они должны удалиться тоже? Они должны отвалиться и включить собственную физику? Они должны зависнуть в определённой точке пространства? Только не надо мне говорить "как сделаешь так и будет" это было бы справедливо для конструкций, созданных самим юзером. Но здесь навязанная абстракция.
Значит она должна как-то решать и подобные ситуации.


Не могу ответить тебе со 100% точностью на этот вопрос. Но обычно при удалении родителя его дочерние объекты просто выходят на иерархию выше. Если у этих объектов нет компонентов физики то да, они просто зависнут в воздухе. Если есть, то будут вести себя по физике точно так же как и вели бы себя при активном родителе. Так сделано во многих движках и 3д пакетах.

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

Цитата:
Дядя Миша писал:
Цитату пожалуйста.


Последняя страница предыдущей темы. Впрочем не важно, просто запомни что есть объекты и компоненты, вот и всё. В Блендере к слову констрейнты навершиваются точно так же как компоненты в Юнити.

Цитата:
Дядя Миша писал:
Шарп изначально убогий язык, в который постоянно вводили недостающее. Не вижу особого смысла это смотреть, тем более на лагающем ютубе.
Но напомню что всё вышеперечисленное - не самоцель, оно скорее всего нужно для компенсации каких-то родовых травм языка или самого Юнити.
А маркетологами естественно преподносится как невероятный прорыв.
Ну что-то типа "эй, мы наконец-то починили старое дерьмо при помощи другого дерьма и это круто".


Я знаю что ты любишь красочно описывать недостатки того чего никогда в жизни не пробовал. Но на вопрос так и не ответил, какие аналоги есть у тебя?

Про обход лагов ютуба - гугл в помощь. Ну или на крайний случай тема про ютуб на этом форуме, там всё описано.

Цитата:
Дядя Миша писал:
У тебя ложное представление об объектах. Объект это просто кусок памяти с переменными, которые надо хранить. Вот и всё. Проигрывание звуков, поиск пути, коллизию он получает, обращаясь к движковым функциям.


Так то оно так, просто у тебя к этому доступ осуществляется только кодом. В Юнити же кодом и со сцены через UI редактора.

Цитата:
Дядя Миша писал:
Нет, у меня вообще не так. Все классы создаёт пользователь. Проигрывание звука - это функция из интерфейса. А движение двери - это пользовательская физика. Я понял о чём ты, но я не стал так делать, потому что крайне негибкая система, хотя на первый взгляд кажется удобной и логичной.


Почему не гибкая? Если ты хочешь сделать свою версию компонента ты просто можешь наследоваться от неё.

Добавлено 05-08-2024 в 16:43:

Цитата:
Дядя Миша писал:
Шарп изначально убогий язык, в который постоянно вводили недостающее. Не вижу особого смысла это смотреть, тем более на лагающем ютубе.
Но напомню что всё вышеперечисленное - не самоцель, оно скорее всего нужно для компенсации каких-то родовых травм языка или самого Юнити.
А маркетологами естественно преподносится как невероятный прорыв.


Ну тогда признай что и C++ убогий язык, т.к. Шарпы это по сути тот же C++ , когда майкрософт пытался упростить разработку с языком в котором нифига нет.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!

Отредактировано FiEctro 05-08-2024 в 13:45

Сообщить модератору | IP: Записан
Сообщение: 221499

Старое сообщение 05-08-2024 13:43
- За что?
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 4236

Рейтинг



Цитата:
FiEctro писал:
Шарпы это по сути тот же C++

Нет, шарпы это "джава есть у нас дома".

Сообщить модератору | IP: Записан
Сообщение: 221500

Старое сообщение 05-08-2024 15:15
- За что?
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 13497
Возраст: 33

Рейтинг



nemyax
Ну все эти языки по сути сиподобные. Всеравно с ними работать куда удобнее и проще чем с обычными крестами.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!

Отредактировано FiEctro 05-08-2024 в 15:37

Сообщить модератору | IP: Записан
Сообщение: 221501

Старое сообщение 05-08-2024 15:32
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33010
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
FiEctro писал:
Про обход лагов ютуба - гугл в помощь

Для икспи это всё неактуально.

Цитата:
FiEctro писал:
Но на вопрос так и не ответил, какие аналоги есть у тебя?

Проблемы надо решать по мере их поступления.

Цитата:
FiEctro писал:
Так то оно так, просто у тебя к этому доступ осуществляется только кодом. В Юнити же кодом и со сцены через UI редактора.

Странная претензия. Ну нет у меня ещё редактора. Не из чего осуществлять доступ.

Цитата:
FiEctro писал:
Ну тогда признай что и C++ убогий язык, т.к. Шарпы это по сути тот же C++ , когда майкрософт пытался упростить разработку с языком в котором нифига нет.

Так ты не умеешь в С++, с чего ты взял что он убогий? Есть вещи для которых он весьма неудобен, это да. Но Шарп это "Наш ответ Яве".

Цитата:
FiEctro писал:
Всеравно с ними работать куда удобнее и проще чем с обычными крестами.

Сомневаюсь. Мне к Шарпу даже прикасаться страшно. Как это так - нет глобальных переменных. И объектов на стеке помоему там тоже нет, ну как и в Яве.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 221502

Старое сообщение 05-08-2024 16:04
-
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4737
Возраст: 35

Рейтинг



Цитата:
Дядя Миша писал:
Для икспи это всё неактуально.

Так ты что, на икспи ещё? о_О

Цитата:
Дядя Миша писал:
Сомневаюсь. Мне к Шарпу даже прикасаться страшно. Как это так - нет глобальных переменных. И объектов на стеке помоему там тоже нет, ну как и в Яве.

Давно ещё читал статью, типа как в Компьютерре, что Макось кажется людям безглючной и вообще лучше винды потому что она на Шарпе, а в Шарпе обращение к отсутствующему объекту не считается ошибкой и вылета не происходит.

Сообщить модератору | IP: Записан
Сообщение: 221503

Старое сообщение 05-08-2024 16:43
- За что?
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 4236

Рейтинг



Если читал давно, то макось была на Objective-C. А если не очень, то на свифту. На шарпе она нипочём никогда не могла быть.

Сообщить модератору | IP: Записан
Сообщение: 221504

Старое сообщение 05-08-2024 16:45
- За что?
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 13497
Возраст: 33

Рейтинг



Цитата:
Дядя Миша писал:
Для икспи это всё неактуально.


Ты говорил что у тебя есть десятка.

Цитата:
Дядя Миша писал:
Так ты не умеешь в С++, с чего ты взял что он убогий? Есть вещи для которых он весьма неудобен, это да. Но Шарп это "Наш ответ Яве".


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

С C++ я имею опыт, и понаступал с ним на кучу граблей которых нету по дефолту в шарпе.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!

Сообщить модератору | IP: Записан
Сообщение: 221505

Старое сообщение 05-08-2024 17:00
- За что?
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4737
Возраст: 35

Рейтинг



Цитата:
nemyax писал:
Если читал давно, то макось была на Objective-C

Да, видимо так.

Сообщить модератору | IP: Записан
Сообщение: 221506

Старое сообщение 05-08-2024 17:55
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33010
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
Crystallize писал:
Так ты что, на икспи ещё? о_О

Ну да, а шо?

Цитата:
Crystallize писал:
а в Шарпе обращение к отсутствующему объекту не считается ошибкой и вылета не происходит.

Вылет это сигнал для отладки. Чтобы ты разобрался что у тебя не так. Но люди почему-то решили что выброс исключения ввели нарочно, чтобы все мучались. Ну отключи экзепшены при компиляции - кто запрещает?
Потом не удивляйся той чертовщине, что будет происходить с приложением.
Кстати в голдсорсе hl.dll исторически шёл с отключёнными исключениями.

Цитата:
FiEctro писал:
Ты говорил что у тебя есть десятка.

Давно снёс.

Цитата:
FiEctro писал:
Я не говорил что C++ убогий, я говорил что шарп сиподобный, и если он тебе кажется убогим получается что для тебя все сиподобные языки убогие.

Я выше пояснил свою мысль.

Цитата:
FiEctro писал:
С C++ я имею опыт, и понаступал с ним на кучу граблей

Это хорошо. Перечисли их пожалуйста, чтобы я был уверен, что ты не наступишь на них в Шоте.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 221507

Старое сообщение 05-08-2024 20:55
-
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 13497
Возраст: 33

Рейтинг



Цитата:
Дядя Миша писал:
Это хорошо. Перечисли их пожалуйста, чтобы я был уверен, что ты не наступишь на них в Шоте.


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

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

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!

Отредактировано FiEctro 05-08-2024 в 22:49

Сообщить модератору | IP: Записан
Сообщение: 221508

Старое сообщение 05-08-2024 22:33
- За что?
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 4236

Рейтинг



FiEctro
А язык картошка это как?

Сообщить модератору | IP: Записан
Сообщение: 221509

Старое сообщение 05-08-2024 22:37
- За что?
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 13497
Возраст: 33

Рейтинг



Цитата:
nemyax писал:
А язык картошка это как?


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

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!

Отредактировано FiEctro 05-08-2024 в 22:43

Сообщить модератору | IP: Записан
Сообщение: 221510

Старое сообщение 05-08-2024 22:39
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33010
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
FiEctro писал:
Много стрингов разных типов совместимых и не очень

Да, это я исправил в первую очередь.

Цитата:
FiEctro писал:
указатели - удобно, но для игровой логики почти бесполезно

Указатели позволяют ссылаться на зависимые объекты. Только там по смыслу нужны безопасные указатели.

Цитата:
FiEctro писал:
мне сказали что переменные надо объявлять в определенном порядке а то будет утечка

Деструкторы всегда вызываются в порядке обратном вызову конструкторов.
Но да, может в STL что-то такое и есть, я не углублялся.

Цитата:
FiEctro писал:
MFC как одна большая ошибка (сложилось впечатление что даже майкрософт не знает до конца как оно работает)

MFC на крестах это боль конечно. Его бы на Шот перенести и будет совсем другой расклад.

Цитата:
FiEctro писал:
ну и ещё было куча всяких мелочей, все не упомнишь

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

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 221511

Старое сообщение 06-08-2024 06:22
-
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 15:27. Новая тема    Ответить
Страницы (32): « 1 [2] 3 4 5 6 » ... Последняя »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > XashNT: блог разработчика
Часть II
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024