[OLD-1] AGS engine Linux port

Started by BigMc, Sun 03/06/2012 19:04:20

Previous topic - Next topic

BigMc

Hi. Looks like you are missing the C++ standard library. Did you install build-essential as described in the Debian instructions?

monkey0506

Well I'm not sure exactly why you'd be getting that issue (I have successfully compiled the current repos on 32- and 64-bit Linux Mint). The very first link when Googling "linux cannot find lstdc++" is this StackOverflow question. Perhaps installing g++-multilib would resolve the issue for you?

Edit: I didn't even see there was another page, so I didn't see BigMc's post, but that also. :P

TazX


Quote from: BigMc on Thu 21/11/2013 14:36:00
Hi. Looks like you are missing the C++ standard library. Did you install build-essential as described in the Debian instructions?

Yes, I installed all of the suggested packages.  They seemed to be successful.  This is what I get when I try and install them:
$ sudo apt-get install git debhelper build-essential pkg-config liballegro4.2-dev libaldmb1-dev libfreetype6-dev libtheora-dev libvorbis-dev libogg-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
build-essential is already the newest version.
debhelper is already the newest version.
git is already the newest version.
libfreetype6-dev is already the newest version.
libogg-dev is already the newest version.
libtheora-dev is already the newest version.
libvorbis-dev is already the newest version.
pkg-config is already the newest version.
libaldmb1-dev is already the newest version.
liballegro4.2-dev is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 43 not upgraded.


Quote from: monkey_05_06 on Thu 21/11/2013 17:10:59
Well I'm not sure exactly why you'd be getting that issue (I have successfully compiled the current repos on 32- and 64-bit Linux Mint). The very first link when Googling "linux cannot find lstdc++" is this StackOverflow question. Perhaps installing g++-multilib would resolve the issue for you?

Edit: I didn't even see there was another page, so I didn't see BigMc's post, but that also. :P

BigMc's post?  I can only see 3 responses, none of whom are called BigMc?  Am I looking in the right place?

My full error message is this, hope it helps:

~/ags $ make --directory=Engine
make: Entering directory `/home/tamsyn/ags/Engine'
CFLAGS = -O2 -g -fsigned-char -Wfatal-errors -DNDEBUG -DAGS_RUNTIME_PATCH_ALLEGRO -DAGS_HAS_CD_AUDIO -DAGS_CASE_SENSITIVE_FILESYSTEM -DALLEGRO_STATICLINK -DLINUX_VERSION -DDISABLE_MPEG_AUDIO -DBUILTIN_PLUGINS -DRTLD_NEXT -I/usr/include/freetype2 -I../Engine -I../Common -I../Common/libinclude -I../Plugins

CXXFLAGS = -fno-rtti -Wno-write-strings -fpermissive -O2 -g -fsigned-char -Wfatal-errors -DNDEBUG -DAGS_RUNTIME_PATCH_ALLEGRO -DAGS_HAS_CD_AUDIO -DAGS_CASE_SENSITIVE_FILESYSTEM -DALLEGRO_STATICLINK -DLINUX_VERSION -DDISABLE_MPEG_AUDIO -DBUILTIN_PLUGINS -DRTLD_NEXT -I/usr/include/freetype2 -I../Engine -I../Common -I../Common/libinclude -I../Plugins

LDFLAGS = -Wl,--as-needed

LIBS = -rdynamic -L/usr/lib/x86_64-linux-gnu -lalleg -laldmb -ldumb -Wl,-Bdynamic -ltheora -logg -lvorbis -lvorbisfile -lfreetype -logg -ldl -lpthread -lm -lc -lstdc++

Linking engine...
/usr/bin/ld: cannot find -lstdc++
collect2: ld returned 1 exit status
make: *** [ags] Error 1
make: Leaving directory `/home/tamsyn/ags/Engine'

David Ostman

Quote from: TazX on Sun 24/11/2013 09:06:56
BigMc's post?  I can only see 3 responses, none of whom are called BigMc?
You quoted said post by BigMc in your reply above, I think.

Quote from: BigMc on Thu 21/11/2013 14:36:00
Hi. Looks like you are missing the C++ standard library. Did you install build-essential as described in the Debian instructions?

TazX

Quote from: David Ostman on Sun 24/11/2013 10:46:03
Quote from: TazX on Sun 24/11/2013 09:06:56
BigMc's post?  I can only see 3 responses, none of whom are called BigMc?
You quoted said post by BigMc in your reply above, I think.

Quote from: BigMc on Thu 21/11/2013 14:36:00
Hi. Looks like you are missing the C++ standard library. Did you install build-essential as described in the Debian instructions?

*facepalm* - oops, sorry.  Yes, I've installed build-essentials:
build-essential is already the newest version.

Any other tips?  Should I be linking something to something else?

JJS

You can change the linker flags to produce verbose output. This will show what files the linker checks before the linking fails. In the file Makefile-defs.linux change the line:
Code: makefile
override LDFLAGS  += -Wl,--as-needed $(addprefix -L,$(LIBDIR))
to
Code: makefile
override LDFLAGS  += -Wl,-verbose,--as-needed $(addprefix -L,$(LIBDIR))


This will give a lot of additional output, for my system the relevant output lines are:
Code: makefile
attempt to open /usr/lib/x86_64-linux-gnu/libstdc++.so failed
attempt to open /usr/lib/x86_64-linux-gnu/libstdc++.a failed
attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.7/libstdc++.so succeeded
-lstdc++ (/usr/lib/gcc/x86_64-linux-gnu/4.7/libstdc++.so)
Ask me about AGS on PSP, Android and iOS! Source, Daily builds

scottchiefbaker

What does -hicolor do exactly? And while we're at it, what does -letterbox do? I've never used either of them. Are they still relevant?

I'm looking at changing the --help to be more helpful.

Crimson Wizard

-hicolor => downgrade 32-bit game to 16-bit
-letterbox => wiki describes this better

TFeldt

First off, fantastic work on the linux port. So far I've not encountered a single crash and the compilation instructions were clear as crystal.

Secondly, I apologize if I have somehow missed a bug report or thread about this issue. I did check both the tracker, repository and this forum. The only thing that seemed to be vaguely related was http://www.adventuregamestudio.co.uk/forums/index.php?topic=48948.0 but I'm not sure if it is since I never encountered this problem while running the windows version of AGS.

Finally, the actual post. I'm having issues with pointer accuracy. The in-game software pointer always seem to trail behind the actual pointer. If I move it too fast the pointer appears to grow hysterical, jump around at random and then eventually settle down (I know, not a particularly technical description but it's the best I can muster). It does not affect my actual pointer, which can be confirmed by moving it outside the ags window. What have I done wrong?

There's no errors in stdout, the games work fine otherwise, it happens in both windowed and fullscreen mode, it happens on every game I've tried but for reference the two last ones were Technobabylon and Beacon. I'm running a stock ubuntu 13.10, only thing that should be related is that I'm running the official nvidia drivers, not the noveau ones. I have not made any modifications to X related to my mouse.

I would post this in the bug forum, but it feels like this is a user specific problem so I'll refrain from doing so until confirmed.

scottchiefbaker

Have you tried it with the Noveau drivers? I've definitely had the issue you describe in other programs (not specifically ags), that was related to a bad video driver.

There are no known pointer lag issues, especially on an updated distro like you have.

TFeldt

Quote from: scottchiefbaker on Tue 17/12/2013 19:43:15
Have you tried it with the Noveau drivers? I've definitely had the issue you describe in other programs (not specifically ags), that was related to a bad video driver.

There are no known pointer lag issues, especially on an updated distro like you have.
Thank you for your quick reply mate. Your confirmation that there were no reported problems like this got me going. I first tried the noveau driver, but it made no difference. Then I started getting exotic. Long story short; it wasn't at all related to nvidia. It was in fact a hardware problem. With my darn mouse, a Mad Catz RAT 7. The part of ags that interprets mouse movement (allegro? or is there a custom input layer?) does not receive the correct information from X. It does not correspond to actual mouse movement, which is bizarre since the mouse works perfectly in regular X and other applications.

I verified that this was the problem by connecting a second mouse to the same system at the same time. The logitech one was smooth as butter in ags, the RAT continued to manifest the problem. I'm going to keep poking at this, if I figure out how to solve it I'll post back in case anyone else runs into the issue and finds the post via google. But for now this can be ignored, it is not related to ags.

scottchiefbaker

Great... glad it was "simple". If you notice any other issues please let us know.

Cheeseness

Quote from: TFeldt on Tue 17/12/2013 22:12:03It was in fact a hardware problem. With my darn mouse, a Mad Catz RAT 7.
Since that's the model of mouse that I use, I thought I'd pipe in and say that I've not encountered the sort of issues you've described either either of the ones I've had so far :(

TFeldt

Unfortunately I'm back. It turns out it wasn't a problem with my mouse but a built-in input event throttling in either AGS or Allegro (or a performance bottleneck related to input events). It'd take far too long to describe in text exactly what transpires so I made a video instead. They say a picture is worth a thousand words, so 30 frames per second for 288 seconds would be worth 8.6 million words(!). Hopefully I made everything clear, in case you have any questions then I'll always be available for further testing. You can find the youtube video below.

https://www.youtube.com/watch?v=WMlQ1aNDun0

s_d

Quote from: TFeldt on Wed 18/12/2013 13:51:31
Hopefully I made everything clear, in case you have any questions then I'll always be available for further testing. You can find the youtube video below.

https://www.youtube.com/watch?v=WMlQ1aNDun0

Yeah, that was super clear, and this is really great information, TFeldt!  Thanks for the video.  We've had other testers intermittently report input lag as well.

Looks like http://code.google.com/p/aseprite/issues/detail?id=283 to me, so maybe a known-issue with A4 at present (or at least with the way we're using it and polling inputs).

TFeldt

Quote from: s_d on Thu 09/01/2014 04:09:16
Yeah, that was super clear, and this is really great information, TFeldt!  Thanks for the video.  We've had other testers intermittently report input lag as well.

Looks like http://code.google.com/p/aseprite/issues/detail?id=283 to me, so maybe a known-issue with A4 at present (or at least with the way we're using it and polling inputs).
That's great, I'm happy it was useful. I had a look at that issue tracker and it does appear to be a likely culprit. If it's yielding for more than 1ms in a non-blocking mode then it'll create a queue build-up that keeps increasing over time. It might also be aggravated by the host's performance. For me 500hz polling was fine, so as long as it yields less than 2ms then it works fine for me. Actually had this exact problem with the unity3d engine a while back, but they eventually fixed it internally.

Easiest way to fix it might be to just have it block events instead of creating a queue, the net result would be the same as reducing your polling rate only done in the application itself. They do seem to be considering a more long-term fix though, using message queues provided by allegro 5 instead. If I remember correctly that would remove the necessity to yield since it'd be processed on creation instead of having the main thread keep checking for it manually and thus spiking the cpu usage.

scottchiefbaker

Where do we stand on a Mac build? I know the Humble Bundle guy sent us a lot of Mac code. Are we anywhere close to merging that? If we did merge it, do we have a Mac guy who could compile/test it?

BigMc

There is also a Mac thread on this forum.

JanetC

Hey guys,

Since we now have a commercial-ready Linux port courtesy of the Humble Bundle, I want to release Wadjet Eye's games on Linux as soon as possible. What's the Linux community preferred way of building an installer for games?

Janet

scottchiefbaker

Janet from Wadjeteye contacted me about releasing their games commercially on Linux. One question she asked me was about an installer. I don't have any experience with creating an installer, so I wasn't much help.

1) Do you think they need an installer? Or would a .tar.gz be enough?
2) If they do decide to do an installer, what should they use?

Maybe I'm old school, but I'd prefer a simple .tar.gz with the binaries/assets in it.

SMF spam blocked by CleanTalk