- Увлечь ребенка программированием, внятнуть в процесс создания компьютерной игры
- Поэкспериментировать с асинхронным JS -
Promise
,async
,await
и пр.
- Держимся так близко к стандарту WebGL, насколько это возможно
- Не используем фреймворки и высокоуровневые надстройки, чтобы не утонуть в дебрях и начать с базовых вещей
Для работы с WebGL используется обертка Three.js https://github.com/mrdoob/three.js#readme
Игра будет трехмерной, в отличии от оригинала. Это позволит избежать трудоемкой работы со спрайтами, использовать красивые современные эффекты, импровизировать, подключать сторонние библиотеки.
- Отдать ребенку создание звуков и их подгрузку в игру
- Нарисовать клетки с 2D водой
- Нарисовать клетки с 2D бетонными стенами Инструкция по работе с текстурами https://codepen.io/rachsmith/post/beginning-with-3d-webgl-pt-3-materials
- Карту уровня закодировать в массиве строк, отдать проектирование уровней ребенку. Он может придумать свои уровни, либо перености их из оригинальной игры
- Использовать anchor для подгрузки разных карт, сделать стартовый экран с выбором уровней
- Научить танк врезаться в препятствия и другие танки - загуглить collision detection
- Разместить на игровом поле деревянные ящики
- Нарисовать клетки с 2D льдом
- Нарисовать клетки с 2D кирпичными стенами Инструкция по работе с текстурами https://codepen.io/rachsmith/post/beginning-with-3d-webgl-pt-3-materials
- Нарисовать клетки с 2D лесом Инструкция по работе с текстурами https://codepen.io/rachsmith/post/beginning-with-3d-webgl-pt-3-materials
- Нарисовать клетку с 2D орлом Инструкция по работе с текстурами https://codepen.io/rachsmith/post/beginning-with-3d-webgl-pt-3-materials
- Заменить 2D игровые объекты элементами, взятыми с просторов Интернета: лес, вода, стены.
- Использовать Vue.js для рендеринга панели status bar: очки, жизни, отладочная информация. Шаблон проекта взять с вНедвижки
- collision detection для танков на базе алгоритма bounding boxes, найти готовую JS реализацию
- игровая сетка, по которой перемещаются танки
- прикрутить плавную анимацию между игровыми фреймами https://greensock.com/tweenlite , пример использования с 3D https://codepen.io/rachsmith/post/beginning-with-3d-webgl-pt-4-animation
- воспроизвести алгоритм танков описанный в статье на habrahabr
- Спрайт старых танчиков
- Карты и звук старых танчиков
- Тайлы и логика старых танчиков
- Interactive 3D Graphics. Udacity Free Course
- Collection of tutorials by CJ Gammon
- Aerotwist tutorials by Paul Lewis
- Professor Stemkoskis Examples
- Official three.js Examples
- Разработка браузерной онлайн игры без фреймворков и движков
- Learning WebGL. Lessons