Popular Posts

Friday, July 8, 2011

In-depth with NEURO

My last post went over the reason why NEURO exists and what it is used for. However, I didn't really get much into how it works or how to use the system. I know the Tetris community has a lot of programmers, so I might as well divulge a little information about how this platform (if it can even be called that) will be put to use.

As I stated before, the most basic unit of NEURO functionality is the plugin. A plugin is a piece of code which can interface with the NEURO system. It does this by registering itself with NEURO and subscribing to different types of events. Once subscribed, the plugin will be notified when that type of event is dispatched to NEURO. It's a basic event subscriber model, which is a nice design in this case, because the parts of the program which are dispatching events (plugins or otherwise) don't need to know about the existence of the plugins handling the events, if there even are any; in essence, we can use the plugins, but we don't have to.

This makes it easier for the user to customize their own program. If I'd written NEURO differently, with all the plugins tightly coupled to the main framework, it would be tougher to extend and NEURO would be the same across all installations. We could then have a "plugin zoo" similar to the "rule zoo" of NullpoMino 7.5. Making plugins the way we did mitigates this.

NEURO Full will also have the overlay, which I mentioned but did not go into very much last post. If you look at Steam and the games provided on it, you will notice that you can bring up the "Steam overlay" during games which allows you to access some of Steam's functionality from within games. You can chat with friends, check up on your achievements, see who's online, and so on. Notice that I said you would be able to do all these things with NEURO. Notice where I got the inspiration from.

The overlay will be brought up with a key, or perhaps a key combination, and will take control of the screen. NEURO has been running in the background, sending your keyboard, joystick, and mouse inputs to the game itself, but when the overlay is up, it uses the inputs and does not pass them through. You will be able to navigate the overlay to make use of your plugins.

The original overlay design I have is simple and consists of the user picking a plugin and then interacting with it directly, but future versions of NEURO will likely feature their own layout managers and users will be able to have plugins scattered about on the overlay's main page. Of course, we need to actually have plugins first before we worry about that.

My grandiose visions have me believing that at some point in the future, users will be writing their own NEURO plugins for whatever they see fit, and posting them up on the server for others to download and install directly. Hopefully, users will be able to download other content, like modes, skins, and so on. This is all just speculation, but if designed correctly, NullpoMino will easily be able to accommodate this.

As development moves out of the framework stage and into the content stage, I'll post little snippets about plugins we are writing, so you can see some concrete examples of how it will be used.

4 comments:

  1. looking forward to seeing the overlay being used. we won't need to juggle several applications at once just to find someone to play

    ReplyDelete
  2. That's the idea :P Hopefully, this will make Nullpo a lot more convenient for quick games of multiplayer, instead of spamming the shoutbox until people come on.

    Though, lately, it seems there have been people on more often.

    ReplyDelete
  3. Nullpo should have #hd.sb relay ;)

    ReplyDelete
  4. Cool, Community Custom Content Repository accessible directly from the game, this is AWESOME!

    ReplyDelete