Первый игровой джем (game jam), в котором я серьезно поучавствовал. Главный приз был 1 биткоин (что на тот момент было ни много ни мало $5,000).
План
-
не заходить за стены
-
показывать цифру когда несколько объектов на одной клетке (только один тип может группироваться)
-
шкала жизней, враги отнимают жизни, когда стоят на соседней клетке
-
большой уровень - движение камеры https://stackoverflow.com/questions/14354171/add-scrolling-to-a-platformer-in-pygame
-
монстры задаются на уровне
-
попробовать PyTMX для больших карт. большие карты для продвинутых противников
-
мышь - прицел (https://www.iconfinder.com/icons/825723/camping_focus_hunter_shoot_shooter_shooting_target_icon)
-
длинная пуля, имеет направление
-
аптечки
-
главный герой вращается при повороте мыши
-
ограниченное число патронов, статус в интерфейсе
-
патроны
-
деньги
-
локация в баре
-
система диалогов
-
система частиц
-
убрать двери
-
монстры останавливаются и перестают преследовать (баг или фича?)
-
при game over начинать игру заново
-
пуля убивает всех на одной линии - исправить
-
пуля убивает с одного удара - исправить (или добавить больше монстров)
-
добавить еще пару видов монстров
-
покер ? просто убить всех, когда дадут пушку
-
при смене уровня все объекты снова создаются, а монстры не удаляются и становятся неуязвимыми
-
скрины с завязкой истории и легенда с управлением
-
за пиво снимаются деньги
-
при достижении желаемой суммы показываются позитивный game over
О платформе repl.it
Замечательная платформа!
Но я больше не стану писать игры с графикой на голом питоне или с использованием pygame.
А по поводу платформы я заметил несколько вещей, может кому пригодится (или это будет исправлено в будущем - я честно надеялся, что мой баг репорт добавит мне очков в жюри).
- Стоп часто не работает, а как запустить код? Комбинация Ctrl+Enter запускает код.
- Еще попробовать Ctrl+C в консоли
- Стоп не работает и Ctrl+Enter не перезапускают код. Перезагрузка вкладки не помогает. Помогает форк проекта
- (исправлено через пару дней джема) Нет возможности выключить перезапуск приложения после каждого нового введенного символа.
- Нельзя открыть в новом окне - в новом окне только консольный вывод
- Если посчастливится таки загрузить игру, то игра будет отображена в окне у которого есть две конпки закрыть и свернуть. нажатие на них приводит к печальным последствиям. Советую запускать в полноэкранном режиме
- Не удаляются отступы после сохранения
- Нельзя удалить файл, который в данный момент открыт (возможно остается копия файла при перемещении, если он открыт)
- pdb не работает. можно использовать pdb_clone
- а вы знали об авто форматировании? я бы его при сохранении применял
Ссылки на будущее
В процессе блуждания по интернету находятся вещи, не относящиеся к текущей проблематике, но интересные сами по себе, что их хочется аккуратно отложить "на потом":
- http://www.playfuljs.com/a-first-person-engine-in-265-lines/
- https://github.com/Mekire/pygame-raycasting-experiment
- http://etodd.io/2014/05/16/the-poor-mans-dialogue-tree/
- http://www.pygame.org/project-LibRPG-1293-.html
- https://github.com/Eronarn/libRPG
- https://www.pygame.org/project/3957/6108
- https://github.com/MattR0se/Dungeon-Crusader