Giter VIP home page Giter VIP logo

ryzom / ryzomcore Goto Github PK

View Code? Open in Web Editor NEW
325.0 22.0 88.0 294.74 MB

Ryzom Core is the open-source project related to the Ryzom game. This community repository is synchronized with the Ryzom Forge repository, based on the Core branch.

Home Page: https://wiki.ryzom.dev

License: GNU Affero General Public License v3.0

CMake 0.64% HTML 1.68% Shell 0.20% Batchfile 0.32% C++ 80.51% C 3.55% Objective-C 0.33% Objective-C++ 0.01% Python 0.86% PHP 5.23% Clarion 0.03% Lua 4.85% CSS 0.16% XSLT 0.18% QMake 0.01% Smarty 0.47% Perl 0.01% JavaScript 0.28% MAXScript 0.68% Hack 0.01%
ryzom game mmorpg mmorpg-server mmorpg-client mmorpg-engine game-engine ryzom-game

ryzomcore's Introduction

Ryzom Core Build Status

Ryzom Core is the open-source project related to Ryzom Game. Written in C++, Ryzom Core contains the whole code (client, server, tools) used to make the commercial MMORPG Ryzom. Ryzom Core is a toolkit for the development of massively multiplayer online universes. It provides the base technologies and a set of development methodologies for the development of both client and server code.

Ryzom Core is open source and released under the terms of the GNU Affero General Public License 3.0 (GNU/AGPLv3) for the source code. The art assets are dual-licenced under the Creative Commons Attributions-ShareAlike 3.0 (CC-BY-SA) and Free Art License 1.3 (FAL 1.3).

About the community

We are a passionate group of gamers, and open-source aficionados. Many of us fell in love with the original vision and promise of the Saga of Ryzom, or the ideals of open source. For some the game was once our home, or still is. To others, it was an introduction to the open-source software world. We work on Ryzom Core because we care for the things we love, and the friendships we've made over the years.

The Ryzom Core repository is maintained by the community independently. It is not officially affiliated with the commercial game, nor with Winch Gate Ltd. See the History section on why.

Support development

We are happy to work on this project in our free time. If you would like to contribute to the project financially, you can support us and our loved ones through any of the following links.

  • Sponsor Jan Boon (Kaetemi), Polyverse OÜ. — Goes towards the Ryzom Core servers, and open-source development.

If you're a regular source code or game asset contributor to the open-source project, feel free to add yourself to this list.

Project history

The Saga of Ryzom was originally developed by Nevrax. A small game development company with a visionary creative direction.

Several founders and developers of the company at the time were open-source aficionados. The ideal in their minds was to fully open source the game. Unfortunately, the investors thought differently and never fully bought into the open-source model. Only the engine was released at the time.

This gave birth to the NeL project. The Nevrax Library. While there was public interest in the engine, the lack of commitment to open source by the company made it difficult for independent contributors to work on the project.

When Nevrax eventually went bankrupt, they were initially bought out by Gameforge. A subsidiary called Gameforge France was formed to work on Ryzom.

A community-led Virtual Citizenship Association (VCA), raising over € 170,000 in pledges, failed to win the bid. The open-source NeL community was later abandoned by Gameforge once Ryzom eventually fell into oblivion, and revived itself as the OpenNeL project. After Gameforge failed to fully pay for the bankruptcy deal, and some hush-hush behind the backs of the community-led VCA, the ownership was transferred back to the liquidator and onto Winch Gate Properties Limited.

Fortunately, thanks to the efforts of original Nevrax employees, and key members of OpenNeL, the new owner showed some goodwill towards the open source community, and the full game client and server, as well as a substantial amount of graphics assets, were released as open source.

With the promise of the game becoming an open source project, they worked together with the OpenNeL community, which renamed to Ryzom Core in order to advertise the game better. In practice, the commercial game servers were being developed on a private repository. Beyond bug fixes and enhancements to the client, the community had zero input. New features that required server modifications were disallowed. The collaboration was doomed to fail.

The Ryzom Core community was backstabbed and slowly ignored by the new owner. A new Ryzom Forge project was launched behind closed doors, that claimed to make community contributions easier. Yet closing off development almost entirely to outsiders. No attempt was made by the new owner at fully committing to an open-source development model.

New features on the commercial game developed by the Ryzom Forge team are primarily web applications using the in-game browser, circumventing the AGPLv3. Furthermore, the Ryzom Forge team had at one point updated their private server repository to link the binaries to the game engine on the public repository. This in violation of the AGPLv3 license on community contributions, forcing their hand to make their private server fork public. The web apps remain closed source. The team also shut down the Ryzom Ring player scenario tools on the official servers, in favor of closed source web-based tools that are exclusive to the official event team.

As the commercial game owners historically, and still, have been a poorly committed and unreliable partner to running this as a truly open-source project, Ryzom Core is currently an independent community project, and is committed to remain that way and protect the rights of independent contributors.

Copyright and contributions

All original source code is copyright (C) 2001-2022 Winch Gate Property Limited. The commercial game's official Git repositories are hosted on GitLab at https://gitlab.com/ryzom.

The NeL Sound driver for XAudio2 is copyright (C) 2008-2014 Jan BOON [email protected].

Other community contributions and modifications are copyright their respective authors. Consult the OpenNeL SVN and the Ryzom Core Git repository histories for more details.

The source code in this repository is licensed under the AGPLv3, unless specified otherwise. Likewise, by committing to this repository, you agree to license your modifications under the AGPLv3. You retain all copyright over your work (*). As such, you have the option to additionally dual-license your fully-owned contributions under any other license. Configuration files are implied to be public domain samples, as they may contain sensitive data in a production environment.

(*) If, and only if, you have signed a CTA (part of the NDA, copyright and ownership - your contract may vary) with Winch Gate Ltd., your contributions, along with any other creations related to Ryzom, fall under that contract and will be copyright Winch Gate Ltd. instead (**). As per your contract, your contributions are licensed back to you under the AGPLv3. You retain the moral rights to your work. These are non-transferable rights, which permit you to assert your authorship and be credited for your contributions. You should exercise this right.

(**) If you live in a legislation where contractual copyright assignments without employment or commercial transaction are unenforceable (e.g. Belgium), and you are not being paid by Winch Gate Ltd. for your current work, the CTA is null and void, and you retain full copyright ownership over your contributions. Consult a lawyer to assert your rights. Don't give them away.

To comply with the AGPLv3 license, section 5(a), names of the contributors who own the copyrights to modifications will be added to the copyright notice in source files on a periodic basis. You may follow the existing format if you wish to do this yourself.

The removal of any valid copyright notice is a violation of the AGPLv3 license.

ryzomcore's People

Contributors

botanicvelious avatar breard-r avatar clearlyclaire avatar dfighter1985 avatar djanssens avatar evilprince avatar geels12 avatar giverofmemory avatar gloorf avatar imaginetonic avatar kaczorek avatar kaetemi avatar kervala avatar kishangrimout avatar liria avatar mattraykowski avatar meubli avatar nbspou-bot avatar nimetu avatar riasann avatar rti avatar ryzom-pipeline avatar sector14 avatar sigmike avatar studioetrange avatar ulukyn avatar vinicius-arroyo avatar xtarsia avatar zerotacg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ryzomcore's Issues

porting Tools to Qt : Tile_Edit

Tile_Edit is a tool used to manage .bank files:

  • add/remove Land & Tile Set
  • Link Land to TileSet
  • Link TileSet to Vegetation Set

It also include a TileSet Viewer :

  • Diffuse, Additive (Night&Day) Tiles
  • Transition Tiles
  • Displacement Maps
    with Batch load, and Border Import/Export facilities

Still checking a few things concerning Image format and omw to port it :)

Original creation date in redmine: 2008/12/01 19:59:30 +0100 by titegus at https://dev.ryzom.com/issues/219

Update CMake to use SOURCE_GROUPS for MSVC Developers

Currently the CMake build environment uses a FILE GLOB to load all source files. This produces a very large Source and Headers group for some libraries and applications when using an IDE such as Visual Studio. We will need to remove the FILE GLOB and explicitly list each of the files and the group that they are in.

Original creation date in redmine: 2009/05/15 16:45:38 +0200 by sfb at https://dev.ryzom.com/issues/546

Remove the HashMapTraits and use a less or hash function if possible

Currently, we created Trait classes for hash map like this :

// Traits for hash_map using CEntityId
struct CUCStringHashMapTraits
{
static const size_t bucket_size = 4;
static const size_t min_buckets = 8;
CUCStringHashMapTraits() { }
size_t operator() (const ucstring &id ) const
{
return id.size();
}
bool operator() (const ucstring &id1, const ucstring &id2) const
{
return id1.size() < id2.size();
}
};

But in fact, it should work by only defining a less() hash() function and in this case we don't have to specify the traits each time we create a hashmap

Original creation date in redmine: 2008/09/03 18:27:51 +0200 by vl at https://dev.ryzom.com/issues/34

Clean the #include block

All include must be in the same block and in order:
0. stdpch is needed

  1. system includes
  2. nel includes, sorted by libraries

For example

#include "stdpch.h"
#include <stdio.h>
#include "nel/net/a.h"
#include "nel/3d/b.h"
#include "nel/3d/c.h"

Original creation date in redmine: 2008/09/03 18:19:44 +0200 by vl at https://dev.ryzom.com/issues/31

Multi-Core Support

I often heared about the issue, that the engine doesn't support multicore. Or better explained it doesn't seem to take advantage of multi cores.
regards damonka

Original creation date in redmine: 2008/10/06 12:37:56 +0200 by damonka at https://dev.ryzom.com/issues/150

Implement Google Breakpad for Displayers

Implement an "email function" for NeL displayers that submits crash information to Google Breakpad. Currently for NeL there is only one implementation in NLNET for sending crash reports:

email.cpp
@Bool sendEmail (const string &smtpServer, const string &from, const string &to, const string &subject, const string &body, const string &attachedFile, bool onlyCheck)@

You can see how it is configured in the displayer in service.cpp:
@setReportEmailFunction ((void*)sendEmail);@

Information about Google Breakpad can be found here:
http://code.google.com/p/google-breakpad/wiki/ClientDesign

A very simple example implementationc can be found here:
http://code.google.com/p/google-breakpad/source/browse/trunk/src/processor/testdata/test_app.cc

Original creation date in redmine: 2009/05/13 14:03:43 +0200 by sfb at https://dev.ryzom.com/issues/543

Implement occlusion and obstruction in sound drivers

Implement occlusion and obstruction of sound sources in the sound drivers.
Replacement of EAX with newer EFX under OpenAL, and new implementation for XAudio2.
No implementation for FMod (environment effects were never implemented in that driver anyways) will be done for now.

Fix up the high level nlsound code to make use of the new non-eax interface when this is done (currently commented out).

Original creation date in redmine: 2008/11/03 16:51:29 +0100 by kaetemi at https://dev.ryzom.com/issues/167

Multi-channel buffers

Implement support for buffers with more than 2 channels in OpenAL (using AL_EXT_MCFORMATS) and XAudio2 drivers. Required for moving music channel (ogg, etc) logic from drivers to nlsound.

Original creation date in redmine: 2008/09/12 19:21:51 +0200 by kaetemi at https://dev.ryzom.com/issues/100

Centralize atoi-like functions

common.h, mem_stream.h and some other files are implementing atoi-like conversion functions.

We should centralize them all in common.h and common.cpp, and be sure strings could be converted to all integer types of NeL (signed and unsigned 8, 16, 32 and 64 bits).

Original creation date in redmine: 2008/09/19 21:46:06 +0200 by kervala at https://dev.ryzom.com/issues/118

bad assumption that time_t is 32b

time_t can be 64 bits but in NeL we suppose that time_t is 32b and there's code that convert or store time_t under a uint32.

uint32 CTime::getSecondsSince1970 ()
{
return uint32(time(NULL));
}

The function must returns a time_t and check all linked issues.
To test, you can returning a uint64 and it'll generate warning where problems occur

Original creation date in redmine: 2008/09/03 18:25:54 +0200 by vl at https://dev.ryzom.com/issues/33

create and manage bn7 files

bn7 will be compressed bnp with 7z. It'll be slow to read, but can be very useful in some case.

Of course the behavior should be exactly the same as if it's a bnp (no directory structures, warn if 2 files have the same name...) and CIFile should read files in a transparent manner.

Original creation date in redmine: 2008/09/08 13:26:13 +0200 by vl at https://dev.ryzom.com/issues/57

Adapt NeL code to be fully compatible with Windows Vista/Linux/Mac OS

Windows Vista doesn't allow normal users to write in "Program Files" so we could add method for getting a profile folder where NeL could write/modify its files (logs, configs, etc...) and use it when writting logs/configs.

We could also add a method for elevating user's privilege to admin when executing an external app.

These new methods could also be adapted for Linux and use "~/.appname" folder for all these files.

Same thing for Mac OS.

Original creation date in redmine: 2008/09/22 14:21:03 +0200 by kervala at https://dev.ryzom.com/issues/123

Sound buffer streaming

Implement buffer streaming in OpenAL and XAudio2 drivers. Required for moving music channel (ogg, etc) logic from drivers to nlsound.

Original creation date in redmine: 2008/09/12 19:19:29 +0200 by kaetemi at https://dev.ryzom.com/issues/99

porting Tools MFC Cleaning : ZViewer

found the ZViewer Tool on my way:
ZViewer allows you to view one or more zones exported from 3DSMax inside the NeL Engine

MFC was only used to display the Window Icon. I removed it, so it should now be cross-platform, plus I think there is already a NeL mecanism to display Window Icon as the "init" method of the IDriver interface accepts an Icon as a parameter. So I guess the "initDriver" method of the CNELU should also accepts one, which is not the case, but i didn't feel like trying to modify NeL right now.

I also completed the english translation of the readme file, fixed a bug at config file load (screen resolution wasn't taken into account), and fixed the vertical text alignement.

Original creation date in redmine: 2008/12/04 21:35:07 +0100 by titegus at https://dev.ryzom.com/issues/222

Create a Qt-based Launcher

Create a Qt-based launcher similar to nel_launcher_windows_ext2 in the NeLNS login system.

This is an interim necessity until Snowballs has a sufficiently functioning internal login component.

Original creation date in redmine: 2009/05/11 20:43:11 +0200 by sfb at https://dev.ryzom.com/issues/539

Replace EAX with EFX

Replace all the EAX stuff with the newer EFX stuff in the OpenAL driver.
This will remove the eax2.0 (eax.dll) and alut (alut.dll) dependencies, but might add efx-util (static, and already in external library package anyways) as a dependency under windows (for converting some old EAX params to EFX params).

http://connect.creativelabs.com/developer/Wiki/Introduction%20to%20EFX.aspx

Original creation date in redmine: 2008/09/13 01:11:39 +0200 by kaetemi at https://dev.ryzom.com/issues/101

porting Tools to Qt : Word_Dic

I just gave it a try to port NeL Tools to Qt (version 4.4.3).

Started with word_dic as it's a very simple tool, so if someone is willing to test it (on Linux / Mac ) and validate that the way i did it fits the needs, i could go on with some more interesting tools !

Original creation date in redmine: 2008/11/28 00:20:19 +0100 by titegus at https://dev.ryzom.com/issues/202

Support 64bits compilation under Windows

Most code is compiling under Visual C++ with a 64 bits compiler but assembler keyword __asm is not recognized anymore and some Win32 API types are different in 64 bits.

This feature must add a x64 platform in NeL projects and fix compilation problems.

We could optimize missing asm code later (with external .asm files or intrinsics).

Original creation date in redmine: 2009/03/31 10:21:40 +0200 by kervala at https://dev.ryzom.com/issues/464

Port NeL to build via MinGW

Port NeL to build via MinGW on Windows systems.

  • CMake will need to be updated to correctly build the libraries and link.
    ** The check IF(WIN32 AND UNIX) will match MinGW on Windows
    ** Likewise IF(WIN32 AND NOT UNIX) matches Windows compilers.
    ** If you need to match MinGW specifically in CMake use: IF(MINGW)
  • NeL makes overly liberal use of the NL_OS_WINDOWS and NL_OS_UNIX defines to block out platform specific code.

Original creation date in redmine: 2009/05/13 16:54:24 +0200 by sfb at https://dev.ryzom.com/issues/544

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.