Giter VIP home page Giter VIP logo

ember's Introduction

DEPRECATED

This code has been moved to the Worldforge repository.

Ember

Join us on Gitter! Appveyor build status Build with CMake

Get it from the Snap Store

Ember is the client for the WorldForge virtual world system. It can be used for playing and exploring as well as authoring.

That means that if you're a player who wants to explore a virtual world hosted by a Worldforge server, this is the client for you. And if you're a world builder who wants to build your own world, this is also the client for you.

To learn more about Worldforge visit our website.

Installation

The simplest way to install all required dependencies is by using Conan.

conan remote add worldforge https://artifactory.ogenvik.org/artifactory/api/conan/conan
conan install . --build missing -c tools.system.package_manager:mode=install -c tools.system.package_manager:sudo=True
cmake --preset conan-release -DCMAKE_INSTALL_PREFIX=./build/install/release
cmake --build --preset conan-release -j --target all --target install

Alternatively you can use the Hammer tool to compile Ember. This is script provided by the Worldforge project which will download and install all of the required libraries and components used by Worldforge.

Tests

The test suite can be built and run using the check target. For example:

make check

or

cmake --build --preset conan-release --target check

API documentation

If Doxygen is available API documentation can be generated using the dox target. For example:

make dox

or

cmake --build --preset conan-release --target dox

Working with media

An alternative to the media-download target is to instead use the raw media repo source, as found at https://svn.worldforge.org:886/svn/media/trunk/. If you intend to edit or add new media you probably want this instead.

The target mediarepo-checkout will use Subversion to checkout the repository to the mediarepo directory. When running a non-release build Ember will automatically load media from this directory. Note that this might lead to longer start times, as more files needs to be processed.

In addition, there's a mediarepo-process target which processes the media from the media repository, as fetched by mediarepo-checkout, and places the results in the build directory, under a subdirectory named ember-media-<version>. When running a non-release build Ember will automatically load media from this directory, taking precedence over the mediarepo directory.

Dependencies

We use Conan for our dependency handling. If you're developing locally you can issue this command to setup both a "debug" and "release" environment.

conan install -s build_type=Debug . --build missing -c tools.system.package_manager:mode=install -c tools.system.package_manager:sudo=True --update  && conan install . --build missing -c tools.system.package_manager:mode=install -c tools.system.package_manager:sudo=True --update

Running Ember

As Ember is a 3d client it requires a 3d capable graphics card. If you have a fairly recent machine you should be good though.

If you want to run Ember as a world builder tool we strongly recommend that you also install and run a local instance of the Cyphesis server. By running an instance of the Cyphesis server on your local machine you're automatically given administrative access to the world, and can build and alter it however you like. Just as with Ember we recommend that you use the Hammer tool to compile Cyphesis.

How to help

If you're interested in helping out with development you should check out these resources:

ember's People

Contributors

alriddoch avatar atorkhov avatar bentley avatar bregma avatar davidjfelix avatar demarii avatar demitar avatar digimax20 avatar dkstiler avatar erikogenvik avatar junrw avatar llnz avatar manuelafm avatar mpreisler avatar netsysfire avatar olekw avatar razor85 avatar sajty avatar skogler avatar sryan avatar sunwaylive avatar zzorn 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

ember's Issues

OGRE must be built with thread support

Using Ubuntu 18.04 on Azure to build
Have followed instructions and installed all supporting libraries. Have defeated most errors that have been thrown so far however not able to get passed this error right now

./hammer.sh build ember

results in

/home/daniel/hammer/work/source/worldforge/clients/ember/src/components/ogre/OgreSetup.cpp:52:2: error: #error OGRE must be built with thread support.
 #error OGRE must be built with thread support.
  ^~~~~

crash on launch (debian, v0.7.2+dfsg-1+b1)

$ ember --debug
Starting Ember in debugger....
/usr/bin/ember.bin: symbol lookup error: /usr/bin/ember.bin: undefined symbol: _ZN7varconf10ParseErrorcvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEB5cxx11Ev
[Inferior 1 (process 5355) exited with code 0177]
No stack.

ember crash on Slackware 14.2 (64-bit)

I compiled ember and dependencies using the package build script on SlackBuilds.org. It starts, then crashes with the following error (that actually a GUI does start before the crash, contrary to what it says.)

d@cosmos:~$ ember
Starting Ember....
Registering: list_commands
Registering: quit
Registering: toggle_erispolling
Starting Ember version 0.7.2
Initializing Ember services
Registering: loadscript
Registering: connect
Registering: meta_refresh
Registering: meta_abort
Metaserver Service created
Registering: set_value
Registering: get_value
Setting home directory to /home/d/.ember
connect(2) call to /dev/shm/jack-1000/default/jack_0 failed (err=No such file or directory)
attempt to connect to server failed
==== Error during startup ====
Could not load gui, aborting. Make sure that all media got downloaded and installed correctly.

Ember shut down successfully.
Deregistering: toggle_erispolling
Deregistering: quit
AL lib: (EE) alc_cleanup: 1 device not closed

"undefined reference" build errors

I can not get it to build (on Arch Linux) because ld complains about tons of undefined references. In fact, it is almost 2000 lines so I had to put the output into a separate logfile.
ember-build.log

I used the following commands to build:

cd $srcdir/ember
conan remote add worldforge https://artifactory.ogenvik.org/artifactory/api/conan/conan --force
mkdir -p build && cd build
CONAN_REVISIONS_ENABLED=1 conan install .. --build missing
cmake ..
make all media-download

Which is what the README says. CONAN_REVISIONS_ENABLED=1 is required for conan because otherwise it errors out before installing any modules, I just followed the instructions in the error I got. --force is also required or it errors out when the remote was already added. -j is configured somewhere else on my system, so I removed it from the make command, this has no effect on the outcome.

Crashing on Start

Ubuntu 10.10 x64 with ATI HD4870 Graphics card running propietary drivers.

volli@volli-pc:/build/hammer/work/local/bin$ ./ember
According to my calculations Ember should be installed in /home/volli/build/hammer/work/local/bin/..
Starting Ember....
Registering: list_commands
Registering: quit
Registering: toggle_erispolling
Starting Ember version 0.6.2
Initializing Ember services
Registering: loadscript
Registering: connect
Registering: meta_refresh
Registering: meta_abort
Metaserver Service created
Registering: set_value
Registering: get_value
Setting home directory to /home/volli/.ember
Crashed with signal 11, will try to shut down SDL gracefully. Please report bugs at https://bugs.launchpad.net/ember
./ember: Zeile 111: 17905 Speicherzugriffsfehler $bindir/ember.bin --home $homedata "$@"
volli@volli-pc:
/build/hammer/work/local/bin$

http://pastebin.com/JNybeT6e gdb output

http://pastebin.com/6B6JaEKv gdb backtrace

Help text is unreadable

image

This is most obviously missing newlines and potentially other formatting.

Steps to reproduce:

  1. Start up ember.
  2. Click the ? button.

ember 0.7.2 fails to build with gcc9 (debian / fedora)

https://bugzilla.redhat.com/show_bug.cgi?id=1674851

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=925674

Atlas.cxx: In function 'int tolua_Atlas_Atlas_Message_MapType_iterator__eq00(lua_State*)':
Atlas.cxx:1911:43: error: 'std::map<std::__cxx11::basic_string, Atlas::Message::Element>::iterator' {aka 'struct std::_Rb_tree_iterator<std::pair<const std::__cxx11::basic_string, Atlas::Message::Element> >'} has no member named 'operator=='; did you mean 'operator*'?
1911 | bool tolua_ret = (bool) self->operator==(value);
| ^~
| operator

make[6]: *** [Makefile:435: Atlas.o] Error 1

Backtrace in Ember client

Hopefully the following backtrace will be useful to you:

(gdb) 
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007ffff6152859 in __GI_abort () at abort.c:79
#2  0x00007ffff6152729 in __assert_fail_base (fmt=0x7ffff62e8588 <error: Cannot access memory at address 0x7ffff62e8588>, 
    assertion=0x555556978490 <error: Cannot access memory at address 0x555556978490>, file=0x555556978368 <error: Cannot access memory at address 0x555556978368>, line=232, 
    function=<optimized out>) at assert.c:92
#3  0x00007ffff6163f36 in __GI___assert_fail (assertion=0x555556978490 <error: Cannot access memory at address 0x555556978490>, 
    file=0x555556978368 <error: Cannot access memory at address 0x555556978368>, line=232, function=0x555556978420 <error: Cannot access memory at address 0x555556978420>)
    at assert.c:101
#4  0x000055555638210c in Ogre::AxisAlignedBox::setExtents(float, float, float, float, float, float) ()
#5  0x0000555556381dc1 in Ogre::AxisAlignedBox::AxisAlignedBox(float, float, float, float, float, float) ()
#6  0x00005555563dc688 in Ember::OgreView::Convert::toOgre(WFMath::AxisBox<3> const&) ()
#7  0x00005555564c5aa9 in Ember::OgreView::Model::ModelMount::scaleNode(WFMath::AxisBox<3> const*) ()
#8  0x00005555564c569f in Ember::OgreView::Model::ModelMount::rescale(WFMath::AxisBox<3> const*) ()
#9  0x00005555564c7a33 in Ember::OgreView::Model::ModelAttachment::updateScale() ()
#10 0x00005555564c82e1 in Ember::OgreView::Model::ModelAttachment::model_Reloaded() ()
#11 0x00005555564d1435 in sigc::bound_mem_functor0<void, Ember::OgreView::Model::ModelAttachment>::operator()() const ()
#12 0x00005555564cf912 in sigc::adaptor_functor<sigc::bound_mem_functor0<void, Ember::OgreView::Model::ModelAttachment> >::operator()() const ()
#13 0x00005555564cdbc0 in sigc::internal::slot_call<sigc::bound_mem_functor0<void, Ember::OgreView::Model::ModelAttachment>, void>::call_it(sigc::internal::slot_rep*) ()
#14 0x00005555561fb14d in sigc::internal::signal_emit0<void, sigc::nil>::emit(sigc::internal::signal_impl*) ()
#15 0x000055555620aa36 in sigc::signal0<void, sigc::nil>::emit() const ()
#16 0x0000555556463e9b in Ember::OgreView::Model::Model::loadAssets() ()
#17 0x0000555556485d84 in Ember::OgreView::Model::ModelDefinition::reloadModels() ()
#18 0x0000555556485d0f in Ember::OgreView::Model::ModelDefinition::reloadModels()::{lambda()#1}::operator()() const ()
#19 0x0000555556486fda in std::_Function_handler<void (), Ember::OgreView::Model::ModelDefinition::reloadModels()::{lambda()#1}>::_M_invoke(std::_Any_data const&) ()
#20 0x00005555563f3b76 in std::function<void ()>::operator()() const ()
#21 0x00007ffff7c4c6fc in Eris::EventService::runOnMainThread(std::function<void ()> const&, std::shared_ptr<bool>)::{lambda()#1}::operator()() const ()
   from /usr/local/lib/liberis-1.4.so.0
#22 0x00007ffff7c4cf1e in std::_Function_handler<void (), Eris::EventService::runOnMainThread(std::function<void ()> const&, std::shared_ptr<bool>)::{lambda()#1}>::_M_invoke(std::_Any_data const&) () from /usr/local/lib/liberis-1.4.so.0
#23 0x00005555563f3b76 in std::function<void ()>::operator()() const ()
#24 0x00007ffff7c4ccc3 in Eris::EventService::processOneHandler() () from /usr/local/lib/liberis-1.4.so.0
#25 0x00005555561f6a05 in Ember::Application::mainLoop() ()
#26 0x00005555561f8e62 in Ember::Application::start() ()
#27 0x0000555556222d07 in main ()

Entire stack built from source using checkouts from Github. All checkouts on master except CEGUI, which didn't build, so I reverted to orgin/v0-8. Ubuntu 20.04, gcc 9.3.0.

Not sure if the problem was my build, but I couldn't get the binary distributions to work either. The apt-repository packages claimed that they weren't properly signed, and the dpkg distribution lacked the dependencies. Not really seeking support, just trying to be helpful.

Crash when killed

Steps to reproduce:

  1. Connect to any server. In this case I got my local instance of cyphesis.
  2. Get killed by wolves or goblins or so.
  3. Segfault. Trace attached. Because of conan conflicts I can not rebuild ember, so the trace will be of limited use since I could not recompile with debugging symbols enabled.

Trace

System info:

  • OS: Arch Linux
  • Ember version: 05d49f7

Fedora 26 ember crash on startup "Could not load gui"

Hi. I've installed ember, cyphesis and dependencies from the packages supplied by the Fedora team.
The configuration screen comes up, I leave everything as-is, the program starts loading stuff and then fails.

Here are the messages -
Starting Ember....
Registering: list_commands
Registering: quit
Registering: toggle_erispolling
Starting Ember version 0.7.2
Initializing Ember services
Registering: loadscript
Registering: connect
Registering: meta_refresh
Registering: meta_abort
Metaserver Service created
Registering: set_value
Registering: get_value
Setting home directory to /home/neilt/.ember
libGL error: failed to create drawable
X Error of failed request: 0
Major opcode of failed request: 155 (GLX)
Minor opcode of failed request: 26 (X_GLXMakeContextCurrent)
Serial number of failed request: 29
Current serial number in output stream: 29
AL lib: (EE) alc_cleanup: 1 device not closed
[neilt@wol worldforge]$ less ~/.ember/ember.log
[neilt@wol worldforge]$ > ~/.ember/ember.log;ember
Starting Ember....
Registering: list_commands
Registering: quit
Registering: toggle_erispolling
Starting Ember version 0.7.2
Initializing Ember services
Registering: loadscript
Registering: connect
Registering: meta_refresh
Registering: meta_abort
Metaserver Service created
Registering: set_value
Registering: get_value
Setting home directory to /home/neilt/.ember

I've looked in the ember.log file, and it fails immediately it tries to start CEGUI for the second time -
.
.
.
[19:56:55] INFO Finished loading 214 modeldefinitions.
[19:56:55] INFO Registering: set_level
[19:56:55] INFO The material '/base/simple' has 4 supported techniques out of 4
[19:56:55] INFO The material '/base/simple' has best supported scheme High. Was looking for Experimental
[19:56:55] INFO The material '/base/simple' has 4 supported techniques out of 4
[19:56:55] INFO The material '/base/simple' supported with scheme High
[19:56:55] INFO The material '/base/normalmap' has 8 supported techniques out of 8
[19:56:55] INFO The material '/base/normalmap' supported with scheme High
[19:56:55] INFO The material '/base/normalmap/specular' has 8 supported techniques out of 8
[19:56:55] INFO The material '/base/normalmap/specular' supported with scheme High
[19:56:55] INFO Best graphics level is High
[19:56:55] INFO Using graphics level Medium
[19:56:55] INFO Registering: toggle_inputmode
[19:56:55] INFO Registering: reloadgui
[19:56:55] INFO Registering: toggle_gui
[19:56:55] INFO Binding key tab to command /console_focus for state gui.
[19:56:55] INFO Setting CEGUI logging level to 'standard'.
[19:56:55] INFO Starting CEGUI
[19:56:55] FAILURE (CEGUI) CEGUI::ScriptException in function 'static void CEGUI::LuaFunctor::pushNamedFunction(lua_
State*, const CEGUI::String&)' (/builddir/build/BUILD/cegui-0.8.7/cegui/src/ScriptModules/Lua/Functor.cpp:222) : Una
ble to get the Lua event handler: 'debug.traceback' as first part is not a table
[19:56:55] FAILURE GUIManager - error when creating gui.
Exception: CEGUI::ScriptException in function 'static void CEGUI::LuaFunctor::pushNamedFunction(lua_State*, const CEGUI::String&)' (/builddir/build/BUILD/cegui-0.8.7/cegui/src/ScriptModules/Lua/Functor.cpp:222) : Unable to get the Lua event handler: 'debug.traceback' as first part is not a table
[19:56:55] INFO Deregistering: toggle_gui
[19:56:55] INFO Deregistering: reloadgui
[19:56:55] INFO Deregistering: toggle_inputmode
[19:56:55] CRITICAL Error during startup.
Exception: Could not load gui, aborting. Make sure that all media got downloaded and installed correctly.
[19:56:55] INFO Service 'Server Service' stopped.
[19:56:55] INFO (Ogre) Unregistering ResourceManager for type SoundDefinition
[19:56:55] INFO (Ogre) Unregistering ResourceManager for type EntityRecipe
[19:56:55] INFO (Ogre) Unregistering ResourceManager for type TerrainLayerDefinition
[19:56:55] INFO (Ogre) Unregistering ResourceManager for type EntityMappingDefinition
[19:56:55] INFO (Ogre) Unregistering ResourceManager for type ModelDefinition
.
.
.

I have attached the entire ember.log -
ember.log

Crash after character selection

I compiled ember using the hammer script on Gentoo. When I start the game I get up until the character selection. Shortly after the "Entering world..." screen appears ember crashes with:

Crashed with signal 11, will try to detach the input system gracefully. Please report bugs at https://bugs.launchpad.net/ember

The interesting part of the ember.log is:

FAILURE (Ogre) WARNING: material common/compositors/bloom/BloomBlend2 has no supportable Techniques and will be blank. Explanation: 
Pass 0: fragment program Bloom2_ps cannot be used - not supported.

and:

WARNING (Eris) received op with valid refno (1005) but no response is registered
WARNING (Eris) received op with valid refno (1006) but no response is registered
WARNING (Eris) received username does not match existing
WARNING (Eris) no-one handled op:{from:"943",to:"943",seconds:10818.5,args:[{args:[],parent:"set",objtype:"op"}],parent:"think",objtype:"op"}
WARNING (Eris) no-one handled op:{from:"76",to:"943",seconds:10818.5,args:[{id:"943"}],parent:"look",objtype:"op"}
WARNING (Eris) no-one handled op:{from:"171",to:"943",seconds:10818.5,args:[{id:"943"}],parent:"look",objtype:"op"}
CRITICAL (Eris) got sight of queued entity 10 somehow

This could be related to #4 and #22

Changing terrain page size will mess up the map reliably

image

Steps to reproduce:

  1. Connect to any server.
  2. Change terrain page size.
  3. Chaos.

Expected behavior:

Do not apply this setting until ember has restarted. Display a warning like "This setting will take effect after reconnecting to the server or restarting ember". Additionally, the terrain settings are missing tooltips.

Depth of Field is misbehaving

Many textures are blurry for no reason. I assume this depth of field thing is for performance reasons but it appears there is no way to change this behavior.

image

The texture is perfectly sharp when you look at it with an angle of about 90°.

image

Expected behavior:

The textures which are close to you are not blurry and this effect is not nearly as obvious.

Build on Ubuntu 20.04

Using the hammer.sh process for building, the install-deps installed OGRE 13.4.1, so when it got to ember, it did this:

Ember client...
Configuring...
CMake Error at CMakeLists.txt:258 (find_package):
Could not find a configuration file for package "OGRE" that is compatible
with requested version "13.4.2".

The following configuration files were considered but not accepted:

.../src/worldforge/hammer/work/local/lib/OGRE/cmake/OGREConfig.cmake, version: 13.4.1

This is from a clean build from tonight.

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.