ForgeEssentials / ForgeEssentials

Repository for ForgeEssentials 1.x
https://www.curseforge.com/minecraft/mc-mods/forge-essentials-74735
GNU General Public License v3.0
281 stars 144 forks source link

1.6 launch strategies + the future of ForgeEssentials #884

Closed yuuka-miya closed 11 years ago

yuuka-miya commented 11 years ago

A few FML changes in 1.6 that we will have to accommodate:

1) The FML relauncher, as well as library downloading capabilities, have been removed. To get around this, we will provide an installer for the mod ( https://github.com/luacs1998/ModInstaller ), which will handle downloading and installing of the mod files, however manual downloads will still remain. This installer will allow for selection of modules to be installed. It will also handle download and install of libraries, which means, no one should be downloading the servercomplete package anymore unless they have to.

2) Build change: Modules are no longer installed to the mods folder. They will be installed to a modules folder within the ForgeEssentials install folder. Likewise, libraries will be installed to a lib folder, also within the FE folder. This folder structure will be set by the installer, and in the servercomplete package. This will require some classloader hacking on our end, however I spoke to LexManos and he says it should be okay.

Questions?

Also, I'd like to turn this issue into a living discussion on whether we have reached the goals set out at the start of development, and what should be done to achieve this (and don't talk about rewrites, I HATE them)

AbrarSyed commented 11 years ago

I agree with the modules thing bieng in a second place. I think it would also be nice to have a gui on the installer allowing people to select modules, and having those installed along with the core and whatever libraries. However, when it comes to downloading libraries, I don't think we should jump the gun quite yet. Just because forge no longer supports downloading libraries does not mean that the launcher won't provide something like that. Now that the launcher downloads its own libraries, You would think Mojang would have the forsight to allow the hooking of that by outside mods. But anyways, Im basically saying that don't do too much work into it till we know its needed. Also, we can shade our dependencies into our built jar. That means we basically pack the classes of our dependencies along with our mod in the jar. Granted this makes a bigger download, but.. its s possibility.

yuuka-miya commented 11 years ago

My plan for the installer is to support selection of modules from the outset. The launcher will support downloading by outside mods, however to use that we have to supply a profile, and that most likely will necessify an installer, and it will also cause issues with Forge, which also uses a profile. The reason why I don't want to shade the libraries into the core jar, is part of my plan to move modules away from the mods folder. My installer will download libraries to the same place. And also, packaging ~8MB of libraries is a problem. We currently have 5 dependencies, and with the addition of WorldEdit, 6, and no place to put them. Nor do I want to clog up the mods folder with our stuff. I want to keep the FE distribution package as small as possible, so we don't end up like Aether, which makes users download 100MB of files every update. I don't think people want that.

yuuka-miya commented 11 years ago

For posterity:

Jun 29 22:23:18 AbrarSyed well, I also asked for stuff so we could do partial-selection activations.. Jun 29 22:23:24 AbrarSyed but.. that hasnt gotten arround yet.. Jun 29 22:23:43 AbrarSyed luacs1998, so.. you going for a full minecraft launcher? Jun 29 22:23:52 luacs1998 nope Jun 29 22:24:11 AbrarSyed sounds like it, profile and everything :) Jun 29 22:24:16 AbrarSyed but anyways Jun 29 22:24:17 luacs1998 nope Jun 29 22:24:24 luacs1998 i'm referring to mojang's launcher Jun 29 22:24:42 AbrarSyed right now, we have a pretty big pool of dependancies yes Jun 29 22:24:48 luacs1998 yeah Jun 29 22:24:51 AbrarSyed however, a few of those will be going into the trash Jun 29 22:24:55 luacs1998 like? Jun 29 22:25:00 AbrarSyed like... .. what was it.. Jun 29 22:25:03 AbrarSyed the java database thing Jun 29 22:25:10 luacs1998 jdbc? Jun 29 22:25:15 luacs1998 don't we use that? Jun 29 22:25:18 AbrarSyed that will be replaced sqlite Jun 29 22:25:26 AbrarSyed the H2, thats what it was.. h2 Jun 29 22:25:31 luacs1998 sqlite is fatter Jun 29 22:25:32 AbrarSyed musql will saty Jun 29 22:25:46 AbrarSyed fatter or faster? Jun 29 22:25:58 AbrarSyed or both? Jun 29 22:26:14 luacs1998 fatter Jun 29 22:26:19 luacs1998 as in, bigger file size Jun 29 22:26:25 luacs1998 more of a problem if we shade Jun 29 22:26:49 AbrarSyed the metrics jars... those arnt even packed with us are they? Jun 29 22:27:07 AbrarSyed pirc, we can live without I think... Jun 29 22:27:54 luacs1998 pirc is the library i need for irc integration Jun 29 22:27:59 AbrarSyed I understand Jun 29 22:28:02 luacs1998 either that or i write my own Jun 29 22:28:20 luacs1998 and rlon said "you can do that if you have 1.5 years of free time" Jun 29 22:28:25 luacs1998 which i dont Jun 29 22:28:26 luacs1998 so ya Jun 29 22:28:34 AbrarSyed irc protocol is little more than sending plaintext to a socket Jun 29 22:28:41 AbrarSyed youd be surprised how simple it is Jun 29 22:28:47 AbrarSyed it can be done entirely in a single class Jun 29 22:28:55 luacs1998 trust me, i spent a whole afternoon writing it Jun 29 22:29:13 AbrarSyed ofcourse, there will be a lack of features, but I doubt we need many features when it comes to an irc bot Jun 29 22:29:28 * AbrarSyed will have to look at it later Jun 29 22:29:34 AbrarSyed asside from all of that Jun 29 22:29:59 AbrarSyed we can in fact still download the jars the way FML does.. but by ourselves Jun 29 22:30:16 luacs1998 yes, but when can we install them? Jun 29 22:30:20 AbrarSyed as long as the jars are downloaded to the a folder thats already part of the classpath, we should be able to load the jars Jun 29 22:30:37 luacs1998 we can't use a thread to download, because it may not be done by the time they're needed Jun 29 22:30:42 AbrarSyed like a libs folder or something Jun 29 22:30:45 luacs1998 that can be easily arranged Jun 29 22:30:57 AbrarSyed I plan on stalling the main thread on pre-init for that Jun 29 22:31:06 luacs1998 i spoke to lex today, he says all i need is classloader.addURL() Jun 29 22:31:12 luacs1998 people will hate you Jun 29 22:31:17 AbrarSyed itl only be first launch, so we won't be stalling it for ever Jun 29 22:31:27 AbrarSyed not to mention.. servers always take forever to startup :P Jun 29 22:31:41 AbrarSyed people will hate me? what do you think FML has been doing all this time for its libraries?? Jun 29 22:31:47 AbrarSyed lol Jun 29 22:31:52 luacs1998 hehe Jun 29 22:32:00 luacs1998 you can do that if you want.. Jun 29 22:32:13 luacs1998 but given as the way i have my installer structured.. Jun 29 22:32:13 AbrarSyed youare free to make your launcher Jun 29 22:32:21 luacs1998 its not a launcher Jun 29 22:32:24 AbrarSyed however... I doubt people would use it for a server... especially if its a gui. Jun 29 22:32:27 luacs1998 you still launch it the old way Jun 29 22:32:32 AbrarSyed installer Jun 29 22:32:40 luacs1998 i'm gonna see about that Jun 29 22:32:50 luacs1998 generally, i took a look Jun 29 22:32:59 AbrarSyed unless you make a nice CLI thats semi=gui :P Jun 29 22:33:07 AbrarSyed but anyways Jun 29 22:33:15 AbrarSyed here is my final decision Jun 29 22:33:19 luacs1998 ? Jun 29 22:33:21 AbrarSyed sure make a installer launcher thing Jun 29 22:33:24 luacs1998 but Jun 29 22:33:42 luacs1998 i COULD throw out my code now, but ya Jun 29 22:33:43 AbrarSyed however, we will still be making the internall downlaoder thing. Jun 29 22:33:59 luacs1998 hmmm Jun 29 22:34:01 AbrarSyed thats your choice, to throw it out or not. entirely your choice Jun 29 22:34:13 luacs1998 thats part of the modulelauncher or what.. Jun 29 22:34:35 AbrarSyed before that Jun 29 22:34:54 AbrarSyed wel do it in construction, or maybe before that via a static block Jun 29 22:35:12 luacs1998 on construction? Jun 29 22:35:14 AbrarSyed depends Jun 29 22:35:19 AbrarSyed and.. thats when I rewrite everything Jun 29 22:35:25 AbrarSyed mod construction.. Jun 29 22:35:29 AbrarSyed the constructor Jun 29 22:36:38 AbrarSyed now.. regardless of 1.6, I will continue and finish GMCP Jun 29 22:36:49 luacs1998 well, i can get a construction event Jun 29 22:37:07 luacs1998 when you're done, can you help me take a look at eradicating propqueries? Jun 29 22:37:15 luacs1998 (from the API) Jun 29 22:37:54 AbrarSyed construction event is unnecessary Jun 29 22:38:05 AbrarSyed I was literally thinking about pyutting it in the constructror of the @mod Jun 29 22:39:07 luacs1998 wait Jun 29 22:40:09 luacs1998 im gonna find a place where i can hack my classpath additions in Jun 29 22:40:19 luacs1998 then i'll put in my lib dls there too? Jun 29 22:40:52 AbrarSyed wherever vanilla puts its, we should put ours Jun 29 22:41:01 AbrarSyed after that, we should keep our modules in a different place Jun 29 22:41:06 luacs1998 https://github.com/MinecraftForge/FML/commit/ab91647546e30cbe3cee82b4f7782e07dd0f3a35 Jun 29 22:41:14 AbrarSyed somewhere in the ForgeEssentials folder or something Jun 29 22:41:19 luacs1998 on client, its quite convolted Jun 29 22:41:25 luacs1998 on server, its shaded into the jar Jun 29 22:41:31 luacs1998 my plan is Jun 29 22:41:41 luacs1998 modules go into /forgeessentials/modules Jun 29 22:41:56 luacs1998 libraries and locales go into /forgeessentials/libs Jun 29 22:42:29 AbrarSyed hehe, alright Jun 29 22:42:37 AbrarSyed we can do that Jun 29 22:42:51 luacs1998 i was originally considering having a fake transformer to do that but meh Jun 29 22:43:42 AbrarSyed yeah no bad idea Jun 29 22:43:44 luacs1998 ahh Jun 29 22:43:55 luacs1998 now to check if IFMLCallHook exists in 1.6 Jun 29 22:44:04 AbrarSyed orly? why? Jun 29 22:44:11 * AbrarSyed has never heard of that, nor used it Jun 29 22:44:30 luacs1998 "This call hook allows for code to execute at the very early stages of Jun 29 22:44:30 luacs1998 * minecraft initialization. FML uses it to validate that there is a Jun 29 22:44:30 luacs1998 \ safe environment for further loading of FML." Jun 29 22:45:18 luacs1998 hmm Jun 29 22:45:23 luacs1998 so just 4 things to do Jun 29 22:45:28 luacs1998 api refactor Jun 29 22:45:31 luacs1998 clientside gui Jun 29 22:45:40 luacs1998 change module install method Jun 29 22:45:57 luacs1998 maybe worldedit Jun 29 22:45:59 luacs1998 fix bugs Jun 29 22:46:35 AbrarSyed fi bugs should be first Jun 29 22:46:53 AbrarSyed and as I said before.. its best to leave the APi refractor till after the repo change Jun 29 22:47:12 luacs1998 well Jun 29 22:47:16 luacs1998 it's half done Jun 29 22:47:23 luacs1998 no harm tying up loose ends Jun 29 22:47:31 AbrarSyed very well Jun 29 22:47:58 luacs1998 and also, i want some form of reliability in 1.3, at least it's a good enough system for mods use Jun 29 22:48:16 AbrarSyed very well Jun 29 22:48:52 luacs1998 then we just throw them a bunch of features and say "look, we're gonna nuke every line of code and start afresh, so heres some features to knock yourself out while you wait Jun 29 22:49:08 AbrarSyed hehe Jun 29 22:49:13 AbrarSyed well.. we arnt nuking everything Jun 29 22:49:17 luacs1998 this codebase will be released for 1.6 Jun 29 22:49:22 AbrarSyed there will be quite a bit of Copy-Paste going on :) Jun 29 22:49:40 luacs1998 then if we havent finish refactoring by 1.7, we can just update the old code Jun 29 22:49:50 luacs1998 only bugfixes go into it after 1.3 Jun 29 22:50:34 AbrarSyed hehe Jun 29 22:50:40 AbrarSyed I have a feeling that 1.7 is a long way off Jun 29 22:50:46 luacs1998 it better Jun 29 22:50:55 luacs1998 eloraam better update redpower before 1.7 Jun 29 22:51:17 luacs1998 if not redpower'll be kicked off mcforums :P Jun 29 22:52:27 AbrarSyed hehe Jun 29 22:52:54 luacs1998 maybe if possible we can do FE1.3 for 1.5 and 1.6

HaoSs07 commented 11 years ago

i think you guys need to get out more. People uses fe just because they cant use bukkit. So who uses FE ? ftb and tekkit users. Most of ftb/tekkit went for mcpc and ported plugins. FTB on 1.5 its a beta private pack. you wont find any server for 1.5. Also tekkit light. or what's called. has a low player base. most of tekkit servers are still on 1.2.5. so whats the point on deving 1.5 anyway ? u abandoned 1.4.7 that's still in use to dev a not used 1.5. and now you want to continue deving it along 1.6 ? Just go for 1.6 and put the time for 1.5 in fixing those infinite game braking bugs...

Also,I'm not a hater, i always wanted to help. and i given reports on allot of problem. but when nothing is done to fix it you get tired and move on... . Make your own server! make it public. and use FE. you will eventually see how hard is it to use. and how meany thing never worked. Its just hard constructive feedback.

yuuka-miya commented 11 years ago

Consider this a progress update on FE. That's why I run a server. Though I must agree some commands are hard to use, I do find myself accidentally doing /time lock day on my MCPC server (which i'm planning to switch to FE in the future). And just so you know (yes, it's my turn to rant), me and @rlonryan are the only ones working on the mod actively. I have my high school finals in a year's time, and as such cannot dedicate too much time to develop the mod. I try to take all bug reports, all support requests, but I am only but a mere mortal and cannot fix or implement everything, though I do try my best. Abrar is away working on GMCP, some project of his to allow easier usage of MCP, but he assures me he'll be back when he's done the project. Dries is away with some group relating to the ModJam and I can't just yell at him to come back. Malk and Bob are MIA, and I haven't heard from them in a while. Myst, I guess, has pretty much left the team to focus on ThaumicBees. jgdovin in currently going through bad times IRL, i can't simply ask him to get back with working on the mod. Not that I don't welcome suggestions or bug reports or anything like that, I just don't have the time to familiarise myself with the code written by other team members. So I seek your understanding in this matter. Regarding 1.4.7 I COULD backport features if i had the time, it's not a drastically different codebase, but the problem is that Minecraft modding has moved on! And so should we! I try to match FTB/tekkit as closely as I can, but sometimes that is simply not possible.

HaoSs07 commented 11 years ago

You use mcpc. good for you :) i went full retard and made my server vanilla only. with FE. mytown + ported pex. Don't get me wrong. it works. Its on. players are happy. but i did this just because FE "had it all"...and a lot of moduls newer worked. This is bad. I probably have to go mcpc to when ftb 1.6 goes live, i don't want this. also there is no logical reason to stick with FE when you are forced to use mcpc, bukkit essentials mops the floor with fe commands/perm....

yuuka-miya commented 11 years ago

Read edits to my previous post, then you'll understand the situation I'm in.

HaoSs07 commented 11 years ago

yes. understand your position. I'm not disappointed by you,but by the situation, by the big goal set and never reached. I really believed FE is the future and modding will brake from the bukkit dependency,it was never build for mods and probably never fully work with them. When firs FE went live. and i talked with the devs. they wanted to do a full working out of the box environment for a server admin.With tons of config option. A lot of time passed and the quality is far from expectation. And how things are moving, probably never will. Im a little mad because i need to go back to bukkit...

yuuka-miya commented 11 years ago

I agree. We have a bold vision that was never realized, but yes, Abrar is a big dreamer :P

HaoSs07 commented 11 years ago

i'm going to find him and poke him with a stick when he sleeps so he stops having big dreams

yuuka-miya commented 11 years ago

Good luck is all I can say, in the meantime I have to, as they say in Redmond, WA, "shut up and ship!"

HaoSs07 commented 11 years ago

I also have to go finish cooking, may the force be with you.

yuuka-miya commented 11 years ago

And also with you. Hop on to irc?

HaoSs07 commented 11 years ago

will do that in the near future. Just to be sure you guys don't enter hibernation. but till then i have to ship. oh wait!. that's you.... i mean cook

yuuka-miya commented 11 years ago

I won't. That is, unless i'm playing League of Legends or something..

AbrarSyed commented 11 years ago

Son't think yall can sit and talk somewhere my eyes don't reach :P (/me jokes)

I agree with you @HaoSs07 After working on FE for a long time, I guess you could say that I kinda lost motivation. The bukkit plugins do everything we do, and better, and there are so many more of them. I also now know that my own bad coding has caused the frustration that you and other server owners are now deal with. I have learned from those mistakes, And the new Post-1.6 FE WILL be better. Mainly because il be spending more time on the core, and making it robust, so that a few changes in the core will NOT break all the modules. We will also be having a testing framework in place, so that the build-server doesn't pass broken builds.

anyways.. il get to the point. After we make this new version, there is a chance we will back-port it. The new code will be easier to maintain, and far cleaner then the current code, so back-porting should be easy. Also, the modules will be separate from the core of FE kinda like they are now, but different. They WILL NOT be distributed from a single zip of everything, but instead either seperate downloads, or luacs's gui installer thing.

tldr: stuff will change, the dark ages will pass, and we will emerge upon a new day of productivity.

dries007 commented 11 years ago

Once 1.6 stabilizes and Forge has all (or most) bug sorted out, we can start working (including me, when I get back) on what I would like to call FE 2.0.

I agree with @AbrarSyed, in that we need a firm, working, bugless(!) core BEFORE we start implementing features. (/me knows that I was kinda the worse example of not finishing something before moving on to the next thing...) A good repo structure will help a lot with that, which is something we should discuss too. (I'm in favour of 3 main branches (per current MC version), Stable, Beta and Dev, but I'm sure some of you have other, better ideas.

About the installer, I would prefer a coremod as launcher, that would also allow us to make FE auto-updating on server start. It could have a system where it downloads all of the wanted modules (config files for the win) on first boot and checks the version id/checksum with the latest version available for the wanted branch (Stable, Beta or Dev). This should all be possible and even relatively easy because we can do the classloading ourselves. (Basicly have an FE folder in the server root that contains the module and extra data.) This could even allow us to have command for installing (and updating?) modules ingame.

tl;dr: I agree (in main lines) with @AbrarSyed.

PS: We should also focus on performance, that is currently a big issue on bigger (10+) servers.

HaoSs07 commented 11 years ago

love to see you guys still live :D can't wait to see you moding again. and @AbrarSyed ,take it easy. don't make me use that stick. till then ! Let there be beer !

P.S. abrar .dont try to reinvent the weel. there are allot of things out there that are open source !! use them. example that pops in to my mind right away. look at alphaest mytown port for example. as far as i know he stopped deving. why not take something that is there and works perfectly ? also pex works good... TT taped in to it with no problems

dries007 commented 11 years ago

LOL, I haven't been active in the past weeks because the laptop I own is a broken ass piece of shit. It keeps crashing so I bought new stuff (link), now I'm on vactation... When I get back, (the 14th - 15th) I can get back at it.

HaoSs07 commented 11 years ago

nice stuff u have there

dries007 commented 11 years ago

Thanks, I got lucky to get the 760, only one they had in the store. (it was released 3 days before I bought the thing. I'm very happy with the system, and It is easily overclockable and upgradable. (my monitor is a Dell UltraSharp U2312HM btw, just for sake of completion)

HaoSs07 commented 11 years ago

damn. and i'm still happy with my dualcore 7200 and 8600 gt :))