Как написать что то подобное (подробнее внутри)?
В каждой операционной системе есть набор базовых контролов (ListView, TreeView, Panel, Image, Tab, SpinEdit etc) и API (Application Programming Interface) для их обработки. Каждый высокоуровневый язык имеет библиотеки, который адаптируют эти API вызовы в свои классы. Так же у многих языков (средств разработки) есть свой конструктор форм. Контролы кидаются на форму, в редакторе свойств выставляются нужные значения, а на нажатия кнопки и другие события вешается код. Сейчас программировать достаточно просто. Накидал контролов на форму, уже почти готовая программа. 
Это что касается интерфейса.
Для хранения файлов игр используется свой формат. Очень часто используются классы для архивации. То есть файл с картой представляет из себя архив данных, каждый файл из которых имеет свой формат. А может быть используется стандартные типы файлов, как, например, png. Классы внутри программы читают файлы и отрисовывают их в соответствующих структурах интерфейса.  Один файл в TreeView другой в ListView и так далее.
Язык программирования можно использовать любой
Сделать что-то подобное можно многими способами, один из самых простых, например,  такой