Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - KingOfAwesomnia

#31
Help / Extra fields in XML
December 28, 2014, 12:26:43 PM
Hi all

As you may have seen over at the mod tools forum, I'm making a mod manager / game launcher. For some of the extra features I would implement, I was thinking of adding fields to the About.xml file in the mods (like <modVersion> and <modSettings>). I tested this and the game doesn't seem to make a big deal out of it (it runs just like normal) but in the debug log I can see XML error messages appear because of the extra fields.



Could this potentially break a mod / the game or should it be okay to include the extra properties in About.xml?

The game seems to work just fine, and I know that in general XML should be scalable like this, but upon seeing the errors I thought I would ask if anyone knows more (I'm not very familiar with RW modding itself).
#32
Quote from: Igabod on December 28, 2014, 09:16:34 AMJust wanted to be sure it scanned for more than just RimWorld as the directory name
I'll see how I can best balance things.


Furthermore, I designed a "mod info" screen for the app. For the example, I got  the Project Armory mod data from the forum and checked out the kit switcher, and used that information to design this screen. I think it works pretty well, though it's not really complex - just a bunch of on/off switches. I didn't want to go into too much detail since I don't want to lose focus on the main goal - the auto-updater.



In the actual app, the mod information for this screen will be retrieved from the About.xml file.

Thoughts / ideas / suggestions?

[offtopic] I never downloaded project armory cause I don't play for the fighting, I play mainly for the building (so pretty much all my mods are tech research, furniture, and loads of plants and animals) but I must admit this mod looks cool.. Might give it a go in a bit :)
#33
Quote from: Igabod on December 28, 2014, 01:20:39 AMI have all the various alpha versions installed onto my desktop. So the current alpha version is located at Desktop/RimWorld651Win
Hm, I see. Accounting for all alpha build versions is not really a good idea (this would cause the program to hang upon first start while it's scanning all the possible directory names, possibly causing a program crash) but I can add the alpha 8 build versions to the directory check since that is the latest version.
#34
Quote from: Evul on December 27, 2014, 06:39:26 PM
It is used to turn on and off weapons in the game so you can use only one or two instead if all. :)
That's exactly the functionality I'm targeting with the "mod settings" idea :)
Except that instead of just making it for one mod, I would provide the functionality as a settings window built into the launcher, for any mod maker to implement in their mod.
#35
Quote from: SubZeroBricks on December 27, 2014, 05:59:29 PMThis is super cool!
Thanks! I love the support so far.


Quote from: SubZeroBricks on December 27, 2014, 05:59:29 PMOut of interest, what are you writing this in or is that a stupid question?
There's no such thing as a stupid question :)
I'm writing the program with Javascript and Node.JS within a Node-Webkit app container (https://github.com/rogerwang/node-webkit). I could write it in .NET or in C# (which are more native to the OS, and I know them both quite well) but there are 4 major things I love about NW that .NET and C# don't give me:
1. The flexibility and consistency in terms of interface design (no crappy Windows-powered buttons that change their appearance across OS'es and never look exactly right)
2. The possibility of cross-platform deployment (I could use virtually the same codebase to make a Mac and a Linux version as well)
3. The fact that error reporting is much more accurate in Javascript and there's no compiling needed for testing (this makes development go a lot faster)
4. It takes exactly one line of code (and no additional libraries or imports) to request data from a server. This is incredibly simple to do compared to the hassle it is in .NET or C#, making it a lot easier to develop things like the mod gallery with online database.

The only real downside (if any) is that the file size of the app will be a bit larger than a native .NET or C# program (60-70MB vs what would be around 30-40MB). The memory usage will also be slightly higher compared to e.g. an optimized C# app, but still not much more than an average google chrome web browser window. Any pc that can run RimWorld should be able to handle it without a problem.


Quote from: Evul on December 27, 2014, 06:17:15 PMIf you need a test mod or something you can use project armory. :)
I'm simply using the mods I already had in my game, switching between various mods to see how well the system works with them all and if it doesn't screw up anything in-game.


Quote from: Evul on December 27, 2014, 06:17:15 PMAlso we are in need of a guy/girl that cab update the kit switcher
I have no idea what the kit switcher is (To be honest I don't use project armory myself) but if my assumption is correct and it's something that allows the player to switch between different versions of the mod, I already have the idea to build something like that into the mod manager itself. Take a look at my Trello board https://trello.com/b/DeIEWPC2, "mod settings" (in the "possible ideas" list) is something along the lines of what you were thinking of I think?
#36
Thanks, hadn't thought of desktop. I'm not going to add /Spel/ cause it's very language specific (although in Dutch spel also means game). The program now checks:

Desktop/RimWorld
/username/Downloads/RimWorld
C:/RimWorld/
C:/Games/RimWorld/
C:/Program Files/RimWorld/
C:/Program Files (x86)/RimWorld/
D:/RimWorld/
D:/Games/RimWorld/
D:/Program Files/RimWorld/
D:/Program Files (x86)/RimWorld/

And if the game is not found, the program will ask where your RimWorld folder is.
#37
Quick question: what's the path you guys put the RimWorld game in?

I always put mine in D:/Program Files (x86)/RimWorld but I know that there's probably a lot of people who put the game in a different folder. You'll be asked to set the path if the program can't find the game files, but I want to add a number of possible and often used paths for the program to check automatically so you don't have to input it manually.
#38
Quote from: Evul on December 27, 2014, 11:16:41 AM
How do you plan handeling diffrent directory names? For exsample project armory rename it's main directory to not interfere with precise version.
Should we be forced to make a modmaneger version to have it function properly. (it's not a problem :P ) just a public question on how sensitive it will be.

Also will there be a way of handeling mod version numbers?
Since the tool will eventually include auto-updating, I'm not going to account for different directory names. I will ask modders to add something like a <modVersion> tag in their About.xml file (I've tested this and RW doesn't seem to mind extra tags in the xml, and this seems a cleaner solution than adding an extra file), and the program will use this version tag to determine the version of the mod and check for updates. The directories will then be managed by the mod manager. I'm thinking of using different directory names for managed mods altogether (e.g. "mod_" in front of the folder name) so I don't interfere with for instance development versions of the same mod or manually installed mods.

The tool will do the packaging and uploading to the database though, so once you've added the exta xml tags you'll simply have to click "upload" inside the program, browse to the mod directory and let the program do the work.
#39
I'm currently working on a prototype that will serve as a basic mod manager with install and uninstall functionality (manual downloads).
From here, if there is enough support from mod makers, the next step will be to add a "mod gallery" part that is linked to an online database where people can upload their own mods.
When this is done, I will make a "launcher" version that will auto-update and then launch the game (this could potentially be a full-fledged launcher to edit the in-game settings as well, but I don't think this would be really necessary).

This all will take a while to be completed, but I expect to have the first version (without mod gallery) ready soon.


Quote from: letharion on December 26, 2014, 07:46:10 AMit's a) going to be a lot of work
It's a fun side project, I enjoy programming these kinds of tools, so I don't mind it being a lot of work. Especially since I don't have a job atm anyways so plenty of time to work on it :)


Quote from: letharion on December 26, 2014, 07:46:10 AMand b) should ideally be done in some form of co-operation with Tynan as it would potentially be a big deal in the community and thus for the game as a whole.
I don't know if cooperation would really give it much of an advantage. With input from the community we can make this little tool great on our own.


Quote from: Evul on December 27, 2014, 07:40:33 AMsome kind of requirement to the mod or have it connect to the database via a dll or simular added to a mod
I'm thinking of using the existing about.xml file to add some data (like mod version) to the mods to use in the gallery system.


Quote from: Igabod on December 27, 2014, 08:45:04 AMI maintain the unofficial Alpha 8 mod list thread and would be willing to offer my services to converting the information there into a format that you choose to be read by the program. If there is anything else I can do to help this project along then don't hesitate to ask me.
The way I see it, individual mod makers should add some information to their mod and then upload it to our database. I've noticed that not all mods are packaged in the same way (.zip, .rar, .7z files, sometimes with the content in subfolders, sometimes without subfolders...) so it would be quite a lot of work if we had to go through all these mods and fix them and format them in the correct way, while the mod makers (who have their mod source available) can just add those few lines of data to their mod, point the program to the directory, and let it do the work of packaging and uploading the file (yes this will be done inside the program, makes it easier for me to manage the file structures and such).


Quote from: Evul on December 27, 2014, 08:51:33 AMAlso a way to have statistics on downloads and updates :)
Good point. I was already planning to add a "rating" box to see how many people like each mod, but statistics like number of downloads and activation rate can be easily tracked as well.


Screenshot of the basic mod management interface as I'm working on it (how it will work: click to enable/disable, drag & drop to reorder). What do you guys think?

Note: I know the style of this app doesn't fit with the actual game. I specifically chose not to follow the style of the in-game interface to avoid confusion about development and ownership (so that people don't start bugging RW support for problems with the launcher, for instance)
#40
Hi all

I'm thinking of making a little program that will list all existing RimWorld mods, downloads the ones you want and updates them when necessary. Would anyone be interested in using it? And, more importantly, would you guys who make the mods be interested in adding your mod to yet another database?

EDIT2: Download the latest version now at http://rwlauncher.woubuc.be/ (v0.1)

EDIT: You can find the ideas and the progress of the tool at the Trello board: https://trello.com/b/DeIEWPC2

Current ideas:
- Mod database listing all mods, with screenshot(s) and description
- Upload function for mod makers to add their own mods
- Mod versioning per alpha version, so that people who play earlier alphas can still use the tool (but only mods compatible with your version of the game will be shown, so no sifting through lots of mods for different versions like what happens here on the forums)
- Downloader that automatically downloads the mods to the RW mods folder
- Automatic updater that keeps your mods updated
- Activated mods manager + option to change mod order
- Function to flag incompatibility / clashes between mods

But of course this won't get anywhere if you guys don't think it is a good idea. Especially mod makers, I need your opinions because without your support the database would be empty and useless. So please let me know what you think.
#41
I love the idea, I've used it in my new game and it's pretty awesome. But, I didn't really like the textures so, since the advice in the original post is to lay actual flooring first and lay the heating over them, I decided to simply add some "heating marks" to the texture instead of having a full tile texture. I think it looks better this way, I've attached a screenshot and the texture I made, if anyone wants to use it. It's nothing special though, took me like 2 minutes or so to make :)

[attachment deleted due to age]