1. Введение в StrangeIoC

Создание компьютерных игр — интересный и очень увлекательный процесс. Порой создавать игры так же интересно, как и играть в них. Сотни компаний, тысячи независимых разработчиков и небольших студий ежедневно, не покладая рук, трудятся над очередным игровым шедевром. Конечно, каждая игра по-своему уникальна и не повторима. Удивительные миры, незабываемые персонажи, каждый со своим характером и крутые сюжетные линии.

В своей основе, компьютерная игра — это программный продукт. И, не смотря на всю свою уникальность, с точки зрения разработчиков, игры — очень похожи между собой и имеют много общего. Повторяются жанры, логика работы компонентов, используются одни и те же сторонние библиотеки и т. д. Современные игры часто имеют встроенные механизмы анализа действий игроков. На основании данных этого анализа команда разработчиков может решить изменить, заменить, добавить или вовсе удалить какой-либо функционал или компонент геймплея. Не стоит забывать, так же, что порой игры создаются достаточно долго, на протяжении нескольких лет. За это время в команду могут прийти новые программисты и уйти старые. Процесс передачи знаний в данных условиях является критическим. Новые программисты должны как можно быстрее вникнуть в процесс создания и перенять имеющиеся знания.

Исходя из вышеизложенного, можно заключить, что компьютерная игра, как программный продукт должна отвечать следующим требованиям:

  • Иметь гибкую модульную архитектуру;
  • Модули должны быть легко заменяемы;
  • Обладать понятной внутренней терминологией;
  • Иметь возможность тестирования отдельных частей как независимых блоков;

Strange в значительное степени облегчает процесс построения игр с архитектурой отвечающей этим и другим требованиям.

В следующем разделе поговорим подробнее о том, что же такое Strange.