Сахалинская колония 5. Сахалин — каторжная колония России. Краткая информация о ходе разработки

Экспозиция знакомит с историей Сахалина в 1869–1906 годы. Царским указом 1869 года остров Сахалин был объявлен местом каторги и ссылки, превращен в один из самых мрачных уголков России.

На плазменной панели отмечены два пути, которыми каторжане по этапу попадали на Сахалин: сухопутный путь через Сибирь и морской путь из Одессы через Суэцкий канал, Индийский океан.
В экспозиции есть модель парохода «Нижний Новгород», фотографии каторжан на его борту.
Колонизация острова продолжалась около сорока лет. Тюремная администрация имела безграничную власть, как над ссыльными, так и над немногочисленными свободными сахалинцами.


Подлинные предметы: ручные и ножные кандалы, замок и ключ от карцера одной из крупных тюрем острова - Александровской - являются символами той эпохи. Шахтерские сани для вывоза угля и кайло дают представление о труде сахалинских каторжан на угольных копях.
Выставлена также рубашечка для новорожденного из грубого холста. Это была первая в жизни одежда детей арестантов, которая выдавалась в тюремной больнице.



Тем не менее, именно в этот временной период были заложены основы современной экономики области. Каторга стала важным этапом в становлении базовых отраслей промышленности Сахалина: угольной, нефтяной, рыбной, лесной и сельского хозяйства. В экспозиции представлены материалы по исследованию природных богатств, организации первых производственных предприятий, комплекс предметов быта конца XIX века.
Хозяйственно-бытовой комплекс предметов населения острова на рубеже двух веков знакомит с орудиями труда, домашней утварью, убранством дома.


Сахалин, являясь крупнейшей в России уголовной каторгой, был также и каторгой политической. На острове отбывали наказание члены наиболее значительных российских политических партий и организаций («Пролетариат», «Народная воля»): Б. О. Пилсудский, Л. Я. Штернберг, Л. А. Волкенштейн, И. П. Ювачев, Б. П. Еллинский и другие активисты. Работая в школах, библиотеках, больницах, мастерских, канцелярии островной администрации, они оказывали практическую помощь в облегчении участи каторжан и их семей, внесли большой вклад в духовную и культурную жизнь общества.

В 1890 году Сахалин посетил известный русский писатель А. П. Чехов. Результатом путешествия, трехмесячного пребывания на острове и изучения сахалинской действительности стали книги «Из Сибири» и «Остров Сахалин», которые буквально потрясли всю читающую Россию.
После громкого общественного резонанса правительство было вынуждено реформировать законодательство о содержании каторжан и ссыльных. 10 апреля 1906 года вышел Закон об упразднении сахалинской каторги. В 1908 году остров был объявлен свободным для вольного заселения.

Центральная улица в посту Дуэ

Natural History of Sakhalin

Ammonite. This fossilized shell is about 70 mln. years old.

Desmostylus hesperus.

Fossilized skeleton (copy) of an extinct mammal inhabiting Northern Pacific shores in the mid Miocene (12–15,8 mln. years ago). The animal was described for the first time by O. Ch. Marsh — famous discoverer of dinosaurs — who was able to describe it having only one tooth at his disposal. Teeth in Desmostylus hesperus resemble a bunch of columns. The animal’s name is based on its teeth structure. Desmos means bunch or stack, and stylus means pillar or column in Greek.
Desmostylus hesperus skeleton, the copy of which is displayed in the museum, was found by chance. In July of 1933 Nagao Takumi, Hokkaido University professor, was visited by a man who was engaged in shipping timber from Sakhalin island. He brought in a strange looking fossil — a skull of an unknown animal — which had been found by chance to the north-west of contemporary town of Smirnykh. Professor Nagao identified the skull as belonging to the Desmostylus species based on the teeth shape. Without delay he got together a group of scientists and left for Sakhalin. Unfortunately, that year the bones from the fore part of the body only were collected, but in 1934, in the second expedition, the remaining bones were found. The fossilized bones were shipped to Japan and processed in the University of Hokkaido. It was for the first time in the world that the whole skeleton of the animal was found. Paleontological community as a whole was taken by big surprise. It became clear that Desmostylus hesperus had well developed fore and hind limbs and also hands and feet well suited for rowing. (before then the Desmostylus hesperus were thought to have flippers). The animals apparently used long shovel-like tusks for ploughing bottom sediments in search of benthic organisms, such as: shell-bearing mollusks, crabs and echinoderms.
Desmostylus hesperus reached 3 m in length and were as heavy as 1200 kg. The animals led coastal life and were good swimmers and divers, taking rest on coastal cliffs. During their reproductory period they stayed on the coast, however moving on land in a rather clumsy way.
Warm shallow water areas of the Sea of Japan and those of the Western Sakhalin islands with their shallow water shelf and numerous inland and coastal water bodies of the other parts of the Paleo-Sakhalin were favorable habitat for Desmostylus hesperus in the Neogene Period.
Reconstruction of the skeleton was performed by the professor Nagao Takumi together with taxidermist Sinoda Syudziro. It was the first reconstruction of the Desmostylus skeleton ever. Based on the teeth size, Nagao described the animal above-mentioned as a new species — Desmostylus mirabilis. Today it is accepted that the attribution to a different species was caused only by the individual features and now the skeleton in question is attributed to the Desmostylus hesperus species.
During the World War II in the Pacific the skeleton was taken to pieces and buried in the ground to be preserved. The skeleton was reassembled after the war by the professor Kamei Setsuo.
The copy of the Desmostylus hesperus skeleton was presented to the Sakhalin Regional Museum as a gift by the Association for Bilateral Relationships of Museums of the Northern Regions and Hokkaido on July 26, 2006.


Рудничная морская пристань общества «Сахалин»

Дуйская однопрестольная церковь в честь святителя Николая Чудотворца. Открыта в 1856 году

Угольные склады на рудниках общества «Сахалин»

Добыча угля на шахте общества «Сахалин»

Жонкиерский маяк. Построен в 1886 году

Сонька — Золотая Ручка

Прикованные к тачкам во дворе Воеводской тюрьмы

Пароход «Атлас», потерпевший крушение в мае 1890 года

Улица Николаевская в посту Александровском

Дом военного губернатора острова Сахалин

Здание почтово-телеграфного ведомства в посту Александровском

Александровское окружное полицейское управление и канцелярия Александровской тюрьмы

Пешеходный мост на реке Дуйка в посту Александровском

Центральная часть села Рыковского

Церковь Казанской Божьей Матери в селе Рыковском. Открыта в 1888 году

Корсаковская тюрьма

Улица в посту Корсаковском

Пост Корсаковский

Корсаковское окружное полицейское управление

Поселение Третья Падь

Селенье Малое Такое

Селение Березняки

Селение Владимировка

Селение Листвиничное

Сахалинская колония - экономическая стратегия, цель которой, выжить. Игроку дается типовое, либо случайно сгенерированое игровое поле, поделенное на ячейки.

Каждая ячейка представляет собой определенный ресурс, либо чистое поле. В начале игры игроку дается здание администрации и 2 участка земли, на которых он может строить ресурсодобывающие строения. Все строения со временем разрушаются и требуют ремонта - за деньги вырученные от продажи ресурсов. Здание администрации является основным - невозможность его ремонта приводит к окончанию игры.
Выйти в плюс по доходам непросто, и редкий, но дорогой ремонт администрации часто ломает красиво выстроенные планы.





Когда-то давно, мне очень нравилась экономическая стратегия «Сахалинская колония» Григория Жмулевского. Сейчас именно с нее я решил написать свою первую доведенную до конца игру, и заодно изучить различные аспекты C#. Получив от автора лаконичное «Конечно» на вопрос о копировании его игры, я приступил к работе.
Исходники на C доступны на сайте автора, и я обращался к ним для копирования данных объектов - стоимость, сколько объект живет, в каких ситуациях разрушается сильнее или слабее и т.п. В остальном я старался полагаться только на себя.
Вместе с хромом размер оригинала - 640Х480. Я выбрал те же размеры приложения, но без хрома. За счет этого, а так же более оптимального использования пространства удалось увеличить размер ячейки карты на 2 пикселя. Немного, но тоже хорошо.
Внутренняя логика игры сохранена почти полностью. Добавлена краткая справка.

Краткая информация о ходе разработки.

Общее
Делать игру было решено на XNA в частности потому что для него у меня уже были наработки по gui.
Для реализации была выбрана довольно простая архитектура:
Игровые классы без использования специфических XNA классов, для простоты возможного порта на другой движок в будущем:

  • Класс игры со ссылкой на карту
  • Класс карты со ссылкой на массив ячеек
  • Ячейка со своими данными и ссылкой на строение
  • Строение со своими данными и индексом ячейки
  • Статичный класс содержащий все неизменные данные, в т.ч. перечисления.

Xna класс Game:
  • В update() - открытие / закрытие диалоговых форм, вызов update контролов.
  • В draw() - отрисовка игровых элементов, вызов draw контролов.

Класс event_handlers:
  • Класс-прослойка между Game и игровыми классами. Вызов игровых методов осуществляется только через него. Опять же для простоты возможного порта на другой движок. В нем же - работа с потоками.

Класс xml:
  • Работа по сохранению, чтению данных.


Сериализация
Сериализация в теории могла помочь отказаться от громоздкого класса сохранения / чтения данных с использованием XmlDocument.
Однако на практике при внедрении функционала сериализации я столкнулся с рядом задач без которых она не могла работать.
В частности пришлось большую часть статичных классов сделать публичными. В итоге получился статичный класс верхнего уровня, содержащий ссылку на публичный класс игры. Данный подход позволил с одной стороны сохранить простоту обращения к необходимым данным, с другой - использовать сериализацию. Во время программирования и промежуточных тестов я столкнулся со странным поведением программы при открытии и сохранении данных - на комьютере разработки все работало, но на другом игра все время вылетала на сериализации. Добавив в игру конструкции try catch удалось получить и вывести информацию о ошибках в файл. Выяснилось что сериализатор (только!) на клиентском компьютере не мог разобрать некие статичные классы. Выяснилось что проблема в полях - перечислениях, которые объявлены во вспомогательном статичном классе. После долгих поисков мне посоветовали исключить их из сериализации атрибутом . Тем не менее эти поля необходимы в логике, поэтому было принято решение дублировать их в строковые поля, и после чтения xml сразу парсить строковое представление в соответствующее перечисление. Это сработало.

Контент
Поначалу я планировал заполнить игру изображениями с пометкой free из интернета, т.к. сам никогда рисовать не умел, однако поиски подходящих картинок
оказались на удивление сложными. В итоге попробовав нарисовать иконки самостоятельно я увидел что получается нормально (на мой взгляд), и по времени быстрее чем искать их в интернете. На данный момент в игре лишь три картинки из интернета - деньги, еда, золото. Остальные нарисованы в пайнте. Постобработки в более серьезном редакторе довольно мало. Все иконки земли и строений по факту вдвое больше чем отображаются в игре - так их было проще рисовать. К тому же иконки такого размера проще будет использовать в дальнейшем. Уменьшать проще чем увеличивать.



Текстурные карты
Изначально весь графический контент был разбит - каждой кнопке один файл. Причем встроенный механизм контента XNA не использовался - все текстуры загружались в игру стандартным для C# способом и затем конвертировались в Texture2d через Stream. Хранились текстуры в именованном массиве. Большое количество файлов и сложности с публикацией заставили задуматься о текстурных картах. Собрав (почти) все
текстуры в карты удалось уменьшить потребление памяти приложением почти на 10 мегабайт (Значение колонки «выделенная память» в диспетчере уменьшалось с 69 до 60 мб). Именованный массив так же был заменен на n отдельных переменных.

Интерфейс
К сожалению в XNA нет своего графического интерфейса. Подключение win form или wpf накладывает свои ограничения. Т.к. одна из целей проекта - обучение программированию в C# в целом и конкретно в игровой среде, было принято решение вспомнить относительно старый велосипед - гуи под XNA.
Изначально этот гуи задумывался как очень мощный механизм - конструктор интерфейсов. Его мощь обратилась огромными блоками кода с трудно находимыми ошибками и медленной работой. Пришлось обрезать очень много кода, упростить работу, сократить количество вызовов вспомогательных функций в update.
Так же был написан контрол edit - принимающий только цифры, десятичную точку, знаки плюс и минус (исключая плюс и минус на дополнительной клавиатуре - не нашел их в списке клавиш XNA). Средствами гуи при необходимости происходит создание дополнительных текстур - нажатия, наведения, недоступного состояния. Получился небольшой, но вполне рабочий gui.




Потоки
Приложение использует окна, в т.ч. модальные. Окна-вопросы, сообщения, а так же форма торговли, должны пересылать в программу некую информацию, которая будет обрабатываться.
В ходе работы было найдено следующее решение: при активизации окна в отдельном потоке происходит вызов целевого метода, например ремонт строения. Идет расчет стоимости ремонта, в статичный класс вопроса передается флаг активации окна, текст самого вопроса.
Метод ремонта строения (вызванный поток) входит в цикл по флагу - признаку получению ответа пользователя. Параллельно исполнению этого цикла, в методе Update (главный поток) происходит открытие окна - диалога, исполнение gui, по нажатию пользователем клавиши да или нет происходит установка соответствующих флагов в статичном классе вопроса. Дочерний поток выходит из цикла, и продолжает исполнение метода ремонта строения ориентируясь уже на полученный ответ пользователя.
Для того что бы не порождать много параллельных потоков и экранировать другие возможные проблемы, все игровые кнопки блокируются при активации вопроса. Системные кнопки не блокируются, в частности потому что они используют стандартные диалоги windows, которые и так полностью блокируют приложение.

Приложение
Написано под win 7, требует установленных компонентов XNA, фреймворк.net 4.0 - все необходимое скачивается автоматически в процессе установки.

Описание

Первая версия. Экономическая пошаговая стратегия. Ваша колония начинает жить 1 марта 1890 года. Цель игры: дожить до настоящего времени. Игра ведется на поле 18х12 клеток. На каждой клетке можно построить одно строение. Игра завершится проигрышем, если все ваши строения будут уничтожены.

В начале игры вам дается 50 000 денег и 1 склад (самое главное строение в игре). В течение игры вам необходимо зарабатывать деньги, чтобы сохранить склад до настоящего времени, т.к. с каждым новым днем состояние любой постройки ухудшается.

Вы можете создавать 10 видов строений. Строения могут строиться только на купленной земле. В некоторых клетках земли находятся определенные ресурсы (лес, вода, уголь и т.д.). Каждый день строения расходуют ресурсы и приносят прибыль. Некоторые строения могут работать только в определенные времена года.

Советы

· Прежде, чем построить какое-либо здание или выполнить действие над ним, выделите нужную клетку на территории.
· Чтобы начать новый день, нажмите клавишу N или щелкните кнопку со стрелкой (в правом верхнем углу экрана).
· Землю можно покупать и продавать. Принадлежащая вам земля обводится зеленым контуром.
· На улучшенной земле здания строятся быстрее и прослужат дольше. Чтобы улучшить землю, нажмите G или кнопку с синей каплей.

· Количество ваших денег и ресурсов отображается на экране слева, а сообщения - снизу.
· Управлять игрой можно с помощью клавиатуры. Клавиши со стрелками передвигают выделение по клеткам.
· Ресурсы можно покупать и продавать на рынке (цены различаются).
· Чтобы починить строение, нажмите R или кнопку с гаечным ключом.
· Если строение не работает в текущее время года или для его работы недостаточно ресурсов, то его можно временно заблокировать. Заблокированное строение не работает, но прослужит дольше.

Размер дистрибутива: 350K Windows -95,98,ME,2000,XP,NT

Скачать игру Сахалинская колония

Записки волшебника. Заколдованный город
В этой игре вы научитесь колдовству, пройдя все ступени посвящения - от подмастерья до великого мага. Для этого вам необходимо собрать множество замаскированных волшебных предметов, разбросанных по всему Заколдованному Городу, изучить заклинания и секреты приготовления чудесных отваров.

Статьи по теме: