Author Topic: 3.5 Progress  (Read 25912 times)

Corey Cooper

  • Administrator
  • Hero Member
  • *****
  • Posts: 6216
    • View Profile
3.5 Progress
« on: May 24, 2018, 02:44:19 PM »
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.

efdenny

  • Full Member
  • ***
  • Posts: 166
    • View Profile
Re: 3.5 Progress
« Reply #1 on: May 24, 2018, 03:06:25 PM »
This is awesome Corey! Thanks for the update, and I’m looking forward to seeing the results of your efforts!

Corey Cooper

  • Administrator
  • Hero Member
  • *****
  • Posts: 6216
    • View Profile
Re: 3.5 Progress
« Reply #2 on: May 24, 2018, 03:40:56 PM »
I'll try to add updates as time goes by and work continues.  There will definitely be a beta test for this one.  :)

Here are some highlights:
* No more Internet Explorer required
* No more IE 11 memory leaks
* Full-screen mode no longer requires a restart.  Like a real browser, you can toggle between window and full-screen at any time
* Game window will actually have minimize/maximize buttons that work as other windows do
* Settings window will also have maximize button
* No longer need to configure the TD with info about your extended display, it can now get your display info from Windows
* No "Call was rejected by callee" errors because IE doesn't know how to work right when a sound is played
* No more Windows Media Player required
* System dialogs (open file, save file) work, for everyone (this is a problem for a lot of people now)
* Real context menus, not the ones I had to hack into the application which may open partially offscreen
* No more stupid X button in inputs that displays after you select the input and then text in the input moves
* No more administrator access required
* Good folder selection dialog (the one the TD uses is awful)
* Ability to use HTML5
* And for me, a real debugger, which has been a godsend in getting this working so quickly

This is just a short list of stuff I've thought of since starting ...

Corey Cooper

  • Administrator
  • Hero Member
  • *****
  • Posts: 6216
    • View Profile
Re: 3.5 Progress
« Reply #3 on: May 24, 2018, 03:44:17 PM »
Oh, and the main one, which we will definitely have to see once everything's done, but I expect it to run much faster and be more responsive.  We will see...

efdenny

  • Full Member
  • ***
  • Posts: 166
    • View Profile
Re: 3.5 Progress
« Reply #4 on: May 24, 2018, 05:21:41 PM »
Quote
No more Internet Explorer required

Between this, updated JS, and HTML5, does this mean a possible Mac solution?? :)

Corey Cooper

  • Administrator
  • Hero Member
  • *****
  • Posts: 6216
    • View Profile
Re: 3.5 Progress
« Reply #5 on: May 24, 2018, 05:27:41 PM »
Actually, it does.  I most definitely will not make any promises, but theoretically it could run on Windows, Mac, and Linux.

efdenny

  • Full Member
  • ***
  • Posts: 166
    • View Profile
Re: 3.5 Progress
« Reply #6 on: May 24, 2018, 06:52:45 PM »
Woot!! Fingers crossed, and good luck to you sir!

Silver Owl

  • Jr. Member
  • **
  • Posts: 98
    • View Profile
Re: 3.5 Progress
« Reply #7 on: May 25, 2018, 08:17:40 AM »
Great job Corey!!

jodybingo

  • Hero Member
  • *****
  • Posts: 667
    • View Profile
    • Personal Web Site
Re: 3.5 Progress
« Reply #8 on: May 25, 2018, 06:49:52 PM »
I got a ahlfie hearing this will work under Linux!!! Awesome!

mcfrojd

  • Full Member
  • ***
  • Posts: 136
    • View Profile
Re: 3.5 Progress
« Reply #9 on: May 29, 2018, 01:59:57 PM »
Glad to hear about the progress, let us know and we will help you alpha/beta test the new version..

shushs

  • Jr. Member
  • **
  • Posts: 56
    • View Profile
Re: 3.5 Progress
« Reply #10 on: June 01, 2018, 04:42:17 AM »
As someone that lives everyday without MS Windows platforms, this is very exciting news.
As someone that lives as a SysAdmin/DevOPs role, that has Windows/Mac/multiple Linuxes at his disposal, I'd really enjoy Beta(Alpha) testing for you. 
Reach out to me if you'd like... or just post here. I'm happy to provide feedback/results.

Corey Cooper

  • Administrator
  • Hero Member
  • *****
  • Posts: 6216
    • View Profile
Re: 3.5 Progress
« Reply #11 on: June 13, 2018, 04:27:39 PM »
An update...

- Refactored all of the bootstrapping code.  Even though the app was able to get to the Settings dialog, most of the bootstrap code was not working.  Preferences weren't loading, other config files weren't loading, somehow the language files WERE loading (weird), other initializations were just not being done

- Sounds are working now

- Screen transitions are mostly working.  Probably double or more the frames per second, so they look better, too.  I have seen some weird artifacts when using the blend transition and built-in screens, so not perfect, but definitely a major improvement.

- Working on loading and saving.  Currently done with tournaments, layouts, rounds templates, prizes templates, and tables templates.  Loading now works more like the standard flow: press Load, get a file selection dialog, once a file is selected to load, if there are changes in the current tournament, ask to save it, don't save it, or cancel the operation.  Traditionally the TD prompts to save/don't save/cancel as soon as you press Load, before you're prompted to select a file to load.  So this is a little different, but more in line with the way other apps operate.

Something to note is that with this change layouts will almost certainly need tweaking or be redesigned completely.  This is due to moving to standard HTML and out of IE quirks mode.  It's a bit unfortunate, but the positives outweigh the negatives by light years.

I've also run into a few memory issues.  So it just might be that I can't blame Internet Explorer entirely.  Although it's mixed at this point: I've run for a long time and seen the memory growth, and other times I've run for a long time and seen no growth.  That's the bad news.  The good news is that the memory size can get much larger than IE ever could, and I don't see much if any degradation or side effects (although if it's a true leak, that can't go on forever, eventually it will crash).  The real good news is that there's a built-in memory profiler, so I have a vastly better chance of tracking down memory leaks.

efdenny

  • Full Member
  • ***
  • Posts: 166
    • View Profile
Re: 3.5 Progress
« Reply #12 on: June 13, 2018, 06:59:28 PM »
Sounds like a lot of great progress! Appreciate the updates!!

Corey Cooper

  • Administrator
  • Hero Member
  • *****
  • Posts: 6216
    • View Profile
Re: 3.5 Progress
« Reply #13 on: June 19, 2018, 06:00:02 PM »
- Loading and saving of tournaments and templates is done.  Still have other related work to be done (importing players, exporting data, etc).

- All transitions now work, including with layout scaling enabled.

- Layout rendering has been vastly improved.  Most built-in layouts look almost the same now!  That's actually something I didn't think would be possible.  Here's the default (1024x768) layout:



The challenge now is that Chromium doesn't render table rows and columns with the same proportions as IE, so while the top and bottom rows look OK in this pic, when you resize the window to something more modern, like 1920x1080, it isn't quite as pretty:



Also the chips aren't centered, but that's another detail.

Anyway, looking better!

ScottBroker

  • Newbie
  • *
  • Posts: 39
    • View Profile
Re: 3.5 Progress
« Reply #14 on: July 10, 2018, 02:19:37 PM »
is there a public beta to download?????