UFO: Alien Invasion 2.3 wont start

I was really interested to see the new campaign engine in 2.3 and was very nice to notice it has already been packaged for openSUSE 11.2 games repo (Index of /repositories/games/openSUSE_11.2).
But I think the packages for (at least) 64bit might be broken, I removed the old ufoai and installed the 2.3 from the above repository and now the game wont start, I believe it is missing some files (pk3? because the /usr/share/ufoai does not exist?)

petjarve@petrin:~> ufoai

---- filesystem initialization -----
Adding game dir: /usr/share/ufoai/base
Adding game dir: ./base
Adding game dir: /home/petjarve/.ufoai/2.3/base
using /home/petjarve/.ufoai/2.3/base for writing
couldn't execute default.cfg
couldn't execute config.cfg

----- network initialization -------
libcurl/7.19.6 OpenSSL/0.9.8k zlib/1.2.3 libidn/1.10 initialized.

------ server initialization -------

----- console initialization -------
Console initialized.

------- video initialization -------
SDL version: 1.2.14
I: desktop depth: 32bpp
I: video memory: 0
I: Available resolutions: 1920x1200 1680x1050 1600x1200 1400x1050 1280x1024 1280x960 1152x864 1024x768 960x720 928x696 896x672 832x624 800x600 720x400 700x525 640x512 640x480 640x400 640x350 576x432 512x384 416x312 400x300 360x200 320x240 320x200 320x175 (27)
I: video driver: x11
I: setting mode -1
I: set swap control to 0
I: 1024x768 (fullscreen: no)
I: got 8 bits of stencil
I: got 24 bits of depth buffer
I: got double buffer
I: got 8 bits for red
I: got 8 bits for green
I: got 8 bits for blue
I: got 0 bits for alpha
I: got 0 multisample buffers
GL_VERSION: 3.2.0 NVIDIA 195.36.15
GL_EXTENSIONS: GL_ARB_color_buffer_float GL_ARB_compatibility GL_ARB_copy_buffer GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_depth_texture GL_ARB_draw_buffers GL_ARB_draw_elements_base_vertex GL_ARB_draw_instanced GL_ARB_fragment_coord_conventions GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_geometry_shader4 GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_imaging GL_ARB_map_buffer_range GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_provoking_vertex GL_ARB_seamless_cube_map GL_ARB_shader_objects GL_ARB_shading_language_100 GL_ARB_shadow GL_ARB_sync GL_ARB_texture_border_clamp GL_ARB_texture_buffer_object GL_ARB_texture_compression GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_float GL_ARB_texture_mirrored_repeat GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_transpose_matrix GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_window_pos GL_ATI_draw_buffers GL_ATI_texture_float GL_ATI_texture_mirror_once GL_S3_s3tc GL_EXT_texture_env_add GL_EXT_abgr GL_EXT_bgra GL_EXT_bindable_uniform GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_compiled_vertex_array GL_EXT_Cg_shader GL_EXT_depth_bounds_test GL_EXT_direct_state_access GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXTX_framebuffer_mixed_formats GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_packed_pixels GL_EXT_pixel_buffer_object GL_EXT_point_parameters GL_EXT_provoking_vertex GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_shader_objects GL_EXT_separate_specular_color GL_EXT_shadow_funcs GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture3D GL_EXT_texture_array GL_EXT_texture_buffer_object GL_EXT_texture_compression_latc GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_integer GL_EXT_texture_lod GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_object GL_EXT_texture_shared_exponent GL_EXT_texture_sRGB GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback2 GL_EXT_vertex_array GL_EXT_vertex_array_bgra GL_IBM_rasterpos_clip GL_IBM_texture_mirrored_repeat GL_KTX_buffer_region GL_NV_blend_square GL_NV_conditional_render GL_NV_copy_depth_to_color GL_NV_copy_image GL_NV_depth_buffer_float GL_NV_depth_clamp GL_NV_explicit_multisample GL_NV_fence GL_NV_float_buffer GL_NV_fog_distance GL_NV_fragment_program GL_NV_fragment_program_option GL_NV_fragment_program2 GL_NV_framebuffer_multisample_coverage GL_NV_geometry_shader4 GL_NV_gpu_program4 GL_NV_half_float GL_NV_light_max_exponent GL_NV_multisample_coverage GL_NV_multisample_filter_hint GL_NV_occlusion_query GL_NV_packed_depth_stencil GL_NV_parameter_buffer_object GL_NV_parameter_buffer_object2 GL_NV_pixel_data_range GL_NV_point_sprite GL_NV_primitive_restart GL_NV_register_combiners GL_NV_register_combiners2 GL_NV_shader_buffer_load GL_NV_texgen_reflection GL_NV_texture_barrier GL_NV_texture_compression_vtc GL_NV_texture_env_combine4 GL_NV_texture_expand_normal GL_NV_texture_rectangle GL_NV_texture_shader GL_NV_texture_shader2 GL_NV_texture_shader3 GL_NV_transform_feedback GL_NV_transform_feedback2 GL_NV_vertex_array_range GL_NV_vertex_array_range2 GL_NV_vertex_buffer_unified_memory GL_NV_vertex_program GL_NV_vertex_rogram1_1 GL_NV_vertex_program2 GL_NV_vertex_program2_option GL_NV_vertex_program3 GL_NVX_conditional_render GL_NVX_gpu_memory_info GL_SGIS_generate_mipmap GL_SGIS_texture_lod GL_SGIX_depth_texture GL_SGIX_shadow GL_SUN_slice_accum 
using GL_ARB_texture_non_power_of_two
using GL_ARB_shading_language_100
GLSL Version: 1.50 NVIDIA via Cg compiler
using GL_ARB_framebuffer_object
max draw buffers: 8
max render buffer size: 8192
max color attachments: 8
using GL_ARB_draw_buffers
max supported lights: 8
max texture units: 4
max texture coords: 8
max vertex attributes: 16
max texture size: detected 8192
...but using 2048 as requested
Using low resolution globe textures as requested.
R_LoadProgram: world: Link info
No shader objects attached.
R_LoadProgram: warp: Link info
No shader objects attached.
R_LoadProgram: geoscape: Link info
No shader objects attached.
R_LoadProgram: combine2: Link info
No shader objects attached.
R_LoadProgram: convolve3: Link info
No shader objects attached.
R_LoadProgram: atmosphere: Link info
No shader objects attached.
R_LoadProgram: simple_glow: Link info
No shader objects attached.
SDL_image version 1.2.10
Could not load environment map 0
FS_RemoveFile: remove /home/petjarve/.ufoai/2.3/base/keys.cfg
Error: Shutdown

Can anyone help me figure out what is wrong?

Same error here.

I have been looking and there seems to be a problem with ufoai packages in openSUSE 11.2 games repo where main package “ufoai 2.3” is in i586 dir and maps package “ufoai-maps 2.3” in the noarch dir. Then the game throws that error where it can’t find the game files.
In ufoai forum people recommend to download from site.
I really prefer to install it from repo and packman still has the 2.2 version.

Now what to do? Is there a way to advice this issue?

Yeah, if you know what’s wrong with the package, open a bug for the games subproject here (by clicking on the bug icon, then filling the bug report) : https://build.opensuse.org/project/show?project=games

I have the same problem.

The problem is that /usr/games/ufoai contains
/usr/lib/ufoai/ufoai +set s_libdir “/usr/lib/ufoai” +set fs_basedir “/usr/share/games/ufoai” +set “fs_i18ndir /usr/share/locale/”

which is perfectly correct (and all the assets are there) but ufoai doesn’t pick up those cvars during initialization.

So it seems it is a problem with ufoai and the unusual structure of the directories containing the assets (normally it is all in one base/ dir).

what works now is:
cd /usr/share/games/ufoai/

(it will add ./base as a default directory)

It sort off works, as in it still can’t find the language pack (because it is in another directory…) and thus you will encouter several filenames.txt, but it is playable :slight_smile:

what’s strange is that after ufoai starts, reading the cvars in the console gives the right paths :s

Hope this wasn’t too confusing…

Almost there but now a new error shows up:

/usr/lib/ufoai/ufoai: symbol lookup error: /usr/lib/ufoai/ufoai: undefined symbol: Mix_Init

right forgot that, need the latest sdl_mixer (the ones from the game repo)

Beside that, i got a reply from the ufoai dev: “they don’t support fs_basedir”

all paths should be set at ./configure phase. So definitely a packaging bug, hopefully it is fixed soon.

That’s what I thought about the packaging. Let’s hope we can have it fixed soon!
Btw I already have the sdl_mixer package installed from the games repo. What may be the issue about the “undefined symbol” Mix_Init?

you sure ? As I had exact the same problem.

Mix_init is a function introduced in sdl_mixer 1.2.10. I had to upgrade from sdl_mixer 1.2.8 (OSS repo) to 1.2.11 (games repo) and it worked flawlessly.
Upgrade all the rest of sdl too while you’re at it.

Hey you are right. Now ufoai runs up and works quite well. Thx! :wink:

Yes, it was packaging issue. I packed it in work, so I cannot test it :)…now it should be fixed…and to last issue with sdl_mixer I plan to adapt spec file to correctly require needed version.

You might be interested in that I had to copy the language file from en_GB to en to be recognized by ufoai
My locale is en_GB and the english locale of ufoai is installed in en_GB, but ufoai doesnt find it.

copy or move /usr/share/locale/en_GB/LC_MESSAGES/ufoai.mo to /usr/share/locale/en/LC_MESSAGES/ufoai.mo solved it for me.

Don’t know how the locale thing works, so the question is whether this is ufoai’s fault or package.