Gamedev

Ответить в тред Ответить в тред
МАНУАЛ СОЗДАНИЯ ИГРЫ ШАГ ЗА ШАГОМ Аноним # OP 13/09/19 Птн 09:52:23 6102191
PyGame-GameDev.png 96Кб, 284x284
284x284
В одном из тредов меня попросили сделать пошаговое руководство по созданию полноценной игры на Python библиотеке PyGame. Пока что написал два урока, но будет гораздо больше, до тех пор, пока не сделаю полноценную RPG-игру шаг за шагом:

https://pygame-dev.blogspot.com

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

В этом треде буду регулярно уведомлять о создании новых уроков.
Аноним 13/09/19 Птн 10:41:34 6102222
>Что тебе мешает свои туториалы выкладывать напрямую сюда?
Как ты в сообщении на дваче сделаешь огрмоный туториал с кучей картинок, форматированием текста, code-snippet-ами? Наркоман чтоли? Сообщения на дваче не подходят для написания длинных мануалов.
К тому же я вобщем-то это и делаю - "выкладываю туториалы прямо сюда" в виде ссылок на страницы на blogspot'е.

Да и вообще, я не только для двача делаю,а для кого угодно. На другие ресурсы потом тоже выложу ссылку наверно.
В любом случае blogspot намного удобная платформа для туториалов, чем тред на дваче

>рекламка
это не рекламка, а решение, принятое в треде >>607692 (OP)
Я решил запилить отдельный тред под свой туториал, т.к. в том треде это оффтоп по сути и он скоро уйдет в бамплимит
Аноним 13/09/19 Птн 10:46:23 6102233
2019-09-1311325[...].png 22Кб, 160x161
160x161
Алсо, хоть у меня уже есть готовая игра с инвентарем, объектами, pathfinding'ом, звуками, выводом текста, взаимодействием объектов и пр., сделать пошаговое руководство по своему коду оказалось намного дольше и сложнее, чем я думал. Разделять свой код на составляющие этапы, описывать каждую строку кода, по многу раз переписывая текст, чтобы он был удобочитаемым и не содержал граматических ошибок, вставлять сткриншоты и code-сниппеты в blogspot-редакторе... Вобщем это занимает довольно много времени и сил.. Это в даже сложнее, чем писать сам код игры.

Но я, всё-таки решил довести дело до конца и кроме создания своей игры, поделюсь опытом с другими.
Аноним 13/09/19 Птн 11:20:42 6102284
>>610219 (OP)
Странно, что в первой статье вроде объяснение базовых проектов, но вместо того, чтобы всё с нуля создавать берётся какой-то проект с гитхаба
Аноним 13/09/19 Птн 11:39:03 6102335
>>610228
>Странно, что в первой статье вроде объяснение базовых проектов, но вместо того, чтобы всё с нуля создавать берётся какой-то проект с гитхаба
Если вообще с нуля пилить, нужно еще 10 уроков сделать. Github для того и сделан, чтобы с него брать основу для своих проектов.

Я же написал в первом уроке, что на создание меня сподвигло отсутствие в интернетах полноценного Open-source PyGame проекта на котором можно основать свою игру. Я уже месяц делаю свою игру, разбираясь с Pygame. Основана она на том простеньком проекте с гихтаба в котором изначально можно только ходить стрелками по простой карте, я е него за месяц допилил предметы, инвентарь, pathfinding, озвучку, вывод текста и пр. А пару дней назад в треде >>607692 (OP) аноны заинтересовались моим предложением мануала по PyGame, вот я и решил поделиться своим опытом. Сейчас сижу свой код разбираю на этапы и делаю из них подробные туториалы.
Аноним 13/09/19 Птн 12:39:48 6102486
> ошибки из-за кириллицы
Ты пишешь на пистоне 3, тут такой проблемы уже нет, она осталась на пистоне 2.
Аноним 13/09/19 Птн 13:20:10 6102527
>>610248
Я в курсе, но я это написал, на случай если мануал будет использовать кто-то с питоном 2.x.x
Аноним # OP 13/09/19 Птн 13:22:06 6102538
>>610238
>опущенец-изгой /pr/
Разве тема этого раздела - не разработка(dev) игр(game)
Что может быть более подходящим к этому разделу, чем мануал по создаю игры?

А в /pr/ там программирование в общем, там мало кому нужна именно игра, поэтому треду место здесь
Аноним 13/09/19 Птн 13:49:13 6102549
>>610253
>Разве тема этого раздела - не разработка(dev) игр(game)
Не повод делать тред по каждому туториалщику с его туториалами. Этого говна на просторах интернета больше, чем в тебе говна.
мимо
Аноним 13/09/19 Птн 13:54:55 61025610
>>610253
Забей на токсиков, а распидора еще и обоссы. Делай как считаешь нужным, возможно кому-нибудь пригодятся твои начинания.
Аноним 13/09/19 Птн 13:55:20 61025711
pixelartgirl3.png 17Кб, 160x159
160x159
>>610254
>Этого говна на просторах интернета больше, чем в тебе говна.
мимо
Да вот нихуя! Я специально целый день потратил однажды на поиски туториала по pyGame, в котором было бы что-то сложнее чем ходьба по полю с тайлами. А мануалы, в которых вкратце описано создание объектов, их взаимодействия, вывода текста, звуков, pathfinding'а, NPC и пр. - ТАКОГО НЕТ ВООБЩЕ в интернетах.
Я поэтому и создаю этот мануал, этого никто еще не сделал
Аноним 13/09/19 Птн 13:59:19 61025812
dva-chaia.png 225Кб, 496x383
496x383
>>610256
Пасиб за поддержку, Анончик! Хотя бы один не токсичный чел попался..

А кто такой "распидор"? (Я тут недавно, если что...)
Аноним 13/09/19 Птн 14:05:14 61026113
>>610259
Я только в питон-тред в разделе /pr/ спросил, там ли место такому проекту.

Мне ответили:
>Иди нахуй отсюда.
>gd к твоим услугам на эту тему.

Тут гонят в /pr/ раздел, из того раздела гонят обратно сюда...
Аноним 13/09/19 Птн 14:13:01 61026214
>>610258
>А кто такой "распидор"? (Я тут недавно, если что...)
Местный шизоид-дурачок.
Аноним 13/09/19 Птн 14:23:11 61026515
>>610261
Здесь тебе тоже не место.
Пиздуй в /izd. Там же занимаются писательством, вот там и писательствуй.
Аноним 13/09/19 Птн 14:28:59 61026716
>>610265
>/izd
лол, какое отношение кодинг игры на Python имеет к поэтам и графомании?
Аноним 13/09/19 Птн 14:34:17 61027217
Не слушай полуёбков. Ты задался целью запилить небольшую РПГ + подобие движка + гайды. Лор под свою РПГ напишет каждый сам, у тебя цель иная. Ебош.
Аноним 13/09/19 Птн 14:34:21 61027318
15162950609711.jpg 34Кб, 320x240
320x240
>>610219 (OP)
Я некоторое время подумывал о том, что на питоне что-то написать, но в итоге забил хуй. Сука, аж трисёт, когда приходится заниматься "низким" программированием, продираться через эти условности и унылые необходимости. Почитаю тебя немного, так и быть.
Аноним 13/09/19 Птн 14:41:26 61027619
>>610267
А ты не кодингом занимаешься, ты ПИШЕШЬ, вот и пиздуй к писателям и жалуйся им как пейсательство
>оказалось намного дольше и сложнее, чем я думал. Разделять свой код на составляющие этапы, описывать каждую строку кода, по многу раз переписывая текст, чтобы он был удобочитаемым и не содержал граматических ошибок
Аноним 13/09/19 Птн 14:51:08 61027920
>>610273
Лучше на Годот перебраться, это я как тебе, так и ОПу пишу, ибо питоноподобный синтаксис это святое, плюс при релизе не надо каждый раз проект в exe заворачивать
Аноним 13/09/19 Птн 14:56:48 61028221
>>610279
Отвали со своей анально-содомистской сектой. Если я когда и соберусь с силами, то писать буду на чём-то человеческом.
Аноним 13/09/19 Птн 16:54:54 61029022
>>610219 (OP)
Игра на питоне.
Плюсы: игра.
Минусы: на питоне.
/thread.
Аноним 13/09/19 Птн 16:56:56 61029223
>>610219 (OP)
Ебать ты чсв, аж целый тред себе сделал, я так и знал что ты кончиный, но настолько, гавно.
Аноним 13/09/19 Птн 17:15:08 61029424
>>610292
Он насмотрелся на вниманиеблядей и решил стать еще одной.
Аноним 13/09/19 Птн 17:27:09 61029525
>>610294>>610292
Как-будто что-то плохое, доска и так полудохлая из-за серуна распидора.
Аноним 13/09/19 Птн 17:30:39 61029626
>>610295
Если есть один добоёб, нету смысла добовлять еще одного, больше долбоёбов больше говна, ни надо так.
Аноним 13/09/19 Птн 17:33:44 61029727
>>610296
ну ты шизоида распидора то не сравнивай с тредами по теме раздела
Аноним 13/09/19 Птн 17:55:16 61030328
>>610219 (OP)
Оп молодца. Хотя блог твой мне и не нужен.
Сри на распидора, игнорируй токсиков, общайся только с теми, кому интересен PyGame. Если тут вдруг такие есть.
Аноним 13/09/19 Птн 18:08:26 61030529
>>610219 (OP)
Молодец, в блоге обнаружены не подгружающиеся пикчи
Аноним 13/09/19 Птн 22:44:12 61037230
безигорныечмохи.jpg 1091Кб, 2674x2674
2674x2674
>>610295
>доска и так полудохлая из-за серуна
Вот уж эти проекции безигорных чмошек
Аноним 13/09/19 Птн 23:24:26 61038031
>>610372
>моипротыкатели.жпг
Аноним 13/09/19 Птн 23:35:19 61038632
Аноним 14/09/19 Суб 00:55:03 61040233
>>610386
Лично мои друзья, твои протыкатели.
Аноним 14/09/19 Суб 04:17:08 61040734
>>610305
какие пикчи не подгружаются? Проверял с нескольких компов, у меня вроде все грузится
Аноним 14/09/19 Суб 09:02:26 61041835
>>610407
Теперь все подгрузились
Аноним 14/09/19 Суб 10:12:26 61043336
>>610223
>вставлять сткриншоты и code-сниппеты в blogspot-редакторе
А для оффлайн-прочтения это удобно потом будет сохранять? За что не люблю формат подобных блогов, это что там или сохранять по одной странице, что неудобно и дублирует общие между страницами картинки/другие_ресурсы, или сохранять web crawler'ом, но он может захватить лишнего или не захватить нужного. Хорошо когда серию туторов можно скачать одним архивом не оставшись потом с носом когда интернет выключат за неуплату.
Аноним 14/09/19 Суб 10:20:16 61043837
>>610433
Ты безнадёжен, тут ничего не поделать.
Аноним 14/09/19 Суб 10:20:25 61043938
>>610433
Хз как сохранять, там вложенные файлы еще... Плюс я уроки буду периодически обновлять, изменяя немного текст, дополняя, делая более подробными или удобочитаемыми, так что лучше наверное просто в броузере открыть и держать открытой
Аноним # OP 14/09/19 Суб 15:28:51 61049539
2019-09-1415452[...].png 19Кб, 274x239
274x239
Добавил ещё один урок, в котором добавлен вывод текста на экран и работа с таймерами, чтобы текст исчезал через заданое количество времени. Проверяйте.

https://pygame-dev.blogspot.com/2019/09/3_69.html
Аноним # OP 14/09/19 Суб 15:32:33 61049640
>>610495
>>610219 (OP)
Алсо, я заебался писать супер-подробные уроки, это отнимает так много времени, что не дает мне разрабатывать саму игру. Поэтому теперь, вначале уроков будет ссылка на Github-каталог с рабочими скриптами для данного урока, которые можно сразу запустить, посмотреть код с подробными комментами.

Потом будет не супер-подробное описание урока. Но в свободное время, я буду дорабатывать и дополнять текст каждого урока, чтобы они все в конечном счете были максимально детальными и подробными.
Аноним 14/09/19 Суб 16:00:32 61050441
Нормальная тема, пиши дальше. Действительно так подробно не нужно. Давай кусок кода сразу размером функцию/класс/метод и в один абзац объясняй, что в нём происходит. Сам скоро начну делать что-то подобное, правда не по твоему мануалу, а полностью с нуля, но мануал чутка почитываю
Аноним 15/09/19 Вск 00:47:31 61062042
>>610495
> class textObj
Про PEP8 не забывай
Аноним 15/09/19 Вск 00:49:40 61062143
>>610620
P.s.
> for curObj in gameObjectList: ### Для всех объектов проверяем попадение курсора мыши в этот объект
Для вообще всех объектов или может как-то фильтрует их? Ведь объектов в игре сотни/тысячи.
Аноним # OP 15/09/19 Вск 05:02:26 61063444
>>610621
Это для урока, чтобы понятней было(поменьше текста). В следующих уроках я естественно заменю копирование for на прямой доступ через for index in enumerate(..)

>Для вообще всех объектов или может как-то фильтрует их? Ведь объектов в игре сотни/тысячи.
На данный момент там небольшой экран и много объектов не вместишь, поэтому фильтровать особо не нужно.
А в будущих уроках, когда я сделаю большое игровое пространство по которому можно путешествовать, и вмещающее большое количество объектов, конечно сделаю алгоритмы, отсекающие те объекты, которые за пределами экрана
Аноним 15/09/19 Вск 10:52:44 61065745
>>610634
> на прямой доступ через for index in enumerate(..)
Это как?
Аноним # OP 16/09/19 Пнд 07:08:27 61086146
2019-09-1519152[...].gif 160Кб, 218x178
218x178
Аноним 16/09/19 Пнд 07:27:59 61086347
>>610861
Ты продолжаешь называть переменные на питоне кэмелкэйзом
Аноним # OP 16/09/19 Пнд 07:31:16 61086448
>>610863
Ну прости чувак, я привык так называть переменные в C++ и Java так же делаю и в Питоне.

Понятно же все, в любом случае
Аноним # OP 16/09/19 Пнд 07:37:09 61086549
2019-09-1311301[...].png 13Кб, 437x400
437x400
>>610219 (OP)
>>610861
Алсо, сделал ДИСКОРД-канал для обсуждения, вопросов и замечаний:

дискорд . gg/hqx6Kg9

Пишите, постараюсь на все ответить и поправить, что нужно
Аноним 16/09/19 Пнд 07:56:35 61086650
>>610861
Отлично ОП, продолжай. Единственно прошу своих пиксельных шлюх не постить.
Аноним # OP 16/09/19 Пнд 08:16:55 61086851
>>610866
>пиксельных шлюх не постить.
Да это так, пиксель-арт для привлечения внимания, лол.
Аноним 16/09/19 Пнд 08:29:00 61086952
>>610495
Отлично, а фокусированную камеру сможешь добавить?
Аноним 16/09/19 Пнд 08:35:20 61087053
1568612099531.png 7Кб, 200x112
200x112
>>610868
> это так, пиксель-арт
Да, ето тоже пихель-ард.
Аноним # OP 16/09/19 Пнд 08:50:44 61087254
>>610869
>фокусированную камеру
Всмысле фокусированную? Чтобы персонаж ходил по большому пространству и всегда был в центре камеры?
Сейчас такое не нужно и невозможно, потому что сейчас всё игровое пространство - это экран игры, за пределами ничего пока нет.

Но в будущих уроках я сделаю большую карту и камера естественно будет всегда на персонаже.
Аноним # OP 16/09/19 Пнд 08:51:54 61087355
>>610869
я кстати после упомянутого тобой еще одну часть сделал -> >>610861

Сейчас в процессе написания 5-й части
Аноним 16/09/19 Пнд 11:07:19 61089456
>>610872
>Но в будущих уроках я сделаю большую карту и камера естественно будет всегда на персонаже.
Да я это и имел ввиду, чтобы камера всегда фокусировалась на персонаже. Не как в старых аркадах когда камера статичная и показывает сразу весь уровень, а микроскопический персонаж бегает по этому уровню.
И вопрос, как можно масштабировать эту камеру? Например вид сбоку, камера сфокусирована на персонаже, но когда он подходит к боссу камера немного отдаляется и захватывает ещё и босса.
Аноним # OP 16/09/19 Пнд 11:30:18 61089957
>>610894
>И вопрос, как можно масштабировать эту камеру? Например вид сбоку, камера сфокусирована на персонаже, но когда он подходит к боссу камера немного отдаляется и захватывает ещё и босса.
Да легко, просто движение камерой PyGame в зависимости от условий(наличие босса например)

Пока у меня карта размером с это окно, поэтому двигать камеру не имеет смысла, но в следующих уроках я сделаю размер карты намного больше, чем размер окна и при движении камера будет всегда с персонажем в центре. Скорее всего еще сделаю дополнительный режим остановки камеры при нажатии какой-то кнопки например, чтоб можно было просто походить по статичному экрану
Аноним 16/09/19 Пнд 12:41:28 61090558
Аноним 16/09/19 Пнд 13:05:11 61090959
>>610899
Хватит делать это говно, пойди выйди в окно, бездарь.
Аноним 16/09/19 Пнд 13:36:34 61091460
не слушай его, гни свою линию
Аноним 16/09/19 Пнд 13:59:53 61092061
>>610914
Загнул тя раком и трахнул, проверяй, пёс.
Аноним 16/09/19 Пнд 14:18:50 61092462
>>610909
Я уже выстрелил камшотом на твое ебало, успокойся
Аноним # OP 16/09/19 Пнд 16:37:16 61093963
>>610909
ты тот самый "распидор" ?
Аноним 16/09/19 Пнд 16:48:01 61094364
lks.jpg 36Кб, 417x569
417x569
>>610939
Нет, иди нахуй, и своё говно уноси. Хватит срать бесполезной инфой, нихуя не понимаешь лишь копипастишь чужой код.
Иди учись кодить мразь, плюс в придачу рисовать своё а не пиздить и это, чмоха.

>>610924
ХАТЬФУ ТЕБЕ НА ЕБАЛО
Аноним 16/09/19 Пнд 17:01:31 61095165
>>610943
>безыгорный долбоеб не знает что такое синтез идей
чет проорался с твоего рваного поста, так и веет криком о необходимой психологической помощи
Аноним 16/09/19 Пнд 17:25:05 61095866
>>610951
Чмоня я делаю на патрике 200 зелёных в месяц, пока ты дрочишь своё говно в стол. Поверь, у меня и опыта, и понимания в области разработки ИГОРЬ больше в десятки раз чем у тя, утырок.
Поэтому еще разочек, иди дрочи свои скиллы дальше, и не приноси своё говно пока это не будет ориджинал контент, а не чужая копи паста. Адьёс, псина.
Аноним 16/09/19 Пнд 17:30:54 61095967
>>610958
Пруфов, конечно же, не будет.
Аноним 16/09/19 Пнд 17:41:39 61096368
>>610943
Анимешизик, иди обратно под стол, и всратопатреон для дрочеров забери, мы для души игры делаем.
Аноним 16/09/19 Пнд 17:50:04 61096969
>>610958
>пук кря кря пук пук пук
Мм)
Аноним 16/09/19 Пнд 20:05:13 61100170
>>610958
>200 зелёных в месяц
Лол, удивил.
Делаю ~200-350$ в месяц за юзание моей проги, сидя на жопе ровна(офк после полугода создания ПО)
Аноним 16/09/19 Пнд 21:09:18 61101771
>>610943
>>610958
Как насчёт запилить свой собственный мануал? Поделился бы своим опытом
Аноним 17/09/19 Втр 07:45:30 61111472
>>611001
Подробнее, что за прога?
Аноним 17/09/19 Втр 10:28:07 61116873
Аноним 17/09/19 Втр 13:10:58 61121374
>>611114
Обёртка над АПИ пары сервисов.
Аноним 20/09/19 Птн 10:00:12 61188575
Аноним 20/09/19 Птн 13:39:37 61190976
2019-09-2010064[...].png 30Кб, 329x272
329x272
>>611885
>>610219 (OP)
Сделал новую часть:

https://pygame-dev.blogspot.com/2019/09/blog-post_20.html

Сделал код более соответствующим стандарту PEP8. Добавил редактор карты: включаешь режим редактирования кнопкой [e] на клавиатуры, двигаешь объекты, отключаешь этой же кнопкой -> в консоль выводится JSON-строка, которую потом присваиваешь переменной game_objects_json в начале скрипта roguelike.py. в результате при следующем запуске игры, положение объектов сохраняются.
В дальнейшем сделаю возмонжость считывать .json карты, созданные в популярном редакторе карт Tiled.
Плюс еще режим подсветки рамок объектов, выключается/выключается кнопкой [r]

Вопросы, замечания и обсуждение в Дискорд: Дискорд.gg/hqx6Kg9
Аноним 20/09/19 Птн 13:45:00 61191077
На очереди урок с pathfinding.
Аноним 20/09/19 Птн 21:45:34 61200978
>>611909
Просто охренеть. А кто говорил, что питон не для дева?
Аноним 21/09/19 Суб 13:58:26 61210179
>>611909
В какой из частей ты приделал зелёные херни на спрайтах объектов?
Аноним 21/09/19 Суб 21:00:43 61227480
>>612101
Расчет прямоугольника для коллизий(зеленая херня) происходит в скрипте models.py в классе GameObject. Я этот расчет не упоминал в уроках, потому что слишком сложно и много текста пришлось бы писать.
Там вкратце просто находится самый нижний непрозрачный и снизу вверх сканируются пиксели до определенной длинны, получается треугольник для коллизий
Аноним 22/09/19 Вск 04:25:39 61237181
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов