Как сделать 3D Игру на Python с Нуля [ Часть #6 Коллизии. Спецоптимизация ]
HTML-код
- Опубликовано: 2 окт 2024
- Продолжаем развивать псевдо 3d игру, написанную на Python и Pygame. В этом видео рассказывается о внедрении механизма коллизии со стенами и объектами в игре. Также проведём ускорение движка, путем использования декораторов JIT Numba и Pygame v.2 (версии для разработчиков)
Код:
github.com/Sta...
#standalonecoder
ДА ЗАБЕРИТЕ ЕГО УЖЕ В РАЙ, ЗА-БЕ-РИ-ТЕ!!!
Супер! Очень классно как всегда! В начале этих выпусков даже и не думал что будет такая классная графика в игре 😄😊👌👍 Горы сзади это просто красота 😍 Топовый графон👍 С нетерпением ждем следующего выпуска:))))))
Standalone coder, а как ты добавил такие клёвые горы на задний фон?) Я тоже хочууууу😍 Выглядит unreal красиво!
@@store38ru да, горы крутые, очень необычный фон, тоже хочу такие добавить! Standalone coder how you did that mountains?)))
В описание есть ссылка на код, там же и эти горы лежат)
@@StandaloneCoder класс, спасибо!)))
Помогите плз с установкой намбы
Какой у тебя красивый голос)
Я написал другую функцию коллизии со стенами, которая проще и по-моему эффективнее:
def check_collision(self, dx, dy):
if dx != 0:
delta_x = (self.side // 2) * abs(dx) / dx
if mapping(self.x + dx + delta_x, self.y + delta_x) in world_map:
dx = 0
if mapping(self.x + dx + delta_x, self.y - delta_x) in world_map:
dx = 0
if dy != 0:
delta_y = (self.side // 2) * abs(dy) / dy
if mapping(self.x + delta_y, self.y + dy + delta_y) in world_map:
dy = 0
if mapping(self.x - delta_y, self.y + dy + delta_y) in world_map:
dy = 0
self.x += dx
self.y += dy
Да, там много улучшений можно сделать. Было бы время - передал бы все по-новому, тогда все собиралось на коленках. Даже и не думал, что смотреть кто-то будет )
При запуске в файле map у меня возникает ошибка с библиотекой numba, OSError - не найден файл llvmlite.ddl.
Как исправить эту ошибку?
Я кстати думал что тут уже несколько тысяч подписчиков, увидел их количество и что то удивился что маловато. А видео и выполненная работа как всегда шикарна.
Дело в том, что он озвучивает роботом, а здесь как ни крути, ютуб такие каналы не развивает, и смотрят такие каналы мало человек😞😞😞
Прошло блин, 2 года, контент лучше чем у Windy 31, но у него за минуту несколько тысяч лайков а у тебя всего 753 на данный момент, и просмотров мало, это доказывает что людей толковых будет мало.
А на 2д игре такое сработает?
Сначала вопросик. Как сделать такой же красивый шрифт в PyCharm (как будто из саблайма вроде), да и подсветка лучше. В настройках не нашел. Как всегда ролик топ. До сих пор не понимаю как можно так хорошо подать материала с голосом робота. Хотя сначала было непривычно)) Даже рад что у тебя немного подписчиков (не в обиду). Уютненько тут в комментариях)
в качестве оформления для PyCharm используется плагин - Monocai Color Theme
@@StandaloneCoder у меня проблемы с установкой библиотеки numba
@@doctor7628 попробуй использовать python 3.10 или 3.9
Наконецто новое видео!
Numba это имба(канал хамибин)
следующее видео:делаем 3д онлайн игру на python с нуля
Я заметил в начале что когда проходишь через стену возникает эффект рыбьего глаза на несколько секунд
Ты очень классный продолжай в том же духе.
Чётко, желаю удачи в программировании
Ура!!! Новый видосик!!!
Если вплотную подойти к стене и начать поворачиваться ФПС очень сильно падает.
И ещё вопрос: как сделать так, что бы не было двигающихся стен. Если у меня большая карта, то появляются стены, которые двигаются вместе с игроком. Портят всю картину. Спасибо за урок по коллизиям! Ждём урок про двери и врагов
Решение падения ФПС вблизи стен в следующем видео
Сними видос про зеркало, пж, а то я уже 2 дня мучаюсь, но нормальное зеркало так и не получилось сделать
numba не устанавливается. что делать
Перейди на python 3.10
Ты крут
Пайтон - молодой, развивающийся язык.
Ахахахахахахахаххааххаах
Говоря про Python, я имею ввиду Python 3, он вышел в свет в 2008 году, и помоложе будет чем С, Objective-C, С++, С#, Java, JavaScrypt, Ruby
@@StandaloneCoder А, ну ок. Я вообще твой канал начал смотреть не изза того, что хочу научиться делать псевдо-трёхмерные игры, а из интереса, как ты из питона выжимаешь все соки. Ну во вторую очередь интересен результат
Mine shows this error "OSError: could not load shared object file:llvmlite.dll", I need help
try setting up a virtual environment with anaconda, and installing libs:
conda install numba
pip install pygame==2.0.0dev10
Кажется если скальзить возле стены персонаж сквозь неё будет проходить.
я же тестировал перед выпуском этого видео, персонаж точно не проходит сквозь стены
Если скользить. Может быть как в этом видио 12:30
ruclips.net/video/i0IvgmBMFMw/видео.html
так персонаж же скользит и по моему алгоритму
Очень классно! Продолжайте в том же духе!
Привет, Standalone Coder! Я очень рад новым выпускам! Скажи, будет ли урок по смене уровня(карты), урок по главному меню, и по дверям?
Двери точно будут. Насчет остального пока не могу сказать
Кстати недавно узнал о AOT компиляции. Хотелось бы узнать где такое в пайтоне достать, вроде в нумбе нет(
возможность АОТ компиляции в Намбе есть!
numba.pydata.org/numba-doc/dev/user/pycc.html
🗽
это охеренно
Как ты настолько хорошо выучил питон? Учился где - то?
нигде не учился, изучаю самостоятельно второй год
Хм, чувак, у меня проблема со скачиванием намбы
ты потом перейдешь на квадродеревья?
Будет ли добавления интерактива? То есть движущийся npc, события при касании спрайтов, интерактивное их добавление и удаление?
Планирую оружие, анимация разрушения и убийства. Но уже можно самостоятельно добавлять, почти все механизмы имеются для этого.
@@StandaloneCoder анимация разрушения? 😱😍 огооо))) надо сделать круче чем в Battlefield Bad Company 2 ахахаха))))
У меня есть идея, что насчёт того чтобы несколько изменить систему прорисовки. Можно добавлять на один луч не один прямоугольник, а несколько вычисляя их размер по функции. Таким образом можно добиться гладкой стены даже если количество лучей небольшое, что будет хорошо для слабых компьютеров.
Если получится реализовать, то напишите на почту, будет очень интересно посмотреть)
@@StandaloneCoder Сейчас в тренеровочном лагере, к 20 числам вернусь домой и попробую.
Красавчик!)
Отлично!
Топ
как приоброзавать графику в g код
Не совсем понял... Вот в этот G-код? ru.wikipedia.org/wiki/G-code
Урыы!
мужик продолжай очень нада
подгрузку 3D моделей вместо спрайтов можно запилить ?
Нужно на другой технологии тогда движок делать, raycasting для 3д моделей не совсем подходит
всё прекрасно, но слушать синтезированный голос реально напрягает уже :(
Если честно думал оптимизация добавит фпс 10-20, но как вижу я ошибался)) но меня все эти видео мучает вопрос. Вот этот способ рисования графики до ужаса простой, но фпс как в в шутерах. Как они графику там рисуют? Или это связано с тем, что используются более быстрые языки? Хотелось бы видос на эту тему))))
Тут даже не в языках дело, а в том что все расчеты полигонов в современных играх производятся при помощи видеокарты, а у нас все на процессоре рассчитывается.
@@StandaloneCoder будут видеоролики про создание игры с участием видеокарты?)))
Да, планирую и с видеокартой поработать
@@StandaloneCoder тоже на пайтоне? Или другой выберешь?
@@StandaloneCoder А будет ли далее урок по онлайн игре ?
Скоро-ли будет продолжение ?
планируется в течение следующей недели
А какой у вас pycharm?
Ну или просто скиньте вашу программу пожалуйста 😊
Код неправильно работает
У меня Pycharm Community
в описании под роликом есть ссылка на код из видео
Просто супер! Вы гений! :)