Комментарии 52
Видео понравилось, надеюсь игра также не разочарует, люблю иногда поиграть в Mahjong. Интересует также вопрос технологий, которые использовались, игра писалась на питоне, плюс я так понимаю использовался Blender, очень интересно было бы почитать статью на эту тему.
Игра писалась на C++ с использованием OGRE 3D. Подробности можно найти в статье, которая упомянута в конце. А более полный рассказ о том как игра сделана, как к этому шли и на какие грабли наступали, планируем ближе к релизу.
А Blender использовался только для того чтобы смоделить и затекстурить фишки.
А Blender использовался только для того чтобы смоделить и затекстурить фишки.
Ох, а я думал, что самый приятный маджонг — это тот, что в составе кед.
Но ваш, судя по видео, намного лучше.
Скачаю, попробую.
Спасибо :)
Но ваш, судя по видео, намного лучше.
Скачаю, попробую.
Спасибо :)
Рано обрадовался.
./mj: line 21: 5561 Segmentation fault LD_LIBRARY_PATH=./lib ./lib/mj-bin ./lib ./res
Aptosid (Debian sid) x64
./mj: line 21: 5561 Segmentation fault LD_LIBRARY_PATH=./lib ./lib/mj-bin ./lib ./res
Aptosid (Debian sid) x64
Если лог интересен, могу выслать.
Правда он выглядит оборвавшимся (буфер не сброшен из-за сегфолта видимо).
Правда он выглядит оборвавшимся (буфер не сброшен из-за сегфолта видимо).
Лог очень интересен. Мы тестировали игру на нескольких машинах и нескольких операционках, включая Debian (правда Squeeze, не Sid). Но не все комбинации железа/софта удалось проверить, есть сообщения о падениях. Будем разбираться.
Если подскажете, как собрать dev-версию и gdb-ом поймать сегфолт — смогу сказать, где именно крашится.
Я просто gdb к сожалению редко юзаю, мало опыта, не помню почти ничего. Но если поможете — буду рад дать больше информации.
Ссылку на лог сейчас в личку скину.
Я просто gdb к сожалению редко юзаю, мало опыта, не помню почти ничего. Но если поможете — буду рад дать больше информации.
Ссылку на лог сейчас в личку скину.
Посмотрел лог. Ругается на отсутствие файла GLX_icon.png в каталоге res.
Игра запускалась shell-скриптом mj из каталога mj-0.7-linux64?
Игра запускалась shell-скриптом mj из каталога mj-0.7-linux64?
Скачайте версию для отладки:
sourceforge.net/projects/osrpgcreation/files/Mahjong/dev/mj-0.7-linux64-debug.7z/download
Она без папки ресурсов идёт, поэтому возьмите её из исходного арива, называется res.
Далее из директории отладочной игры выполните:
LD_LIBRARY_PATH=./lib gdb --args ./lib/mj-bin ./lib ./res
Далее «run» для запуска.
После падение наберите «bt».
Полученную информацию давайте мне.
sourceforge.net/projects/osrpgcreation/files/Mahjong/dev/mj-0.7-linux64-debug.7z/download
Она без папки ресурсов идёт, поэтому возьмите её из исходного арива, называется res.
Далее из директории отладочной игры выполните:
LD_LIBRARY_PATH=./lib gdb --args ./lib/mj-bin ./lib ./res
Далее «run» для запуска.
После падение наберите «bt».
Полученную информацию давайте мне.
#0 0x00007fffef950644 in ?? () from /usr/lib/libnvidia-glcore.so.270.41.06
#1 0x00007fffef952bc8 in ?? () from /usr/lib/libnvidia-glcore.so.270.41.06
#2 0x00007ffff0b665e7 in ?? () from /usr/lib/libGL.so.1
#3 0x00007fffef7d7980 in ?? () from /usr/lib/libnvidia-glcore.so.270.41.06
#4 0x00007fffef815064 in ?? () from /usr/lib/libnvidia-glcore.so.270.41.06
#5 0x00007fffef7da1c9 in ?? () from /usr/lib/libnvidia-glcore.so.270.41.06
#6 0x00007ffff10b18a4 in Ogre::GLFBOManager::detectFBOFormats (this=0x87bf00)
at /root/build/ogre/src/RenderSystems/GL/src/OgreGLFBORenderTexture.cpp:367
#7 0x00007ffff10b1fba in Ogre::GLFBOManager::GLFBOManager (this=0x87bf00, atimode=112)
at /root/build/ogre/src/RenderSystems/GL/src/OgreGLFBORenderTexture.cpp:121
#8 0x00007ffff10ccb3a in Ogre::GLRenderSystem::initialiseFromRenderSystemCapabilities (this=0x781ad0,
caps=0x875a30, primary=0x7b54a0) at /root/build/ogre/src/RenderSystems/GL/src/OgreGLRenderSystem.cpp:841
#9 0x00007ffff10d05a1 in Ogre::GLRenderSystem::_createRenderWindow (this=0x781ad0, name=..., width=1, height=1,
fullScreen=false, miscParams=0x7fffffffd860)
at /root/build/ogre/src/RenderSystems/GL/src/OgreGLRenderSystem.cpp:1051
#10 0x00007ffff7072d01 in Ogre::Root::createRenderWindow (this=0x76a9e0, name=..., width=8902256, height=4019534584,
fullScreen=, miscParams=0x1) at /root/build/ogre/src/OgreMain/src/OgreRoot.cpp:1192
#11 0x00007ffff6af31e2 in mjin::Application::Application (this=0x76a270, dirPlugins=...)
at /media/sf_root/home/kornerr/cpp/mjin/src/mjin/Application.cpp:25
#12 0x00000000004b8d3e in mj::Application::Application (this=0x7fffffffde80, dirPlugins=..., dirResources=...)
at /media/sf_root/home/kornerr/cpp/mj/src/mj/Application.cpp:31
#13 0x00000000004bb814 in main (argc=3, argv=0x7fffffffe2a8) at /media/sf_root/home/kornerr/cpp/mj/src/main.cpp:26
#1 0x00007fffef952bc8 in ?? () from /usr/lib/libnvidia-glcore.so.270.41.06
#2 0x00007ffff0b665e7 in ?? () from /usr/lib/libGL.so.1
#3 0x00007fffef7d7980 in ?? () from /usr/lib/libnvidia-glcore.so.270.41.06
#4 0x00007fffef815064 in ?? () from /usr/lib/libnvidia-glcore.so.270.41.06
#5 0x00007fffef7da1c9 in ?? () from /usr/lib/libnvidia-glcore.so.270.41.06
#6 0x00007ffff10b18a4 in Ogre::GLFBOManager::detectFBOFormats (this=0x87bf00)
at /root/build/ogre/src/RenderSystems/GL/src/OgreGLFBORenderTexture.cpp:367
#7 0x00007ffff10b1fba in Ogre::GLFBOManager::GLFBOManager (this=0x87bf00, atimode=112)
at /root/build/ogre/src/RenderSystems/GL/src/OgreGLFBORenderTexture.cpp:121
#8 0x00007ffff10ccb3a in Ogre::GLRenderSystem::initialiseFromRenderSystemCapabilities (this=0x781ad0,
caps=0x875a30, primary=0x7b54a0) at /root/build/ogre/src/RenderSystems/GL/src/OgreGLRenderSystem.cpp:841
#9 0x00007ffff10d05a1 in Ogre::GLRenderSystem::_createRenderWindow (this=0x781ad0, name=..., width=1, height=1,
fullScreen=false, miscParams=0x7fffffffd860)
at /root/build/ogre/src/RenderSystems/GL/src/OgreGLRenderSystem.cpp:1051
#10 0x00007ffff7072d01 in Ogre::Root::createRenderWindow (this=0x76a9e0, name=..., width=8902256, height=4019534584,
fullScreen=, miscParams=0x1) at /root/build/ogre/src/OgreMain/src/OgreRoot.cpp:1192
#11 0x00007ffff6af31e2 in mjin::Application::Application (this=0x76a270, dirPlugins=...)
at /media/sf_root/home/kornerr/cpp/mjin/src/mjin/Application.cpp:25
#12 0x00000000004b8d3e in mj::Application::Application (this=0x7fffffffde80, dirPlugins=..., dirResources=...)
at /media/sf_root/home/kornerr/cpp/mj/src/mj/Application.cpp:31
#13 0x00000000004bb814 in main (argc=3, argv=0x7fffffffe2a8) at /media/sf_root/home/kornerr/cpp/mj/src/main.cpp:26
Погуглив, наткнулся на это:
www.ogre3d.org/forums/viewtopic.php?f=2&t=60864
Сейчас попробую закомментить эту строку и пересобрать огра.
www.ogre3d.org/forums/viewtopic.php?f=2&t=60864
Сейчас попробую закомментить эту строку и пересобрать огра.
Легче дрова обновить.
Игру собирать надо, как описано здесь: code.google.com/p/ogstudio/wiki/InstallMJIN
Там скачивается и компилится нужный огр с нужными параметрами.
Игру собирать надо, как описано здесь: code.google.com/p/ogstudio/wiki/InstallMJIN
Там скачивается и компилится нужный огр с нужными параметрами.
Дрова последние же?
Собрать так и не осилил к сожалению, ругается при сборке OIS, CEGUI, и не может установить alure из-за нехватки прав. Ну нехватка прав понятна, я ж не из под рута ./install запускаю.
Однако света на то, как это должно быть собрано, оно не проливает.
Однако света на то, как это должно быть собрано, оно не проливает.
Может, тогда downgrade дров попробовать?
Запускать надо из-под root.
Сначала надо выполнить ./download, а потом ./install, как сказано в документе.
Запускать надо из-под root.
Сначала надо выполнить ./download, а потом ./install, как сказано в документе.
При построении OIS:
При построении ogre:
При построении CEGUI:
После всего этого закономерно не собирается MJIN, ругаясь на отсутствие OGRE и CEGUI (ois-dev я установил аптом)
libtool: link: g++ -g -O2 -o .libs/ConsoleApp OISConsole.o -L../src /root/build/ois-1.2.0/ois/src/.libs/libOIS.so
/usr/bin/ld: OISConsole.o: undefined reference to symbol 'XNextEvent'
/usr/bin/ld: note: 'XNextEvent' is defined in DSO /usr/lib64/libX11.so.6 so try adding it to the linker command line
/usr/lib64/libX11.so.6: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
make[1]: *** [ConsoleApp] Error 1
make[1]: Leaving directory `/root/build/ois-1.2.0/ois/demos'
make: *** [install-recursive] Error 1
При построении ogre:
In file included from /root/build/ogre/src/OgreMain/src/OgreEdgeListBuilder.cpp:34:0:
/root/build/ogre/src/OgreMain/include/OgreOptimisedUtil.h:212:52: error: ‘ptrdiff_t’ has not been declared
/root/build/ogre/src/OgreMain/include/OgreOptimisedUtil.h:222:56: error: ‘ptrdiff_t’ has not been declared
make[2]: *** [OgreMain/CMakeFiles/OgreMain.dir/src/OgreEdgeListBuilder.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs…
In file included from /root/build/ogre/src/OgreMain/src/OgreEntity.cpp:51:0:
/root/build/ogre/src/OgreMain/include/OgreOptimisedUtil.h:212:52: error: ‘ptrdiff_t’ has not been declared
/root/build/ogre/src/OgreMain/include/OgreOptimisedUtil.h:222:56: error: ‘ptrdiff_t’ has not been declared
make[2]: *** [OgreMain/CMakeFiles/OgreMain.dir/src/OgreEntity.cpp.o] Error 1
make[1]: *** [OgreMain/CMakeFiles/OgreMain.dir/all] Error 2
make: *** [all] Error 2
[ 1%] Building CXX object OgreMain/CMakeFiles/OgreMain.dir/src/OgreEdgeListBuilder.cpp.o
In file included from /root/build/ogre/src/OgreMain/src/OgreEdgeListBuilder.cpp:34:0:
/root/build/ogre/src/OgreMain/include/OgreOptimisedUtil.h:212:52: error: ‘ptrdiff_t’ has not been declared
/root/build/ogre/src/OgreMain/include/OgreOptimisedUtil.h:222:56: error: ‘ptrdiff_t’ has not been declared
make[2]: *** [OgreMain/CMakeFiles/OgreMain.dir/src/OgreEdgeListBuilder.cpp.o] Error 1
make[1]: *** [OgreMain/CMakeFiles/OgreMain.dir/all] Error 2
make: *** [all] Error 2
При построении CEGUI:
In file included from ../../cegui/include/CEGUIEvent.h:31:0,
from ../../cegui/include/CEGUIAnimationInstance.h:34,
from CEGUIAnimationInstance.cpp:30:
../../cegui/include/CEGUIString.h:65:11: error: 'ptrdiff_t' does not name a type
In file included from ../../cegui/include/CEGUIAffector.h:33:0,
from CEGUIAffector.cpp:30:
../../cegui/include/CEGUIString.h:65:11: error: 'ptrdiff_t' does not name a type
In file included from ../../cegui/include/CEGUIAnimation.h:33:0,
from CEGUIAnimation.cpp:30:
../../cegui/include/CEGUIString.h:65:11: error: 'ptrdiff_t' does not name a type
make[3]: *** [libCEGUIBase_la-CEGUIAnimationInstance.lo] Error 1
make[3]: *** Waiting for unfinished jobs…
make[3]: *** [libCEGUIBase_la-CEGUIAnimation.lo] Error 1
make[3]: *** [libCEGUIBase_la-CEGUIAffector.lo] Error 1
make[3]: Leaving directory `/root/build/cegui/cegui/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/root/build/cegui/cegui/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/build/cegui/cegui'
make: *** [all-recursive] Error 1
Making install in.
make[1]: Entering directory `/root/build/cegui'
make[2]: Entering directory `/root/build/cegui'
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/root/build/cegui'
make[1]: Leaving directory `/root/build/cegui'
Making install in cegui
make[1]: Entering directory `/root/build/cegui/cegui'
Making install in.
make[2]: Entering directory `/root/build/cegui/cegui'
make[3]: Entering directory `/root/build/cegui/cegui'
make[3]: Nothing to be done for `install-exec-am'.
test -z "/usr/local/lib/pkgconfig" || /bin/mkdir -p "/usr/local/lib/pkgconfig"
/usr/bin/install -c -m 644 CEGUI.pc CEGUI-OPENGL.pc '/usr/local/lib/pkgconfig'
make[3]: Leaving directory `/root/build/cegui/cegui'
make[2]: Leaving directory `/root/build/cegui/cegui'
Making install in src
make[2]: Entering directory `/root/build/cegui/cegui/src'
Making install in.
make[3]: Entering directory `/root/build/cegui/cegui/src'
/bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../../cegui/include -I../../cegui/include -I/usr/include/freetype2 -g -O2 -MT libCEGUIBase_la-CEGUIAffector.lo -MD -MP -MF .deps/libCEGUIBase_la-CEGUIAffector.Tpo -c -o libCEGUIBase_la-CEGUIAffector.lo `test -f 'CEGUIAffector.cpp' || echo './'`CEGUIAffector.cpp
libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../cegui/include -I../../cegui/include -I/usr/include/freetype2 -g -O2 -MT libCEGUIBase_la-CEGUIAffector.lo -MD -MP -MF .deps/libCEGUIBase_la-CEGUIAffector.Tpo -c CEGUIAffector.cpp -fPIC -DPIC -o .libs/libCEGUIBase_la-CEGUIAffector.o
In file included from ../../cegui/include/CEGUIAffector.h:33:0,
from CEGUIAffector.cpp:30:
../../cegui/include/CEGUIString.h:65:11: error: 'ptrdiff_t' does not name a type
make[3]: *** [libCEGUIBase_la-CEGUIAffector.lo] Error 1
make[3]: Leaving directory `/root/build/cegui/cegui/src'
make[2]: *** [install-recursive] Error 1
make[2]: Leaving directory `/root/build/cegui/cegui/src'
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory `/root/build/cegui/cegui'
make: *** [install-recursive] Error 1
После всего этого закономерно не собирается MJIN, ругаясь на отсутствие OGRE и CEGUI (ois-dev я установил аптом)
З.Ы. Огр, скачанный из репов, в дефолтной конфигурации компилится без проблем.
Могу только порекомендовать поставить Virtual Box, туда Debian 5 и собрать без проблем. Нужно установить полностью DVD1.
А у вас нет возможности собрать версию с закомментированной строкой в исходниках огра? Если у вас уже есть готовый build environment, это бы не заняло много времени.
Просто боюсь, что не смогу потратить несколько часов на все это :(
Если у вас тоже нет времени, то ничего страшного, придется подождать выхода новых дров, может пофиксят)
Просто боюсь, что не смогу потратить несколько часов на все это :(
Если у вас тоже нет времени, то ничего страшного, придется подождать выхода новых дров, может пофиксят)
Закомментировать строку:
346 //glDeleteFramebuffersEXT(1, &fb);
Да?
346 //glDeleteFramebuffersEXT(1, &fb);
Да?
Вот библиотека без этой строки:
dl.dropbox.com/u/12634473/RenderSystem_GL.so
dl.dropbox.com/u/12634473/RenderSystem_GL.so
Вы наверное не тот файл выслали(
Файлы идентичны, результат выполнения, само собой, тоже.
Файлы идентичны, результат выполнения, само собой, тоже.
Извините. Скрипт обновлял исходники, обхитрил сам себя :)
Попробуйте этот: dl.dropbox.com/u/12634473/RenderSystem_GL.so
Попробуйте этот: dl.dropbox.com/u/12634473/RenderSystem_GL.so
у меня дрова NVIDIA-Linux-x86_64-256.35.run
Красиво. Ее бы на Альтернативе или Unity портировать и запустить в социалочки — бешеным бы успехом пользовалась
Приятная игрушка. Картинка, музыка приятные. Продолжайте развивать
Что меня всегда поражало что люди не имеющие представления о предмете разработки так громко называют свои творения. Правильней бы было назвать игру OGS Mahjong Solitaire потому как она не имеет ничего общего с маджонгом. Как игроку в эту игру просто обидно честное слово.
Там же есть справка. В ней сказано, что это Mahjong Solitaire.
Мы решили не публиковать её тут на хабре.
Мы решили не публиковать её тут на хабре.
Мы вполне в курсе отличий между маджонгом и пасьянсом маджонг. Выбор названия делался с оглядкой на то как называются десятки других аналогичных игр. Однако, чтобы не вводить тех кто понимает разницу в состояние когнитивного диссонанса, мы учтем это в следующих версиях.
Обидно..? Да какая разница?
По моему, это не принципиально.
По моему, это не принципиально.
Ну как какая? Говоришь кому-нибудь что ты играешь в маджонг, при чем не один а с компанией и засевший стереотип мышления человеку рисует картинку: сидят несколько балбесов за столами, разложили кости пирамидками и наперегонки разбирают пары. Как вы думаете после такого на тебя смотрят? Минимум с непониманием…
Приятная, простая, красивая игрушка. Продолжайте в том же духе.
сильно напоминает kyodai mahjong
Фон бы еще улучшить, а так молодцы, хороший проект!
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
OGS Mahjong 0.7