Ну чтобы не быть кликбейтером, сразу скажу, что на самом деле 20 лет делались похожие проекты. А идея делать аналог уже пришла после выхода этой игры. Так что опередить оригинал я никак бы не мог.
Итак, лет этак 20 назад пришла ко мне идея моделировать расселение разных народов . По мере расселения они образуют государства, смешиваются, и смешанный народ уже говорит, что «никогда мы не будем братьями» своим предкам. Постепенно государства растут, объединяются, завоёвывают соседей и т.д.
Первая версия была чисто ручная и делалась в знаменитой программе Paint. Алгоритм был прост. На незаселённые территории я разбрызгивал пульверизаторам того же цвета, что и ранее заселённое. А где уже заселено, постепенно закрашивал в слошной цвет. Если в государстве было «Национальное меньшинство», то оно постепенно меняло цвет ближе к тому цвету, что и большинство.

На картинке изображён 7 этап моделирования. Всего было 17 этапов. Из них 12 были смоделированы с 2001 по 2003 год. Остальные уже много после(2009-2011), когда из ностальгии по старым временам решил таки «доделать». Ну, понятное дело, если «упороться», то всё это можно было сделать за месяц без отрыва от учёбы, так сказать. Если кому интересно, могу выслать все 17 этапов.
Но «упариваться» не хотелось, и быстро(в том же 2003 году) пришла идея создать что-то автоматизированное. Основной алгоритм был довольно примитивен. Берём точку. Если около неё была пустая точка, мы расширялись. Если вражеская –то либо атаковали, либо наоборот, сами убегали. Постепенно выросла монструозная конструкция с параметрами страха, агрессии, и ещё куче других параметров. Естественно программа делалась в Delphi, тогда чего-то иного не было.

Впрочем, все навороты против ожидания не делали итоговую картинку особо интереснее. Да и модель вела себя в итоге совсем по-другому, чем первая ручная. Если одно государство завоёвывает другое, то уничтожает чужое население и насаждает своё. В конечном итоге кто-то один всех забивает и дальше смотреть не на что.
Были сделано много форков это модели. Например, надо, чтобы картинка бесконечно менялось, и постоянно и наций, и государств было бы много. Или чтобы государства быстрее все остальные побеждали. Или наоборот распадались на части. В общем игрался с этой моделью достаточно долго.
На основе одного из форков данной модели я сделал даже программу для одного марксистского форума. Там красиво показывалось как рабовладельческий строй победно распространяется и вытесняет первобытнообщинный, потом феодальный вытесняет рабовладельческий и т.д.
Наконец подходим к современности, когда я увидел игру territorial.io. Стоп, подумал, я, да у меня же что-то такое было. Не применить ли свой старый проверенный быдлокод, чтобы и самому подобное же сваять? И желательно чтобы надо было поменьше перерабатывать. Первым делом я обрезал все «страхи», «агрессии» и прочие параметры и ввёл «армию» из оригинала. Потом ввёл примитивное подобие интерфейса оригинала и оптимизацию под современные многопроцессорные системы.
Заодно открыл для себя много нового – как создать 500 критических секций. Что при инициализации Bitmap надо задавать формат пикселей, иначе будет работать до 100 раз медленнее. А также, что в многопотоке надо блокировать Canvas.

В итоге действительно получилось похоже. Хотя оригинальный алгоритм, как я могу судить работает несколько по другому. У них есть твёрдое смещение границы вместо как у меня случайное смещение по отдельным точкам. Также у них видимо за один ход смещение на несколько пикселей просчитывается, тогда как у меня на один пиксель. В итоге у них граница остаётся довольно ровной в то время как у меня несколько выпуклой. Также у них видимо несколько другая дискретность смещения границ. Но в целом результат получился примерно похожим. И заняло примерно 800 строк кода.
В общем есть чем гордится. Кто-то написал бы подобный аналог за 2 дня. Кто-то за неделю. Кто-то за месяц. Но чтобы 20 лет такое писать, я думаю это рекорд рекордов :-)