NEWS 02-12-2017 - Plugins/Bundles a new world

The next generation of server controlling with clean and powerful user interface

Moderators: reaby, oliverde8, NADEO

Post Reply
oliverde8
Posts: 1345
Joined: 16 Jun 2010, 07:33
Location: in a Blue Box

NEWS 02-12-2017 - Plugins/Bundles a new world

Post by oliverde8 »

Image
NEWS 02-12-2017 - Plugins/Bundles a new world

As some of you know we are working with Reaby on the version 2 of eXpansion. Our beloved server controller. In exp1 and other controllers you install, enable & disable plugins. In eXpansion2 this has changed. For the user perspective we are not talking about plugins anymore but about bundles.

You might think, why? It's a mess?

To take things back to earth a Bundle is not much different then a plugin. The main difference is that a bundle contains a multitude of plugins (and other things).

Well there are few reasons why, I am going to try and explain.

Spliting plugins into smaller services

In previous versions and in other controllers you may have a plugin named Maps; this plugin has 1 file that handles many tasks. In eXpansion 1 for example it did the fallowing tasks
  • Displaying a list of maps to the user with /list command.
  • Handling the database to insert maps data.
  • Handle the JB.
  • Handle the removal of maps
So we have multiple different logics all mixed up in a single file. In some cases that made our files very comlicated, and also it meant that writing automated tests for a specific task was nearly impossible you had to have the global vision.

In eXpansion2 we are able to separate this :
  • A plugin handling the insertion of maps data
  • A plugin handling the jukebox
  • Multiple plugins for all the chat commands
And all of them are part of the `eXpansion/MapsBundle`

This allows for separation of logic. I won't dwell much on this as it's part of the programming. I will just try and explain what this brings to the users of eXpansion.

small services means flexibility.

Nothing prevents in eXpansion2 to code a bundle with a single huge plugin as we are used to in expansion1 or other controllers.

eXpansion2 comes with a powerful system(Dependency Injection) that allows a bundle to replace plugins(actually services but plugins are services) of another bundle or of the core. Distributing our code in a logical manner into multiple services(plugins in some case) means that Bundle creators can change the default behavior of eXpansion with ease.

One of the examples to this is our very own ImmersiveBundle. By default eXpansion2's windowing system is very much like eXp1. You can open multiple windows that you can move around.
Image

When ImmersiveBundle is enabled all windows becomes full screen windows and opening a new Window closes the old window.
Image

This is done by, replacing the service that generates the window's content. There is very little logic but quite alot of styling done in this Bundle. This automatically affects all windows already existing all windows that will be created by other bundles. Immersive also interacts with the menu, you can see the menu elements on the top of the image. As you can see we are still working on the display of these elements.

What more

Globally eXpansion2 is waking on the footprints of eXpansion1.
  • Still multi language support
  • Gui handler is still the best out there, grouping manialinks and optimizing the sends. Without all the bugs from eXp1.
We have also learned from our mistakes.
  • eXpansion2 is built on the best PHP foundation there is. SYMFONY
  • eXpansion2 is unit tested, this hopefully means less bugs, better stability.
  • Documentation, at http://mp-expansion.com/ is there as we develop. So it's already up to date.
  • Entirely new menu.
  • 2 styles out of the box, default & immersive
  • Local records, that can save both race records & laps records. not one or the other, both.
  • Unified GUI. A GuiFactory service centralizes all the gui components, powered with FML this means you can expect Bundles that will change the whole style of eXpansion. A bit like a custom skin or theme.
And gone further then ever,
  • A unique data provider system makes adapting a plugin/bundle to a new gamemode a child plays (well it's relative)
  • DI system takes it to a whole new level
What's to come

We haven't yet finished,
  • Ingame configuration, it was part of eXpansion1 it will be there in the first stable version of eXp2.(not in alpha-1 planned for alpha2)
  • Optimized widget system. More on this subject in a future news. But for now let's say that exp1 widget system was the fastest, but could have synchronization issues. We are working on a new system that will hopefully marry the best of both worlds.
  • More plugins more features; at the moment eXp2 bundles are just emerging
  • Migration tools to migrate from eXp1 and other controllers.
We will not put as much features in eXp2 as we had in eXp1, we are taking the most used and the best features at first.

Road Map
  • Alpha - 1 For devs to start to look into eXpansion, help us by building essential plugins
  • Alpha - 2 eXpansion2 core is done, devs can really start working on awsome functionality. We test and you test. Version still not ready for public use
  • Beta All essentials future are ready, we can prepare install archives with autopdate. It's basically ready for the end user, the server admins !!
  • Release Once all the bugs fixed, all is stable we can add Beta and release it.
There is still quite a way to go. They are a few big jobs to do in the core still but we have achieved a point where we believe our main idea is working(mainly the DI & Data provider system).

Next big step : Alpha - 1

We intend to do a first alpha soon, end of the year? Beginning of next year? Hard to say. We did quite a bit of progress features wise this last weeks but some essentials in the core are still missing.
The core will not yet be done, all the configuration and widget system won't be there for the first alpha. This alpha is intended for developers. If you are interested in eXpansion2 and wish to help us by coding bundles for eXpansion2, by helping us get a list of things to do that will be the moment todo so. We are going to communicate more on this in due time

The more people to code and help with the essential bundle the faster eXp2 can be ready. But the core is our main priority.

Thanks for reading
Image
Developper for The next generation, Clean and Powerfull controller eXpansion for your SM & TM server . Working on eXpansion² with full MP4 support and many other awesome features...
hackie
Posts: 1178
Joined: 19 Jul 2012, 22:43

Re: NEWS 02-12-2017 - Plugins/Bundles a new world

Post by hackie »

That sounds very promising. :thumbsup:
System Specs:
OS: Windows 7 Professionnal x64
CPU: Intel Core i7-6700K / 4 GHz - 8 MB cache
GPU: MSI GTX 980TI GAMING 6G - OC Edition
Motherboard: ASUS MAXIMUS VIII RANGER
RAM : 32Gb Kingston HyperX Savage - DDR4
DirectX 11
TheBigG.
Posts: 404
Joined: 11 Jun 2011, 16:11

Re: NEWS 02-12-2017 - Plugins/Bundles a new world

Post by TheBigG. »

looks very nice :3
Client:
OS: Win10/Debian CPU: Intel 9900k GPU: NVIDIA 1080TI Display: 3x Acer Predator XB271HUbmiprz 1440p@165 Hz

Server:
OS: Debian Stable @ Backports Kernel CPU: Intel 6700k RAM: 32 GB Storage: 2x 256 GB NVMe SSD@Raid 1
User avatar
Florenzius
Translator
Translator
Posts: 2545
Joined: 27 Jul 2014, 20:31
Location: Germany
Contact:

Re: NEWS 02-12-2017 - Plugins/Bundles a new world

Post by Florenzius »

Nice to get some news about exp2! Good luck and I'm looking forward to the first public build :3
Creative Director at UNBITN - 3D Modeler for Pursuit - ManiaPlanet Translator and Beta tester - Freelancer for Ubisoft Nadeo
___
MB - B550 AORUS ELITE
RAM - 32GB
CPU - AMD Ryzen 5 3600XT
GPU - Nvidia GeForce RTX 3070Ti
User avatar
magnetik
Nadeo
Nadeo
Posts: 1678
Joined: 01 Feb 2012, 19:13
Location: Bordeaux
Contact:

Re: NEWS 02-12-2017 - Plugins/Bundles a new world

Post by magnetik »

Nice job ! :yes:

You should look at symfony 4 that have been release a few days ago. Most notably Symfony flex would also be really good to help management of new plugin installation :thumbsup:
ManiaPlanet technical documentation portal (Dedicated, ManiaLink, ManiaScript, Titles...) -- contribute!
TheM
Posts: 1446
Joined: 15 Jun 2010, 14:30
Location: Uden, Noord-Brabant, Netherlands
Contact:

Re: NEWS 02-12-2017 - Plugins/Bundles a new world

Post by TheM »

Good luck with the development! :thumbsup: :)
Global moderator | Dutch moderator | Laddermoderator | ManiaWiki moderator
Server Manager/webmaster of Smurfen.net, join us on Canyon, Valley and Royal!
ESL (Game) Staff Head for TrackMania (Stadium, Canyon and Valley).
oliverde8
Posts: 1345
Joined: 16 Jun 2010, 07:33
Location: in a Blue Box

Re: NEWS 02-12-2017 - Plugins/Bundles a new world

Post by oliverde8 »

Thanks everyone :thumbsup:
magnetik wrote: 05 Dec 2017, 10:05 Nice job ! :yes:

You should look at symfony 4 that have been release a few days ago. Most notably Symfony flex would also be really good to help management of new plugin installation :thumbsup:
Indeed it's probably going to happen at one point. I went completely wrong with the way I wrote unit test at beginning and they need to rewritten basically they won't work on SF4 to much deprecation. Also cache clear requires dedicated to run :roflol: quite easy to fix but well.

so much todo :)
Image
Developper for The next generation, Clean and Powerfull controller eXpansion for your SM & TM server . Working on eXpansion² with full MP4 support and many other awesome features...
Post Reply

Return to “eXpansion”

Who is online

Users browsing this forum: No registered users and 1 guest