Official Community Forums
 
HomeHome  FAQFAQ  SearchSearch  MemberlistMemberlist  UsergroupsUsergroups  RegisterRegister  Log in  The Wiki  Website  github Project  

Share | 
 

 Contributing to server codebase and dev-environment

View previous topic View next topic Go down 
AuthorMessage
ggraz
Newbie
Newbie
avatar

Posts : 4
Join date : 2012-05-06
Age : 41
Location : Italian in Oz

PostSubject: Contributing to server codebase and dev-environment   Mon 7 May - 22:26

Hello
I'm new to the forums and to multiverse; I think the project could greatly benefit (and I'd like to contribute, i'm an experienced java developer, but I did never contribute to game projects before) from some code refactoring/re-organization.
I have in mind a couple of things right now:
- leverage on threading
right now the server spawns a lot of vms, one for each component/module; I like the modularity of agents which communicate via tcp or sockets but that looks suboptimal here. (maybe someone with more knowledge of the architecture could arise some good reasoning on why it is as it stands right now)
- hibernate integration
This involves a big refactoring of classes. We get in exchange multi-dbms compatibilty and or-mapping obviously (a connection pool maybe, I can be wrong but i think there isn't one right now). I've seen that sql queries are still written as concatenated string built to feed jdbc statements.
- maven-isation
this would greatly improve the build system. cleaning of libraries from code-base, inherent modularization. I haven't digged inside ant build script yet to see if there are some pitfalls though

I'm also a fedora packager and I would be interested in creating a multiverse-server rpm package ready to install with yum. That could bring fresh people willing to collaborating maybe, or at least some testing. Main problem here is licensing; do the license files included in the server distribution cover 100% of the code/resources? Is there still some copyrighted material?

g
Back to top Go down
CobaltBlues
Moderator
Moderator
avatar

Posts : 202
Join date : 2011-11-21
Location : Chicago Land

PostSubject: Re: Contributing to server codebase and dev-environment   Tue 8 May - 1:48

Howdy ggraz,

I will give a quick answer on a couple questions here and hopefully followup later when I have more time.

Leverage Threading:

From my understanding the servers are modularized by component with TCP communication so they can be run on different machines for performance and scalability. This would eventually open the door to dynamic load balancing. For example you could run each component on their own servers to distribute processing load and could have more than one "combat" server for example, if your world was combat intensive. The modularity was an architectural decision that I actually prefer. But the method of communication between modules doesn't really matter to me. TCP would be necessary if the modules were on separate machines, but if they were running on the same machine then another method would be viable.

Having said that we welcome new ideas and ways of running things. However, instead of changing how the core server architecture works, I would rather build new methods in as an "option" giving the Multiverse world developer and builder a "choice" in how they want to run their particular world. As difficult as it may be, the Multiverse solution needs to be flexible and scalable in order to accommodate a plethora of possibilities. Some people may want TCP communication, others may want multi-threading.

Having said that it could be beneficial to create a "Branch" in the source code so you could work on your major modifications. I prefer to create branches for such ground breaking changes as the one you are proposing in regards to the server architecture. This way, if we need to issue smaller changes or bug fixes the larger work would not collide with the smaller work.

I would also like to see the system properly take advantage of multi-core processors, and mult-processors in general.

Let me see about getting you a branch setup in the source code where you can work on these ideas. I'll let you know sometime soon.

Fedora Package:
Absolutely outstanding idea. We intend to create easy to install/configure ready to go packages of Multiverse. Having an RPM package would really help. Let me know what you need to make that happen.

Hopefully I can respond to your other topics later.

Thanks,
Shane
Back to top Go down
http://www.multiversemmo.com
ggraz
Newbie
Newbie
avatar

Posts : 4
Join date : 2012-05-06
Age : 41
Location : Italian in Oz

PostSubject: Re: Contributing to server codebase and dev-environment   Tue 8 May - 2:21

Very well, let me focus on some initial prerequisites needed to make an rpm package for the server:

1) licensing; any bit distributed within the package must be under one of the licenses listed here, in section "Good Licenses"

2) building from sources; any fedora package must be built from sources within the fedora build system.
sources can be downloaded in a release archive from the canonical project website, or from a vcs tag.
we both support ant and maven so i see no problem here.

3) no re-distributed libraries. Any package must NOT distribute libraries; if a required library
is already available in fedora, that must be used; if not, a separate package must be assembled
and used.

4) running on openjdk; requiring specific sun/oracle jdk is very rare nowadays, so i think
i can take care of this.

5) system-wise install; packages should use common unix filesystem directories
for configuration, run state, logging etc. This can actually be done in the fedora build,
not in multiverse, if there turns out to be no incompatibilities. the start scripts must be
converted to systemd script to be coherent with other system services.

After these requirements are met, I can start building the package, and submit it to
other contributors for being peer-reviewed. Two interest groups could be interested
in this package, namely the java group and the games group (even if actually we cannot
ship the client or any of the tools as they are windows only atm).
After peer-review, the package is included in rawhide which is fedora devel repository,
and immediately available to developers. Every six months rawhide is branched to a
release candidate: Fedora 17 is coming out soon, so I think we could reasonably target
Fedora 18 which will ship around november.

Back to top Go down
CobaltBlues
Moderator
Moderator
avatar

Posts : 202
Join date : 2011-11-21
Location : Chicago Land

PostSubject: Re: Contributing to server codebase and dev-environment   Tue 8 May - 9:02

Thanks,

I'll check into and verify the requirements for distributing the server as an RPM package.

Shane
Back to top Go down
http://www.multiversemmo.com
Sponsored content




PostSubject: Re: Contributing to server codebase and dev-environment   

Back to top Go down
 
Contributing to server codebase and dev-environment
View previous topic View next topic Back to top 
Page 1 of 1
 Similar topics
-
» .^f2F-.Swemmei Recruting in server 1
» Lag playing in Taiwan server from Shanghai
» Proxy Server Taiwan: How To.
» WoW "Development" Server
» Omnos (( Maybe another name depending on server)) Sunbearer

Permissions in this forum:You cannot reply to topics in this forum
 :: Development :: Server Scripting and Development-
Jump to: