HLFX.Ru Forum Страницы (255): « Первая ... « 138 139 140 141 [142] 143 144 145 146 » ... Последняя »
Показать все 3825 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Наши проекты (https://hlfx.ru/forum/forumdisplay.php?forumid=1)
-- XashNT: блог разработчика (https://hlfx.ru/forum/showthread.php?threadid=5297)


Отправлено nemyax 28-04-2022 в 08:00:

Да, undone - разломато, загублено.


Отправлено Дядя Миша 28-04-2022 в 12:00:

UNDONE - недоделато, я так всегда понимал.

__________________
My Projects: download page

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

Цитата:

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


Отправлено nemyax 28-04-2022 в 12:13:

Недоделато — incomplete, unfinished.


Отправлено Дядя Миша 28-04-2022 в 12:24:

Вобще я всегда нелюбил это слово, поэтому в каментах к коду использую только
TODO и FIXME. Ну еще иногда HACKHACK и TESTTEST

Кстати товарищи, вот вам от меня небольшой лайфхак. Ни для кого не секрет что очень многие начинающие программисты бояться работать с памятью, с указателями, поскольку программа вылетает. Но дело не в том, что она программа вылетает. Дело в том, какой звук она при этом издаёт!
Стандартный виндовый звук ошибки даже подготовленного человека заставляет наложить фштаны, или спровоцировать энурез, понятно.
Поэтому мой вам совет - идёте в звуковые схемы и там на звук ошибки ставите что-то более нейтральное, например "Звездочка.wav". И Вася-кот!

__________________
My Projects: download page

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

Цитата:

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


Отправлено Дикс 28-04-2022 в 22:49:

Цитата:
Дядя Миша писал:
Предидущий пост на эту тему: https://hlfx.ru/forum/showthread.ph...&pagenumber=116

Интересно, как теперь подсчитать процент готовности движка?


1. 12.5%
2. 12.5%
3. 0%
4. 6.25%
5. 6.25%
6. 0%
7. 0%
8. 0%

12.5+12.5+6.25+6.25 = 37.5%

__________________
https://igroprom.d3.ru
https://t.me/deex_gamedev


Отправлено Дядя Миша 29-04-2022 в 18:07:

Вопросы про авто-нумерацию билда вынес в отдельную тему:
https://hlfx.ru/forum/showthread.php?s=&threadid=5834

__________________
My Projects: download page

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

Цитата:

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


Отправлено Crystallize 05-05-2022 в 16:36:

Цитата:
Дядя Миша писал:
я не хотел делать редактор, поскольку он ожидаемо был бы похож на QuArK

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


Отправлено Дядя Миша 05-05-2022 в 17:00:

Crystallize ты как-то тему невнимательно читал.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Дядя Миша 06-05-2022 в 07:02:

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

Добавлено 06-05-2022 в 10:02:

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

C++ Source Code:
1
class CBaseEntity
2
{
3
  string		m_targetname : 16;
4
  float		m_health : 10;
5
  unsigned int	m_skin : 8;
6
};

Имена тут просто для примера, для наглядности.
А вот как выглядит код, который это парсит:
C++ Source Code:
1
if( CheckToken( ":" ))
2
{
3
  if( m_immediateType != type_integer )
4
    m_lexer.Error( LEX_CONSTANT_EXP_NOT_INTEGRAL, "constant expression is not integral" );
5
  else bits = m_immediate.integer;
6
 
7
  if( bits == 0 ) m_lexer.Error( BIT_FIELD_ZERO_COUNT, "'%s' : named bit field cannot have zero width", name );
8
  else if( bits < 0 || bits > 32 )
9
    m_lexer.Error( BIT_FIELD_INVALID_COUNT, "'%s' : type of bit field too small for number of bits", name );
10
  if( type->Type() != ev_integer && type->Type() != ev_float && type->Type() != ev_string )
11
    m_lexer.Error( BIT_FIELD_INVALID_TYPE, "'%s' : bit field must have type 'int', 'float', or 'string'", name );
12
  def->bits = bound( 1, bits, 32 );
13
  NextToken();
14
}

Тут вызовов с ошибками больше, чем кода, который сохраняет значение в def. К тому же, например, если компилятор уровней даже на что-то ругается, он может это делать скрытно. Пока не пропишешь в командной строке параметр -dev или -debug, все эти сообщения не будут видны.
В компиляторе исходных текстов ошибки отключать нельзя в принципе.
Но как вы знаете можно сделать наоборот - превратить предупреждения в ошибки. Абсолютно разные концепции.
Ну оно и понятно. Карта соберётся с косяками и вы на них полюбуетесь в реальном времени. А если с программой начнёт происходить какая-то чертовщина, вы очень долго будете разбираться что сделали не так.
Если компилятор вам в этом не поможет. К слову сказать, в 60-е, 70-е годы, компиляторы почти ничего не находили. Иногда это приводило к срыву космических программ, например.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 06-05-2022 в 07:09:

Дядя Миша
А разве нет уже готовых решений? Зачем изобретать велосипеды?

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


Отправлено Дядя Миша 06-05-2022 в 07:34:

Готовые решения, в лучшем случае code-driven к тому же внутренние методы спрятаны от пользователя и находятся только в документации.
Для того чтобы вызвать какой-нибудь косинус в яве ты не можешь заглянуть в хидер. Либо лезть в документацию, либо помнить наезусть, либо надеяться, что тебе студия вывалит подсказку. Всё это очень неудобно.
Я пишу data-driven машинку, т.к. это общая концепция XashNT.

Добавлено 06-05-2022 в 10:30:

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

Добавлено 06-05-2022 в 10:34:

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

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 06-05-2022 в 07:43:

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


И как юзер будет в этом разбираться? В той же студии есть подсказки с кратким описанием методов, и что куда им скармливать.

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


Отправлено Дядя Миша 06-05-2022 в 09:17:

Сегодня товарищи, знаментальный день. Я набиваю для виртуального языка системные функции, ну что-то вроде CRT. И дело дошло до функции Q_timestamp. И тут я вспомнил! Эта функция была мною написана в апреле 2007-го года (первые опыты с написанием движка начались в феравле 2007-го). Так вот я её написал, чтобы в лог сохранять дату когда движок был запущен и соответственно остановлен.
Эта функция пережила старый ксаш (ну который несовместимый ни с чем), переехала в Xash3D и оттуда разумеется попала в FWGS, затем она так же без изменений попала в XashNT и вот я делаю её частью стандарта будущего скриптового языка. И теперь миллионы людей по всему миру её увидят и будут ей пользоваться. А-ФИ-ГЕТЬ. Знал бы я какая судьба будет у этой функции, когда я её писал в апреле 2007-го года, я бы удивился и неповерил.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Дядя Миша 12-05-2022 в 23:12:

Пишу конвертор Delphi -> C++. Для того чтобы изучать исходники QuArK, естественно. Мне проще написать конвертор, чем забивать голову этим ублюдошным синтаксисом.
Интересно, будет ли такой конвертор нужен кому-то еще кроме меня?

Добавлено 13-05-2022 в 02:12:

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

__________________
My Projects: download page

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

Цитата:

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


Отправлено KiQ 14-05-2022 в 00:38:

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

я когда на нём писал плагины под CS 1.6 на сервак, который мы с другом держали на взломанном компе из Малайзии, помню всё время мне казалось, что это скриптовый язык какой-то, а ещё там была какая-то дурацкая фича, что сначала нужно было создать основную форму, а потом уже код писать, причём эта форма нигде даже не использовалась. Delphi7 кажись был Ж)

Добавлено 14-05-2022 в 03:38:

Цитата:
Дядя Миша писал:
Мне проще написать конвертор, чем забивать голову этим ублюдошным синтаксисом.

А конвертор пардон из чего конвертирует?

__________________
-Brain is dead-


Временная зона GMT. Текущее время 18:46. Страницы (255): « Первая ... « 138 139 140 141 [142] 143 144 145 146 » ... Последняя »
Показать все 3825 сообщений этой темы на одной странице

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