Я написал клон Geometry Dash С НУЛЯ! | Как сделать свою гдшку?
Ғылым және технология
Всем привет, я - OxygenSE!
Видео не выходило ооооочень долго, примерно два месяца, но за это время я:
1. создал сам клон Geometry Dash.
2. начал эксперементировать с подачей (всякие анимашки и т.д.)
3. просто отдохнул немного (правда не последние 5-6 дней жесткого монтажа)
Надеюсь, вам понравится результат!
GitHub проекта: github.com/SonicallGameXGit/G...
Discord (заходите, тут весело): / discord
Только что заметил, что у меня 3 иконки подряд с одинаковой структурой :)
- Таймкоды -
00:37 - Интро
01:55 - Структура рендера
05:07 - Физика куба
07:53 - Коллизия
08:08 - Конец (нет)
10:00 - Сохранение и загрузка уровня
11:01 - Создание корабля
11:33 - Создание шара
12:47 - Создание орбов
13:00 - Коротко о порталах
13:36 - Создание фона, пола и полосочки
13:43 - Stonks
14:36 - Главное меню (логотип)
15:48 - Система Анимации (линейная интерполяция)
16:28 - Система Анимации (ease интерполяция)
18:04 - Система Анимации (bounce интерполяция)
18:21 - Главное меню (кнопки)
18:42 - Строительство уровня и доп. информация
19:20 - Геймплей
19:37 - Конец
Пікірлер: 309
хороший видосик:)
@KitoyaSanXit
23 күн бұрын
О ретроман тут
@oxygense2008
23 күн бұрын
Ретромен!!! Уряяяя)))
@pryanick3050
23 күн бұрын
@@oxygense2008где можно скачать данный шедевр? 🧐
@oxygense2008
23 күн бұрын
@@pryanick3050 Все, уже выложил. Как я ответил на прошлый комментарий - в гитхабе в описании) Вот релиз: github.com/SonicallGameXGit/GeometryDash/releases/tag/Alpha *нужна 17+ джава
@pryanick3050
23 күн бұрын
@@oxygense2008 👌🧐
Кислородик 19 минут 37 секунд пытается оправдаться что не держал робтопа в заложниках и не вымогал у него код )
Я еле сделал обычный платформер на юнити, а ты без движка это. Харош
@oxygense2008
24 күн бұрын
Спасибо)
@Koneko_Lovery
23 күн бұрын
Если честно, не нова но да харош
@Hikm9149
22 күн бұрын
На чистом c++ можно написать игру
@Koneko_Lovery
21 күн бұрын
@@Hikm9149 На чистом? Нет всё равно нужно будет подключать модули ради того чтобы банально отрисовать окно, а также на прямую обращаться к процессору такая себе идея. Вывод: Без движка можно, С++ можно, но чистый С без модулей, API и прочей хрени врятли!!
@Hikm9149
21 күн бұрын
@@Koneko_Lovery ну я не говорил что он библиотеки не подключал
Хотим проду! 👍 если тоже
Ахахаха, просто на глаз прикинул 😂
@oxygense2008
23 күн бұрын
Коротко о геймдеве))
Хранить уровень байтами не очень хорошая идея. 1) при обновлении игры с добавлением каких-то новый свойств блокам, сейвы сломаются 2) не получиться не сохранять неиспользуемые свойства блоков, на пример если блок не имеет цвет, поворот, какие-то поля триггерные, эти данные не сохраняются 3) не получиться внедрить свойства с динамическим размером как группы, текст в блоке текста и тд 4) редактирование уровней сторонними программами будет осложнено, так как не получиться использовать уже готовых декрипторов+редакторов Если тебе хочется хранить данные байтами, но не иметь таких проблем, лучше всего использовать форматы nbt или protobuf, после сжать всё через gzip или что-то подобное (так кстати хранятся миры в майнкрафте). Единственный минус, скорость (де)сериализации будет в разы меньше, но она сама по себе не очень долгая
@oxygense2008
23 күн бұрын
Такие вещи мне надо, спасибо))
Я нихера не понимаю, но мне очень интересно, т.к. я итересуюсь ит ⟨:)
Вулкан, хочу вулкан, хочу вулкан, он простый, очень простый
@oxygense2008
24 күн бұрын
Да будет, будет, учу))
у тебя будет баг когда ты добавишь чёрные орбы, надо сделать проверку если скорость падения меньше максимальной то прибавить скорость, сейчас ты просто ставишь максимальную скорость и выше её не получится двигаться даже орбами
@oxygense2008
23 күн бұрын
О, спасибо, учту))
Я тоже в своё время делала клон гд. Прикольно наблюдать за тем, как кто-то тоже этим занимается. Коллизию ты, кстати, реализовал лучше чем я. Спасибо, эта информация мне пригодится
Я в 7-ом классе, занимаюсь Джавой 4 года. Всегда пытался написать свою нормальную реализациб гуи и в принципе рендаринга , но из-за пробелов в высшей математике всё время вставал в тупик. Ты меня просто мотивируешь продолжать,, спасибо!
@oxygense2008
23 күн бұрын
Рад слышать, удачи! Ну я лично вообще не шарю за даже обычную простую математику, что уж там про высшую) Только понимаю как с этим примерно можно работать и то, так себе
Го вторую часть
Жду продолжение уже, очень интересно.
как всегда, угар и прикольная информация
@oxygense2008
24 күн бұрын
Хаха, научпоп, самое то)) (назову-ка кодепоп)
Классно, жду продолжения! Очень приятно слушать объяснения, хоть и не сильно понятно ❤
@oxygense2008
23 күн бұрын
Спасибо) Как раз то, за чем я стремлюсь, кому понятно, может быть как подсказка к решению какой-то проблемы, а так, для простых слушателей, на покушать)
Кстати, если зажать на кубе, то во второй раз куб прыгает выше. Поставь ключик на 3 блок по высоте и в платформере попрыгай. Если вдруг ты хочешь делать до мелочей, то вот так.
@oxygense2008
23 күн бұрын
Фигасе) Я вот думаю, может, это именно недочет физики, а не фича? Попробую повторить, хотя как...
Как он харош
Wow! Это очень хорошо, продолжай делать игру!!!
бля, первый годный клон, а не пародия на скретче. Красава!
Классное видео! Можно спросить, ты какие ресурсы смотрел чтобы разобраться в rtx графике? Так как это сложная тема где нужно много математики и вычислений.
@oxygense2008
23 күн бұрын
Честно, максимум что я посмотрел - это как рейтрейсинг написал Onigiri, можешь посмотреть в ютубе по поиску: "Onigiri RTX", он там многое из этого сделал и даже лучше
Ооо,джава.как раз его и учу
спасибо за качественный контент ❤ надеюсь увидеть продолжение!
Ну ты реально гений.... Если продолжать будешь, то я буду очень надеяться, что Робот Топачка запетит этот, в буквальном смысле, клон
@DriverG07
23 күн бұрын
И ещё, попробкй залить свой гд в стим, плей маркет и апп стор) (Да, я знаю, что ему, кислороду, по макушке дадут за это)
@oxygense2008
23 күн бұрын
Хаха, спасибо))
@oxygense2008
23 күн бұрын
@@DriverG07 Ну это думаю не буду делать, разве что как apk могу сделать, а вот в стим 100 баксов надо, а в гугл плей не хочу, это чисто челлендж, а не полноценный клон как проект)
Аж математику захотелось учить
@oxygense2008
24 күн бұрын
Хаха, удачи, афигенная тема как по мне)
Класс! Мне нравится, что ты активно развиваешься и не останавливаешься на одной теме, я считаю, что это очень правильный подход! Было бы у меня времени побольше, я бы тоже так старался делать. А пока могу только смотреть за другими😅
@oxygense2008
19 күн бұрын
Спасибо! Рад слышать)) Желаю побольше времени на такие веселые приключения)
@Vorono4ka
19 күн бұрын
@@oxygense2008 Спасибо!
ты такой крутой программист, я тоже программист я занимаюсь скретчом 1 а питоном 2 года!
Респект, бро! Хорошая работа!
Прода пж!!! Проект очень хороший👍Можно добавить свинкоптер по логике это самолëт+шар или юфо.Удачи тебе в проекте!
Недавно нашел тебя по видео про свой лаунчер, в итоге теперь смотрю тебя
Пилы, джамперы, простые тригеры, декорации, другие вариации шипов, монстрики, ключ.
Жду продолжения, получилось круто❤
Хароош 👍🏿 Я и сам не подозревал о таком алгоритме обнаружения столкновений, спасибо за инфу
@oxygense2008
15 күн бұрын
Было бы прикольно узнать, что это за алгоритм, иначе, нотч что-то точно знает))
@ilariystory
15 күн бұрын
@@oxygense2008 да, повезло что он тогда не провёл обфускацию кода 🗿
@oxygense2008
15 күн бұрын
@@ilariystory нотч: бляяя, я первую версию не зашифровал, ну все, жопа! Я: ихехехехе, спасибочки
Имбовый результат получился советую зделать портал телепорт
них** не понял но интересно :3
Надо сделать трейл корабля а то как-то пустенько он выглядит
@oxygense2008
23 күн бұрын
Принято))
Продолжай.
как всегда имба
2:40 на самом деле не самый сложный) континиус коллизии передают привет
@oxygense2008
22 күн бұрын
Хаха, если это не самый сложный этап, то страшно представить, что там еще есть))
@doodocina
22 күн бұрын
@@oxygense2008 представь, что обьект движется настолько быстро, что пролетает другие обьекты насквозь. вот оно это решает
Лучший
Добавь в гд 0.1, настройки с измемением громкости, монетки, практику монеты недолжны братся в практике и желательно в меню сделать кубики, кораблики и шары которые летят(идут) в правую стену :) и копия ИМБА❤
у тебя отлично получается! постарайся в следующей обнове сделать монеты в уровнях
Отличное видео!!!! Надеюсь ты будешь дальше делать игру
как по мне одна из самых важных вещей по которой легко отличить гд от копии это мыльный глоу у блоков (посмотри в сравнении какой нибудь 1.0 уровень из гд и свой уровень), хотелось бы что бы ты его добавил
@oxygense2008
21 күн бұрын
Урааа, хоть кто-то сказал про это)) я это давно заметил, но не нашел времени исправить
Спрашиваешь? Конечно хочется!
если долго мучится что нибудь получится
можно сделать вход в порталы более красивым, разделив спрайт портала на 2 части и поставив 1 часть позади игрока, а вторую спереди
@oxygense2008
22 күн бұрын
Это как раз по плану! Запишем)
А как же бинарные файлы? :) Круто получилось
@oxygense2008
24 күн бұрын
Спасибо) но насчет «а как же бинарные файлы?» не совсем понял, жду пояснительную бригаду
@shadow_blader192
24 күн бұрын
@@oxygense2008 Ну использовать файлы типа .bin, вместо .txt.(Для хранения уровней)В bin просто байты хранятся (хотя и txt по сути байты). В txt, чтобы записать "255" нужно 3 буквы (3 байта), а в bin можно записать в 1 байт. Можешь погуглить, ибо объясняю Я плохо. Не факт, что размер файла меньше станет.
@shadow_blader192
24 күн бұрын
@@oxygense2008 Я только что посмотрел, и у тебя уровень "Active" сохранен в формате .bin. 🤔🤔🤔🤔🤔🤔🤔🤔
Я тебе предлогаю с нуля сделать angry birds
@oxygense2008
24 күн бұрын
Хмм… ну подумаю, а тема капец сложная из-за физики (а точнее коллизий), так как всякие «box-2d” не хочу использовать)
0:45 skill issue
@oxygense2008
24 күн бұрын
Хаха, если бы не он, я бы такое сделал и такому бы научился))
11:30 я замечал ранее. Видос классный кстати
Офигенный видос! Я бы прошёл мимо, но меня заинтересовал опенгл на превью. Хоть его тут особо и нет, мне понравилось, что ты не стал использовать движок! Стырить код из старого майнкрафта - шикарная идея хахахаха, мне это напомнило, как я хотел сделать механику Blazing Wheel из террарии, а потому пошёл декомпилировать её, хаха! К слову, очень уж у них запутано в коде... Никак не вышло найти нужный код :) Мне оооочень нравится, как ты запариваешься над игрой! В первой же серии/части написал что-то вроде твин анимации ДЛЯ КНОПОК АХХАХА чувак ты крут!
@oxygense2008
19 күн бұрын
Спасибо большое! Очень рад слышать)) решил не забивать видео opengl так как на ютубе куча роликов от более прошаренных людей, а это видео скорее чтобы попить чай)
Это просто офигенно. Такое ощущение, как будто смотрю ютубера с 1млн+ сабов. Все на уровне, красавичик
@oxygense2008
21 күн бұрын
Хаха, спасибо)) Ты когда Minerraria API сделаешь?) Может, я что-то пропустил, но ты вроде еще не закончил, очень хочу мод написать, достать твой исходный код и добавить туда 3д, ихихихухухаха!
@kingmang_it
21 күн бұрын
@@oxygense2008 Хах, ну удачи). Думаю в скором времени выложу на гитхаб и api и исходники к игре
@oxygense2008
21 күн бұрын
@@kingmang_it Ну ждем, ждем)
физика перевернутого корабля(самолетика) отличается от не перевернутого
@oxygense2008
22 күн бұрын
Чего??? Таких приколов я не знал о гдшке))
@user-qo2he2yq5j
22 күн бұрын
@@oxygense2008 возможно в 2.2 это изменили, но в 2.1 было так
@BB_MLBB
22 күн бұрын
Физику в 2.2 поменяли и теперь она в максе 240, а фпс любой поэтому 2.2 спорная обнова для слееров
C++ не может лагать никак, он быстрее намного джава, а на счет анимации кнопок это сделать легко тк в кокос2дх уже есть созданные анимации
@OkroluX
23 күн бұрын
Чувак ты что про утечку памяти забыл?
@ustex
23 күн бұрын
@@OkroluX если код писать не жопой то лагать не будет
@oxygense2008
23 күн бұрын
Да блин, почему все думают что я на кокосе делаю)) А насчет лагов, естественно будут лаги, как я всегда говорю, C++ - это не волшебная пилюлька для производительности, просто этот язык гораздо больше функционала дает для работы с памятью, из-за чего все гораздо быстрее, но одновременно не прощает даже самых маленьких ошибок, то есть даже если немного накосячить - жопа) Как раз то что было со мной
Спасибо опять почувствовал себя тупым
Топ! Ставлю лайк
давай следующую часть, уже жду
Рекомендации не подкачали
Хотим очень продолжение
Кстати я один заметил что когда я строю уровень или играю то фон уровня появляется на главном меню То есть играю уровень где фон «лес» то в главном меню тоже «лес»
@oxygense2008
23 күн бұрын
Фигасе, такого прикола не замечал
@user-KAKTys3
23 күн бұрын
@@oxygense2008 попробуй протестить сам, я с телефона играю
Очень даже очень
Ждем когда ти зделаеш 2.3 бистрее робтопа
примерно такое же делал griffopatch, хотя он это делал (и делает) в скретче
@oxygense2008
21 күн бұрын
Не, я не на столько гениален)) ps. я попробовал сделать гдшку на скретче, все сделать смог, кроме коллизии нормальной, не знаю как там ее реализовать)
Стоп, а как ты пишешь на Java если ты пишешь на Godot???
@oxygense2008
19 күн бұрын
Не, на годоте и юнити я делал визуализации для видео, а вот реальная игра на джаве)
@nuller_2011
18 күн бұрын
@@oxygense2008 , ок. А то мне чёт не понятно стало😅
Попробуй добавить другие режимы по типу робота, стрелки, паука и тд.
Схуяли там музыка из impurity
@oxygense2008
24 күн бұрын
Не совсем понял, там многовато уровней))
Имба
капец ты умный, я сам то делою игры на ue5 ну а там уже прям всё готовое за тебя, а тут прям вообще с нуля всё, и ничего не непонятно, но очень интересно тебя слушать)))
@oxygense2008
19 күн бұрын
Спасибо)) Ну для меня, честно, ue гораздо сложнее чем сделать с нуля, так как движок мой и я его полностью знаю, а вот анреал... вещь страшная)
@user-qt2rv6rf7j
18 күн бұрын
Ну у парнишки математика, геометрия хорошо прокачана. Нам идиотам не учившимся в школе такое написать не получится :D. Oxygen кстати замотивировал меня изучить школьную программу математики, геометрии и физики
@oxygense2008
18 күн бұрын
@@user-qt2rv6rf7j Спасибо) если честно, матиматику выше процентов и дробей я не знаю вообще, скорее тыкаю пока не получится (пока тыкал месяцами, находил просто паттерны и пользовался ими)
где партиклы?
@oxygense2008
24 күн бұрын
Пока не сделал, но как для второй части подойдет)
Поскольку это видео про гд хочу спросить как в fabric 1 20 добавить виджеты в инвентарь(добавить экран из 300 строк кода)?
@oxygense2008
23 күн бұрын
По скольку да, то честно, не знаю)) Такие узкие вещи я, честно, не делал, тут разве что ChatGPT и форумы думаю
Продолжай игру. Сделай топ и онлайн лвла
Как же он хорош
@oxygense2008
23 күн бұрын
Спасибо)
В Cocos2d-x есть встроенные действия с интерполяцией. Поэтому робтоп просто наложил на кнопку действие которое уже было предусмотрено движком float scale = 1.1f; float duration = 0.5f; button->runAction(cocos2d::EaseBounceOut::create(cocos2d::ScaleTo::create(duration, scale))); (Пишу с телефона, возможны ошибки)
@oxygense2008
23 күн бұрын
Хаха, спасибо, теперь понятно как он это делает)
@Hikm9149
22 күн бұрын
Он на чистом коде делает, не кокос 2д
@chetverochka
22 күн бұрын
@@Hikm9149 я понимаю. Он поинтересовался, а я ответил.
@Hikm9149
22 күн бұрын
@@chetverochka ладно
хочу продолжение
Привет! Собираешься делать какие-то подобные проекты на яп rust? Он куда оптимизированной плюсов, все хвалят.
@andrewkraevskii
16 күн бұрын
не на раст, но zig вполне может быть
@andrewkraevskii
16 күн бұрын
То что раст оптимизированнее плюсов это спорно т.к. они оптимизации и там и там происходят через llvm. А вот то что там сложнее сделать код которые работает медленнее это правда (правда там в целом сложнее сделать код)
@snusyik
16 күн бұрын
@@andrewkraevskii Справедливо) По поводу оптимизации действительно оказался не прав, спасибо, что поправил. А чем обусловлен выбор zig'а, если не секрет?
@andrewkraevskii
16 күн бұрын
@@snusyik Он супер простой в отличии от rust (я бы даже сказал проще С), но накосячить сложнее чем в плюсах. Ну а если не серьёзные причины то я просто сейчас его изучаю и решил оксигена подсадить)
@oxygense2008
8 күн бұрын
Ну rust я честно не пробовал, но Андрей говорил что довольно сложный синтаксис, так что лучше уже плюсы. А вот zig мне очень понравился, за исключением массивов, они путают сильно)
интересно... у меня где то в webdash оригинальная физика была. некоторые значения даже ревёрсил из ориг игры. могу дать если надо. а так удачи!
@viralgd
19 күн бұрын
пон
Положение камеры бы изменить, скорость игрока и добавить частицы от хождения по объектам, тогда будет 1 в 1
@oxygense2008
22 күн бұрын
И glow блокам)
Странно... У тебя C++ тормозит больше, чем Java, а Майнкрафт Bedrock Edition, который сделан на C++, работает быстрее, чем Майнкрафт Java Edition на Java.
@scarstefangamer
23 күн бұрын
в джава мало оптимизации да и тем более майнкрафт джава большая игра
@oxygense2008
23 күн бұрын
Потому что я не очень хорошо знаю плюсы, а они такое не прощают, C++ это не волшебная палочка с бесконечным фпс, просто C++ настолько близок к пк по сравнению с джавой, что кучу проблем с оптимизацией можно легко решить, а в джаве это будет невозможным
@user-cr9fh3mv4d
23 күн бұрын
Где-нибудь утечка памяти и капут игре...
Привет! А что ты за библиотеку используешь?
@oxygense2008
23 күн бұрын
Ну для создания окна с OpenGL - LWJGL (само окно делается через GLFW, который встроен в него), а если ты про графику, то вот кака раз OpenGL)
Вот чего-чего, а партиклов явно не хватает
@oxygense2008
23 күн бұрын
Пока я монтировал, я понимал, что это то, что я реализую не в зависимости от комментариев в первую очередь)
👍
Жду 2 часть
Мы с тобой братья по разуму Я тоже хочу свою гд сделать (на Cocos2D), но времени, к сожалению, нет
@oxygense2008
21 күн бұрын
Хаха, ну насчет времени конечно обидно
@ridi23
20 күн бұрын
@@oxygense2008 зато летом будет полно времени, это хорошо
@viralgd
19 күн бұрын
@@ridi23 Я могу помочь с кокосом, сам с ним очень много работал
видос топчик
жду второй видос где ты добавишь частицы порталам
@oxygense2008
23 күн бұрын
И заднюю часть конечно же, для полноты картины)
😙
🗣️💢💢Этот бро закасплеил титана👁️🗨️🗨️ и сделал свое гд🎉🎉
@erroringame7446
23 күн бұрын
Но у него лучше и не на юнити, а на Java
@oxygense2008
23 күн бұрын
Также я, который узнал о нем только после этого коммента)
Если сделать иконки и несколько уровней то будет хорошо
брат, опенгл старая хуйня, а дх12 впадлу учить. так что давай на вулкане делай
@rokushz
24 күн бұрын
OpenGL легче вулкана.
@rostus_official
24 күн бұрын
OpenGL пойдёт практически на все устройства, а вулкан не на все
@oxygense2008
24 күн бұрын
Ну у меня главная причина в том что вулкан еще не изучил (только начал pipeline прописывать), а видео надо делать))
@oxygense2008
24 күн бұрын
А, хорошая причина))
люди хелп как с гитхаба скачать я не умею?
@misquanquad
21 күн бұрын
через версии, там где написано либо releases, либо tags
@oxygense2008
21 күн бұрын
Ага, я там недавно сделал релиз, просто качаешь zip, разархивируешь и запускаешь .jar файл (главное чтобы была 17 джава)
шарик какой то маленький, да и кажется, чо скорость перемещения маленькая. А еще, твой кубик стоит почти ровно по центру, а в оригинале он заметно дальше от середины.
abs это модуль, ну так, на правах минусоубирателя
Ровно 10.000 )
А где можно скачать? 🙃
@oxygense2008
23 күн бұрын
А я оставил ссылку на GitHub проекта в описании. Правда, забыл скинуть билд как релиз, спасибо что напомнил)
4:14 😂
Почему никто не использует движок кокос на котором сделан оригинальный geometry dash?
@gouken27
22 күн бұрын
Говнооооооо
@oxygense2008
22 күн бұрын
Не знаю как насчет других, но я устроил челлендж: «написать гд с нуля», поэтому никаких движков вообще)
@PeLPeL228
22 күн бұрын
@@oxygense2008 логично
@PeLPeL228
22 күн бұрын
@@oxygense2008 кста ты первый ютубер который ответил на мой коммент так что спасибо
А я думал сова молодец
@oxygense2008
23 күн бұрын
Не, это сова, сова, не прогадал)
1:13 иконку осуждаю
@oxygense2008
23 күн бұрын
Nein!
@Fl0uZY
22 күн бұрын
грустный соник осуждает😮
А онлайн лвла сможешь сделать?
@oxygense2008
23 күн бұрын
Хмм... многие пишут об этом, но вот проблемка - нужны сервера, а они платные. Но я думаю смогу найти деньги на это) *учавствую в проекте по серверу майна, как Java программист и с этого получаю, а так же Modrinth тоже есть, жаль что со Spotify еще вывести нельзя(("
Дядя ты не шаришь в плюсах совсем, у меня объект с 10 миллионами вершинами в 10 фпс тянет, 100 миллионов, ОЗУ не хватает 😂 хотя у меня 32гб а так у меня 100к вершин 300к фпс (но это только фпс движка, фактический же фпс 60) сейчас я сделал так чтобы лимит можно снять на фпс и поставить 1000 но лучше стабильные 60 чем не стабильные 1000) я решаю проблемы со стабильностью чтобы не фризило но сложна 😊
@oxygense2008
19 күн бұрын
Не удивительно что я не шарю, ведь учить начал буквально сейчас, да и довольно медленно из-за кучи других проектов