Minecraft in C++ || Part 1: opening window

แชร์
ฝัง
  • เผยแพร่เมื่อ 25 ต.ค. 2024

ความคิดเห็น • 334

  • @iondiscatch
    @iondiscatch 2 ปีที่แล้ว +175

    Коротко о программировании:
    Что бы закрыть окно вам нужно написать пару строчек кода, а крестик без кода это просто текстура.

    • @otb1vnaya
      @otb1vnaya 11 หลายเดือนก่อน +6

      жиза

    • @Alchemist_Dark
      @Alchemist_Dark 7 หลายเดือนก่อน +6

      Но ведь это же очевидно 🤔

    • @FayerSoul
      @FayerSoul 2 หลายเดือนก่อน +1

      @@Alchemist_Dark Не для обычных Пк юзеров, для них это аксиома для уничтожения процесса

  • @illoprin
    @illoprin 4 ปีที่แล้ว +162

    Давно искал подобный контент на русском! Класс! Спасибо))) Не забрасывай, очень хорошо объясняешь

    • @Dimiurg228
      @Dimiurg228 3 ปีที่แล้ว +2

      Ещё есть Code Wizer

    • @ATtiny13a-PU
      @ATtiny13a-PU 3 ปีที่แล้ว +3

      @@Dimiurg228, он переводчик ._.

  • @odisr
    @odisr 2 ปีที่แล้ว +54

    Охренеть, год назад это всё казалось мне как китайская грамота, а сейчас я уже щёлкаю опенджиэлку как семечки и пишу свою игру)

    • @марксист
      @марксист ปีที่แล้ว +3

      как успехи?

    • @миииц
      @миииц ปีที่แล้ว +8

      Обычно такие челики не отвечают, но мне тоже интересно.. :D

    • @cdapchier
      @cdapchier ปีที่แล้ว +2

      @@миииц интересно кста почему не отвечают. Мб заняты?

    • @epsilon.sw_
      @epsilon.sw_ ปีที่แล้ว +9

      @@cdapchier
      они никогда не отвечают
      ни через день
      ни через неделю
      ни через месяц
      ни через год
      ни через несколько лет
      никогда
      Что-то сильно для занятости

    • @cdapchier
      @cdapchier ปีที่แล้ว +11

      @@epsilon.sw_ да они тупо забивают либо не замечают что уведомления на ютубе есть, не все их чекают)

  • @ne0ck237
    @ne0ck237 4 ปีที่แล้ว +27

    Сам делал такую подобную архитектуру с glfw и opengl не раз. Но твоя сиситема проверки нажатия клавиш это что-то гениальное, чертовски простое и удобное. Спасибо за видос и удачи с каналом.
    P.S. иногда возникает ощущение что аудиодорожка растянута, темп речи резко меняется

  • @1233-s3w
    @1233-s3w 4 ปีที่แล้ว +51

    Почему это только сейчас появилось у меня в рекомендациях?

    • @thequartzsquirrel4105
      @thequartzsquirrel4105 4 ปีที่แล้ว

      Лол

    • @si0era
      @si0era 4 ปีที่แล้ว

      @@thequartzsquirrel4105 +

    • @user-nb7pe1yu2x
      @user-nb7pe1yu2x 3 ปีที่แล้ว +2

      У меня ещё круче, только сейчас появилось

    • @Adilkhan-dm3xe
      @Adilkhan-dm3xe 3 ปีที่แล้ว +1

      @@user-nb7pe1yu2x +

    • @ilyushechka
      @ilyushechka 8 หลายเดือนก่อน

      ​@@user-nb7pe1yu2xкапец рано

  • @ДмитрийПаровозов-ф3к
    @ДмитрийПаровозов-ф3к 9 หลายเดือนก่อน +10

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

    • @Glomly
      @Glomly 9 หลายเดือนก่อน

      После этого уже легче понять. Там от программиста со стажем для программистов со стажем. Но объясняет всё очень хорошо (handmade hero 500+ роликов)

    • @erebusrecollections1563
      @erebusrecollections1563 4 หลายเดือนก่อน

      Приветствую! А можно, пожалуйста, ссылку на подобные видео? :) Или в какую сторону копать? Хотелось бы увидеть воочию эту "супер-расширяемую архитектуру" :) Заранее спасибо!

    • @ДмитрийПаровозов-ф3к
      @ДмитрийПаровозов-ф3к 4 หลายเดือนก่อน +1

      @@Glomly я смотрел первые серии, даже повторял за ним и вникал. На самом деле даже такое занятие очень продвигает. Но времени очень много уходит

    • @VeihShizoo
      @VeihShizoo 2 วันที่ผ่านมา

      ​@@erebusrecollections1563Обойдёшься. Если сам не найдешь, то ты ничего не стоишь. Ожидать помощи от других, тоже самое, что иметь удочку и не рыбачить ею для пропитания.🤡

  • @MihailRis
    @MihailRis  4 ปีที่แล้ว +15

    Кому интересно, куда серия уроков продвинулась на данный момент: th-cam.com/video/hWuM9pszT_U/w-d-xo.html
    Инструкция по сборке (кода текущего состояния проекта): th-cam.com/video/opu3qQA_-hM/w-d-xo.html
    Важная информация! В видео могут быть некоторые непонятные моменты. Если у вас возникнут вопросы, задавайте их в комментариях. В дальнейшем я буду улучшать качество уроков, создание этого видео заняло неделю, надеюсь на поддержку этой серии. Чтобы поддержать видео, вы можете поделиться им и оценить. Я же, буду готовить вторую часть про шейдеры, текстуры и VBO с VAO.
    Теперь у канала есть свой дискорд сервер: discord.gg/AaqJphm
    На нём вы можете задавать вопросы, в том числе "когда новая часть {серия_уроков}", указывать на возможные ошибки, предлагать темы видео, помогать другим, и получить помощь. Будут, естественно, публиковаться и новости канала. Не забывайте и про группу ВК (она не заброшена)
    В разработке и видео по ИИ в гоночной игре на BGE.

    • @BroGeckonJPG
      @BroGeckonJPG 4 ปีที่แล้ว

      Ты же понимаешь что Майн пе написан на этом движке?

    • @vvvvvv620
      @vvvvvv620 3 ปีที่แล้ว

      @@BroGeckonJPG к чему это? Где он писал что будет на BGE майнкрафт пилить. Или же что ты подумал?

  • @lphoenixl7771
    @lphoenixl7771 3 ปีที่แล้ว +4

    Кот Матроскин из простоквашино поднялся и пошел в программирование)
    Одно из лучших видео, что я видел.
    Хорошо, что ютуб показал его!

  • @dominuspiritus
    @dominuspiritus 4 ปีที่แล้ว +14

    Видос просто бомба. Для инициализации переменных внутри класса можно использовать слово inline.

  • @hackermann99
    @hackermann99 4 ปีที่แล้ว +6

    Просто потрясающе! Это то, что я искал! Столько нового...

  • @Ayfri
    @Ayfri 4 ปีที่แล้ว +85

    Hi, I don't understand anything but good job !

    • @stepan2897
      @stepan2897 4 ปีที่แล้ว +1

      Правильно understood

    • @1play2fun
      @1play2fun 4 ปีที่แล้ว +17

      @@stepan2897 understand в настоящем. undesrtood 2-ая форма, в прошлом. Если бы он написал understood - то он ничего не понял.
      А он написал "Я ничего не понимаю, но хорошая работа!".

    • @КостяКиндалюк
      @КостяКиндалюк 4 ปีที่แล้ว +3

      @@stepan2897 С don't всегда глагол в первой форме. А именно глагол understand, а не understood.

    • @КостяКиндалюк
      @КостяКиндалюк 4 ปีที่แล้ว

      @@1play2fun Эммм... Если есть вспомогательное do или don't, то глагол, который с ним используеться, должен быть в первой форме. И кстати, сама форма глагола не означает время этого действия, наглядный тому пример - пассивный вид, где для настоящей простой формы используеться is/are/am и третья форма.

    • @tivuk
      @tivuk 4 ปีที่แล้ว +2

      Dolboyobi v kommentah правильно

  • @ДжонСмит-ч5ь
    @ДжонСмит-ч5ь 2 ปีที่แล้ว +2

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

  • @bonn1e._.
    @bonn1e._. 4 หลายเดือนก่อน

    Спасибо большое ! Очень полезный контент на русском сегменте.

  • @MihailRis
    @MihailRis  ปีที่แล้ว +8

    чзх, первая часть вышла ещё в 2019?!1!
    уже можно и remastered пилить

  • @Alex2772
    @Alex2772 4 ปีที่แล้ว +15

    Классный видеоурок. Только осложнён нагромождённым обработчиком событий, непонятно, зачем оно нужно, если есть glfwSetKeyCallback и glfwGetKey
    Про глобальные объекты. ИМХО. В Java ещё можно обойтись чисто статическими полями и функциями, а в C++ статические поля реализованы крайне неудобно. Сам сталкивался с этим. Если с бесконечным дублированием сигнатуры функций из *.h в *.cpp ещё можно смириться, то с дублированием всех полей в *.cpp смириться нереально, это ещё больше нагружает и без того сложный код. Я использую синглетон Майерса. Оказалось удобная штука. Ещё и деструкторы сама вызывает при завершении программы.
    Буду ждать следующий выпуск)

    • @veleboks130
      @veleboks130 4 ปีที่แล้ว

      можно поставить hot key на реализацию функции в cpp, чтобы не дублировать сигнатуру самому. Но это скорее костыль, чем нормальный выход из ситуации

  • @WastiPlayX
    @WastiPlayX 3 ปีที่แล้ว +209

    Вы не искали это видео...

  • @IvanCreative-k7k
    @IvanCreative-k7k 8 หลายเดือนก่อน +2

    Ну погнали Иншаллах

  • @LaRubrum
    @LaRubrum 3 ปีที่แล้ว +1

    Ого, спасибо рекомендациям

  • @миииц
    @миииц ปีที่แล้ว

    Мне кажется, что уже писал комментарий, когда впервые это видно попалось, но не нахожу его..
    Короче, это офигенно :D и юмор есть и визуал со стилем речи приятный и объяснения (но хотелось бы побольше).
    А ещё сам голос напоминает что среднее между Юзей/Гагатуном/Алфёдовом)

  • @xtonior-245
    @xtonior-245 2 ปีที่แล้ว +2

    Решил "пересесть" с C# на C++. Спасибо за ролик (правда пока я все библиотеки подключал, чуть комп не сжёг)

    • @Дигидроген
      @Дигидроген 2 ปีที่แล้ว

      Как ты их подключил?

    • @xtonior-245
      @xtonior-245 2 ปีที่แล้ว

      @@Дигидроген ох, долгая история. Лучше поищи сам) (я забросил это всё к чертям)

    • @MiTask
      @MiTask 2 ปีที่แล้ว

      @@Дигидроген я их подключал 2 с половиной часа. Не советую сюда лезть ахахха

    • @ErkeTan879
      @ErkeTan879 9 วันที่ผ่านมา

      Я не разобрался как подключить библиотеки в эклипс

  • @artslay
    @artslay 3 ปีที่แล้ว +8

    Я конечно ничего не понял, но это интересно

  • @АлинаЛебедева-м5ь
    @АлинаЛебедева-м5ь 4 ปีที่แล้ว +16

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

    • @xairan_7836
      @xairan_7836 2 ปีที่แล้ว

      про проверку: нужно для этого писать целый обработчик исключений, это не обязательно, если ты пишешь подобное

  • @alex3vsn
    @alex3vsn 7 หลายเดือนก่อน +1

    Пришла в реках 20 часть. Думаю начну с первой. Также первая часть: 4 года назад 🗿
    Повезло повезло не ждать 4 года продолжения)

  • @cppprograms5868
    @cppprograms5868 4 ปีที่แล้ว +1

    Комментария ради комментарии.
    Комментария ради комментарии.

  • @ineedtransformation
    @ineedtransformation 3 ปีที่แล้ว +1

    Золотце ты моё, где ж ты раньше был.

  • @dyze8847
    @dyze8847 3 ปีที่แล้ว +2

    Спасибо тебе! Использовал sfml. Теперь буду использовать opengl

    • @SmallAngryDog
      @SmallAngryDog 10 หลายเดือนก่อน

      Не стоит. Стандарт отстаёт немного от новых веяний и, например, не поддерживает трассировку лучей. Лучше иcпользовать Vulkan или DirectX (у последнего проблемы с кросс-платформенностью).

  • @ZagadochnyPrince
    @ZagadochnyPrince 3 ปีที่แล้ว +3

    Сейчас не прогаю, но возможно в будущем пригодится, оставлю коммент)

  • @stepanbazrov6330
    @stepanbazrov6330 3 ปีที่แล้ว +2

    Зачем делать класс где всё static?
    Почему не сделать глобальные переменные?
    ООП ради ООП?
    Если потом захочется делать несколько экземпляров, можно ж будет легко реализовать

  • @TimurGaraev-ty3jv
    @TimurGaraev-ty3jv 6 วันที่ผ่านมา

    20.10.2024; 7 часов утра 26 минут.
    Основы, погнали епта

  • @ThomasCharester
    @ThomasCharester 2 ปีที่แล้ว +1

    Откладываю в долгий ящик до изучения c++

  • @rainnoise2056
    @rainnoise2056 2 ปีที่แล้ว +4

    jPressed и jClicked реализованы не совсем удачно. Считать кадры не нужно. У тебя должен быть массив bool. В момент вызовы колбэка устанавливаешь соответствующий элемент в true, а при вызове jPressed его очищаешь. Вот тебе система, которая не только регистрирует факт нажатия клавиши, но еще считает, сколько раз она была нажата с момента последней проверки.
    void QEvent::keyboardCallback(GLFWwindow* window, int key, int scancode, int action, int mode) {
    QEvent* instance = QEvent::getInstance();
    if (action == GLFW_PRESS) {
    instance->keyState[scancode] = true;
    }
    else if (action == GLFW_RELEASE) {
    instance->keyState[scancode] = false;
    }
    if (action == GLFW_PRESS) {
    instance->keyHits[scancode]++;
    }
    }
    unsigned int QEvent::keyHit(unsigned char scancode) {
    unsigned int hits = keyHits[scancode];
    keyHits[scancode] = 0;
    return hits;
    }

  • @Matt1337c
    @Matt1337c 4 ปีที่แล้ว +1

    Спасибо за годноту!!!

  • @erichschwarz2971
    @erichschwarz2971 2 ปีที่แล้ว

    Продолжай парень,жду новых видео по теме

  • @inquisitor3Ghost
    @inquisitor3Ghost 10 หลายเดือนก่อน +1

    Я который сделал все в точности только на движке роблокс студио:эээ че происходит ээээ эаэаэаэаааээа

  • @meelowin8556
    @meelowin8556 4 หลายเดือนก่อน

    зашел, увидел, вышел 👍👍

  • @ОлегГромов-л2д
    @ОлегГромов-л2д 3 ปีที่แล้ว +16

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

    • @3955006
      @3955006 2 ปีที่แล้ว

      Особенно порадовало, как незаметно пофиксил доступ на 14:03

  • @darkhunter777
    @darkhunter777 6 หลายเดือนก่อน +1

    На гитхабе есть id Tech 2 или движок QUAKE ты можешь его в С++ скомпоновать ?

  • @Jack-lh6gp
    @Jack-lh6gp 3 ปีที่แล้ว +3

    isShouldClose,в голос конечно

  • @ЭдКалумнуз
    @ЭдКалумнуз 3 ปีที่แล้ว +1

    ООо да, сегодня напишу Майнкрафт и заберу доход у Mojang, мечты, мечты...

  • @ПшелТы-т8у
    @ПшелТы-т8у 4 ปีที่แล้ว +3

    Коммент для продвижения ролика!

  • @inquisitor3Ghost
    @inquisitor3Ghost 10 หลายเดือนก่อน +1

    начиналось все 4 года назад, а сейчас уже почти другая игра и этого вышла

  • @kirkraft1179
    @kirkraft1179 4 ปีที่แล้ว +4

    Привет, где взять библиотеку GL? просто всё перерыл не нашёл её, нашёл только glew и glfw прости если вопрос тупой, просто до этого не работал с такими библиотеками.

    • @AnuarLife
      @AnuarLife 3 ปีที่แล้ว

      Ты

    • @AnuarLife
      @AnuarLife 3 ปีที่แล้ว

      Наверно на русском искал

  • @vyacheslav9401
    @vyacheslav9401 8 หลายเดือนก่อน +1

    Рофл конечно, всё работает, но только первый раз. При повторном запуске у меря просто вылетает ошибка что не может найти glew32d.dll. однако если вообще ничего не делать и просто сохранить, то есть ctrl+s и снова запусить то чудо все работает
    Интересная ситуация

  • @PEMOHT_YHITA3OB
    @PEMOHT_YHITA3OB 3 ปีที่แล้ว +5

    Твой голос очень похож на голос zixman

  • @moon5964
    @moon5964 10 หลายเดือนก่อน

    Отличные видеоя, они как развлекают так и могут что то подсказывать

  • @retr0064
    @retr0064 3 ปีที่แล้ว

    Годно буду изучать

  • @stalker6345
    @stalker6345 4 ปีที่แล้ว +4

    666 подписчиков. Афигенное число.

  • @Vadim-wi4by
    @Vadim-wi4by 3 ปีที่แล้ว +1

    "Ты не программист, если не создал свой майнкрафт на чистом directx / opengl"
    ps (я сделал это на winforms c#, сначала на Microsoft.DirectX 9 SDK, а потом на SharpDX 12)

  • @stalker32041
    @stalker32041 ปีที่แล้ว

    21:25, мы можем использовать битмаски, если захотим, но это уже другой разговор.

  • @АннаШамшурина-ь3ч
    @АннаШамшурина-ь3ч 3 ปีที่แล้ว

    Отлично объясняешь

  • @romikgrigoryan6552
    @romikgrigoryan6552 3 ปีที่แล้ว +2

    Крч нужно качать gl glfw и glew?

  • @levovix
    @levovix 4 ปีที่แล้ว +2

    Зачем создавать классы со статическими полями, когда можно задавать пространства имён? И какой тогда смысл в плюсах, писал бы на С.
    "не забываем у всех систем возвращать 0" зашибись, как насчёт использовать исключения?
    "используем memset для обнуления" про std::fill мы не слышали

  • @socaseinpoint
    @socaseinpoint 3 ปีที่แล้ว

    Спасибо!

  • @Christmasst2
    @Christmasst2 10 หลายเดือนก่อน

    Когда я создавал свой маинкравт я нашел пару видео и плейлистов на тему создания. А тут я просто самострел ютуб и наткнулся на это видео…

  • @RYZEN1903
    @RYZEN1903 3 ปีที่แล้ว

    Ура!! Скоро будет Майнкрафт c++ edition) не будет лагать

    • @MihailRis
      @MihailRis  3 ปีที่แล้ว

      Уже есть bedrock edition

    • @RYZEN1903
      @RYZEN1903 3 ปีที่แล้ว

      @@MihailRis знаю но это не то что я хотел для меня это типо неоригинальный Майн я привык к java по интерфейсу и тдн

    • @quadroninja2708
      @quadroninja2708 3 ปีที่แล้ว

      @@RYZEN1903 единственное в чем старый Майнкрафт лучше - это моды, которых нет для нового(

  • @АндрейЕвгеньевич-с4у
    @АндрейЕвгеньевич-с4у 3 ปีที่แล้ว +1

    а да вспомнил проблема может возникнуть еще иза не правильных библиотек названия вроде те же а по сути они разные. Часто с этим сталкивался. желательно бы прикрепить ссылку с нужными DLL

  • @ДмитрийЛеухин-ф6ш
    @ДмитрийЛеухин-ф6ш 10 หลายเดือนก่อน

    SFML точно также сделан все поделено на классы

  • @YT-pu7sh
    @YT-pu7sh 4 ปีที่แล้ว +1

    Прикольно)

  • @dilirink9222
    @dilirink9222 3 ปีที่แล้ว

    годно!

  • @kyleanimation9369
    @kyleanimation9369 4 วันที่ผ่านมา

    Короче кто найдет может нет пишу чтобы мир знал что если у вас что то не выходит то можете попробовать объявить glfw не только в windows cpp но и в windows h

  • @sweetcorm
    @sweetcorm 4 ปีที่แล้ว +2

    И кто-то говорит, что ютуб не продвигает в рекомендации свежие каналы.

    • @MihailRis
      @MihailRis  4 ปีที่แล้ว +3

      Возможно. но каналу больше 4 лет

  • @fokusname2600
    @fokusname2600 4 หลายเดือนก่อน

    Вииииим

  • @AlSpudnik
    @AlSpudnik 4 ปีที่แล้ว +1

    Не хотите создать серию уроков "как писать на Пайтоне структуру файла 3D модели" для импорт/экспорта в Блендер? Я, как моделист, ищу такую информацию годами и безуспешно.

    • @MihailRis
      @MihailRis  4 ปีที่แล้ว +1

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

  • @swordoman2158
    @swordoman2158 3 ปีที่แล้ว

    Почему мы сделали массив из bool'ов, если можно реализовать клавиши через enum?

  • @wandemeir4394
    @wandemeir4394 3 ปีที่แล้ว +8

    VScode + cmake, не слишком сложно), использовать линукс, чтобы тыкать мышкой по бесконечности менюшек, слегка странно.

    • @НикитаСарычев-я4т
      @НикитаСарычев-я4т 3 ปีที่แล้ว +3

      Операционная система - выбор каждого, не вижу ничего плохого в Linux, сам на нём сижу, по функциональности практически не отличается от Windows, за исключением пакетов. А ещё, говоря о ПО, на линукс так же есть VScode и cmake тем более. А ещё, кряк Clion (получше, чем eclipse).
      Проблема в том, что под линукс ничего не делают, вот он и стоит на месте.

  • @darkhunter777
    @darkhunter777 3 ปีที่แล้ว +1

    А чо ты не в Visual Studio делаешь ? Она более универсальна

  • @superuser320
    @superuser320 4 ปีที่แล้ว +6

    QT Creator!!!! Почему все игнорирует эту IDE?

    • @cppprograms5868
      @cppprograms5868 4 ปีที่แล้ว +2

      Я тоже это не понимаю.

    • @javaandpython4338
      @javaandpython4338 4 ปีที่แล้ว

      eclipse Намного удобнее и у него много плюсов. Ну а что про qt creator, по названию можно заметить что он для работы с фреймворком QT, qml и т.д.

    • @cppprograms5868
      @cppprograms5868 4 ปีที่แล้ว +1

      @@javaandpython4338 хоть Qt Creator сосредоточен для работы с Qt, но он не плохох и для работы с другими библиотеками. Хотя я не работал с eclipse - сом.

  • @alexandrtenevoy581
    @alexandrtenevoy581 3 ปีที่แล้ว +1

    Ничего непонятно, но очень интересно

    • @andreytrudkov8536
      @andreytrudkov8536 3 ปีที่แล้ว

      If partOfSpeech(word)=verb
      then write("не")
      else write ("не ");
      P.S Я не знаю, зачем я этой хренью замаялся)

  • @captain_ua
    @captain_ua 3 ปีที่แล้ว +1

    не импортируются библиотеки (glew)

  • @АндрейЕвгеньевич-с4у
    @АндрейЕвгеньевич-с4у 3 ปีที่แล้ว

    кому интересно создать клон этой игры скачиваем версию под виндовс 10 заходин в папку с игрой и там открываем папку data потом трассировка лучей (ray_tracing) и там есть файл под названием wibbly его можно использовать как шум перлина для создания клона игры а в папке structures хранятся все данные игры в папку definitions хранятся модельки игры

  • @СмурфСмурфович-ю4д
    @СмурфСмурфович-ю4д 4 ปีที่แล้ว +1

    @MihaiRis какие фреймворки нужно подключить и как? Помоги, пожалуйста

    • @MihailRis
      @MihailRis  4 ปีที่แล้ว

      В видео используется только OpenGL и библиотека GLFW. Там же показаны параметры линковки (-lglfw -lGL - lGLEW).

    • @СмурфСмурфович-ю4д
      @СмурфСмурфович-ю4д 4 ปีที่แล้ว

      MihailRis у меня не получается подключить GLFW:(

  • @antoniogansales
    @antoniogansales ปีที่แล้ว

    покажи как настроить Visual studio 2022 для этого. Библиотеки скачал, почти до конца подключил но гдето не установил ссылку на эти документы в настройках

  • @pro-rp4ir
    @pro-rp4ir 2 หลายเดือนก่อน +1

    3:30 как это сделать в Visual Studio?
    У меня в параметрах такого нету и похожего тоже, а ошибка всё ещё присутствует!
    Ладно, решил скачать Eclipse и на этом же моменте после применения, ошибки не пропали, теперь вот такие ошибки:
    /mingw32/bin/ld.exe: cannot find -lglfw
    /mingw32/bin/ld.exe: cannot find -lGL
    /mingw32/bin/ld.exe: cannot find -lGLEW
    -===-
    6:23 Eclipse не даёт создать класс, кнопка Finish заблокирована и не нажимается.

  • @zaomonichi1941
    @zaomonichi1941 4 ปีที่แล้ว

    Какую версию eclipse ты используешь? Советуешь ли ты начинать изучать программирование с С++?

    • @MihailRis
      @MihailRis  4 ปีที่แล้ว +7

      Версия: 2019-03 (4.11.0). На самом деле, C++ достаточно сложный язык для освоения программирования: ручная работа с памятью, сравнительно низкий уровень обстракции, нужда в компиляции под разные системы отдельно (так как это компилируемый ЯП). Я начинал с Python, он довольно простой и очень приближенный к псевдокоду, что делает его порог вхождения невысоким. Но, в отличие от C++, Python интерпретируемый язык с динамической типизацией, да и высокая производительность в нём не приоритетна. Python далёк от C++ по структуре и синтаксису, но часто используются в одной связке. Как известно, каждый инструмент под свои задачи. Ближе к используемому в серии языку стоит Java - известный и удобный в разработке кроссплатформенных приложений и игр, мобильной разработке, язык. Это не компилируемый язык, как может показаться на первый взгляд - код преобразовывается не в машинный код, а в байткод, который исполняется виртуальной машиной. Т.е. такой байткод можно запускать на любой системой, под которую написана ВМ. Python, Lua, JS и другие интерпретируемые ЯП работают по тому же принципу. Также Java имеет C-подобный синтаксис, что облегчит дальнейшее изучение C++. Java я также знаю, и использую в своих проектах.
      Да, C++ можно начать изучать первым - если у вас хорошая сила воли и мотивация. Часто начинающие забрасывают это дело, говоря, что программирование - не их призвание. Нет ничего плохого в том, что несколько месяцев не удаётся начать писать на этом языке. Нужно просто не сдаваться, знаю по своему опыту. Не просто так никто из C++ программистов не примит фразу "C++ за две недели" в серьёз.
      Вижу, я немного разошёлся, но надеюсь эта информация вам поможет.

    • @cppprograms5868
      @cppprograms5868 4 ปีที่แล้ว +3

      Лично я начал изучение программирования на С++. И считаю что С++ не такой уж сложный язык, просто он обширный.
      Да изучение программирования это не изучения языка программирования а изучение IT, а язык лишь инструмент .
      Ручное управления памяти нет так уж сложно, конечно, если вы не дебил, если всё можно использовать интелектуальные указатели.
      С++ с появлением стандарта 11 года сильно изменился. Он стал намного проще, я не говорю про стандарт 20 года.
      Современной С++ это нет тот язык который появился в 83 году, а динамический развивающий язык программирования и многие рание его недостатки уже решены а многие решаются .
      С++ это язык программирования в котором отлично сочитается удобство программирования и эффективность программ(производительность).
      Я считаю что он неплохо подходит как первый язык программирования, если вы хотите стать профессионалом в этом деле.
      Всем удачи

    • @lphoenixl7771
      @lphoenixl7771 3 ปีที่แล้ว

      Задавать такой вопрос глупо! Программистами рождаются! Если тебя не тянет в компьютеры, программирование, IT, то тебе там делать нечего! Каждый человек создан для чего-то своего и не следует лезть не в свою тарелку!

    • @funnysand9876
      @funnysand9876 3 ปีที่แล้ว

      @@MihailRis Дякую дуже сильно за версію, бо сьогоднішня дуже сильно відрізняється від 2019-03...

  • @darkproject8068
    @darkproject8068 2 ปีที่แล้ว

    Начал смотреть = микро ужасное, текст ужасный НО видеоряд очень даже воодушевляет. Смотрим...

  • @baggerfeed8688
    @baggerfeed8688 4 ปีที่แล้ว +3

    Майн писали на Java, а тут C++ оригинально, за это лайк.

    • @stepan2897
      @stepan2897 4 ปีที่แล้ว +1

      Так бедрок тоже на с написан

    • @baggerfeed8688
      @baggerfeed8688 4 ปีที่แล้ว

      @@stepan2897 бэдрок написали на c++ чтобы было больше оптимизации, т.к. Java жрёт оперативу только так.

    • @mcomponent
      @mcomponent 4 ปีที่แล้ว

      @@baggerfeed8688 Майн написали на Java не из за хотелки, а из за того, что Java кроссплатформенная и не надо компилировать C++/C код под все платформы, ведь это очень затратно. Надо покупать отдельный компы.

    • @baggerfeed8688
      @baggerfeed8688 4 ปีที่แล้ว

      @@mcomponent так я ничего не говорил про кроссплатформенность, я сказал только то, что чувак сделал и оптимезировал код c++ и сделал из этого майн. Почему надо высказывать своё мнение под неприметным комментарием, это же дибелизм...

    • @javaandpython4338
      @javaandpython4338 4 ปีที่แล้ว

      Майнкрафт перешёл еще в 2017 году на С++...

  • @zombiHello
    @zombiHello 4 ปีที่แล้ว

    Подскажи, пожалуйста, что ты за шрифт в видео используешь (интересует тот, которым ты пишешь название ролика). Спасибо :3

    • @MihailRis
      @MihailRis  4 ปีที่แล้ว

      Используется шрифт URW Gothic L Semi-Bold

    • @zombiHello
      @zombiHello 4 ปีที่แล้ว

      @@MihailRis спасибо большое, то хочу в своих видео подобный шрифт заюзать. кстати, давольно интересные уроки (ставлю на фон когда пишу свой движок :)

  • @wkvvkw
    @wkvvkw ปีที่แล้ว

    Зачем делать системы классами со статическими полями? Мне кажется в этом случае было бы удобнее использовать функциональный подход

    • @depishdev6942
      @depishdev6942 9 หลายเดือนก่อน

      Ооо да, это было больно! Но хоть и так, интересно посмотреть на сам ход разработки)

  • @voidptr_t
    @voidptr_t 4 ปีที่แล้ว +2

    Я так и не понял, в чем проблема синглтона? Хотя тут наверное на вкус и цвет.

    • @mishame156
      @mishame156 2 ปีที่แล้ว

      Очень легко начать использовать синглтон как суперкласс, который умеет все на свете и реализует кучу интерфейсов. Такое архитектурное решение очень интуитивно для новичка, но это порождает огромное количество проблем. В целом синглтон то не плох, но надо понимать, какие проблемы он ДОЛЖЕН решать и какие проблемы он категорически НЕ ДОЛЖЕН решать (а новичку часто это вообще не понятно). Мой эмпирический рецепт такой: если синглтон - это небольшой класец с узким связыванием (его инклудит пара файлов от силы) - то он норм.

    • @voidptr_t
      @voidptr_t 2 ปีที่แล้ว

      @@mishame156 да уж за год я ответил себе "почему не синглтон"

  • @hank0s970
    @hank0s970 2 ปีที่แล้ว

    А нужно код писать только в eclipse ide? или подойдёт visual studio code?

    • @badgereugene3101
      @badgereugene3101 8 หลายเดือนก่อน

      Можно писать хоть на бумажке карандашом, дело твое.

  • @roronoazora8753
    @roronoazora8753 3 ปีที่แล้ว

    Крутоо

  • @paix2890
    @paix2890 ปีที่แล้ว

    а я не понял, по итогу, даже на с++ маин тормозит и глючит?

  • @Феноменально-й6л
    @Феноменально-й6л 10 หลายเดือนก่อน

    Закончил курс процедурного программирования с++, вообще ничего не понимаю

  • @lincoln7423
    @lincoln7423 3 ปีที่แล้ว

    Что делать если не удалось инициализировать GLEW? Я переустанавливал все библиотеки, но программа не запускается. Я искал решение в Инете, не помогло. Помогите, плиз(

    • @ДжонСмит-ч5ь
      @ДжонСмит-ч5ь ปีที่แล้ว

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

  • @BVS2224
    @BVS2224 3 ปีที่แล้ว

    Крутой трек

  • @sharphurt8753
    @sharphurt8753 11 หลายเดือนก่อน

    очень странный метод setShouldClose(bool). В чем логика, если я вызову setShouldClose(false)? Я отменю закрытие окна в следующем кадре? Но если на прошлом кадре был вызван setShouldClose(true), то окно уже должно закрыться. Нелогично получатеся, гораздо лучше сделать просто метод close()

    • @badgereugene3101
      @badgereugene3101 8 หลายเดือนก่อน

      setShouldClose(функция, которая возвращает bool), удобно использовать, чтобы не городить условия

  • @Sergey_IT_Engineer
    @Sergey_IT_Engineer 3 ปีที่แล้ว

    Qt Creator - хорошая IDE под линь. Ну и под винду. И под макось. Кроссплатформа, короче.

    • @lphoenixl7771
      @lphoenixl7771 3 ปีที่แล้ว

      Под винду нет ничего лучше Visual Studio.
      Пока что никто и ничто не смогли её переплюнуть!

    • @Sergey_IT_Engineer
      @Sergey_IT_Engineer 3 ปีที่แล้ว

      @@lphoenixl7771 с Qt Framework и GTK работает?

    • @lphoenixl7771
      @lphoenixl7771 3 ปีที่แล้ว

      @@Sergey_IT_Engineer конечно!
      Более того, инструкция по работе с Qt Framework в VS есть на самом оф. сайте Qt, а по работае с GTK на сайте майкрософт.
      Так сложно вбить запрос в поисковик ?
      -_-
      Честно говоря, я даже не знаю, есть ли что-то такое, с чем VS не смогла работать...

    • @fyfbifvodefin9383
      @fyfbifvodefin9383 ปีที่แล้ว

      @@lphoenixl7771 ide может и хорошая, но MSVC - самый блевотный компилятор, что я встречал когда либо

  • @ilievelesco5330
    @ilievelesco5330 3 หลายเดือนก่อน

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

  • @Lettersprod
    @Lettersprod 3 ปีที่แล้ว

    Не понимаю как подключить эти библиотеки в Visual Studio 2017

  • @lordorbit
    @lordorbit 4 ปีที่แล้ว

    Привет! Можешь помочь пожалуйста с ошибкой. Я надеюсь в vs ты шаришь. Я написал все также как и ты, до первого запуска window 2.0. У меня вышла ошибка которая в файле Window.obj, 3D ФАЙЛ, причём тут он, подскажи пожалуйста.

    • @MihailRis
      @MihailRis  4 ปีที่แล้ว

      К сожалению, никогда не использовал Visual Studio, так как только недавно узнал, что она доступна и на Linux. А .obj файлы, в данном случае - скомпилированные .cpp файлы, из которых, в дальнейшем собирается бинарник. Возможно я смогу подсказать что-то зная текст ошибки.

    • @lordorbit
      @lordorbit 4 ปีที่แล้ว

      LINK2019 ссылка на неразрешенный символ __imp_glewInit в функции "public: static int __cdecl Window::initialize(int,int,char const *)" (?initialize@Window@@SAHHHPEBD@Z)

    • @lordorbit
      @lordorbit 4 ปีที่แล้ว

      @@MihailRis, ответ нашёл. В Window.cpp забыл написать #define GLEW_STATIC. Всё равно спасибо за поддержку!

    • @lordorbit
      @lordorbit 4 ปีที่แล้ว

      @@MihailRis, возникла другая ошибка, связанная с файлом Events.cpp. Пишет: неразрешенный внешний символ ""public: static class GLFWwindow * Window::window" (? window@Window@@2PEAVGLFWwindow@@EA)". Пробовал #define GLEW_STATIC, не помогает. Что делать?

    • @lordorbit
      @lordorbit 4 ปีที่แล้ว

      Я так понял, что это ошибка из-за того, что я не объявил какую-то библиотеку, хотя код как на github-e

  • @obey-onekenobi2818
    @obey-onekenobi2818 3 ปีที่แล้ว +1

    Open GL разве не движок? Если его использовать, то почему считается что движок с 0 пишется? Без негатива

    • @MihailRis
      @MihailRis  3 ปีที่แล้ว +1

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

    • @fyfbifvodefin9383
      @fyfbifvodefin9383 ปีที่แล้ว

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

  • @murademinli3001
    @murademinli3001 2 ปีที่แล้ว

  • @azrabrijer742
    @azrabrijer742 3 ปีที่แล้ว

    Ну есть майнкрафт бедрок ,р-н написан на c++

  • @Eek_The_Cat
    @Eek_The_Cat 11 หลายเดือนก่อน

    А нахрена писать на плюсах в стиле си? С тем же успехом можно было завести структуры и вынести код в глобальные функции.

  • @Eminius26
    @Eminius26 7 หลายเดือนก่อน

    Искал медб а нашёл золото

  • @Neuro-trash-z3s
    @Neuro-trash-z3s 4 ปีที่แล้ว +3

    15:15 в функции void Events::initialize() при компиляции линковщик выдал ошибку 2001 "неразрешенный внешний символ public static class GLFWwindow window", решилась определением GLFWwindow* Window::window в файле Events.cpp, но теперь при запуске окна оно вылетает с ошибкой Assertion failed window!=NULL, дебаггер показывает, что теперь при объявлении локальной переменной GLFWwindow* window = Window::window;
    Значение window = NULL, то есть присваивание почему-то не срабатывает, хотя значение Window::window не нулевой указатель
    Upd: оказывается имеет значение порядок подключения хэдеров

    • @kvinka_slow_mo
      @kvinka_slow_mo 3 ปีที่แล้ว +1

      нужно в Виндов.аш поменять class GLFWwindow на struct GLFWwindow

    • @Neuro-trash-z3s
      @Neuro-trash-z3s 3 ปีที่แล้ว +2

      @@kvinka_slow_mo , нет, я так делал, но это не помогало, там в порядке инклюдов дело было

    • @timcha69
      @timcha69 2 ปีที่แล้ว

      @@Neuro-trash-z3s Спасибо! Я весь день просидел, пытаясь понять, с какого чёрта выдает ошибку.

  • @bulkaisacat
    @bulkaisacat 2 ปีที่แล้ว +1

    у меня одного ошибка при создании окна
    LINK : warning LNK4098: библиотека по умолчанию "MSVCRT" конфликтует с использованием других библиотек; используйте /NODEFAULTLIB:library
    1>projectname.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp_glViewport в функции main.

  • @vladyan01
    @vladyan01 3 ปีที่แล้ว

    Сверх тяжело

  • @valerunchik7510
    @valerunchik7510 2 ปีที่แล้ว

    тЫ КОГДА ПИШЕШЬ КОД КАК УБРАТЬ ЧТО ЭТО ОШИБКА В ТЕКСТЕН

  • @Славапро228
    @Славапро228 9 หลายเดือนก่อน +1

    4 года делает...

    • @Квасик-о5ф
      @Квасик-о5ф 8 หลายเดือนก่อน +1

      Капец, только сейчас заметил.