A program I been working open source soon.

Would you want something like this?

  • Yes
  • No
  • Maybe

0 voters

Hi everyone. I been hard at work in creating a sort of middleware in terms of a client server software. This client server is kind of like how steam runs, but more design in that it can be made to work with your program/game only.

The idea is to create a sort of middleware that users of the community would be able to use for their projects that still open enough for their games/programs by tracking users, updates, and a few other options. It also allows users to create their own plugins for their programs/games to communicate and control between the two (client, server).

The server is all python, but not limited to panda 3d itself. I did this so future updates to python wouldn’t hold back the server while panda 3d updated to the next python build. This doesn’t mean the server is up to date either, but it can be made to be update quite easy enough (I hope). Client was design in panda 3d, so it relies on what python version panda 3d supports.

Some features of the server (so far):
-Provides a secure connection between logins.
-Provides security for users by encrypting their data.
-Ban, kick, change, remove, so on of user and their accounts.
-P2P updating (can be turn off for just direct downloading) with resume downloading.
-Multi core auto support with non-blocking task control. (Think panda 3d taskmgr, and yes it’s backwards compatible to it.)
-Flexible plugin controlling.
-Advance catching to speed up reading of files to handle the demand of user loading and saving.
-Remote control of the server program.
-Option file to disable or enable features.
-Tracks errors that are found within the program and error from the client program.
-Provides a simple way for updating the client by simply putting in the current build files into the update folder per plugin.
-Few others…

For client:
-Provides a login screen, account creating, and a main menu.
-Provides a way to store plugins/games to be loaded later.
-Provides advance pre-loading of games/plugins (of the most played game).
-Provides some middleware files such as loading screens and bars, networking control, controlling between screens, chat menus and bars, UI control, MsgBoxs, settings control, audio control, screen control, and a few others.

  • Few others…

Some features that are WIP (so far):
-A way to auto assign multi servers to their roles base off some rules.
For example, a login in server, a downloading server, and a plugin server base off what each server’s resources are available. This means a downloading server will be created if it has the highest uploading bandwidth of all the machines within the server network.
-Support for sound.
-Support for client logins to only a location to protect users from hacker that are logging into their account from another location.
-Few others…

Q: Will it be open source?
A: Yes! ^.^ I plan on having it open source later on. I first need to get that far to even be able to release it.

Q) Can I sell it?
A: NO! You can’t sell it =/ I don’t believe people should get rich of using others codes/idea, but I do think programmers should be more open with their code for others to use so we can continue to create even more wonderful things! If you do use it in a game you would like to sell, then I only ask if you could donate to the project later on so we can keep growing it, but selling this project alone or with any changes isn’t allowed.

Q) What license in the project using?
A) I don’t really know yet… another reason I haven’t release the source code for 2.0 yet. Any ideas? I don’t want to allow people to just sell it for their own gain, but still be open enough for them to be able to use it even if they wish to sell their game.

I still have a lot more work to be done to it before I can release it in a stable format, but I was wondering if you all would like a middleware like this? I ask because I am keeping track of a lot of “how to use x feature” witch does take a bit of time to also write, so it would be nice to know if others would want to use it or not before I keep working on it more.

I also would also like to know any other features that you would want supported in this fashion so I can also try to add them into the release build.

in regards to the license it depends what your desires are. If you are interesting in having your middleware adopted by more main stream, closed source game studios you will want to use a permissive license like MIT, BSD, maybe apache. This does mean these developers can modify it and do with it as they wish without any obligation to upstream.

If you are interested in keeping it open source look at an lgpl license. Any changes anyone does to the code must be made available upon request. This isn’t desirable to most traditional studios as they may be fusing proprietary code.

Avoid GPL. It will force anyone else who uses your code to gpl as well.