Many of you have seen my posts where I talk about the next version of the TD, which will be ported to a new framework. In those posts I also mention that it's going to be a lot of work, and will be some time before the new version is ready. That's turning out to be correct, but it's really exciting (from a nerd programmer perspective) because as I work through it so many of the past limitations of the application are gone. There's a long way to go, but surprisingly I've made an amazing (to me) amount of progress. Anyway, I wanted to share some details as work progresses.
So I started with a proof-of-concept, to make sure the TD would work under Electron (
https://electronjs.org), and to familiarize myself with Electron and Node.js and modern Javascript (the TD is currently stuck way in the past - a years old version of JS). There were several aspects of the TD that, if they weren't possible under Electron, the whole effort would have been pointless. And happily I discovered they were possible, and so I dove in. In a surprisingly short amount of time, I had all of the TD code
loading (but not working) under Electron. Over the past few weeks I've been neck deep just trying to make it
kind of work, no real direction, just fixing anything that was preventing the application from just running.
At this point I've actually got the main window and the settings window up and most tabs displaying (but not yet working). Here's a screenshot of the Settings window under Electron:
Not exciting because it doesn't look much different, but that's good! My current goal is to get the TD working closest to its current form. New features and taking advantage of the new framework will come later.
I just got the Game window sort-of functioning:
Not as pretty, but all the pieces are there and they actually update.
There's a huge amount of work ahead. One major example is dialog windows. They work differently in Electron and at last quick count, including alert dialogs and simple confirmation dialogs, the TD has nearly 1000, all of which will require some refactoring.
Anyway, I just wanted to let everyone know that this is really underway, and progress is being made, and it's actually going faster than I anticipated. This is without a doubt going to be the largest overhaul the software has ever seen, and I'm really excited about the possibilities. Just thought I'd give everyone a peak at what's happening.