Создать игру без знаний в IT практически невозможно, но мы нашли решение и разработали платформу, на которой пользователи могут сделать свои аналоги популярной игры Wordle. Как проходила работа над проектом, почему пришлось заново переписать почти весь код и что получилось в итоге, рассказываем в статье.
*Статью написали студенты ФИИТ — направления матмеха УрФУ, обучение на котором курирует Контур.

Что такое Wordle?
Это игра от газеты The New York Times, в которой с помощью подсказок нужно угадать слово из пяти букв. С течением времени у неё появился широкий фандом. Фанаты стали создавать подобные игры, загадывать в которых можно не просто слова, а книги, фильмы, игры, персонажей из игр и многое другое.


MVP: как родилась идея и прокрустово ложе выбранного стека
Однажды мы придумали разработать платформу для создания и агрегации игр, подобных Wordle, с которой сможет справиться даже человек без знаний в IT. Между собой мы такие игры называли «dle’ами» и dle-подобными играми. Так родилась идея названия: кем бы вы не были, вы всегда сможете создать свою dle-игру на нашей платформе, вашу собственную (your) — поэтому и YOURdle.
Идею мы обсуждали в начале четвёртого семестра обучения на ФИИТ, захотели убить двух зайцев: закрыть курс проектного практикума и экзаменационную работу курса по основам веб-разработки. Это накладывало определённые ограничения на выбор стека, ведь одним из требований экзаменационной работы было использование чистого стека HTML+CSS+JS без фреймворков и плагинов. Поэтому на нём мы и остановились несмотря на то, что реальные проекты обычно пишутся на каком-либо из фреймворков.
Для бэкенда выбрали C#, так как каждый из нас умел программировать на нём, с ASP.Net Core и EFCore — стандартами индустрии в платформе dotnet для работы с веб-серверами и базами данных. Такой выбор не только позволил бы впоследствии перенести опыт работы с ними в рабочую практику, но и наоборот.
В качестве БД мы решили остановиться на PostgreSQL: никто из нас на тот момент ещё не работал ни с одной СУБД, кроме SQLite в предыдущем проекте, так что выбор был не слишком информированным — не было исчерпывающего опыта работы с SQL- и NoSQL-базами данных, не было чёткого понимания, как будет развиваться проект, и поэтому обосновать строго какую-либо из парадигм было сложно. В рамках конкретной же парадигмы выбор размывался ещё сильнее. PostgreSQL распространён в индустрии, поэтому изобилие гайдов и полнота документации, а также готовая поддержка в EF Core сделали этот выбор относительно простым.
К сожалению (или к счастью
