Как и с чего мне начать?
Полагаю, у вас уже есть видение того, как должна выглядеть игра. Проведите мысленные эксперименты и посмотрите, куда ведет ваше зрение. Будьте позитивны и не позволяйте никаким сомнениям проникнуть в ваш разум. Попробуйте некоторые прототипы, оцените их и скорректируйте свои планы соответственно.
Если у вас нет опыта в технологиях, которые вы собираетесь использовать, почти наверняка вы столкнетесь с некоторыми препятствиями, когда эти технологии не позволяют вам достичь именно того, чего вы хотите. С кем не бывает. Учитесь на этом опыте и двигайтесь дальше.
Каким должен быть мой внешний интерфейс программирования и рабочий процесс?
HTML5 решение будет наиболее доступным, но, пожалуй, наиболее трудным для реализации. Вы должны очень хорошо знать Javascript.
Flash решение может иметь действительно классные графические эффекты без особых усилий, но некоторые люди обеспокоены потреблением ресурсов Flash.
Silverlight - это Flash для разработчиков Microsoft. Это наименее доступно для пользователей.
Какими должны быть мои варианты внутреннего программирования и рабочий процесс?
Некоторые популярные веб-фреймворки: Ruby on Rails (Ruby), Zend Framework (PHP), ASP.NET MVC (.NET), Джанго (Python)
Я бы посоветовал вам всегда реализовывать функции в нисходящем порядке: начните с пользовательского интерфейса (то, что пользователь хочет видеть / сможет достичь) до «бизнес-логики» вплоть до БД.
С появлением баз данных NOSQL они могут подходить лучше, чем традиционные реляционные базы данных. При выборе БД оцените соотношение чтения / записи вашего приложения. Обычные рецепты предназначены для приложений, в которых чтение происходит чаще, чем запись. Я подозреваю, что это не относится к играм, поэтому будьте осторожны, следуя им.
Нужен ли игровой движок для браузерной игры?
Полагаю, вы говорите о полномасштабной среде разработки игр, где вам остается только заполнить заполнители? Я бы не выбрал такую вещь, и даже не знал бы о выборе. Это слишком ограничит мои возможности. Тем не менее, я бы определенно использовал некоторые библиотеки, такие как 3D Graphics Engine, чтобы избавиться от несущественных функций и сосредоточиться на том, что делает мою игру уникальной.
Но есть еще одна вещь, которую вы можете назвать игровым движком - это основная логика вашей игры. Я бы посоветовал вам обратить внимание и явно смоделировать это основное поведение (скорее всего, в стиле ООП). Соберите все в одном месте (а не разбросайте по всей базе кода). Игры, как правило, имеют довольно сложную логику по сравнению с обычными приложениями, и если вы не смоделируете ее должным образом, вам может быть трудно понять ее позже.