Честно говоря, никак не учитываю. Были попытки сделать один макет и выставлять initial-scale в зависимости от dpi, но из JS-а его никак не получить (по крайней мере мне не удалось). Мучаться с media-queries в css совершенно не хотелось.
1. Ок, но ИМХО — очень странная задумка :)
2. Можете попробовать сделать для них плавные но быстрые, в районе 50-200 ms, эффекты через transition.
3. Ну да, я бы добавил к каждой области где может/должен быть корабль иконку корабля (но так, чтобы она читалась фоном, а не что он там сейчас реально есть).
Add: на opengameart.org рылись? Там бывает можно натолкнуться на достойные материалы.
Я таковых не знаю, может быть openstreetmaps. Держал игрушку в вк на карте с 50к активных игроков и 25к запросов в день вполне хватало: за лимит либо не выходил, либо просто не обрубали. Попробуйте запросить цены, может они не кусаются (или увеличивают лимит по запросу). Фейлы случались только пару раз — когда Яндекс очень крупно и пачками менял адреса (а для архитектуры игры это было очень важно). Тогда делал просто: ограничение в 25к на один API-ключ, который выдается на домен или IP. Получаем 10 ключей на 10 доменов, пишем примитивнейший скриптик, который перекидывает запросы с себя на геокодер и всё.
Это ограничение на запросы именно к сервису геокодирования. Т.е. это запрос с целью узнать координаты по адресу либо наоборот. Вся остальная карта работает без ограничений.
На практике есть нюансы. Лично у меня была проблема с html5 игрой (phonegap): графика лежала отдельными файлами и её было очень много (порядка 200-300), все картинки грузились не по-очереди, а сразу. В итоге была проблема: часть в упор не грузилась, а приложение падало с нехваткой памяти. Глубоко проблему объяснить не могу, но решилось просто: картинки стали грузить по очереди.