Progress report

jendave

Sticking around

Posts: 32

Joined: Fri Mar 14, 2008 7:53 pm

Post Fri Mar 14, 2008 8:05 pm

Progress report

Hi all,

I have been working on the codebase for the past few days and had checked in a lot of changes. I wanted to give an update on what I have been doing.

Most of the changes are more project-oriented/cleanups but I have made progress on the Linux port.

The recent updates include:
* Put license disclaimer on all files.
* Set line-endings in all files
* Remove unused references
* Reformat all code files
* Put xml comment skeletons on all public/protexted methods
* Deleted DirectAudio code.
* Added Linux-type project files (README, NEWS, COPYING etc).
* Started to remove Sdl.net and replace it with SdlDotNet.
* Removed dependencies on Mshtml, ActiveX and Microsoft.Win32.
* Fixed all the paths so that the separation char is not a problem.
* Made the gui and plugin pathing code more dynamic so that those directories do not have to be copied every time the project is built. (FreeTrain starts faster in an IDE now)
* MonoDevelop can build and run FreeTrain. There is still a lot of work needed though. The dialog windows so not work very well.

I'll keep working on the Linux port.
Thanks!
Dave

freegamer

User avatar

Site Admin

Posts: 119

Joined: Fri Mar 14, 2008 3:11 pm

Post Sat Mar 15, 2008 11:59 am

Re: Progress report

Excellent update. I can't wait to try it on Linux. I guess at some point we need to put together a basic guide on setting up FreeTrain from SVN with Mono/Linux.
Free Gamer - open source games blog
FreeGameDev forums - open source games development community

freegamer

User avatar

Site Admin

Posts: 119

Joined: Fri Mar 14, 2008 3:11 pm

Post Sat Mar 15, 2008 10:30 pm

Re: Progress report

I've been meaning to ask about the UI. Will it be standard windows/frames or will it be an SDL-based UI? If it's the latter I'm sure I can rustle up some pixel artists to put together a theme and/or icons.
Free Gamer - open source games blog
FreeGameDev forums - open source games development community

jendave

Sticking around

Posts: 32

Joined: Fri Mar 14, 2008 7:53 pm

Post Tue Mar 18, 2008 2:47 pm

Re: Progress report

I have not decided yet. Ideally, it woudl be great to have an all-SDL gui, but that is not realistic. Creating a GUI with all the widgets is a lot of work. It would be more efficient to keep using SDL for rendering and Winforms for the GUI windows. I would like to explore somehow consolidating the various winforms windows however, like in a single blotter with tabs or something. Right now, you can bring up all sorts of overlapping windows. It would be nice just to have two windows, the SDL/game one and the Winforms/Menu one. Thoughts?

stevenh

User avatar

Sticking around

Posts: 28

Joined: Sat Mar 15, 2008 4:48 am

Location: Canberra, Australia

Post Tue Mar 18, 2008 10:00 pm

Re: Progress report

Some form of 'control panel' like that would be a great idea... the only issue would then be anyone who wanted to run the game in fullscreen....
Right now the SDL Window hates it's children and loses focus as soon as you switch to another window? That's the only concern of mine... the Main window just isn't built to play with other windows.

freegamer

User avatar

Site Admin

Posts: 119

Joined: Fri Mar 14, 2008 3:11 pm

Post Wed Mar 19, 2008 9:18 pm

Re: Progress report

First of, I don't have any real understanding of the way the UI is currently handled in code, so my comments do not take this into account. (I do maintain a UI open source project - Vexi, although it's a Java UI so can't really apply to FT - so I am quite into my user interfaces).

I believe that a pure-SDL approach, something that would work with full screen mode, is best here. Multiple windows are not user friendly. You have the problem with tracking focus between windows, windows overlapping, and generally an unclean interaction between the dialog contents and the onscreen game. You can't drag-and-drop between them, they are an inconsistent solution which is often masked over with keyboard shortcuts and enforced modality.

Also putting these windows in pure SDL form forces us to address the user interface. Steve had already gotten started with this and made impressive progress.

However we also have to be pragmatic. It may be that putting this all into SDL could position the current development version very far from a release, which is not a great idea. So any decision should take into account getting out a working version of the SDL/Mono FreeTrain as soon as possible, then more golden goals can be set after that.

Steve/Dave: have you considered making an SdlDotNet UI library as part of this? It seems that there are not any good options for this (I had a look). Or have you considered using an existing other-programming-language SDL UI library - a facet of C#/.NET that seems to have not lived up to the original promise of the platform was the ability to inter-operate with existing libraries in other languages.
Free Gamer - open source games blog
FreeGameDev forums - open source games development community

jendave

Sticking around

Posts: 32

Joined: Fri Mar 14, 2008 7:53 pm

Post Wed Mar 19, 2008 11:11 pm

Re: Progress report

I agree that a pure SDL solution would be best. However, that would indeed put FT far from a release. Also, It appears that a lot of the plugins from the trunck use Winforms, so it would be easier to port those over to FT/SDL if it used Winforms as well. I do realize that Winform/SDL integration is very problematic as well. I have some SDL/Winforms integration as part of of SdlDotNet, but it has had limited success.

As far as an SdlDotNet GUI goes, I have worked on this (I contribute to the CEGUI# project at http://ceguisharp.sourceforge.net). It would also be a long road.

freegamer

User avatar

Site Admin

Posts: 119

Joined: Fri Mar 14, 2008 3:11 pm

Post Wed Mar 19, 2008 11:33 pm

Re: Progress report

Just to throw it out there as an idea, but what about a WinForm compatability layer - so replace all the WinForm calls with identical calls to our own GUI (CEGUI# or whatever) and then make replacing it simple find/replace on the namespace? How much can these things do that so complicated?
Free Gamer - open source games blog
FreeGameDev forums - open source games development community

freegamer

User avatar

Site Admin

Posts: 119

Joined: Fri Mar 14, 2008 3:11 pm

Post Thu Mar 20, 2008 1:45 am

Re: Progress report

The other thought is that if the WinForms usage is fairly straightforward, then once we provide an alternative, replacing it should be fairly procedural - an excellent opportunity for new contributors. So if we did just focus on a few core/official plugins and accept ditching WinForms for a better integrated UI, when it is working with those we can put it out there and get help with the rest.

We can make regular development releases as well, with WIP / broken stuff, just to get feedback and drum up interest.

Ok, enough from me. I'll leave the roadmap decisions to people who are familiar with the codebase and what is best to focus on... ;)
Free Gamer - open source games blog
FreeGameDev forums - open source games development community

jendave

Sticking around

Posts: 32

Joined: Fri Mar 14, 2008 7:53 pm

Post Thu Mar 20, 2008 3:35 pm

Re: Progress report

I think I am done with the *major* changes/cleanups to the file structure. In the future ,I would like to fix the capitalization of the directories in the core project, but that can wait.

One area I want to explore for the GUI is improving the SdlDotNet/Winform interaction. It is a hot topic over on SdlDotNet so any improvements I can make to SdlDotNet may help get the current menus and the rendering screen to work a little nicer with each other. I started fiddling with revamping the Windows to use a single panel so that you do not have all sorts of small windows all over the place. I may end up creating a new branch for it sothat I do not totally mess up the rest of the svn tree. I agree that getting FT running on Mono/Linux/OSX is the priority so I will focus on that as well.

freegamer

User avatar

Site Admin

Posts: 119

Joined: Fri Mar 14, 2008 3:11 pm

Post Thu Mar 20, 2008 4:49 pm

Re: Progress report

Any ideas on how much work it's going to take before it runs on Linux/Mono/SDL?

Any ways in which we can help?
Free Gamer - open source games blog
FreeGameDev forums - open source games development community

jendave

Sticking around

Posts: 32

Joined: Fri Mar 14, 2008 7:53 pm

Post Thu Mar 20, 2008 7:25 pm

Re: Progress report

Unfortunately, I do not know what the problem is on Mono. Right now, the game starts. I click on the Railroad button and the dialog comes up. When I click on the rendering window to place the track, the app hangs. I will have to debug it in monodevelop to see what is going wrong. Try it out and see if you get the same results.

freegamer

User avatar

Site Admin

Posts: 119

Joined: Fri Mar 14, 2008 3:11 pm

Post Thu Mar 20, 2008 7:34 pm

Re: Progress report

Ok, I can have a go but I'm not too sure how to set it up in Mono/MonoDevelop (including installing SdlDotNet) and the last time I tried I didn't get very far.

A guide would be handy. ;)
Free Gamer - open source games blog
FreeGameDev forums - open source games development community

Return to Core Development

Who is online

Users browsing this forum: No registered users and 1 guest

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by Vjacheslav Trushkin for Free Forums/DivisionCore.