Code Monkey home page Code Monkey logo

plasma's Issues

Support loading server keys from a file

Right now the server public keys are hardcoded, making it difficult to have a single build that can connect to multiple servers.

PlasmaClient has a mechanism for loading keys from a file, which branan has expressed an interest in porting over.

Run mutiple clients

I would like to see a way to run multiple clients on the same computer for testing. If you comment out the code that prevents you from starting more then one client the game still crashes when you try and log in(choose an avatar) the second time. (there seems to be a resource conflict)

Crash in PlasmaMax's GUIDialogComponent

To duplicate: create a GUI Dialog Component in PlasmaMax, attach it to one or more items, then view the details in the Component Util panel. Navigating away from the component's panel in any way will crash Max. It appears to happen while tearing down the dialog, leaving only the Color Scheme sub-panel visible during the mandatory program close.

Debugger reports an unhandled System.AccessViolationException.

graphics.ini

The Uru Live version of graphics.ini is referenced. Do we really want this?

Use LZMA compression for downloading from FileSrv

I believe right now it uses .gz files with plZlibStream. 7zip offers better compression, especially if we can combine multiple files into a single archive.

Future ideas based on this support:

  • Compression of Python and SDL downloaded from server. Download a single archive that unpacks to the required multiple files.
  • Manifest-based archives. Rather than downloading each file, you could download all the files for an Age as a single archive.

Logs moved to C:\log

Somewhere between 53d8f4d and a7dbe3f, logs moved from _C:\Users\CWalther\AppData\Local\Uru Live\Log_ to _C:\log_. Was this intentional?

I suspect the cause is the following change in e2d4b12 (at least I seem to be able to restore the previous location by undoing it):

diff --git a/Sources/Plasma/PubUtilLib/plStatusLog/plStatusLog.cpp b/Sources/Plasma/PubUtilLib/plStatusLog/plStatusLog.cpp
index 501868c..096d419 100644
--- a/Sources/Plasma/PubUtilLib/plStatusLog/plStatusLog.cpp
+++ b/Sources/Plasma/PubUtilLib/plStatusLog/plStatusLog.cpp
@@ -91,7 +90,8 @@ plStatusLogMgr::plStatusLogMgr()
     fDrawer = nil;
     fLastLogChangeTime = 0;

-    PathGetLogDirectory(fBasePath, arrsize(fBasePath));
+    plFileUtils::ConcatFileName(fBasePath, L"log");
+    plFileUtils::EnsureFilePathExists(fBasePath);
 }

 plStatusLogMgr::~plStatusLogMgr()

fBasePath is "" before this, so it ends up as "\log".

I don’t have time right now to figure out what the proper solution is (maybe adding a non-Windows implementation of PathGetLogDirectory()?), so I’m just bringing it up for now.

I also just noticed that all log lines in the files (not those in the in-game log viewer) appear to be truncated to their first 4 characters after the timestamp, but I don’t have time to investigate that now.

Unimplemented VaultClientAPIs

There are a lot of "eric, implement me" and "eric, port me" assertions in plVaultClientApi. We should really implement these because (in some cases) pfPython uses some of this unimplemented functionality. When implementing them, we should really try not to block. Already entirely too much of the vault API blocks, which is responsible for most of the freezes in the client.

Re-license under modified GPLv3 + exceptions

For starters, please read http://forums.openuru.org/viewtopic.php?f=92&t=642 which is a post from Cyan Worlds's Mark DeForest, and contains the new licence text.
You can also read the full proposed licence text at https://gist.github.com/1290594

We believe that this re-licensing is a good thing and that it is essential to the continued development of open-source Plasma. In particular, this modified licence would allow us to distribute builds that link against PhysX and distribute updated versions of the 3DS Max plugin.

In order to go ahead with this, we need permission from everyone listed on https://github.com/H-uru/Plasma/contributors to relicense their code under the new licence.
Please respond below with a statement _clearly_ indicating if you will allow your code to be relicensed.

Artist Controlled Shader Support

As mentioned.. since forever in the usual channels, I'd like to see:

  1. Myst V style shader rendering support

  2. custom shaders per hsGMaterial

Re-enable Localization

There are XML files to handle L10n, but it's all hardcoded in the executable at the moment.

Combined with OHB's ULP project, we could add support for a number of languages.

plDXPipeline assertion during start-up

When starting an internal debug client with the dat and sfx folders from current MOULa, the Python and SDL from moul-scripts/Python27, and DirtSand on the other side, I get an assertion during startup:
"plPipeline/plDXPipeline:4363
Allocation non-managed resource with managed resources alloc'd"
I can continue by clicking "Ignore", but obviously something is going wrong somewhere.

Fix the 16:9 sqished issue

When using 16:9 resolutions game objects that are supposed to be square appear to be rectangles. They are longer then they are taller, the journey cloths are one example of this. I'm not sure who the best person to work on this is.

MaxPlasmaLights crash on exit

MaxPlasmaLights.dlo crashes with a "pure virtual function call" error when 3ds Max closes. Sometimes the error dialog doesn't get displayed though. This error causes the 3dsmax.exe process to linger in the background like a creeper, only it doesn't explode. The call stack is deep inside the MSVC runtime, so it's pretty nasty.

Plasma Export Dialog Missing

It looks like with the GUI changes in newer versions of Max (read: 2011) the Max-7-style Plasma Export file menu option has been nuked from the plugin. Age creators can still export plasma files properly, but it is non-intuitive to use the standard Max Export dialog and select Plasma 2.0 as file type. Modifying the code to make the original Plasma Export Dialog accessible would greatly enhance the usability of the plugin.

Scene Viewer Broken

The Scene Viewer functionality needs to be restored in the 3ds Max Plasma Plugin.

Unusual behavior with shift+WASD or jumping

Using shift+w to run, you stop running after a moment. If capslock is on, shift+w to walk causes you to start running after a moment. Shift+arrow keys works fine.

If using shift to run, with either WASD or the arrow keys, if you jump, you will stop running upon landing if you still have space pressed down. Using capslock to run, having it pressed down doesn't matter, you continue running.

Feature: Tab-completing names in chat

It would be useful to be able to tab-complete the names of other Age Players.

At the very least, it would be useful it tab didn't insert tab characters into the chat line.

Hg -> Git pull mangling file contents

Thanks Zrax for getting my cursors branch into Git!

I noticed however that some things in the added files appear to have gotten mangled in the process: e.g.

--- CWE-hg/MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/making of cursors/blackwhite2rgba.py    2011-04-23 10:15:51.000000000 +0200
+++ CWE-git/Sources/Plasma/Apps/plClient/res/making of cursors/blackwhite2rgba.py   2011-04-23 10:24:36.000000000 +0200
@@ -3,7 +3,7 @@
 # Christian Walther 2011-04-21
 # Public Domain

-# blackwhite2rgba.py <imageonblack> <imageonwhite> <factor> <output>
+# blackwhite2rgba.py <imageonblack><imageonwhite><factor><output>
 #
 # - Read two opaque image files that have the same picture composited onto a
 #   black background and a white background.

or tabs being replaced by spaces.

For future Hg -> Git imports, is there anything you can do against that? If not, is there anything you can do to make it clear that the files you have in Git now are not my original files from Mercurial, but have been modified? Perhaps by making the modification in a separate changeset, or by noting it in the commit messages? The current state where the commit metadata is exactly my original one (except for the date), but the file contents are not, feels like a misrepresentation to me.

I’m OK with the modifications to my modifications in the files that I didn’t add but just modified (e.g. plPlates.cpp), since for those it is clear that what you did was not a straight pull but more like a rebase. Although perhaps in the big picture doing a pull (unmodified) and merge would have been clearer than a rebase.

Rewrite python glue code in C

The glue code at the bottom of all Python files is identical. This can be rewritten in C embedded in the executable to make Python development slightly less of a hassle for age scripters.

Write plGLPipeline

An OpenGL pipeline implementation is one of the first steps towards porting the engine to other operating systems.

Small Resource leak

I ran cppcheck -f through the entire Plasma project, and there were several small things that it picked up.

plGImage

`[./Sources/Plasma/PubUtilLib/plGImage/plFont.cpp:1916]: (error) Resource leak: fp
The fp resource leak is caused by a return in a catch-all (...) statement, so the file resource was never freed(it was verified to exist before the try).

I looked through the 20ish reports that it came up with, but that one is the only definite one, where the others were mostly false alarms for when memory allocation fails.

Make Plasma 64-bit compliant

This likely requires changing almost every function to verify that it will work properly when compiled in 64-bit.

cmake-generated nmake file is missing jpeg.lib when linking plClient

I currently have the latest from this repository. After running cmake -G "NMake Makefiles" . in the root of the project, I end up with a broken build.make for plClient. It is missing the path to jpeg.lib in the section "Linking CXX executable plClient.exe". Adding the path to build.make manually works.

I have checked CMakeLists.txt, and it seems to be fine: target_link_libraries(plClient ${JPEG_LIBRARY})

In my CMakeCache.txt, JPEG_LIBRARY is properly defined.

The broken file in question: Plasma/Sources/Plasma/Apps/plClient/CMakeFiles/plClient.dir/build.make

The CmakeLists.txt which is used to generate it: Plasma/Sources/Plasma/Apps/plClient/CMakeLists.txt

I am using cmake 2.8.4 for windows.

Crash as logon

not sure if any one has this but on external build of the client will crash at logon if you check the save password box but runs fine if you leave it unchecked

console documentation is wrong

The console doc writer does not remove subcategories before appending a new category. This leads to incorrect documentation:

Graphics.Show.Bounds - Toggle object bounds display 
Graphics.Show.Renderer.ToggleRenderRequests - Toggles processing of pre- and post-render requests 

The correct documentation would be:

Graphics.Show.Bounds - Toggle object bounds display 
Graphics.Renderer.ToggleRenderRequests - Toggles processing of pre- and post-render requests 

AVI glitch

Hi:
I'm new to GitHub, so bear with me if I do this wrong. This is a "down the road" issue that I might look into. It is a wish list/client issue. I noticed the internal client has a "AVIWrite" command which does not work, it would be great if I or someone more experienced could get it working. Then someone could make a Ki command to record movies in game! We would no longer have to rely on external tools.
-Jamie

Improve shadow results

All shadows for a single light source should be combined into a single texture so that they do not stack onto each other.

Proper Unicode support

International players would certainly appreciate the ability to type accented characters into chat without getting error messages.

Proper linking framework

Linking in Uru is a pure mess, and being able to do it via Python or using a responder doesn't make things better. In the end, everything needed to link to an age should be the age filename, the spawn point name, and optionally a GUID if a specific instance is desired. The rest should then be done automatically and safe (so invalid linking requests are aborted, no vault issues).
For Offline KI, I implemented a system that does this, except for the GUID - but since that essentially just disables some age finding automatisms, it should be easy to add. From all I learned, linking did not change very much for MOUL. This xLinkMgr relies on a configuration file (that could easily be embedded into the code though) to know which ages exist, what they are properly called, which linking rule they need (including sub-age relations), which spawn points exist (name and title) and what the default spawn point is. This information can then also be used to fill the Nexus, provide consistent age names in the KI and so on.

So, I suggest to include xLinkMgror an equivalent system into MOUL Python - and find some way to also sanitize links through plResponders. Is it possible to pass that through Python as well?

Exiting Teledahn Elevator

Exiting the elevator on the second level of the shroom in Teledahn causes the avatar to fall through the floor and land on the roof of the spawn hut. Possibly related to a bad subworld exit region. This bug was observed on Cyan's MOULa Shard.

Improve shadow efficiency

There is some DrawableSpan caching that can happen, rather than calculating spans on every frame, but there are probably a lot of other changes that can improve the efficiency of shadows.

Remove pnUtils

pnUtils is some sort of crazy collection of crap that eap made just for MOUL. Much of his code duplicates already existing functionality in either the CoreLib or the C standard library. Furthermore, a good portion of it is Win32 only. We should work to remove of this duplicate, non-crossplatform code. In cases where he actually wrote something useful, the code should be most likely moved into CoreLib or another appropriate location.

Get rid of plUruLauncher

The starting phase of CWE with two binaries working together is needlessly complicated, not to mention all the duplicated code. The self-patching ability and the plClientPatcher should be moved to plClient and launched before showing the login dialogue (so that nothing changes for the user). Then we can also get rid of these hard-coded .exe filenames in the sources, I see no reason why we should not be able to call the executable the way we want without even recompiling.
The internal client can get a command-line option to skip the patching, to replicate the behaviour of directly calling plClient.

H-uru and OpenUru.org repositories are incompatible

Following the discussion in issue #21, I did some experiments and came to the conclusion that Hg-Git is a reliable way (possibly the only one) of losslessly moving commits back and forth between Mercurial and Git, i.e. without losing commit identity and getting duplicates. So far, so good.

So I set out, as an exercise, to merge my cursors branch from my clone of the OpenUru.org Mercurial repository into a clone of the H-uru Git repository – only to find that it doesn’t work. It doesn’t work because the two repositories share no history, they are completely independent from a version control point of view. Their first 7 revisions should be the same, but they aren’t. The difference is that the OpenUru.org one has a .hgignore file and the H-uru one doesn’t. This means that pulling from one into the other will pull in “duplicates” of these revisions, and branches based on one set can’t be merged with branches based on the other set because there is no common ancestor (more precisely, they conflict on every change to either side because the first common ancestor is the empty repository).

This is quite an unfortunate situation, I think. In a way, it means that what I always feared would happen sooner or later, that the H-uru Plasma repository would eventually turn into a permanent fork (in the traditional sense) without any hope of ever being able to share code with upstream again, has already happened from the outset.

The only way I can think of of fixing this is pulling (the original version of) these 7 revisions in again and rebasing everything else on them. I have succeeded in that at https://github.com/cwalther/Plasma (I think). However, an upstream rebase is quite an inconvenience to everyone who already has clones of the repository (with unmerged changes) and should not be done lightly.

Does anyone have a better idea?

Proper widescreen and multi-screen support

Right now plasma's widescreen resolution support is flakey at best. Would be nice to support multiple screen displays, too.

For example, FOV, along with KI-shot taking on 1080p is downright awful.

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.