Отдохнем немного от больших игр и попробуем реализовать примитивизм:
Доделываю тетрис:
Залипаю в змейку ))
Ну что народ, что скажете, как вам текущая версия канала?
Как вам исходники?
Robotex
void Renderer::keyPressEvent(QKeyEvent *event)
> https://bitbucket.org/nshatokhin/brickgameengine/src/master/engine/commands/
10 header`ов "commandexit.cpp" из 10
Результат стрима по разработке змейки (Snake) в стиле Brick Game на C++. Оно работает!
Всем привет, народ. Это результат того, что мы накодили на стриме. Оно даже вполне играбельное оказалось :)
А ну-ка, кто какие баги видит? )
Репозиторий с исходниками: https://bitbucket.org/nshatokhin/brickgameengine/
Adler
> садись 2
Что не так? Что название у класса дурацкое? Ну, могу переименовать в какой-нибудь Shell.
Robotex
> Что название у класса дурацкое?
какбы придумывать не дурацкие названия - это самая сложная дисциплина в проектировании\управлении\программировании, не?
> Ну, могу переименовать в какой-нибудь Shell.
первая бука лишняя, так точнее будет :)
> кто какие баги видит? )
похоже дизайн - уг, а следствие:
> GameBase * m_currentGame;
> m_currentGame = new GameSnake(m_baseCommandMapping, m_observer);
баг\утечка памяти
> class GameBase
тут всё плохо
upd:
а вообще если смотреть на эти исходники как на какой-то скрипт, то всё ок, т.к это же не ядро для системы, а клей который приклеивает один костыль(qt) к другим(gapi\keyboard).
Ставлю рекорд на самую длинную змейку в тетрисе!
Всем привет, народ. Пытаюсь поставить рекорд на самую длинную змейку. На это у меня есть три попытки. Погнали!
Вообще, тестирование собственноручно сделанных игр это самая приятная часть геймдева :) Сам накодил - сам и играй!
Adler
> баг\утечка памяти
так утечка в предыдущих двух строчках. Да и то там такая утечка - все равно этот код выполняется всего 1 раз и куча очищается после завершения приложения. Но вообще да, недоглядел
лично для меня самое сложное - это как все связать, выстроить архитектуру, особенно когда какие-то моменты реализации не ясны или область кодинга новая. Как выстроить взаимодействие, как декомпозировать все.
MAMOHT-92
> лично для меня самое сложное - это как все связать, выстроить архитектуру
Сейчас читаю http://gameprogrammingpatterns.com/ и как будто сознание проясняется :) Годная книга, планирую цикл роликов по ней сделать )
Но в то же время, чем больше ее читаешь, тем больше понимаешь, что нужно знать больше. И тогда в ход уже идет Gang of Four Design Patterns.
Всем привет, народ. Я наконец-то понял, как работает ray casting и теперь мне открыта невообразимая мощь творить игры в стиле Wolf 3D :)
Наклепать карт, добавить стрельбу и монстров, добавить телепорты между картами и выйдет неплохая игра :)
Если ролик соберет много лайков, то расскажу про алгоритм детально.
Исходники: https://bitbucket.org/nshatokhin/simpleraycasting/
Геймплей игры UFO Attack. Та самая игра, что делал на самом первом стриме, но переписанная с нуля :)
Всем привет, народ. Как настроение? :) Я наконец-то доделал свою игру и готов показать ее миру. Вы готовы ее увидеть? Тогда пристегните ремни, ибо это UFO Attack!
UFO Attack. Обзор игры и подробный разбор ее архитектуры
Всем привет, народ. Как настроение? В этом видео я покажу как устроена эта игра и сделаю подробный разбор ее архитектуры. Вы увидите весь ее богатый внутренний мир без прикрас. Паттерны, архитектурные решения, хаки - сейчас я выложу на стол абсолютно все.
Так что пристегните ремни, ибо это UFO Attack!
Репозиторий с иходниками: https://bitbucket.org/nshatokhin/crimsonfork/
Инсталлятор игры (beta версия): https://drive.google.com/file/d/1H7y105HxIvKRtoAxNRUoVYAIPzrKFQYj… w?usp=sharing
Жду ваших комментариев по поводу кода и архитектуры, а также багрепорты.
не буду предлагать обсуждать дизайн grid`а и искать причину по которой пришлось делать такой метод как GridPartition::removeObjectFromCell, т.к похоже что автор(вместо того чтобы сделать сначала красивую удобную(которая кладёт неприподъёмный болт на производительность) архитектуру, а потом будучи ведомым профайлером оптимизировать «самые критичные места» которые мешают жить проекту\процессу_разработки, а не только как бы конечному\промежуточному продукту от процесса - игре\коду_игры) начал почти сразу бездумно всовывать случённые костыли grid`ы в проект с какой-то сомнительной\неявной целью :)