CW3 hangs on Knuckle Cracker logo screen on OS X [Solved]

Started by rbbergstrom, October 07, 2013, 07:38:12 PM

Previous topic - Next topic

rbbergstrom

I'm on OS X 10.6.8

Just bought and downloaded CW3. When I double-click on it, the window pops up and then it just sits there frozen on the black screen with the knuckle cracker logo.  Mouse cursor moves, but clicking does nothing. No sound. No way to get past that screen. Eventually have to exit out via force quit keyboard shortcut.

Tried rebooting. No luck.

Any suggestions?

knucracker


rbbergstrom

I 'd already read that thread, but I still don't understand his solution. I'm not 100% sure what "chmod" is, or which folder he's saying he used it on.  Could someone please paraphrase it in dumb, easy-to-understand instructions?

knucracker

You can look here for the game log:
~/Library/Logs/Unity/Player.log

That contains information on what the problem may be.  In this case it probably contains a like like this:
UnauthorizedAccessException: Access to the path "/Users/[YOURUSER/.config/CreeperWorld3/" is denied.

That basically means that the game is trying to create a directory called CreeperWorld3 at /Users/[YOURUSER/.config.  For some reason this is failing (likely permissions).

So, bring up a terminal and type this:
ls -al /Users/YOURUSER/ 
(Where YOURUSER is whatever user name you log in as)
From this command you will get a complete list of all files and directories at that location.  You should see ".config" in the list.  On the left of the line you should see something that looks like this:
drwxr-xr-x

The "d" means it is a directory.  The "rwx" that comes next means "read" "write" and "execute".  After it is another set of three letters and a final set of three letters.  Each set of three letters (or dashes) represents a different group.  The first three represent the 'user' permissions, the next three represent the 'group' permissions, and the final three represent the 'other' permissions.

Clear as mud, I know.  You can read more about file permissions here: http://en.wikipedia.org/wiki/Chmod

In your case, I'd like to see what your permissions are.  What does your "drwxr-xr-x" line look like?

Now in theory it should look just like that line (that's the default on my mac).  YOu should also be logged in as that user and when you run CW3 you should be running as that user.  So you are the user and you should have full read, write, and execute access on the /Users/[YOURUSER/.config directory.

Over in the other thread, the solution was the use the chmod command to change the permissions on this dir so that your user had write access.

rbbergstrom

Thank you for the detailed explanation, virgilw. That's top-notch customer service. Tomorrow I will absolutely give that a try, and let you know what that line says and whether or not I'm able to get it working. For tonight, I convinced my wife to just let me install it on her laptop. Played a handful of missions already, and having lots of fun. Thanks again!

rbbergstrom

#5
Quote from: virgilw on October 07, 2013, 09:32:35 PM

In your case, I'd like to see what your permissions are.  What does your "drwxr-xr-x" line look like?

Now in theory it should look just like that line (that's the default on my mac).  


the relevant line says:

drwxr-xr-x   3 root           staff    102 Sep 11  2012 .config

Nearly all of the other lines on that list have my user name instead of "3 root". The .config line is one of only two lines that doesn't have my username listed. Other than that, the "drwxr-xr-x" line looks correct to me.


rbbergstrom

#6
Quote from: rbbergstrom on October 08, 2013, 11:34:33 AM
Quote from: virgilw on October 07, 2013, 09:32:35 PM
In your case, I'd like to see what your permissions are.  What does your "drwxr-xr-x" line look like?

drwxr-xr-x   3 root           staff    102 Sep 11  2012 .config

Nearly all of the other lines on that list have my user name instead of "3 root".

So, does that mean I should be using chmod to change the permissions there?  What exact command would I use? I've never used chmod before, and rarely launch Terminal.

In case it's relevant, here's the Unity Player.log file:

Spoiler
Initialize engine version: 4.2.0f4 (38efbd14869d)
GfxDevice: creating device client; threaded=1
OpenGL:
   Version:  OpenGL 2.1 [2.1 ATI-1.6.36]
   Renderer: ATI Radeon HD 2400 OpenGL Engine
   Vendor:   ATI Technologies Inc.
   VRAM:     128 MB
   Extensions: GL_ARB_transpose_matrix GL_ARB_vertex_program GL_ARB_vertex_blend GL_ARB_window_pos GL_ARB_shader_objects GL_ARB_vertex_shader GL_ARB_shading_language_100 GL_EXT_multi_draw_arrays GL_EXT_clip_volume_hint GL_EXT_rescale_normal GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_gpu_program_parameters GL_EXT_geometry_shader4 GL_EXT_transform_feedback GL_APPLE_client_storage GL_APPLE_specular_vector GL_APPLE_transform_hint GL_APPLE_packed_pixels GL_APPLE_fence GL_APPLE_vertex_array_object GL_APPLE_vertex_program_evaluators GL_APPLE_element_array GL_APPLE_flush_render GL_APPLE_aux_depth_stencil GL_NV_texgen_reflection GL_NV_light_max_exponent GL_IBM_rasterpos_clip GL_SGIS_generate_mipmap GL_ARB_imaging GL_ARB_point_parameters GL_ARB_texture_env_crossbar GL_ARB_texture_border_clamp GL_ARB_multitexture GL_ARB_texture_env_add GL_ARB_texture_cube_map GL_ARB_texture_env_dot3 GL_ARB_multisample GL_ARB_texture_env_combine GL_ARB_texture_compression GL_ARB_texture_mirrored_repeat GL_ARB_shadow GL_ARB_depth_texture GL_ARB_shadow_ambient GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_occlusion_query GL_ARB_point_sprite GL_ARB_texture_non_power_of_two GL_ARB_vertex_buffer_object GL_ARB_pixel_buffer_object GL_ARB_draw_buffers GL_ARB_shader_texture_lod GL_ARB_color_buffer_float GL_ARB_half_float_vertex GL_ARB_texture_rg GL_ARB_texture_compression_rgtc GL_ARB_framebuffer_object GL_EXT_compiled_vertex_array GL_EXT_draw_buffers2 GL_EXT_framebuffer_object GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_texture_rectangle GL_ARB_texture_rectangle GL_EXT_texture_env_add GL_EXT_blend_color GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_texture_lod_bias GL_EXT_abgr GL_EXT_bgra GL_EXT_stencil_wrap GL_EXT_texture_filter_anisotropic GL_EXT_separate_specular_color GL_EXT_secondary_color GL_EXT_blend_func_separate GL_EXT_shadow_funcs GL_EXT_stencil_two_side GL_EXT_texture_compression_s3tc GL_EXT_texture_compression_dxt1 GL_EXT_texture_sRGB GL_EXT_blend_equation_separate GL_EXT_texture_mirror_clamp GL_EXT_packed_depth_stencil GL_EXT_bindable_uniform GL_EXT_texture_integer GL_EXT_gpu_shader4 GL_EXT_framebuffer_sRGB GL_EXT_provoking_vertex GL_APPLE_flush_buffer_range GL_APPLE_ycbcr_422 GL_APPLE_rgb_422 GL_APPLE_vertex_array_range GL_APPLE_texture_range GL_APPLE_float_pixels GL_ATI_texture_float GL_ARB_texture_float GL_ARB_half_float_pixel GL_APPLE_pixel_buffer GL_APPLE_object_purgeable GL_NV_blend_square GL_NV_fog_distance GL_NV_conditional_render GL_ATI_texture_mirror_once GL_ATI_blend_equation_separate GL_ATI_blend_weighted_minmax GL_ATI_texture_env_combine3 GL_ATI_separate_stencil GL_ATI_texture_compression_3dc GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_SGI_color_matrix GL_EXT_texture_array GL_EXT_vertex_array_bgra GL_ARB_instanced_arrays GL_ARB_depth_buffer_float GL_EXT_packed_float GL_EXT_texture_shared_exponent
GL: buggy packed depth stencil; Deferred rendering will use slower rendering path
Begin MonoManager ReloadAssembly
Platform assembly: /Applications/CW3.app/Contents/Data/Managed/UnityEngine.dll (this message is harmless)
Loading /Applications/CW3.app/Contents/Data/Managed/UnityEngine.dll into Unity Child Domain
Platform assembly: /Applications/CW3.app/Contents/Data/Managed/Assembly-CSharp-firstpass.dll (this message is harmless)
Loading /Applications/CW3.app/Contents/Data/Managed/Assembly-CSharp-firstpass.dll into Unity Child Domain
Platform assembly: /Applications/CW3.app/Contents/Data/Managed/Assembly-CSharp.dll (this message is harmless)
Loading /Applications/CW3.app/Contents/Data/Managed/Assembly-CSharp.dll into Unity Child Domain
Platform assembly: /Applications/CW3.app/Contents/Data/Managed/Assembly-UnityScript-firstpass.dll (this message is harmless)
Loading /Applications/CW3.app/Contents/Data/Managed/Assembly-UnityScript-firstpass.dll into Unity Child Domain
Platform assembly: /Applications/CW3.app/Contents/Data/Managed/Assembly-UnityScript.dll (this message is harmless)
Loading /Applications/CW3.app/Contents/Data/Managed/Assembly-UnityScript.dll into Unity Child Domain
- Completed reload, in  1.372 seconds
Switching to 640x480 fullscreen
Tue Oct  8 14:38:00 rolfe-bergstroms-imac.local Creeper World 3[217] <Error>: kCGErrorInvalidConnection: CGSGetWindowBounds: Invalid connection
Tue Oct  8 14:38:00 rolfe-bergstroms-imac.local Creeper World 3[217] <Error>: kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged.
Tue Oct  8 14:38:00 rolfe-bergstroms-imac.local Creeper World 3[217] <Error>: kCGErrorInvalidConnection: CGSSetSurfaceBounds: Invalid connection
Platform assembly: /Applications/CW3.app/Contents/Data/Managed/System.Xml.dll (this message is harmless)
Platform assembly: /Applications/CW3.app/Contents/Data/Managed/System.Core.dll (this message is harmless)
Platform assembly: /Applications/CW3.app/Contents/Data/Managed/UnityScript.Lang.dll (this message is harmless)
Platform assembly: /Applications/CW3.app/Contents/Data/Managed/Boo.Lang.dll (this message is harmless)
Platform assembly: /Applications/CW3.app/Contents/Data/Managed/System.dll (this message is harmless)
UnauthorizedAccessException: Access to the path "/Users/r_b_bergstrom/.config/CreeperWorld3/" is denied.
 at System.IO.Directory.CreateDirectoriesInternal (System.String path) [0x00000] in <filename unknown>:0
 at System.IO.Directory.CreateDirectory (System.String path) [0x00000] in <filename unknown>:0
 at FileManager.GetAppDataDir () [0x00000] in <filename unknown>:0
 at GameSettings..cctor () [0x00000] in <filename unknown>:0
Rethrow as TypeInitializationException: An exception was thrown by the type initializer for GameSettings


(Filename:  Line: -1)
[close]

knucracker

#7
The permissions look fine... but the ownership doesn't.  For some reason "root" owns your users .config dir.  To change ownership you use the "chown" command.
So you can do this from a command line at the terminal:

sudo chown YOUR_USER /Users/YOUR_USER/.config

That will change the owner of .config to your user rather than root.  Then, when you run the game as your user it will be able to write to your .config directory

rbbergstrom

Thank you virgilw! It worked!

P.S.: You make great games.

knucracker

Good to hear.  I've updated the top post to include [solved] in the title.  That way the next person to search and find this thread might find it helpful.