- 5,104
- 49
- 854
Metroline
Изначально проект задумывался как коммерческий и даже как относительно интересная игра - вот тут можно почитать старую тему.
В конечном итоге проект не дожил до нормального релиза потому что мне надоело и был урезан в обычный редактор за несколько дней на прошлой неделе, чтобы уж совсем в топку не выкидывать три месяца усилий. Технически, он относится к тематике сайта, т.к многие очень любят копать в майнкрафте, в частности копать метро, а также рисовать во всяких РП-группах схемы своих туннелей. (легальность размещения оправдана!)
Так что я думаю, публикация его здесь оправдана. Кроме того, проект решил в итоге сделать open source по GPL 3.
Написан с нуля на Java без библиотек. Единственное - была использована в качестве inline кода звуковая либа доисторических времен по загрузке и воспроизведению mp3, очень сильно переделанная и отрефакторенная под читабельный вид, поэтому ее название уже можно даже не упоминать. Да я его и не помню
Можно ставить\удалять станции, соединять их туннелями, двигать по всякому, редактировать свойства и виды станций (например название, год постройки, архитектора и так далее - динамический список позволяет вам сколько угодно пар ключ-значение сделать, а виды - закрытая, открытая, разрушенная, ремонтируемая и так далее), рисовать реки, рисовать клетки воды, сохранять это все дело в PNG вплоть до разрешения в 64к (если кому то надо вообще такое разрешение)
По архитектуре старался полностью следовать SOLID, поэтому в целом можно с небольшими трудопотерями вытащить оттуда базовый код движка - отрисовка экранов, тайлов, размещение логических элементов. Я его назвал конечно же, в честь себя - VMAEngine2D (а кто запретит?). Может попозже сам его выделю в отдельный 2D - простенький движок.
По графической части много оптимизаций в плане отрисовки, во первых все изображения идут через видеокарту, во вторых максимально оптимизированы процессы работы с памятью, запилен свой инкрементальный сборщик мусора (ну типа - понятно что на основе стандартного). Также сделана система частичного кэширования и сжатия клеток. В целом для однотонной карты можно вообще было бы хранить 1 пиксель, но такой задачи изначально не было, поэтому все сжимается в картинку где 1 пиксель - 1 клетка. Потом масштабируется на видеокарте.
Отрисовка станций и туннелей идет в рантайме, но даже для довольно большой карты серьезного влияния на производительность не заметил
Потребление памяти: 50-200 мб
Нулевая нагрузка на процессор
10-15% нагрузка на видеокарту
Размер программы 15 мб, из которых 14 - ассеты.
Страничка проекта (ссылка на скачивание там, но зацените страничку
)
GitHub

Изначально проект задумывался как коммерческий и даже как относительно интересная игра - вот тут можно почитать старую тему.
В конечном итоге проект не дожил до нормального релиза потому что мне надоело и был урезан в обычный редактор за несколько дней на прошлой неделе, чтобы уж совсем в топку не выкидывать три месяца усилий. Технически, он относится к тематике сайта, т.к многие очень любят копать в майнкрафте, в частности копать метро, а также рисовать во всяких РП-группах схемы своих туннелей. (легальность размещения оправдана!)
Так что я думаю, публикация его здесь оправдана. Кроме того, проект решил в итоге сделать open source по GPL 3.
Написан с нуля на Java без библиотек. Единственное - была использована в качестве inline кода звуковая либа доисторических времен по загрузке и воспроизведению mp3, очень сильно переделанная и отрефакторенная под читабельный вид, поэтому ее название уже можно даже не упоминать. Да я его и не помню
Можно ставить\удалять станции, соединять их туннелями, двигать по всякому, редактировать свойства и виды станций (например название, год постройки, архитектора и так далее - динамический список позволяет вам сколько угодно пар ключ-значение сделать, а виды - закрытая, открытая, разрушенная, ремонтируемая и так далее), рисовать реки, рисовать клетки воды, сохранять это все дело в PNG вплоть до разрешения в 64к (если кому то надо вообще такое разрешение)
По архитектуре старался полностью следовать SOLID, поэтому в целом можно с небольшими трудопотерями вытащить оттуда базовый код движка - отрисовка экранов, тайлов, размещение логических элементов. Я его назвал конечно же, в честь себя - VMAEngine2D (а кто запретит?). Может попозже сам его выделю в отдельный 2D - простенький движок.
По графической части много оптимизаций в плане отрисовки, во первых все изображения идут через видеокарту, во вторых максимально оптимизированы процессы работы с памятью, запилен свой инкрементальный сборщик мусора (ну типа - понятно что на основе стандартного). Также сделана система частичного кэширования и сжатия клеток. В целом для однотонной карты можно вообще было бы хранить 1 пиксель, но такой задачи изначально не было, поэтому все сжимается в картинку где 1 пиксель - 1 клетка. Потом масштабируется на видеокарте.
Отрисовка станций и туннелей идет в рантайме, но даже для довольно большой карты серьезного влияния на производительность не заметил
Потребление памяти: 50-200 мб
Нулевая нагрузка на процессор
10-15% нагрузка на видеокарту
Размер программы 15 мб, из которых 14 - ассеты.
Страничка проекта (ссылка на скачивание там, но зацените страничку
GitHub

Последнее редактирование:




