Я наверное не первый, и не последний кто хочет занять свое свободное время созданием игры.
Обдумав идею и составив план функций моего будущего шедевра, я лихорадочно стал искать литературу по программированию и созданию игр на ПК. Так, как моделить и текстурить я научился где то год назад, то в принципе сделать объекты для меня не составит труда (дело времени). Гораздо сложнее заставить комп "оживить" кучу материала.
Вечерами я сидел в интренете, просматривая кучу сайтов про игровые движки. Сначала меня заинтересовал движок DGLE, на котором можно написать приличную игру, но потом наткнулся UNITY. Выкачав INDI версию, я попробовал посмотреть, что это. Результат меня впечатлил. Но , чтобы начать колдовать с ним, у меня скопилась огромная куча вопросов, которую я и собираюсь задать.
В общем, никаких action и rpg я делать не собираюсь. Будучи заядлым любителем паравозиков, я хочу сделать новый современный железнодорожный симулятор.
Чем меня не устраивают те симы, которые есть?- взять к примеру МСТС (самый известный ЖДсим). Первое, что касается него:- он написан в далеком 2001 году. Соответственно старенький движок уже не может справляться с многочисленными дополнениями, которые создаются чуть ли не каждый день. К тому же в этом симе плохая физика, которая не соответствует нашему времени. В прочем, недостатков очень много.
Остальные ЖДсимуляторы я даже не буду перечислять, т.к. они не пользуются большим спросом.
Почему именно я должен делать новый сим?- да потому что это просто интересно. Я уже давно не играюсь в игры, но сам процесс изготовления чего либо мне приятен. У меня нет цели сделать хит, и качать денежки. Есть просто огромное желание сделать что то свое. И меня никак не смутит тот факт, что где то еще, в это время компания ребят делает точно такую же игру. Мне это не важно.
Так вот, для будущего чада нужны следующие функции:
1. Мощный движок (думаю UNITY то, что надо)
2. Способность читать информацию с харда в процессе игры (некоторые движки забиваются в оперативку).
3. Разделение terrain на тайлы (карты (или маршруты) будут длинными- где то от 50км. до 400км.)
4. Реальная физика (раскачивание вагонов, учтение веса вагонов, трения колес о рельсы и пр. Движение планируется сделать на столкновениях объктов: колеса (объект) сталкиваются с рельсами (объект)- получается вагоны будут ехать по рельсам (так, думаю, можно будет достигнуть реалистичный сход с рельс на скорости) и т.д.)
5. Возможность прикрутить 5-6 камер, одна из которых будет местом машиниста (возможность крутить обзор вправо, влево, вверх и низ, а так же зумировать). Потом 2 или 3 прикрутить на общую панораму с разных углов. Сделать одну свободную камеру. Место пассажира с возможностью перемещаться по вагонам и т.д.
6. Искуственный интелект (для генерации машин, людей и пр. объектов)
7. Возможность реализовать ЖД сигнализацию (это очень сложная штука) с возможностью переключения светофоров с др. компа по сети. Так же возможность перевода стрелок как вручную, так и автоматически.
8. Возможность передавать информацию по сети (координаты поезда, сигнализацию всего участка, звуковую связь между игроками и т.д.)
9. Автоматическая смена дня и ночи (по времени), сезона (зима, лето и т.д.) освещение (солнце), погода и пр.
В первую очередь нужно создать свой редактор. Редактор UNITY не устраивает тем, что слишком много операций приходится сделать, чтобы элементарно создать ландшафт, настроить свет, перетащить объект (к примеру дом) и поставить точно по коордиратам. Поэтому нужно сделать простой редактор для более удобной расстановки моделей (т.к. территоррии огромные, и расставлять особенно по чертежам и снимкам очень сложно). Свет, скрипты, камеры и пр. будут прописанны стандартно для всей игры. Редактор же нужен только для расстановки объектов ну и для коррекции ландшафта.
Возможно ли написать (создать) свой редактор с поддержкой UNITY?
Если "да", то в нем должны быть функции:
1. Свободная камера (ну это понятно), которая будет передвигаться клавишами "W", "S", "A", "D". Вращаться будет при нажатой ПКМ мышью (впрочем кнопки прописать всегда можно). Объекты перетаскиваться, вращаться будут ЛКМ.
2. Создание территории исходя из нужных координат земли (широта\долгота)
3. Разбивка тайла на квадраты в 200-300 метров. (для наложения на них реальных аэрофотоснимков или карт для создания реальных маршрутов).
4. Возможность импорта файлов координат высот участков.
5. Использование и расстановка разннобразных маркеров (звук, сигнализация, названия станций и пр.)
6. Использование динамической воды.
Скрипты планируется написать для:
1. Объединения объектов типа "рельсы". Нужно, чтобы при установки в редактор они ложились прямо на землю, а уже вручную можно было их установить куда угодно- хоть просто повисшими в воздухе. Далее, нужен "магнит", чтобы рельсы "прилипали" друг к другу (вставали на стыках ровно).
2. Авторасстановки контактной сети (столбы с проводом, от которого питается током локомотив). С этим могут возникнуть проблемы, потому что видов КС (контактной сети) очень много, и расставить даже посто статические объекты КС очень проблематично.
3. Объединения объектов типа "электровоз". Эти объекты (модели) имеют сходство- все питаются от КС. Нужно прописать общий параметр для них, а каждый по отдельности настраивать независимо от других (масса, мощность, род тока и т.д.). Еще сходство- есть 2 вида: пассажирский и грузовой. Это все надо прописывать в общих параметрах для этих моделей.
Так же объеденить тепловозы, вагоны и пр.
4. Скрипт для генерации растительности
5. Скрипт для генерации движения людей и машин
6. Скрипт для генерации аварий (ремонт путей, поваленный столб и пр.)
Подводя черту, можно сказать о том, что все объекты нужно будет разбить на группы, которые будут нести общие параметры. И к тому же каждый объект будет нести свои свойства.
Это конечно же только основная часть большой идеи. Хотелось бы узнать, возможно ли осуществить это на UNITY? Если "да", то мой выбор остановится на нем, а если "нет", то порекомендуйте что нибудь.
з.ы. Все идеи серьезно обдуманны. Я реально осознаю на сколько лет этот проект растянется, и какой сложности он. Так что не пишите мне слова типа: "ну ты загнул!".
За любую помощь буду благодарен! С уважением, Hans.