Читай мой дневник тут, научишься за неделю
Больше всего меня удивляет когда сначала авторы книг прилагают усилия чтобы объяснить как работают циклы, а только потом рассказывают про goto, только для того, чтобы отметить, что это зло.
А зачем это все при обучении программированию? Это ведь вообще в стороне от языка
Конечно, это очевидно.
А какая именно математика 10 класса тебе встретилась? Функции математической библиотеки?
Ты бредишь
А, ну да, ну да
Там очень токсичная тусовка, мои нервы не выдерживают общения с ними, но я с интересом слежу за темами знатных личностей типа ГрейФ24
Чья «его»?
Мы так его не зовем, но вообще да, например вот: https://kwork.ru/user/viy-777
О ужас! Он хранит магнитные дискеты на динамике!
Тем, кто знает, что такое square волна можно посмотреть на исходный код функции Beep и, например, сделать аналогичную функцию для другой формы волны.
Отлично выглядит!
Борьба с фрагментацией - задача файловой системы, и они с этой задачей отлично справляются.
Ты принципиально не понимаешь, что парсинг файла - лишний шаг, который не должен происходить при загрузке, парсинг - лишний шаг. Файл нужно писать в формате, не требующем парсинга. Загружаешь файл в память и патчишь указатели, после этого файл - набор структур в памяти, которыми программа просто пользуется.
Подожди, у меня как раз все упаковано так, что все текстурки и модельки уровня, уникальные персонажи и прочее - в одном большом файле, который читается на полной скорости хоть на HDD, хоть на SSD, хоть на Bule-Ray (в крутых играх так начали делать лет 30 назад, когда появились CD диски вместо картриджей у приставок).
Общие для разных уровней персонажи, типа персонажа игрока - во втором большом файле.
Вообще все скрипты, настройки и другая мелочевка типа звуков нажатия на кнопки и шрифтов - в еще одном большом файле, который целиком подгружается еще при запуске программы одним махом. Этот файл не очень большой, например, мегабайт 16, но этого уже достаточно для чтения на полной скорости.
Сохраненная игра - еще один (в зависимости от того что за игра - или маленький или большой файл)
Кстати, современные SATA SSD читать могут даже быстрее, 500MB/s и даже 600MB/s.
Быстро работающий сейв выглядит как двоичный файл, загружаемый одним куском в память и не требующий парсинга кроме патчинга указателей.
Быстро работающие данные уровня и персонажей - аналогично.
Так как видеопамяти у среднего игрока редко даже 4 гигабайта, загрузка с ссд (400 мб/с на чтение) не может длиться дольше 10 секунд
Случайный мелкоблочный доступ к данным на ssd в разы медленнее чем крупноблочный последовательный.
Правильно написанная загрузка будет загружать игру за время меньшее чем размер памяти делить на скорость диска
Будешь грузить через fscanf - узким местом будет парсинг
Если ты будешь делать все правильно, то при загрузке данных с ссд диска самым медленным будет именно чтение с ссд диска
Вопросы? В сообщении на которое ты ответил вопросов не содержится
А потом люди удивляются что сейвы грузятся по 10 минут…
Непонятно, в чем состоит критика goto
Сейвы считывать через scanf?
Так в этом вся разница: из майнкрафта дум не делается никак. А из простой 2д игры - выйдет, можно сначала сделать игру в 2д, изучить 3д графику и поменять тип графики в игре, при этом 2д изображение даже останется в игре в качестве карты. Разница именно в том что начав делать игру на C++ ее возможно доделать, независимо от того что это за игра. Нет таких игр которые в принципе возможно сделать и при этом нельзя сделать на С++
Когда возникает проблема с циклической зависимостью. Так сразу очевидно зачем это нужно
Запускаю калькулятор под windows, там нет ввода через cin или scanf, вообще ничего похожего. Запускаю doom 2016, там вводить вообще ничего не нужно, только бегать и стрелять, запускаю doki doki literature club, там вообще управление только мышкой.
Ого! 2 года! Хорошо, что мы не спрашивали тебя, а просто брали и писали код и у нас ушло 2 вечера вместо 2 лет.
Так а чем это будет отличаться от цикла while? Скомпилируется в идентичный набор инструкций
Можно это и так называть