UFO:Alien Invasion
General => User modifications => Topic started by: evilhamburger on April 27, 2010, 10:49:05 am
-
Just asking, is there a program out there that allows users to mod with a GUI?
If not, I'm more than interested in making one (Provided people want one)
Basically it would allow faster editing, and would come with a "mod switcher" that would allow users to flick through mods quickly without having to modify their directory whenever they want to play a different mod.
FYI, I have too much time on my hands :)
-
Please note that there probably is one, I just don't know about...
In which case please point me to the download page.
-
I do not understand what exactly you want to do ?! ::)
-
I'm just wondering if there is a modding application out there, and if not would anyone like me to make one?
-
we are currently evaluating different things with the eclipse framework. writing editors for some of the ufo scripts is a first task rudolfowood is already working on.
-
Now I understand... :o
& yes I want that !!! 8)
-
Make a poll ill vote yes i want to easily mod this game
-
Added...
I'll start working on the parsing part of it now...
I'll save the hard work for once I know people want it.
-
but please on an eclipse base.
-
rofl i love when people follow my advice... but not all the time like go kill yourself then the next day their body is found with a note saying fuck me.............
-
I have started work...
Atm I am at a measly ~300 lines of code, and I have designed 1 interface of about 8-9.
By the end of today I should have 1000 lines of code
By the end of Monday I should have 3-4 interfaces built and ~2000 lines of code.
I don't have much time during the week, so expect a prototype early release by next Sunday at the earliest, Saturday the 15th at the latest.
:)
-
I have started work...
Atm I am at a measly ~300 lines of code, and I have designed 1 interface of about 8-9.
By the end of today I should have 1000 lines of code
By the end of Monday I should have 3-4 interfaces built and ~2000 lines of code.
That sounds good and how many lines of code do you think it will take to make this? Just guess mine in 16,000 but i dont know anything about coding so oh well...
-
Well a fully working program will probably be at least 10k lines in the Modding Program
And at least another 1.5k in the Mod Switching program
Those estimates do not take into account interface designs. (Which are normally about 100-800 lines of generated code)
At current I am at ~830 Lines (Plus 100 lines of normal text describing file formats)
I have at least another 2 hours of coding before I decide to go to sleep so chances are I can get alot more done.
Although roughly half of that written code is shared between the Mod Manager and the Modder, so I will probs finish the Mod Manager first.
Also... How do I create a .zip file at runtime? Seems that's the one thing I have never dealt with...
Basically I'm looking for a nice windows API method that I can give a list of files I want zipped up to. Either that or I can use command switches on something like winRAR (But that would require an installation of winRAR on every single computer...)
-
You could use 7zip & the commandline version of it. This is freeware under GPL & it should be no problem to include it.
Here you can find more info on that: http://www.7-zip.org/faq.html
I would think that this problem is solved.
-
windows api? i thought you were coding java classes? use common compress (apache). please do not develop any none-portable stuff as we won't use it for sure ;)
-
Java? nah...
I am current coding it in C#/C++ (I know it sucks...) and am doing so because it is much quicker than pure C++.
Once I have a fully working version, I will rewrite everything in C++ to make it portable (I prototype everything in C#/C++)
BTW... when I say C#/C++ I mean that I use C# plus some C++ code wrapped in a .dll
-
Use winrar alot of people have it
-
1641 Lines so far (Yes... I added them up) and 106 lines of normal text (Describing custom files used by the programs)
The mod launcher is ready for a beta-release. At current it just dumps out .pk3 files in place of their originals, next version will support creating .pk3 files, and therefore be able to simply place .PK3s alongside their default counterparts. (Meaning switching mods is quicker)
It's 2:20am so that's why I am making little sense :)
Current Binaries are:
UFOAImodder.exe
ModSwitcher.exe
Error.dll -- Contains a universal error reporting system, used by both exes
Mod.dll -- Contains classes and functions relating to manipulating .mod files
Settings.dll -- Contains a 460 line completely dynamic, multi-purpose (and standalone :))settings class (Have been meaning to write one for a while)
Later I will roll the .dlls into a single library... But not until I get the .zip functions working...
On my TODO: List for tomorrow is.
- Create a rollback function on ModSwitcher for default files
- Use ZLib to manipulate PK3 files
- Rework ModSwitcher to support .ufos
- Finish coding item file parser/saver on UFO:AI Modder
- Get basic edits working (Means that a preview of the modder won't be far off if I get this done)
-
if you are writing stuff like this, please keep portabiilty in mind - did you had a look at the uforadiant sources yet? an editor is already integrated - extending it might be a good idea. it would be a pity to not use some tools because they aren't portable.
-
So can you release a beta on monday afternoon? To you thats probably Monday late-night.
-
if you are writing stuff like this, please keep portabiilty in mind - did you had a look at the uforadiant sources yet? an editor is already integrated - extending it might be a good idea. it would be a pity to not use some tools because they aren't portable.
My goal never was to build a map editor, and no I have not looked at any sources for UFO:AI.
As for portability, C# is 100% portable to both OSX and Linux, the best thing is I can do all that without leaving windows (Before the hate starts... My windows is awesome and "customised")
I will post a beta for the modswitcher tonight, and some screen-shots of the UFO:AI Modder
-
ok, it's up to you what you code and where you code it in.
uforadiant is not only a mapeditor, but also a particle editor, mapdef editor, ump editor, ufo script editor and so on. so extending this piece of software would be better than adding new tools imo
-
What'choo talking 'bout, mattn? Radiant doesn't edit any of those things. It only edits maps.
Well okay, there seems to be a "particle editor" window, but it's just a non-interactive panel that's bisected black and white.
-
It edits what mattn said plus the material file. Check out the options under Map with an RMA tile loaded.
-
Oh, I see. Doesn't seem too terribly useful though since there doesn't seem to be a direct effect on the in-editor display, so I'd probably prefer to do it with my normal text editor.
-
Wheres the beta?
-
Oh, I see. Doesn't seem too terribly useful though since there doesn't seem to be a direct effect on the in-editor display, so I'd probably prefer to do it with my normal text editor.
that's the point - there should be an in-editor display for this. but this is not yet coded.
-
(http://i934.photobucket.com/albums/ad185/evilhamburger/_1.jpg)(http://i934.photobucket.com/albums/ad185/evilhamburger/_3.jpg)
(http://i934.photobucket.com/albums/ad185/evilhamburger/_2.jpg)
Photos of the basic modding interface and the mod switcher.
<use new link> (http://google.com)
Demo + source of DMSC.dll
WinRAR cannot make .zip files through command line (wtf lol) so I will have to include 7z.exe and run that off command line.
By the end of Saturday I can get every feature as specified in the readme.txt finished (I have lots and lots of spare time on the weekends, none in the week though sorry)
I'm taking most of Sunday off (for obvious reasons), so no coding then.
I chose C# over C++ because this program does not require performance and the ease of programming makes it worth it (Much lower Dev time)
This version requires the .net framework version 3.5 and is windows only. Future versions will only require V2.0 and final versions will be released for both Mac and Linux (Expect a 1-3 day delay between releases for Windows and Mac/Linux)
-
if you are interested in we can give you write access to our svn and you could add this stuff into your private branch.
-
So what percent do you think this is at right now?
-
I'd say around 8% (Both projects combined) towards a final release. (Final as in 100% finished, not final as in released)
The mod switcher is about 75% complete and the Modding application itself does not need to be at a final release stage before it is stable and able to edit certain things.
-
Im a curious guy arent I? Anyway If the modding application is that much completed than I could wait I wait for gigs to download on my slow little connection so I can wait for this. Oh and I knew it doesnt have to be made fully to work, thats what 2.3 is likeish......
-
New version: (beta)
Report any suggestions/faults/etc
---Use with caution---
Major Updates:
- PK3 files can be created by the program from UFOs
- Supports backing up and restoring original PK3s
- Mods no longer overwrite existing PK3s
- Bug fixes and debug updates
TODO:
- Make into a quick launch application and streamline interface (any suggestions?)
- Support models, music, etc in mods instead of just new UFO files
- Stability updates -- alter Debug structure so an error is handled gracefully
SCROLL DOWN FOR LINK (http://google.com)
Now I get to finally start work on the main modder lol
<last minute update>
Errors are now handled better...
-
Its been two days... Hows the thing going along? Ready for a release or screenshot? The mod switcher works fine except for the error at the beginning. Know it?
***ERROR***
An exception has occured. Error was a Bad File Parse exception.
Error says "Could not read settings file -- Invalid settings file magic"
Memory dump not supported...
Data rescue not supported...
Stack Trace:
DMSC.dll Debug Error
DMSC.dll Debug Error
DMSC.dll SettingsManager ReadSettings
DMSC.dll SettingsManager .cctor
DMSC.dll SettingsManager SettingExsists
DMSC.dll PathHelper ValidateUFOAIInstallion
DMSC.dll PathHelper .cctor
DMSC.dll PathHelper ValidateUFOAIInstallion
Mod Switcher.exe ModSwitcher .ctor
Mod Switcher.exe Program Main
And this when I try to put files with my mod:
***ERROR***
An exception has occured. Error was a Nonexsistent File exception.
Error says "File "" does not exsist, mod creation failed."
Memory dump not supported...
Data rescue not supported...
Stack Trace:
DMSC.dll Debug Error
DMSC.dll Mod .ctor
Mod Switcher.exe ModSwitcher btnEdit_Click
System.Windows.Forms.dll Control OnClick
System.Windows.Forms.dll Button OnMouseUp
System.Windows.Forms.dll Control WmMouseUp
System.Windows.Forms.dll Control WndProc
System.Windows.Forms.dll ButtonBase WndProc
System.Windows.Forms.dll Button WndProc
System.Windows.Forms.dll ControlNativeWindow WndProc
System.Windows.Forms.dll NativeWindow Callback
System.Windows.Forms.dll ComponentManager System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop
System.Windows.Forms.dll ThreadContext RunMessageLoopInner
System.Windows.Forms.dll ThreadContext RunMessageLoop
Mod Switcher.exe Program Main
(probably posted this at the right time >.>)
-
Just wondering if the program fully crashed or if the Error Window just opened?
The first one I'll have to look in to, however the second one I believe is because I forgot that custom *pk3 files exist only inside the .mod file.
Next version I will fix both these up, however I can not do any work during the week because of my school. (Just a lucky chance I happened to be checking my email and say this topic had been posted on)
-
First error was a last second mistake by myself... I was testing the error window (last second addition) and wrote in a change to the settings file to make all things throw an error...
Fixed :)
Second error I will get to later, my break is almost over.
-
XD I KNEW IT WAS THE RIGHT TIME!!! Oh and for the second error that just happens when i try to select multiple pk3 files and put them in the program. Can I do that? Should have clarified that. Also can you add a feature that saves where the ufo.exe file is? Instead of it prompting for me to show where it is everytime?
-
That's what the settings file is for, it also only ever prompts to back up once.
However the error means the settings file cannot be read (I mentioned why above) and as such it prompts again and backs the PK3s up again.
I couldn't find any registry entries that pointed to the UFO:AI installation, that's the only reason it asks for it in the first place...
-
Ok, this is the last update until Saturday, at which time I will give you all news on how the modding part of this project is coming along.
Here are 3 bugfixes for the mod switcher:
1. Errorviewer was showing too much call stack information. (See above, call stack includes "Debug.Error" when that should be trimmed, actual debug.txt did not have this problem)
2. A typo would mean that settings.bin would always be viewed as "corrupt"
3. Temp directory is now cleared often to ensure mod files do not corrupt.
Download (http://rapidshare.com/files/386016580/Switcher.zip)
-
evilhamburger, I salute you. this is awesome. ;D
cant wait for the mod maker itself, since I'v been itching to make one.
-
Dido that im gonna be hamburgers main supporter... unless didit wants to help support it to.
***ERROR***
An exception has occured. Error was a Nonexsistent File exception.
Error says "File "C:\Users\Public\UFOAI-2.3-dev\base\zz_Blah_0base.pk3" does not exsist, mod creation failed."
Memory dump not supported...
Data rescue not supported...
Stack Trace:
DMSC.dll Mod .ctor
Mod Switcher.exe ModSwitcher btnEdit_Click
System.Windows.Forms.dll Control OnClick
System.Windows.Forms.dll Button OnMouseUp
System.Windows.Forms.dll Control WmMouseUp
System.Windows.Forms.dll Control WndProc
System.Windows.Forms.dll ButtonBase WndProc
System.Windows.Forms.dll Button WndProc
System.Windows.Forms.dll ControlNativeWindow WndProc
System.Windows.Forms.dll NativeWindow Callback
System.Windows.Forms.dll ComponentManager System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop
System.Windows.Forms.dll ThreadContext RunMessageLoopInner
System.Windows.Forms.dll ThreadContext RunMessageLoop
Mod Switcher.exe Program Main
Ya, this happens because i put in the old pk3s and it calls them something else then i put in another pk3 then it shows this error. Pretty much why does it insist on makeing up pk3's that arent there? And thats all. (probably mentioned this though)
-
It still works perfectly until you hit edit :P
The actual editor will take quite a while for the first release, I want it to be able to parse all UFO files and mod many of them before I release.
-
Also, a few questions...
Does the game care what data is in which UFO? (ATM I am working on the assumption that the organisation is for readability...)
This is going to seem like a dum question... Where are the messages for techs/etc found?
description {
default "_laser_txt"
}
pre_description {
default "_laser_pre_txt"
}
IE where do I find/edit those messages?
And is everyone OK if I don't do a menu editor for a while? (Meaning leave that until last)
-
It think it is entries from the PO files.
-
Awesome...
What PO files?
-
Awesome...
What PO files?
The installer doesn't contain them, but the compiled MO files. Btw long texts like research descriptions should be edited on the wiki. We copy them into the PO files via scripts.
-geever
-
Thanks, found it now :)
Is there anywhere I can find a file descriptor for this? Or do I have do download source to extract it from there?
Or does one of the included executables include a switch to do this via command line?
-
Thanks, found it now :)
Is there anywhere I can find a file descriptor for this? Or do I have do download source to extract it from there?
Or does one of the included executables include a switch to do this via command line?
We use gettext (http://www.gnu.org/software/gettext/) for translations.
-geever
-
Have read up on all that, so if I want my application to support changing in-game texts I have to find a MO decompiler (or make one myself)? (I don't need to worry about finding one if I can find out the hashing algorithm)
Next, does UFO:AI support modded language files? (IE can they be placed in a PK3 or do I have to overwrite existing files?)
Would UFO:AI mind me excluding a hash table from the MO files? What kind of performance hit would this produce?
Note: I'm a very DIY guy when it comes to programming.
-
Have read up on all that, so if I want my application to support changing in-game texts I have to find a MO decompiler (or make one myself)? (I don't need to worry about finding one if I can find out the hashing algorithm)
Po files are downloadable from SVN web interface, then you only need a po/mo compiler which is shipped with gettext (msgfmt.exe).
Next, does UFO:AI support modded language files? (IE can they be placed in a PK3 or do I have to overwrite existing files?)
gettext doesn't support compressed languagefiles they must be individual files in the directory tree supplied. However you can create new languages, just add definitions for them into languages.ufo scriptfile.
Btw if anyone creates a real new translation should be sent us as a patch to include into the official game. Modded, hacked language files are another category ofc.
Would UFO:AI mind me excluding a hash table from the MO files? What kind of performance hit would this produce?
IDK. I would suggest using the standard msgfmt.
-geever
-
Po files are downloadable from SVN web interface, then you only need a po/mo compiler which is shipped with gettext (msgfmt.exe).
Unfortunately my program can't just mod a standard PO file, for it to be an editor it needs to be able to read off MO files.
gettext doesn't support compressed languagefiles they must be individual files in the directory tree supplied. However you can create new languages, just add definitions for them into languages.ufo scriptfile.
Thanks for the idea about creating new languages. :)
So I guess for now I'll code an MO parser and an MO file creator? (Not really a compiler as all it doesn't spit out a PO file)
-
Four days hows everything coming along burger?
-
Going well, It is now able to read and write MO files, a basic string editor has also been created.
It can now read "inventory", "font", "tips" and "damage types".
Next on the list are aircraft and craft items.
I am saving Items for last, as the rely on most other types and are a very broad item to parse.
-
Sweet
-
Well put, legendman! Very sweet indeed! ;D
Like I have said before, Cant wait for the modmaker! good luck burger!
-
Whenz canz we haz a beta? :P
-
In this case (unlike the mod switcher) I will only be releasing when it is (hopefully) bug free.
I hope to release a few screenies next weekend, and then the mod switcher the weekend after (release 5th or 6th of June)
Remember this is just a project in my spare time, I have a lot of school work to do :P (Although playing UFO:AI is more fun...)
-
Are you in college? Because my school is out on friday. And it takes that long to at least make something that works and that we can get use to? Ah oh well at least its not as long as it will take to wait for HL2:E3. (Four years in the making without any information. Valves good.)
-
I wish I was in college... Grade 10 at QASMT. (A weird school in Australia)
Travel times mean that I don't get much time to work on projects like these, but I have plenty of time on the weekend (Today was subject selections, so I get today off :D)
-
Do you have summer break over there? When is it? Mine is this saturday so i could go learn some stuff and maybe help you out.
-
Unfortunately it's winter here and I have about 4-6 weeks of term left... Coming up to exam and assignment time...
-
Woops your in the southern hemisphere....
-
So hows it coming along there ladie?
-
No progress in the last week... Exam block this week and part of next week.
-
Darn :(
-
Its been almost 2 weeks. You still doing exams? Its ok just wanna know if youve been working on it.
-
I wish lol
Today was the end of semester Chem exam, physics presentation and a business presentation... tomorrow is Maths exam and my last French exam for 3 months.
By the end of next week I will have finished all of my exams and assignments, this school is really non-stop when it comes to the last month of a semester.
Sorry for delays, if I find out I will be unable to continue I will translate the code into C++ and release it to the public.
-
Or you could wait a month then start working on it again. Anyway i hope you get to continue working on it.
-
any more news on this yet or are you still working on it
-
Kool Thanks for letting every one known
-
Its been forever whats going on burger? Exams and everthing done? You gonna start working now?
-
Yeah but things are getting really hectic. I think all I have time to do it clean up the code and release it for others to finish...
Sorry, this seems to happen a lot to things I work on (Never finished due to time constraints)... I've only been home one day all week.
-
Sorry for getting everyone's hopes up about all this, but I will be releasing full source-code so others may continue the work.
Current progress is this:
-> No user interfaces
-> Little backend support
-> Parsing only some types
-> Poor code structure
I will clean up the code so that the last one goes away, and maybe (MAYBE) make a quick dynamic reader to fix the third one... The others are up the the public.
-
I just got back from vaction and now I hear bad news :'(. Well Im learning some cosing so I might make the GUI for it.