So who is an expert at making a Windows GUI?

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Ed Trice
Posts: 100
Joined: Fri Sep 19, 2014 5:03 am

So who is an expert at making a Windows GUI?

Post by Ed Trice »

I've stayed away from front-end GUI design since about 2004. I see Microsoft is "pushing" C# and XAML as "the way to go," but this seems like awful compounded by ugly.

I've heard good things about the Fast, Light Toolkit:

http://www.fltk.org/index.php

... but I've never used it personally.

My project: Writing a cool checkers program that has only a simple material-only evaluation function guided by the 8-piece Perfect Play (true distance to win) tablebases I just completed.

I have the coolest graphics ever, rendered on a high-end workstation. The DPI is such that I'll need to do whatever BitBlt() operation offscreen allows for scaling the image with least loss of quality, but lord knows what parameters.fields.some_other_thing I'll have to pass to a nebulous MFC data type that's never been documented anywhere.

A one-window app with the board, search info, and scrollable move list is my final aim.

My program currently can announce a win in 293-ply as a leaf node. I imagine with a multi-threaded search able to surpass 35-ply, maybe more with a huge hash table, it will be able to make 300-ply + announcements now and then.

If you'd like to join the "Only Perfect Checkers" team, leave a quick reply here, then message me privately. I plan on hooking up the software to a robotic arm using Arduino and USB power and taking it "on the road" to get some press. All who participate are given credit in the "marquee" on startup, in the "About Box," and the PDF documentation, and the website.

No deadlines. No rush. Work when you can. Cash available to the cream of the crop. Bonuses upon completion.

Project must be coded with Visual Studio 2015 with 64-bit everything.
CRoberson
Posts: 2055
Joined: Mon Mar 13, 2006 2:31 am
Location: North Carolina, USA

Re: So who is an expert at making a Windows GUI?

Post by CRoberson »

My preferred way of coding a Windows GUI is Java after that HTML/Javascript.

I found Java to be fairly straight forward in its graphics coding.
jdart
Posts: 4366
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: So who is an expert at making a Windows GUI?

Post by jdart »

The modern way to do Windows GUIs is with WPF. Underneath it is using DirectX. It is designed for managed code (C#).

MFC is still supported and is a good choice if you are comfortable with C++. The graphics support is somewhat primitive, though.

You can make bitmaps work but anti-aliasing and scaling can be challenging, especially with MFC/GDI. Vector graphics might be a better choice.

There are lots of 3rd-party UI toolkits such as Qt, but that looks to have a steep learning curve though, and the licensing might be a problem.

--Jon
Ed Trice
Posts: 100
Joined: Fri Sep 19, 2014 5:03 am

Re: So who is an expert at making a Windows GUI?

Post by Ed Trice »

Thanks guys.

When did Windows become such an abomination?
User avatar
Steve Maughan
Posts: 1221
Joined: Wed Mar 08, 2006 8:28 pm
Location: Florida, USA

Re: So who is an expert at making a Windows GUI?

Post by Steve Maughan »

Delphi is IMHO the best, and most productive, GUI environment for Windows. The FireMMonkey framework can also be used on Win 32, Win 64, Mac OS, iOS, Android and soon Linux.

Steve
http://www.chessprogramming.net - Maverick Chess Engine
Henk
Posts: 7216
Joined: Mon May 27, 2013 10:31 am

Re: So who is an expert at making a Windows GUI?

Post by Henk »

Skipper's GUI switched from windows to web. But I only run it locally on my computer.
Henk
Posts: 7216
Joined: Mon May 27, 2013 10:31 am

Re: So who is an expert at making a Windows GUI?

Post by Henk »

Looks like our free visual studio 2015 community does not support all new features of C# 7.0
User avatar
hgm
Posts: 27788
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: So who is an expert at making a Windows GUI?

Post by hgm »

Although I did a lot of work on WinBoard, I did not have to touch the GUI part much, as it already existed before I got involved. It uses the low-level Windows API, which is awful. (But it gives a comparaively small program, which does not have to rely on huge on-standard DLLs.)

My only advice is: try to separate the engine from the GUI. Just make the engine a console application that communicates through stdin and stdout by means of a standard protocol with the GUI. Then it can also run under other GUIs, and it becomes easier to play it against other engines. The WinBoard Alien Edition does support Checkers.

Beware that writing a GUI requires typically between 10 and 100 times more effort than writing an engine, depending on the number of features you want to support.
Stan Arts
Posts: 179
Joined: Fri Feb 14, 2014 10:53 pm
Location: the Netherlands

Re: So who is an expert at making a Windows GUI?

Post by Stan Arts »

hgm wrote: Beware that writing a GUI requires typically between 10 and 100 times more effort than writing an engine, depending on the number of features you want to support.
For something with the complexity of Winboard or Arena sure, that takes years. But Ed seems to want something fairly straight forward that you can play against. "A one-window app with the board, search info, and scrollable move list is my final aim." That should be a matter of a week with modest effort.

For Nemeton I do a bare bones Windows API setup with an OpenGL window on top to give me some sort of fast direct pixel acces and then I draw to my internal screen buffer like in the old days. It gives total freedom/creativity and can be ported to any platform but you don't get the shiny Windows buttons.
Ed Trice
Posts: 100
Joined: Fri Sep 19, 2014 5:03 am

Re: So who is an expert at making a Windows GUI?

Post by Ed Trice »

Stan Arts wrote:For Nemeton I do a bare bones Windows API setup with an OpenGL window on top to give me some sort of fast direct pixel acces and then I draw to my internal screen buffer like in the old days. It gives total freedom/creativity and can be ported to any platform but you don't get the shiny Windows buttons.
That sounds like a good solution. Do you have a screenshot of your program? I searched lazily but couldn't find anything but trees :)