Page 1 of 2
New D2X-XL Launcher and configuration tool planning
Posted: Thu Feb 23, 2006 7:50 pm
by D3Phoenix
Hey all, I wanted to get everyones' opinion on something. I am working on a new project -- namely, a D2X-XL INI file configurator and launcher system. Thus far some of the planned features include:
-A pilot profile selector right in the launcher, Via a drop-down box. (Select \"none\" to use the in-game selector)
-An UPDATE CHECKER (not sure how I will do this yet, or even if I can, but I want to try)
-A \"TweakUI Powertoy\"-ish interface for configuring every single obscure command line parameter ever included in D2X-XL... (This will take a while to get done. Don't expect 100% coverage in the first release, but I WILL get there)
-A tracker status checker -- attempts to ping / listen for tracker before you run D2X to see if it is up and if it can be seen through any local firewalls / etc.
Note that some of these features may be too difficult for me to implement... but they are planned thus far.
My question is this -- Which development environment would everyone like me to use?
Visual Studio 2005:
==========================
+ I can make a MUCH BETTER interface with this suite's form editor.
+ I can access network features and stuff much more easily, and thus potentially have more features than I would in VB6.
+ Anyone on the Linux side with DOTGNU Project installed will *probably* be able to run it with some tweaking. Not sure on this though.
- Anyone who wants to use it will have to download and install the 75MB Windows update for the .NET Framework 2.0; this effectively eliminates the possibility of Dial-up users taking advantage of the launcher.
- Probably won't work on Windows 98.
Visual Basic 6.0:
==========================
+ Will work on any version of windows, W95 thru XP and higher.
+ Simpler code, easier to debug and maintain.
+ Simple enough, that it will probably run on Linux just fine for WINE users.
- Harder to implement network features, may rule out some design plans
- Not so perty interface capabilities w/o spending tons of time on it
- W98/W2000 users may be required to download the 1MB vbrun60sp5.exe \"Visual basic runtime library\" from Microsoft. Not sure about WINE users.
I will make a decision by FRIDAY MARCH 3. The poll only runs until then. Up until that point, I will be researching the networking avenues of coding and planning the interface.
Let me know what you think.
Also, feel free to post feature requests or related ideas here.
Posted: Thu Feb 23, 2006 8:13 pm
by Stryker
Whoops, clicked the wrong button... I think .net would probably be better for this sort of an application.
Posted: Thu Feb 23, 2006 8:27 pm
by D3Phoenix
Tacked on a vote to .NET, I'll subtract one from the final VB6 count.
Re: New D2X-XL Launcher and configuration tool planning
Posted: Thu Feb 23, 2006 8:54 pm
by Kirby
D3Phoenix wrote:-An UPDATE CHECKER (not sure how I will do this yet, or even if I can, but I want to try)
My XL-Updater tool is already functional, and can easily be ported to Linux/MacOSX once I get the time
Spring Break is teh coming up....I will be reorganize everything and possibly make a better GUI with Eclipse's Visual Editor Project
My new computer finally came in, so I will be working on this project again in a few days
(on 19 inch, flat-screen, 1280x1024 resolution goodness ^^)
For your project, .NET is what I would go with. Everyone pretty much has the .NET framework installed, and not many people use Windows 2000 or below anymore
Posted: Thu Feb 23, 2006 9:09 pm
by D3Phoenix
This thread is going the way I like so far, .NET is much better, but may cause trouble on Linux -- If all else fails I guess I could have somebody port it.
Kirby, once my tool gets a bit more than zero code done on it
, would you be interested in merging the projects or embedding yours in mine? How difficult would it be to convert your code to a .NET format? Any of the .NET languages -- C++, C#, J#, or VB. Once its in a .NET language I can import it as a module and interface it to the existing VB code.
You'd get a nice bold credit on the splash screen, too
Aus-RED-5, Just wanna let you know that I have plans to base my theme off your cool wallpapers. (I have one on each monitor right now, lol) If it isn't too much to ask, Might I ask you at a later date to create some button graphics along the same lines for me? I would detail the pixel sizes and desired text. This offer is open to anybody who expresses interest, once again -- nice slot on the splashscreen...
And Diedel gets one too of course; Hopefully it will be hosted on his site right alongside some of the other D2X-XL downloads.
Posted: Thu Feb 23, 2006 9:24 pm
by Kirby
Sorry....my Gaim cut off and I couldn't log back on again
But as I was saying earlier, I would like to keep XL-Updater seperate from your project, just because I have no experience with group coding yet (I'm only in my freshman year...sheesh
) Maybe as I get more experience, then yes....but right now, I'll have to pass and continue working on my own
Posted: Thu Feb 23, 2006 9:32 pm
by D3Phoenix
No problem. I'll figure it out one way or another. Considering that they are written in two entirely differnt languages, it may be for the best.
Here's some eye candy guys, this is a preliminary interface design that I drafted in VB6 (I just wiped my computer recently and VB.NET takes about an hour to install... I REALLY should do that one of these days...)
The bottom window with Aus-RED-5's wallpaper and the orange text gets replaced by a frame with options whenever you click on one of the category togglebuttons. (The button stays in, click the same button again, and it pops out, leaving you back at the credits screen) The orange text on the picture will have credits that scroll past fairly slowly. If I do .NET the text will be semi-transparent, so as to let some of that awesome picture show thru
Currently I am playing with feature placement and UI layout. I'll eventually redo it from scratch in .NET when I get the time (I honestly think that that is where mostly everybody is leaning) -- and then we can talk some more about graphical buttons and custom window shapes, etc...
Posted: Thu Feb 23, 2006 9:41 pm
by Kirby
well just think of it as one less thing to do (adding auto-update that is
)
I'm still confused on how multi-platform implementation would be possible...maybe this link will help:
http://www.mono-project.com/Main_Page
Posted: Thu Feb 23, 2006 9:41 pm
by Kirby
well just think of it as one less thing to do (adding auto-update that is
)
I'm still confused on how multi-platform implementation would be possible...maybe this link will help:
http://www.mono-project.com/Main_Page
Posted: Fri Feb 24, 2006 10:25 pm
by D3Phoenix
Update: Started work on the .NET version of the GUI.
Researching Bitmapping of GUI interfaces in .NET; I wanna make it not only run well but look cool
I'll post screenies when I finish the basic UI.
Posted: Mon Feb 27, 2006 6:44 am
by Diedel
Well, the \"Visual C .NET 2005\" poll item is missing ...
Your screenies look waaaaaaaaay cool!
I might add more features to D2X-XL to support your configurator (like putting all network game settings in the ini file, too
).
Why not tabbed dialogs instead of buttons?
Posted: Mon Feb 27, 2006 12:05 pm
by D3Phoenix
Lol, yeah -- I would definitely do it in a higher language than VB -- If I were any good at them. I know java, which is close to C/C++/C# from what I hear, but I haven't had the time to learn the similarities and differences. I have pretty much decided on VB.NET at this point, simply because I can make a much better interface this way. (Can't figure out how to skin a tabstrip though, even in .NET... ah well, I'll use option buttons or the like)
It looks nice so far, even better than my original VB6 draft, if I do say so myself. Might have some updated screenies later tonight. I've even pulled a little \"printscreen, paste\" action to obtain elements of the D2 menus -- the check boxes, radio buttons, and sliders will reflect this
Diedel, that would be AWESOME if I could get some more ini configurability -- If I'm putting this together why not make it as useful as possible, right? And I will definitely open-source it to anybody who wants to take a look-see under the hood, or even add something to it.
Posted: Mon Feb 27, 2006 12:53 pm
by Suncho
Hey. Awesome work man. I can't wait to try it. =)
Posted: Mon Feb 27, 2006 8:49 pm
by D3Phoenix
New screenie!!
Notice that the interface is not done yet... Right now I'm busy extending the Button, Checkbox, Trackbar, and RadioButton classes to make the custom controls functional. Once I get this part done, I'll have workable controls that look like what you see in the screenshot.
True to the Descent feel, is it not?
I'm considering having the overall background that shows through everything changing depending on which area you are in... For the main credits screen it will be the stars, for general it might be the asteroid field, etc. I have all of the original D1 briefing PCX files converted to 320x200 bitmaps, which I can subsequently stretch to fill the 3:4 aspect ratio form... It works quite nicely. Still might use one of Aus-RED-5's wallpapers in there somewhere... they are so derned cool lookin'...
Posted: Mon Feb 27, 2006 10:14 pm
by Suncho
I prefer the look of the first one.
Posted: Mon Feb 27, 2006 10:22 pm
by D3Phoenix
Really? I'm still deciding on how I'm gonna do it... turns out that custom controls are being a PAIN, so I think I'll make it work first... then I can tweak the UI later. Either of these would be an option.
Posted: Tue Feb 28, 2006 1:52 am
by Aus-RED-5
How about doing something like this?
SMALL IMAGE
SMALL IMAGE
I made an auto launch menu for installing my collection of Descent games from a DVD. I used a program called
\"Auto Play Media Studio\". Its really good.
I took the Descent 3 launch menu and made my own.
Each button has its own window and images with info. It even makes sounds when you cross over the buttons.
You can do just about anything with this program.
It's about that time for an update to my menu after having a look at it again!
Re:
Posted: Tue Feb 28, 2006 2:40 am
by Suncho
D3Phoenix wrote:Really? I'm still deciding on how I'm gonna do it... turns out that custom controls are being a PAIN, so I think I'll make it work first... then I can tweak the UI later. Either of these would be an option.
I'd prefer to have a plain-jane windows default-looking interface that doesn't have any extra bells and whistles that don't add any functionality.
I like Hunter's D3Server and Testiculese's D3Alias.
Posted: Tue Feb 28, 2006 12:11 pm
by D3Phoenix
Got a few options working in .NET with a fairly plain interface -- right now I have reverted it to a regular default windows style. Tabstrips are used to select pages of options.
Nope, this is just going to be a launcher for D2X-XL, ATM... D3 already has its own launcher, and the command lines needn't be changed often. D2X-XL on the other hand, has so many features and configurable options via the INI / commandline that a launcher (which it lacks) would be very useful.
(The DVD installer idea is cool... but I have one that works even better. I have a mass-storage compatable MP3 player that doubles as an external hard drive -- I NO-CD patched D3 and D2X has this nifty -nocdrom setting... Let's just say that either game will load much faster over USB2.0 in my experience, but is equally playable on USB1.1
)
Re:
Posted: Tue Feb 28, 2006 3:24 pm
by Suncho
D3Phoenix wrote:Nope, this is just going to be a launcher for D2X-XL, ATM... D3 already has its own launcher, and the command lines needn't be changed often. D2X-XL on the other hand, has so many features and configurable options via the INI / commandline that a launcher (which it lacks) would be very useful.
I think you've got it backwards. D3 has more command line options (and registry settings). I think a custom launcher for D3 would be wicked hot. There's a lot of stuff you have to change manually by editing command lines. I'd rather have checkboxes, dropdown lists, and sliders.
Posted: Tue Feb 28, 2006 3:45 pm
by D3Phoenix
I set D3 where I want it and rarely touch it once I have it running well... maybe others do play with it more, especially if on older hardware I can see this happening, but as for me, I don't have any problem with D3 ATM. Of course, my source on the current project will be open to anyone who wants to modify it for D3. I don't plan on undertaking that project in the near future. I barely have time to work on this one as it is.
Still working on UI functionality, ATM... Once I get it running with a majority of the important options working, I may do a preliminary release. I expect this to be a week or two off, though, judging by the speed on which I have worked on it thus far.
Posted: Tue Feb 28, 2006 4:09 pm
by Suncho
np. I just wanted to make sure you weren't ommiting D3 support for the wrong reasons. =)
35% of initial UI designwork done
Posted: Tue Feb 28, 2006 8:41 pm
by D3Phoenix
YAY!! New screenshots below.
I just finished the UI for the \"General / Startup\" area. By popular request, I'm going for a plain interface right now. (It would still be fun to skin the tool later on, I say...
) I imported the old form right into .NET and converted the buttons into a tabbed format. I have finished categorizing and selecting the features that I will implement, so as you can see, the project is now pretty well underway.
Before I release, I will give a beta to Diedel and a couple other friends in order to make sure that there aren't any glaring errors in implementation of some of the more obscure commandlines, or anything put into the wrong category. I am also going to communicate with diedel on the possibilities of getting a Net.ini or other such configuration file for multiplayer setttings, which could potentially spawn a whole new tab in the project. I grouped Sound and Network together since they each have relatively few options compared to the general settings and the render options.
EDIT: heh...forgot to add the picture... lol
EDIT 2: Just wanted to let everybody know that none of the defaults are set on anything yet -- And that the wording could be easily changed on a few of those items. Lol. Aus-RED-5's wallpaper is still getting a center front spot on the intro page, I *almost* have the scrolly credits working (derned thing flickers... maybe a refresh after each movement...
)
Posted: Wed Mar 01, 2006 12:03 am
by Suncho
Very nice. Can't wait to try this. =)
Posted: Thu Mar 02, 2006 10:12 pm
by D3Phoenix
Update:
User interface completed. No screenies this time, because all 5 tabs are done... they each look mostly like the one that you have already seen. I've got a bunch of things coming up this weekend though, so I doubt that I will be able to work on it much in the coming week. UI is all done though. Now all I have to do is the monotonous part -- associating each control with its appropriate commandline string. After that, the FUN part -- actually making the code that pulls it all together into a functional launcher. Once it works I'll get v1.0 out here. Perhaps later I can add an auto-update, perhaps a tracker status detector. Those would be much more advanced features and take longer to implement than a plain old launcher.
Diedel, Suncho -- I'll send it to both of you prior to final release to help make sure that all of the functions work properly and that I have used them correctly. I don't want any options listed in the wrong category.
Cool! Great idea!
Posted: Thu Mar 02, 2006 10:28 pm
by Glowhyena
Posted: Thu Mar 02, 2006 10:31 pm
by Glowhyena
Cool! Good Idea!
I'm a rookie of reply...
Posted: Wed Mar 08, 2006 10:10 pm
by D3Phoenix
PROGRESS UPDATE =======================
-UI Coding is now complete.
-Have file writing working, so the controls retain their EXACT STATE between launcher sessions -- all through this little \"launcher.pfd\"
First release TODO ===============================
-Add support to automatically fill the Auto_Hogfile, Player, and Auto_Demo combo boxes by listing files.
-Finish the code that rewrites D2X.INI to match the chosen settings.
Later Release TODO ============================
-Add an option of whether or not to overwite D2X.INI so that the launcher settings become the default. (if not, then the launcher will use the \"-ini\" commandline to use an alternate ini file name, probably D2XLAUNCH.INI or so)
-Add Profile Support (Each profile stored as a *.pfd file [prepare for descent file])
-Add \"backup configuration\" function that copies all profiles, pilot files, and savegames to a backup folder.
Hypothetical, inherently difficult ideas ===============
-an option to start D2X in autodemo mode as a screensaver. Option to mute sound during 'screensaver' included. D2X automatically is told to exit when the screensaver is stopped.
-D2X update checker/autodownloader Have only a slight idea on possible implementation.
-Tracker status / connectivity monitor
Posted: Thu Mar 09, 2006 12:17 am
by Suncho
What about asking Diedel to add a command line switch that disables the reading of the d2x.ini file?
Posted: Thu Mar 09, 2006 2:46 am
by Diedel
Imo having the launcher creating an alternative ini file and calling D2X-XL with that file (-ini, anybody?) would be preferrable to calling it with one gazillion cmd line switches.
Posted: Thu Mar 09, 2006 3:25 am
by Suncho
Yeah. That's good too. =)
Posted: Thu Mar 09, 2006 12:17 pm
by D3Phoenix
Sorry, I wasn't very clear.
The two options would be:
-Overwrite D2X.ini and launch game with no commandlines.
-Create D2XLaunch.ini and launch game with \"-ini d2xlaunch.ini\"
The main difference would be that with the overwriting option, it would not be necessary to go thru the launcher to start D2X-XL every time. The options would become default from just a plain shortcut or batch file to D2x-xl.exe, whereas not overwriting requires you to run the launcher and use it to launch D2x that way. So the program, in essence, can function as EITHER, a launcher OR a configurator.
I would never consider calling with gazillions of commandlines, because first of all, it is harder to construct a string that is legible to cmd or command, because these interpreters are very, very picky. Secondly, the API that I intend to use, ShellExec32(), can get cranky if you try to pass a string longer than about 512 characters in unicode, or 1024 characters in ASCII. I know this from experience. (Usually works if its longer and you are only calling a path or filename -- commandlines longer than that make it go beserk??)
Good news: [MAC]Peter has offered to take on porting of the launcher to both, MAC OS and Linux. Looks like I'll get my cross-platform compatability after all.
Posted: Thu Mar 09, 2006 12:58 pm
by Suncho
That makes perfect sense now. =)
Posted: Thu Mar 09, 2006 1:51 pm
by Peter
Linux will be second after Mac OS. I will also need help beta testing the Linux version as I have a PPC Mac and so therefore it is a little hard to run x86 Linux.
And, crap. I just realized that for programs that I develop on another platform other than my default one (Mac OS) I need to upgrade from Standard to Professional of REALbasic if I want them to run for longer than 5 minutes and work for 10 days. And uh... that costs $299.95 USD. :\\ So Linux might be a while unless you only want to run this sucker for 10 days and only 5 minutes at a time.
Posted: Thu Mar 09, 2006 3:05 pm
by D3Phoenix
Hrmm... I would assume that If I gave you the source files it wouldn't be too difficult to translate them into C... From there it should be fairly simple to migrate it to either platform. The only problem is, I haven't learned C, C++, or C# yet -- in fact, the only High level language that I know (other than VB6/VB.NET) is Java -- and I think it goes without saying that the GUI creation methods availiable for it afaik pretty much suck. Otherwise I would have done the whole thing as an applet class/html file combo -- universal system compatibility there.
But no, I'm much, much better with VB.NET and so we will have to make due with what we have. I KNOW that there is a way to port it, even if it means someone would so graciously donate their time and manually \"translate\" the code to another platform/language.
Once I get the windows version working satisfactorily I will release it and its source, so anyone who wants to correlate with me in order to add features or port to other systems is free to do so.
I will make a new thread and have a mod close this one once I make the release, and that thread will be dedicated to the continuance of the project. (hehe, I hope I get my first sticky!!
) Lol, I've got a good feeling so far with all of the great postitive feedback on the project. I won't let you guys down.
Posted: Sat Mar 11, 2006 8:15 pm
by D3Phoenix
Okay, I still won't let you down, but due to ...uh...
extraneous circumstances... my computer has been offline and I have been unable to work in Visual Studio. I had a driver conflict when I installed my cool new Laser gaming mouse (1600 DPI!! 5 Buttons!!
), and it sort of forced me to wipe out my XP partition and reload... Luckily I have designed my system to be fault tolerant, I have reloaded windows XP and since I keep all of my programs and data on separate hard drives from windows, All I have to do is repair-install each of my apps and then I'm back online. I lost 3 days of work since my last backup, but that only included some email messages and documents; I backup my source code nightly
I should finish installing Visual Stuido / MSDN / plugins tonight, and should be back to work on the
D2X-XL Prepare For Descent launcher by tomorrow.
Oh yeah, just after the last update (a few hours before the crash) I finished up the main body of code that constructs the INI file. All I really have left to do is correct a few minor formatting glitches in the INI so that it is D2X-XL readable. (Namely, a few options appearing on their own line instead of after their respective commands, and the tracker-list builder is refusing to cooperate and always lists IPs in a single line...)
Should be back on track soon, but I certainly won't have it done as soon as I had originally thought. Sorry...
:)
Posted: Sun Mar 12, 2006 12:47 am
by novacron
Can't wait to see the final outcome of this man, looks promising
Posted: Sun Mar 12, 2006 4:06 am
by Diedel
Phoenix,
I have a 1 GB USB stick, and I backup my stuff there after
every release I make. If I do a significant amount of changes (like the recent localization of D2X-XL), I even make an intermediate backup about every hour. So I will hardly lose anything if my computer goes boom. May you want to think about a similar procedure.
Posted: Sun Mar 12, 2006 10:06 am
by Peter
Well that sucks but awesome that you basically lost no code! Keep cranking on it!
Posted: Sun Mar 12, 2006 11:12 am
by D3Phoenix
Diedel, All I lost were some emails and such. No big deal. The only reason that I lost those is because *gasp* I forgot to force the profile directory in thunderbird onto the D: drive... lol. I have a pretty cool setup that allows me to recover very rapidly from anything short of a hard drive failure, and even then I clone my disks off about weekly. Call me paranoid, and I'd agree with you. And that 1GB USB stick... I've got a 30GB MP3 player that I use for the same. It's mass storage compatible, so it works quite well actually.