2. Aetherspace

来源:互联网 发布:linux telnet退出命令 编辑:程序博客网 时间:2024/06/01 19:14

Aetherspace是一个GNU退役的项目,不再进行维护也不会再有产出。

GNU Aetherspace 的核心是一个游戏引擎,叫做PySoy。这个游戏引擎使用C、GObject、cross-platfrom SIMD assembly和OpenGL着色器写的。

游戏引擎的前端是用纯C写的Python库,这个库金依赖于Python3和该引擎的后端。

游戏引擎的后端构建在Gnome库(GLib、GDK和Cairo等)之上的。引擎的后端并不依赖于Python,因此基于Gnome的应用程序可以使用后端提供的接口。


接着进行源码编译这个项目(但这并没有成功)

首先,需要安装Mercurial(相当于git)来获取源码,安装valac来编译Genie语言写的一些代码。这两个程序可以使用sudo apt-get install mercurial valac来安装。

接下来,获取libsoy和pysoy的源码:

hg clone http://hg.pysoy.org/libsoyhg clone http://hg.pysoy.org/pysoy
接着,分别编译libsoy和pysoy。(但是我的环境有问题???有些错误,没有解决。如果你能帮我解决这个问题请回复或者emai我:hanjianqiao@gmail.com)

编译libsoy:进入libsoy目录执行以下三条指令。

./waf configure./waf buildsudo ./waf install

在build的过程中出现错误,看输出应该是和Genie语言有关的:

/home/hjq/seeu/libsoy/src/fields/Monopole.gs:57.23-57.34: error: The name `density' does not exist in the context of `soy.fields.Monopole'/home/hjq/seeu/libsoy/src/fields/Monopole.gs:57.21-57.50: error: var declaration not allowed with non-typed initializer/home/hjq/seeu/libsoy/src/fields/Monopole.gs:60.39-60.41: error: The name `mm1' does not exist in the context of `soy.fields.Monopole.exert'/home/hjq/seeu/libsoy/src/fields/Monopole.gs:60.19-60.52: error: var declaration not allowed with non-typed initializer/home/hjq/seeu/libsoy/src/fields/Monopole.gs:62.29-62.29: error: The name `f' does not exist in the context of `soy.fields.Monopole.exert'/home/hjq/seeu/libsoy/src/fields/Monopole.gs:62.40-62.40: error: The name `f' does not exist in the context of `soy.fields.Monopole.exert'/home/hjq/seeu/libsoy/src/fields/Monopole.gs:62.49-62.49: error: The name `f' does not exist in the context of `soy.fields.Monopole.exert'/home/hjq/seeu/libsoy/src/actions/Select.gs:95.9-95.20: warning: `null' incompatible with return type `soy.bodies.Body`/home/hjq/seeu/libsoy/src/textures/Heightmap.gs:49.9-49.32: warning: unhandled error `GLib.Error'/home/hjq/seeu/libsoy/src/bodies/Sun.gs:39.42-39.52: error: The name `sunrisehour' does not exist in the context of `soy.bodies.Sun._directionBasedOnTime'/home/hjq/seeu/libsoy/src/bodies/Sun.gs:41.41-41.51: error: The name `sunrisehour' does not exist in the context of `soy.bodies.Sun._directionBasedOnTime'/home/hjq/seeu/libsoy/src/controllers/BaseNavigator.gs:101.30-101.59: warning: Type argument list has no effect/home/hjq/seeu/libsoy/src/controllers/Keyboard.gs:38.9-41.9: warning: deprecated syntax, use `connect' method instead/home/hjq/seeu/libsoy/src/controllers/Keyboard.gs:41.9-46.5: warning: deprecated syntax, use `connect' method instead/home/hjq/seeu/libsoy/src/controllers/Pointer.gs:37.9-40.9: warning: deprecated syntax, use `connect' method instead/home/hjq/seeu/libsoy/src/controllers/Pointer.gs:40.9-43.9: warning: deprecated syntax, use `connect' method instead/home/hjq/seeu/libsoy/src/controllers/Pointer.gs:43.9-49.5: warning: deprecated syntax, use `connect' method instead/home/hjq/seeu/libsoy/src/textures/Bumpmap.gs:41.9-41.32: warning: unhandled error `GLib.Error'/home/hjq/seeu/libsoy/src/textures/SVGTexture.gs:62.23-62.81: warning: unhandled error `GLib.Error'/home/hjq/seeu/libsoy/src/textures/SVGTexture.gs:66.21-66.74: warning: unhandled error `MemoryError'/home/hjq/seeu/libsoy/src/widgets/Console.gs:50.3-50.46: warning: unhandled error `GLib.ConvertError'/home/hjq/seeu/libsoy/src/widgets/Console.gs:50.3-50.46: warning: unhandled error `GLib.IOChannelError'Waf: Leaving directory `/home/hjq/seeu/libsoy/build'Build failed -> task in 'soy-1' failed (exit status 1): {task 140618930732728: valac _init.gs,Action.gs,Hover.gs,Jump.gs,Look.gs,Rotate.gs,Select.gs,Thrust.gs,Area.gs,Axis.gs,Color.gs,Face.gs,Morph.gs,Position.gs,Radius.gs,Rotation.gs,Size.gs,Vector.gs,Vertex.gs,Voxel.gs,Billboard.gs,Body.gs,Box.gs,Camera.gs,Cylinder.gs,Grass.gs,LandscapeBody.gs,Light.gs,Mesh.gs,Portal.gs,Sphere.gs,Sun.gs,BaseNavigator.gs,Controller.gs,Dualshock3.gs,GridNavigator.gs,Keyboard.gs,Pathfollower.gs,Pointer.gs,SpaceNavigator.gs,VirtualController.gs,Wiimote.gs,_ControllerThread.gs,AbstractGraph.gs,Graph.gs,Grid.gs,Pathfinder.gs,SpaceGraph.gs,Button.gs,ButtonPress.gs,ButtonRelease.gs,Device.gs,Event.gs,KeyPress.gs,KeyRelease.gs,Motion.gs,Scroll.gs,Wiibutton.gs,Accelerate.gs,Buoyancy.gs,Field.gs,Monopole.gs,Shockwave.gs,Wind.gs,Simplex.gs,Simplex2d.gs,Ball.gs,Fixed.gs,Hinge.gs,Hinge2.gs,Joint.gs,Piston.gs,Plane2D.gs,Slider.gs,Universal.gs,Colored.gs,Material.gs,Textured.gs,Triplanar.gs,Voxelmat.gs,Wireframed.gs,Client.gs,Commands.gs,Handlers.gs,Server.gs,State.gs,XMPPAgent.gs,_NetworkThread.gs,EncodedCmd.gs,GLMetaFuncs.gs,GlFuncs.gs,GlPlaybackFuncs.gs,Playback.gs,PointerSerializer.gs,Recorder.gs,RecorderModuleState.gs,TypeSerializer.gs,gleswrapper.gs,Dungeon.gs,Landscape.gs,LandscapeQuad.gs,Planar.gs,Room.gs,Scene.gs,Scenecontainer.gs,Space.gs,TDSide.gs,Voxelization.gs,_PhysicsThread.gs,sgk2png.gs,Audio.gs,Bumpmap.gs,Cubemap.gs,Heightmap.gs,SVGTexture.gs,Texture.gs,utils.gs,Branch.gs,Canvas.gs,Console.gs,Container.gs,HBox.gs,HScroll.gs,Projector.gs,Scroller.gs,VBox.gs,VScroll.gs,Widget.gs,Window.gs -> soy.h,soy.vapi,_init.c,Action.c,Hover.c,Jump.c,Look.c,Rotate.c,Select.c,Thrust.c,Area.c,Axis.c,Color.c,Face.c,Morph.c,Position.c,Radius.c,Rotation.c,Size.c,Vector.c,Vertex.c,Voxel.c,Billboard.c,Body.c,Box.c,Camera.c,Cylinder.c,Grass.c,LandscapeBody.c,Light.c,Mesh.c,Portal.c,Sphere.c,Sun.c,BaseNavigator.c,Controller.c,Dualshock3.c,GridNavigator.c,Keyboard.c,Pathfollower.c,Pointer.c,SpaceNavigator.c,VirtualController.c,Wiimote.c,_ControllerThread.c,AbstractGraph.c,Graph.c,Grid.c,Pathfinder.c,SpaceGraph.c,Button.c,ButtonPress.c,ButtonRelease.c,Device.c,Event.c,KeyPress.c,KeyRelease.c,Motion.c,Scroll.c,Wiibutton.c,Accelerate.c,Buoyancy.c,Field.c,Monopole.c,Shockwave.c,Wind.c,Simplex.c,Simplex2d.c,Ball.c,Fixed.c,Hinge.c,Hinge2.c,Joint.c,Piston.c,Plane2D.c,Slider.c,Universal.c,Colored.c,Material.c,Textured.c,Triplanar.c,Voxelmat.c,Wireframed.c,Client.c,Commands.c,Handlers.c,Server.c,State.c,XMPPAgent.c,_NetworkThread.c,EncodedCmd.c,GLMetaFuncs.c,GlFuncs.c,GlPlaybackFuncs.c,Playback.c,PointerSerializer.c,Recorder.c,RecorderModuleState.c,TypeSerializer.c,gleswrapper.c,Dungeon.c,Landscape.c,LandscapeQuad.c,Planar.c,Room.c,Scene.c,Scenecontainer.c,Space.c,TDSide.c,Voxelization.c,_PhysicsThread.c,sgk2png.c,Audio.c,Bumpmap.c,Cubemap.c,Heightmap.c,SVGTexture.c,Texture.c,utils.c,Branch.c,Canvas.c,Console.c,Container.c,HBox.c,HScroll.c,Projector.c,Scroller.c,VBox.c,VScroll.c,Widget.c,Window.c}''



编译pysoy:进入pysoy目录执行以下三条指令。(PySoy依赖于python 3.1+和libsoy所以前提是libsoy编译安装成功,由于一般Linux发行版默认python版本为2,所以要加一些特殊辅助参数。)

PKG_CONFIG_PATH="/usr/local/lib/pkgconfig" python3 waf configurepython3 waf buildsudo python3 waf install

等上面的错误解决了才能进行下一步。



0 0