Secretchronicles / TSC

An open source two-dimensional platform game.
https://secretchronicles.org/
GNU General Public License v3.0
205 stars 49 forks source link

Editor: general and level building problems #597

Closed Skarfester closed 6 years ago

Skarfester commented 7 years ago

These problems weren't on version 2.0. Some of them are related to #596

Quintus commented 7 years ago

Some special objects like entry and exit beams and particle emitter are invisible, making very hard to find them with the pointer. I found that dragging them makes them visible (except for the particle emitter).

Moving the camera usually also makes them visible. I'm not yet sure what causes this.

Pointer behaviour: sometimes you need to move the pointer past an object to actually be able to select it.

This happens only with moving objects, especially enemies. What happens in reality is that the editor draws the object at its start coordinates, but reacts to the pointer at where the object currently is in the level (but does not draw it there). This is clearly buggy behaviour.

Sometimes objects cannot be selected, dragged or deleted, like if they weren't actually there (Alex graphic for example).

This is a direct consequence of the above. Try clicking/dragging at the position where Alex in the level currently really is, and it will mysteriously work.

Some images are not displayed in the menu (image not found), but can be picked normally.

This is actually intentional, because these have no image. I think the special objects displayed "special object" instead of "image not found" earlier, which was lost somewhere during removing our use of private CEGUI APIs and rewriting the editor object panel image loader.

Vale, Quintus

Quintus commented 7 years ago

The objects outline showing its properties (massive, passive, climbable...) is so thin it's difficult to see the colour.

This is most certainly a subjective impression, because the line width has always been 1px since the beginning of TSC. I will change it to 2px nevertheless, because you're right that it occasionally is a little hard to see.

Quintus commented 7 years ago

@Skarfester While fixing the pointer problem (which was caused by a missing position update on editor startup) it appears I have also fixed the invisible objects problem. Could you please verify that? Also, please verify that the pointer and select/drag problems described in the OP are fixed by now.

Quintus commented 7 years ago

@Skarfester I think I have resolved all of your problems listed in the OP now. Please verify!

Skarfester commented 7 years ago

Update:

Skarfester commented 7 years ago

This happens only with moving objects, especially enemies. What happens in reality is that the editor draws the object at its start coordinates, but reacts to the pointer at where the object currently is in the level (but does not draw it there).

This still happens. You need to reload the level into the editor menu or as you said click into the actual game position.

Skarfester commented 7 years ago

As for the "image not found" issue the special objects are fixed but there are some more. The errors shown at the terminal are like this:

CEGUI::RendererException in function 'virtual void CEGUI::OpenGLTexture::loadFromFile(const CEGUI::String&, const CEGUI::String&)' (/build/cegui-mk2-u4yeoM/cegui-mk2-0.8.7/cegui/src/RendererModules/OpenGL/Texture.cpp:246) : SILLYImageCodec - Official SILLY based image codec failed to load image 'ground/ghost_1/spiderweb_1.png'. Warning: Failed to load as editor item image: "/opt/tsc/share/tsc/pixmaps/ground/ghost_1/spiderweb_1.png" Using dummy image instead.

The complete list of objects: Plastic grey_up grey_down grey_right grey_left Platforms shaft_bottom shaft_top Ropes cainend cain Bones Rackabones (all 3) Stuff lattice_ (all) spiderweb spiderwebbig stone* plinth_1 Enemies static enemy metal s (both) Blocks brick_grey brick_white

Quintus commented 7 years ago

The outline is more clear now, but the dots look inconsistent (see screenshot).

I cannot reproduce this. Are you sure your driver is working correctly? Which resolution do you play TSC on?

pointer problems: I found an offset between the image in the editor and the selectable area. As you can see in the screenshot, the selectable area starts at a lower point and ends after the image. This happens to all objects in levels and worlds, only on the Y axis. [...] This still happens.

The problem is definitely gone on my system, I cannot further reproduce it and have no Y offset problems. How did you update your repository? Didn't you forget to run make install?

The complete list of objects:

None of these exhibit the problem for me. Please delete ~/.cache/tsc (the image cache) and retry.

Valete, Quintus

Skarfester commented 7 years ago

I followed the instructions on readme.md for updating from git (I did make install as root, all previous commands as user). My version is 2.1.0-dev commit d2049009.

The offset problem appears on 1024x768 windowed. Using 800x600 or 640x480 windowed works fine, idem using 1024x768 full-screen. I see the strange dots in all resolutions.

Removing the image cache didn't help with missing images. I see some GL related errors and a segfault when I quit the game. Probably it's just my system. Super Tux Kart didn't work on my computer because it needs a newer openGL version, but my videocard don't support it.

Quintus commented 7 years ago

The offset problem appears on 1024x768 windowed. Using 800x600 or 640x480 windowed works fine, idem using 1024x768 full-screen.

I just tried at 1024x768, but still no success in reproducing it. @datahead8888 could you try to reproduce the issue after updating your Git checkout?

I see the strange dots in all resolutions.

The thing is that the dots are not drawn by TSC one by one or such things. There is a request sent to the graphics card to draw a dotted line, an atomic operation. Thus if there is an issue in drawing the dots, it must be something below TSC that is at fault.

I see some GL related errors and a segfault when I quit the game.

The warning you posted above is a real warning. For whatever reason, CEGUI could not load that file from disk and hence displays the dummy image to you. Does the file mentioned in the error message exist, and do you have read access to it?

The segfault is most likely a consequence of the failure to load these images, though it should not happen even in that case (TSC probably thinks the images are there and tries to free them on game exit, causing the segfault as they aren't). You could try to generate a backtrace by compiling TSC with -DCMAKE_BUILD_TYPE=Debug and then running TSC via gdb like this:

$ gdb /opt/tsc/bin/tsc
> r
[play until it segfaults]
> bt
[long backtrace]
> quit

Please post the entire output you get from this run.

Vale, Quintus

Quintus commented 7 years ago

By debugging in IRC, we found out that the offset problem results from skarfester using the XFCE bar, which occupies part of the screen and overlaps the TSC window. It is this overlap that causes the offset.

Skarfester commented 7 years ago

Here's my full console output by just opening and closing the game. You'll see a lot of GL errors about missing images. I think they appear because I have worlds edited on 2.0 using my own graphics put in folders different that in 2.1 (and some of them, like the river, not included at all). https://gist.github.com/Skarfester/e87fafec77f6eaaf0eacce3acca3b92b

Quintus commented 6 years ago

As for the "image not found" issue the special objects are fixed but there are some more. The errors shown at the terminal are like this:

This was a tricky one. I finally found the culprit. It depends on CEGUI's compilation options. Debian and Debian-based Linux distributions compile CEGUI with the default image codec set to SILLY, and SILLY has problems with some of our PNG files, albeit they're valid PNGs. Commit 7f52d2d48d8bb2e59e1da483268f36567e27ead7 forces the DevIL codec to be used, which made the problem disappear for me. @skarfester, can you please test again with that commit applied and see whether the items in the menu are now all displayed properly for you?

Quintus commented 6 years ago

Actually, re-reading the OP, this was all. The bugs described in this ticket are fixed now, so I close this. Still, would be nice if @skarfester would verify.