Здравствуйте!
Помогите, пожалуйста, определить "компромиссную" архитектуру решения (технологии, инструменты, инфраструктура) на базе Unity3D, с учетом ограничений. Оптимален ли выбор Unity3D в данной задаче? Если да, то как лучше выстроить архитектуру?
Общая задача: В рамках соц. инициативы хотим сделать олимпиаду по программированию для школьников, в игровой форме, что бы мероприятие было более интересным для участников и сторонних наблюдателей.
Ограничения:
Нас вдохвонили ресурсы такие как www.codingame.com и
2012.russianaicup.ru. Школьники наши не владеют английским на достаточном уровне и хочется сделать приложение более зрелищным, на Unity 3D, когда начальные задания возможны в однопользовательском режиме, а в финале, можно будет запустить многопользовательскую игру, что бы код (алгоритм) участников участвовал в игре - сражении. Мероприятие проходит оффлайн, при встрече участников. Мы не гос. организация, а группа энтузиастов, и хочется "сэкономить" на разработке и увеличить тем самым призовой фонд, при возможности. Под экономией имею ввиду в том числе оптимальную архитектуру решения, где не будет тяжелых (дорогая инфраструктура) серверных (облачные) решения, а к примеру, один из компьютеров использовать в качестве сервера для финальных, многопользовательских сражений в игре, и на начальных однопользовательских этапах, компьютер (ноутбук) каждого участника выполнял бы функцию сервера.
Сложность задачи в том, что бы Unity приложение могло принимать и обрабатывать код написанный участником. Встраивать такой механизм в само Unity приложение, вероятно сложно и дорого, но возможно есть оптимальные альтернативы?
Программная часть, как вариант
Игра выполнена в Unity 3D и выступает в качестве сервера обменивающегося через API с клиентами информацией через стандартные сетевые интерфейсы (HTTP, TCP/IP и пр). Клиентами являются любые программы которые могут посылать команды на интерфейс (API) игры/сервера.
Предварительное ТЗ по ссылке:
https://docs.google.com/document/d/17iapBTbAy55ax5...
Заранее благодарю!