Jump to content

Lunarovich

Members
  • Posts

    166
  • Joined

  • Last visited

Posts posted by Lunarovich

  1. For the sake of completeness, here is how I use a custom shader to procedurally create textures...

     

    -- NB: we have created previously a model and stored it into the model var
    local surface = model:GetSurface(0)
    local material = surface:GetMaterial()
    local shader = Shader:Load("Shaders/Model/diffuse.shader")
    material:SetShader(shader)
    
    -- Save ref to the current shader & buffer.
    local context = Context:GetCurrent()
    local defaultShader = context:GetShader()
    local defaultBuffer = Buffer:GetCurrent()
    
    -- Specify a TEXTURE size.
    local textureSize = 128
    
    -- Use a custom SHADER to draw a texture in the GPU.
    local customShader = Shader:Load("Scripts/Custom/drawimage.shader")
    
    -- Create a custom BUFFER to draw a texture to.
    -- static Buffer* Create(const int width, const int height, const int colorcomponents=1,
    -- const int depthbuffer=1, const int multisamplemode=0);//lua
    local customBuffer = Buffer:Create(textureSize, textureSize, 1, 1)
    Buffer:SetCurrent(customBuffer)
    
    -- must be called after Buffer:SetCurrent()
    context:SetShader(customShader)
    
    -- DRAW the texture.
    --context:SetBlendMode(Blend.Alpha)
    local texture = customBuffer:GetColorTexture(0)
    context:DrawImage(texture, 0, 0)
    material:SetTexture(texture, 0)
    
    -- Restore previous buffer and shader.
    Buffer:SetCurrent(defaultBuffer)
    context:SetShader(defaultShader)
    

    • Like 1
    • Upvote 1
  2. Thanks. I know about that. However, this driver does not support my card. I've bought today nvidia geforce. I just can't recommend AMD cards if you are Linux users. At least I do not recommend cards that are not supported by the new AMDGPU. However, AMDGPU does look promising.

    • Upvote 1
  3. Is there any info on the new AMD driver? I am using Ubuntu 16.04 with radeon drivers and can't run LE. I don't want to go back to 14.04 and install fglrx drivers since those are not being developed for almost a year or so now...

  4. Hello! I'm trying to apply a material to a sprite, but the texture does not look the same on the material and by itself. Here is a difference:

     

    SrbIqbt.png

     

     

    QNMIiIr.png

     

    As you can see, the material somehow ignores/destroys the blurry aspect of the texture and gives it straight edges.

     

    I'm using the Editor/sprite.shader. Is there a way to keep the blur of the texture when the latter is applied to a material.

     

    Thank you!

     

    P.S. Here are material settings:

    0HumIQS.png

  5. A simple CSG vertex editing would be a great benefit for a rapid map creation. The CSG is greate because it alleviates the need for UV mapping - a modelling nightmare and a horrendous bottleneck. With vertex editable CSG-s one could even go for the simple game models and not only for the static scenery. This opens a ton of possibilities.

    • Upvote 3
  6. Thank you Rick. This is a solution I came up with. It's similar to yours. It puts a JSON string into a Lua table:

     

    --Load JSON (http://regex.info/blog/lua/json) library
    JSON = (loadfile "lua/JSON.lua")() -- put the lib in "lua" folder
    path = "pathToJSON"
    stream = FileSystem:OpenFile(path)
    jsonString = ""
    
    if (stream) then
    while (not stream:EOF()) do
     jsonString = jsonString .. stream:ReadString()
    end
    data = JSON:decode(Swinglets.jsonString)
    else
    System:Print("Stream not found")
    end
    
    

  7. Hello, I would like to take a JSON file and read its content into a normal Lua string.

     

    Even better, I would like to put a JSON text into a Lua table directly, if it's possible.

     

    So far, I've found this Lua lib for converting a JSON string into a Lua table and vice versa. However, I don't see how to read a whole file as a string.

     

    Thank you in advance!

     

    P.S. I know how to read an individual line with this function.

  8. I don't dare to install them. Every time I've tried, it completely messed up my PC. I have owned this laptop since 2 years. Every time I've litteraly followed AMD instructions and it messed up completely my computer. So, I do not dare to do it anymore. I'm tired of constant reinstalling everything.

     

    The problem is, LE sometimes works fine, but for the most of the time does not work fine. I cannot see a pattern to it. And I'm talking about same unchanged stock examples that come with a FPS project.

     

    Well, this makes LE rather unusable for me on Ubuntu, since there are other strange artefacts with terrain going on when LE stutters - wrong collision detection with the terrain, as character's feets are about a meter under the ground level, some strange textured triangles poke out of the surface, the terrain does not look smooth...

  9. Here is the relevant line

     

    OpenGL core profile version string: 4.4.13374 Core Profile Context 15.20.1013

     

     

     

     

    Hold on, this will be long smile.png

     

    name of display: :0.0

    display: :0 screen: 0

    direct rendering: Yes

    server glx vendor string: ATI

    server glx version string: 1.4

    server glx extensions:

    GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap,

    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_OML_swap_method,

    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,

    GLX_SGIX_visual_select_group, GLX_SGI_make_current_read,

    GLX_SGI_swap_control

    client glx vendor string: ATI

    client glx version string: 1.4

    client glx extensions:

    GLX_AMD_gpu_association, GLX_ARB_context_flush_control,

    GLX_ARB_create_context, GLX_ARB_create_context_profile,

    GLX_ARB_fbconfig_float, GLX_ARB_get_proc_address, GLX_ARB_multisample,

    GLX_EXT_buffer_age, GLX_EXT_framebuffer_sRGB, GLX_EXT_import_context,

    GLX_EXT_swap_control, GLX_EXT_texture_from_pixmap, GLX_EXT_visual_info,

    GLX_EXT_visual_rating, GLX_MESA_allocate_memory, GLX_MESA_copy_sub_buffer,

    GLX_MESA_swap_control, GLX_MESA_swap_frame_usage, GLX_NV_swap_group,

    GLX_OML_swap_method, GLX_SGIS_multisample, GLX_SGIX_fbconfig,

    GLX_SGIX_pbuffer, GLX_SGIX_swap_barrier, GLX_SGIX_swap_group,

    GLX_SGIX_visual_select_group, GLX_SGI_make_current_read,

    GLX_SGI_swap_control, GLX_SGI_video_sync

    GLX version: 1.4

    GLX extensions:

    GLX_ARB_context_flush_control, GLX_ARB_create_context,

    GLX_ARB_create_context_profile, GLX_ARB_get_proc_address,

    GLX_ARB_multisample, GLX_EXT_buffer_age, GLX_EXT_import_context,

    GLX_EXT_swap_control, GLX_EXT_texture_from_pixmap, GLX_EXT_visual_info,

    GLX_EXT_visual_rating, GLX_MESA_swap_control, GLX_NV_swap_group,

    GLX_OML_swap_method, GLX_SGIS_multisample, GLX_SGIX_fbconfig,

    GLX_SGIX_pbuffer, GLX_SGIX_swap_barrier, GLX_SGIX_swap_group,

    GLX_SGIX_visual_select_group, GLX_SGI_make_current_read,

    GLX_SGI_swap_control, GLX_SGI_video_sync

    OpenGL vendor string: Advanced Micro Devices, Inc.

    OpenGL renderer string: AMD Radeon HD 7600M Series

    OpenGL core profile version string: 4.4.13374 Core Profile Context 15.20.1013

    OpenGL core profile shading language version string: 4.40

    OpenGL core profile context flags: (none)

    OpenGL core profile profile mask: core profile

    OpenGL core profile extensions:

    GL_AMDX_debug_output, GL_AMDX_vertex_shader_tessellator,

    GL_AMD_conservative_depth, GL_AMD_debug_output,

    GL_AMD_depth_clamp_separate, GL_AMD_draw_buffers_blend,

    GL_AMD_multi_draw_indirect, GL_AMD_name_gen_delete,

    GL_AMD_performance_monitor, GL_AMD_pinned_memory,

    GL_AMD_query_buffer_object, GL_AMD_sample_positions,

    GL_AMD_seamless_cubemap_per_texture, GL_AMD_shader_stencil_export,

    GL_AMD_shader_trace, GL_AMD_texture_cube_map_array,

    GL_AMD_texture_texture4, GL_AMD_transform_feedback3_lines_triangles,

    GL_AMD_vertex_shader_layer, GL_AMD_vertex_shader_tessellator,

    GL_AMD_vertex_shader_viewport_index, GL_ARB_ES2_compatibility,

    GL_ARB_ES3_compatibility, GL_ARB_arrays_of_arrays, GL_ARB_base_instance,

    GL_ARB_blend_func_extended, GL_ARB_buffer_storage,

    GL_ARB_clear_buffer_object, GL_ARB_clear_texture, GL_ARB_clip_control,

    GL_ARB_color_buffer_float, GL_ARB_compressed_texture_pixel_storage,

    GL_ARB_compute_shader, GL_ARB_conditional_render_inverted,

    GL_ARB_conservative_depth, GL_ARB_copy_buffer, GL_ARB_copy_image,

    GL_ARB_cull_distance, GL_ARB_debug_output, GL_ARB_depth_buffer_float,

    GL_ARB_depth_clamp, GL_ARB_depth_texture, GL_ARB_derivative_control,

    GL_ARB_draw_buffers, GL_ARB_draw_buffers_blend,

    GL_ARB_draw_elements_base_vertex, GL_ARB_draw_indirect,

    GL_ARB_draw_instanced, GL_ARB_enhanced_layouts,

    GL_ARB_explicit_attrib_location, GL_ARB_explicit_uniform_location,

    GL_ARB_fragment_coord_conventions, GL_ARB_fragment_layer_viewport,

    GL_ARB_fragment_program, GL_ARB_fragment_program_shadow,

    GL_ARB_fragment_shader, GL_ARB_framebuffer_no_attachments,

    GL_ARB_framebuffer_object, GL_ARB_framebuffer_sRGB,

    GL_ARB_geometry_shader4, GL_ARB_get_program_binary,

    GL_ARB_get_texture_sub_image, GL_ARB_gpu_shader5, GL_ARB_gpu_shader_fp64,

    GL_ARB_half_float_pixel, GL_ARB_half_float_vertex, GL_ARB_imaging,

    GL_ARB_instanced_arrays, GL_ARB_internalformat_query,

    GL_ARB_internalformat_query2, GL_ARB_invalidate_subdata,

    GL_ARB_map_buffer_alignment, GL_ARB_map_buffer_range, GL_ARB_multi_bind,

    GL_ARB_multi_draw_indirect, GL_ARB_multisample, GL_ARB_multitexture,

    GL_ARB_occlusion_query, GL_ARB_occlusion_query2,

    GL_ARB_pipeline_statistics_query, GL_ARB_pixel_buffer_object,

    GL_ARB_point_parameters, GL_ARB_point_sprite,

    GL_ARB_program_interface_query, GL_ARB_provoking_vertex,

    GL_ARB_query_buffer_object, GL_ARB_robust_buffer_access_behavior,

    GL_ARB_sample_shading, GL_ARB_sampler_objects, GL_ARB_seamless_cube_map,

    GL_ARB_seamless_cubemap_per_texture, GL_ARB_separate_shader_objects,

    GL_ARB_shader_atomic_counters, GL_ARB_shader_bit_encoding,

    GL_ARB_shader_image_load_store, GL_ARB_shader_image_size,

    GL_ARB_shader_objects, GL_ARB_shader_precision,

    GL_ARB_shader_stencil_export, GL_ARB_shader_storage_buffer_object,

    GL_ARB_shader_subroutine, GL_ARB_shader_texture_image_samples,

    GL_ARB_shader_texture_lod, GL_ARB_shading_language_100,

    GL_ARB_shading_language_420pack, GL_ARB_shading_language_packing,

    GL_ARB_shadow, GL_ARB_shadow_ambient, GL_ARB_stencil_texturing,

    GL_ARB_sync, GL_ARB_tessellation_shader, GL_ARB_texture_barrier,

    GL_ARB_texture_border_clamp, GL_ARB_texture_buffer_object,

    GL_ARB_texture_buffer_object_rgb32, GL_ARB_texture_buffer_range,

    GL_ARB_texture_compression, GL_ARB_texture_compression_bptc,

    GL_ARB_texture_compression_rgtc, GL_ARB_texture_cube_map,

    GL_ARB_texture_cube_map_array, 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_gather,

    GL_ARB_texture_mirror_clamp_to_edge, GL_ARB_texture_mirrored_repeat,

    GL_ARB_texture_multisample, GL_ARB_texture_non_power_of_two,

    GL_ARB_texture_query_levels, GL_ARB_texture_query_lod,

    GL_ARB_texture_rectangle, GL_ARB_texture_rg, GL_ARB_texture_rgb10_a2ui,

    GL_ARB_texture_snorm, GL_ARB_texture_stencil8, GL_ARB_texture_storage,

    GL_ARB_texture_storage_multisample, GL_ARB_texture_swizzle,

    GL_ARB_texture_view, GL_ARB_timer_query, GL_ARB_transform_feedback2,

    GL_ARB_transform_feedback3, GL_ARB_transform_feedback_instanced,

    GL_ARB_transform_feedback_overflow_query, GL_ARB_transpose_matrix,

    GL_ARB_uniform_buffer_object, GL_ARB_vertex_array_bgra,

    GL_ARB_vertex_array_object, GL_ARB_vertex_attrib_64bit,

    GL_ARB_vertex_attrib_binding, GL_ARB_vertex_buffer_object,

    GL_ARB_vertex_program, GL_ARB_vertex_shader,

    GL_ARB_vertex_type_10f_11f_11f_rev, GL_ARB_vertex_type_2_10_10_10_rev,

    GL_ARB_viewport_array, GL_ARB_window_pos, GL_ATI_draw_buffers,

    GL_ATI_envmap_bumpmap, GL_ATI_fragment_shader, GL_ATI_meminfo,

    GL_ATI_separate_stencil, GL_ATI_texture_compression_3dc,

    GL_ATI_texture_env_combine3, GL_ATI_texture_float,

    GL_ATI_texture_mirror_once, 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_copy_buffer, GL_EXT_copy_texture, 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_EXT_framebuffer_object, GL_EXT_framebuffer_sRGB,

    GL_EXT_geometry_shader4, GL_EXT_gpu_program_parameters,

    GL_EXT_gpu_shader4, GL_EXT_histogram, 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_polygon_offset_clamp, GL_EXT_provoking_vertex,

    GL_EXT_rescale_normal, GL_EXT_secondary_color,

    GL_EXT_separate_specular_color, GL_EXT_shader_image_load_store,

    GL_EXT_shader_integer_mix, GL_EXT_shadow_funcs, GL_EXT_stencil_wrap,

    GL_EXT_subtexture, GL_EXT_texgen_reflection, GL_EXT_texture3D,

    GL_EXT_texture_array, GL_EXT_texture_buffer_object,

    GL_EXT_texture_compression_bptc, 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_add, 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_rectangle, GL_EXT_texture_sRGB, GL_EXT_texture_sRGB_decode,

    GL_EXT_texture_shared_exponent, GL_EXT_texture_snorm,

    GL_EXT_texture_storage, GL_EXT_texture_swizzle, GL_EXT_timer_query,

    GL_EXT_transform_feedback, GL_EXT_vertex_array, GL_EXT_vertex_array_bgra,

    GL_EXT_vertex_attrib_64bit, GL_IBM_texture_mirrored_repeat,

    GL_KHR_context_flush_control, GL_KHR_debug,

    GL_KHR_robust_buffer_access_behavior, GL_KHR_robustness,

    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_explicit_multisample, GL_NV_float_buffer, GL_NV_half_float,

    GL_NV_primitive_restart, GL_NV_texgen_reflection, GL_NV_texture_barrier,

    GL_SGIS_generate_mipmap, GL_SGIS_texture_edge_clamp, GL_SGIS_texture_lod,

    GL_SUN_multi_draw_arrays, GL_WIN_swap_hint

     

    OpenGL version string: 4.4.13374 Compatibility Profile Context 15.20.1013

    OpenGL shading language version string: 4.40

    OpenGL context flags: (none)

    OpenGL profile mask: compatibility profile

    OpenGL extensions:

    GL_AMDX_debug_output, GL_AMDX_vertex_shader_tessellator,

    GL_AMD_conservative_depth, GL_AMD_debug_output,

    GL_AMD_depth_clamp_separate, GL_AMD_draw_buffers_blend,

    GL_AMD_multi_draw_indirect, GL_AMD_name_gen_delete,

    GL_AMD_performance_monitor, GL_AMD_pinned_memory,

    GL_AMD_query_buffer_object, GL_AMD_sample_positions,

    GL_AMD_seamless_cubemap_per_texture, GL_AMD_shader_stencil_export,

    GL_AMD_shader_trace, GL_AMD_texture_cube_map_array,

    GL_AMD_texture_texture4, GL_AMD_transform_feedback3_lines_triangles,

    GL_AMD_vertex_shader_layer, GL_AMD_vertex_shader_tessellator,

    GL_AMD_vertex_shader_viewport_index, GL_ARB_ES2_compatibility,

    GL_ARB_ES3_compatibility, GL_ARB_arrays_of_arrays, GL_ARB_base_instance,

    GL_ARB_blend_func_extended, GL_ARB_buffer_storage,

    GL_ARB_clear_buffer_object, GL_ARB_clear_texture, GL_ARB_clip_control,

    GL_ARB_color_buffer_float, GL_ARB_compatibility,

    GL_ARB_compressed_texture_pixel_storage, GL_ARB_compute_shader,

    GL_ARB_conditional_render_inverted, GL_ARB_conservative_depth,

    GL_ARB_copy_buffer, GL_ARB_copy_image, GL_ARB_cull_distance,

    GL_ARB_debug_output, GL_ARB_depth_buffer_float, GL_ARB_depth_clamp,

    GL_ARB_depth_texture, GL_ARB_derivative_control, GL_ARB_draw_buffers,

    GL_ARB_draw_buffers_blend, GL_ARB_draw_elements_base_vertex,

    GL_ARB_draw_indirect, GL_ARB_draw_instanced, GL_ARB_enhanced_layouts,

    GL_ARB_explicit_attrib_location, GL_ARB_explicit_uniform_location,

    GL_ARB_fragment_coord_conventions, GL_ARB_fragment_layer_viewport,

    GL_ARB_fragment_program, GL_ARB_fragment_program_shadow,

    GL_ARB_fragment_shader, GL_ARB_framebuffer_no_attachments,

    GL_ARB_framebuffer_object, GL_ARB_framebuffer_sRGB,

    GL_ARB_geometry_shader4, GL_ARB_get_program_binary,

    GL_ARB_get_texture_sub_image, GL_ARB_gpu_shader5, GL_ARB_gpu_shader_fp64,

    GL_ARB_half_float_pixel, GL_ARB_half_float_vertex, GL_ARB_imaging,

    GL_ARB_instanced_arrays, GL_ARB_internalformat_query,

    GL_ARB_internalformat_query2, GL_ARB_invalidate_subdata,

    GL_ARB_map_buffer_alignment, GL_ARB_map_buffer_range, GL_ARB_multi_bind,

    GL_ARB_multi_draw_indirect, GL_ARB_multisample, GL_ARB_multitexture,

    GL_ARB_occlusion_query, GL_ARB_occlusion_query2,

    GL_ARB_pipeline_statistics_query, GL_ARB_pixel_buffer_object,

    GL_ARB_point_parameters, GL_ARB_point_sprite,

    GL_ARB_program_interface_query, GL_ARB_provoking_vertex,

    GL_ARB_query_buffer_object, GL_ARB_robust_buffer_access_behavior,

    GL_ARB_sample_shading, GL_ARB_sampler_objects, GL_ARB_seamless_cube_map,

    GL_ARB_seamless_cubemap_per_texture, GL_ARB_separate_shader_objects,

    GL_ARB_shader_atomic_counters, GL_ARB_shader_bit_encoding,

    GL_ARB_shader_image_load_store, GL_ARB_shader_image_size,

    GL_ARB_shader_objects, GL_ARB_shader_precision,

    GL_ARB_shader_stencil_export, GL_ARB_shader_storage_buffer_object,

    GL_ARB_shader_subroutine, GL_ARB_shader_texture_image_samples,

    GL_ARB_shader_texture_lod, GL_ARB_shading_language_100,

    GL_ARB_shading_language_420pack, GL_ARB_shading_language_packing,

    GL_ARB_shadow, GL_ARB_shadow_ambient, GL_ARB_stencil_texturing,

    GL_ARB_sync, GL_ARB_tessellation_shader, GL_ARB_texture_barrier,

    GL_ARB_texture_border_clamp, GL_ARB_texture_buffer_object,

    GL_ARB_texture_buffer_object_rgb32, GL_ARB_texture_buffer_range,

    GL_ARB_texture_compression, GL_ARB_texture_compression_bptc,

    GL_ARB_texture_compression_rgtc, GL_ARB_texture_cube_map,

    GL_ARB_texture_cube_map_array, 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_gather,

    GL_ARB_texture_mirror_clamp_to_edge, GL_ARB_texture_mirrored_repeat,

    GL_ARB_texture_multisample, GL_ARB_texture_non_power_of_two,

    GL_ARB_texture_query_levels, GL_ARB_texture_query_lod,

    GL_ARB_texture_rectangle, GL_ARB_texture_rg, GL_ARB_texture_rgb10_a2ui,

    GL_ARB_texture_snorm, GL_ARB_texture_stencil8, GL_ARB_texture_storage,

    GL_ARB_texture_storage_multisample, GL_ARB_texture_swizzle,

    GL_ARB_texture_view, GL_ARB_timer_query, GL_ARB_transform_feedback2,

    GL_ARB_transform_feedback3, GL_ARB_transform_feedback_instanced,

    GL_ARB_transform_feedback_overflow_query, GL_ARB_transpose_matrix,

    GL_ARB_uniform_buffer_object, GL_ARB_vertex_array_bgra,

    GL_ARB_vertex_array_object, GL_ARB_vertex_attrib_64bit,

    GL_ARB_vertex_attrib_binding, GL_ARB_vertex_buffer_object,

    GL_ARB_vertex_program, GL_ARB_vertex_shader,

    GL_ARB_vertex_type_10f_11f_11f_rev, GL_ARB_vertex_type_2_10_10_10_rev,

    GL_ARB_viewport_array, GL_ARB_window_pos, GL_ATI_draw_buffers,

    GL_ATI_envmap_bumpmap, GL_ATI_fragment_shader, GL_ATI_meminfo,

    GL_ATI_separate_stencil, GL_ATI_texture_compression_3dc,

    GL_ATI_texture_env_combine3, GL_ATI_texture_float,

    GL_ATI_texture_mirror_once, 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_copy_buffer, GL_EXT_copy_texture, 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_EXT_framebuffer_object, GL_EXT_framebuffer_sRGB,

    GL_EXT_geometry_shader4, GL_EXT_gpu_program_parameters,

    GL_EXT_gpu_shader4, GL_EXT_histogram, 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_polygon_offset_clamp, GL_EXT_provoking_vertex,

    GL_EXT_rescale_normal, GL_EXT_secondary_color,

    GL_EXT_separate_specular_color, GL_EXT_shader_image_load_store,

    GL_EXT_shader_integer_mix, GL_EXT_shadow_funcs, GL_EXT_stencil_wrap,

    GL_EXT_subtexture, GL_EXT_texgen_reflection, GL_EXT_texture3D,

    GL_EXT_texture_array, GL_EXT_texture_buffer_object,

    GL_EXT_texture_compression_bptc, 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_add, 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_rectangle, GL_EXT_texture_sRGB, GL_EXT_texture_sRGB_decode,

    GL_EXT_texture_shared_exponent, GL_EXT_texture_snorm,

    GL_EXT_texture_storage, GL_EXT_texture_swizzle, GL_EXT_timer_query,

    GL_EXT_transform_feedback, GL_EXT_vertex_array, GL_EXT_vertex_array_bgra,

    GL_EXT_vertex_attrib_64bit, GL_IBM_texture_mirrored_repeat,

    GL_KHR_context_flush_control, GL_KHR_debug,

    GL_KHR_robust_buffer_access_behavior, GL_KHR_robustness,

    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_explicit_multisample, GL_NV_float_buffer, GL_NV_half_float,

    GL_NV_primitive_restart, GL_NV_texgen_reflection, GL_NV_texture_barrier,

    GL_SGIS_generate_mipmap, GL_SGIS_texture_edge_clamp, GL_SGIS_texture_lod,

    GL_SUN_multi_draw_arrays, GL_WIN_swap_hint

     

    49 GLX Visuals

    visual x bf lv rg d st colorbuffer sr ax dp st accumbuffer ms cav

    id dep cl sp sz l ci b ro r g b a F gb bf th cl r g b a ns b eat

    ----------------------------------------------------------------------------

    0x023 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None

    0x024 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None

    0x025 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None

    0x026 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None

    0x027 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None

    0x028 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None

    0x029 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 0 0 None

    0x02a 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 0 0 None

    0x02b 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 2 1 None

    0x02c 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 2 1 None

    0x02d 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 2 1 None

    0x02e 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 2 1 None

    0x02f 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 4 1 None

    0x030 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 4 1 None

    0x031 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 4 1 None

    0x032 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 4 1 None

    0x033 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 6 1 None

    0x034 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 6 1 None

    0x035 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 6 1 None

    0x036 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 6 1 None

    0x037 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 8 1 None

    0x038 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 8 1 None

    0x039 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 8 1 None

    0x03a 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 8 1 None

    0x03b 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None

    0x03c 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None

    0x03d 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None

    0x03e 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None

    0x03f 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None

    0x040 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None

    0x041 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 0 0 None

    0x042 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 0 0 None

    0x043 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 2 1 None

    0x044 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 2 1 None

    0x045 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 2 1 None

    0x046 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 2 1 None

    0x047 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 4 1 None

    0x048 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 4 1 None

    0x049 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 4 1 None

    0x04a 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 4 1 None

    0x04b 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 6 1 None

    0x04c 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 6 1 None

    0x04d 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 6 1 None

    0x04e 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 6 1 None

    0x04f 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 8 1 None

    0x050 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 8 1 None

    0x051 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 8 1 None

    0x052 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 8 1 None

    0x087 32 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 4 1 Ncon

     

    59 GLXFBConfigs:

    visual x bf lv rg d st colorbuffer sr ax dp st accumbuffer ms cav

    id dep cl sp sz l ci b ro r g b a F gb bf th cl r g b a ns b eat

    ----------------------------------------------------------------------------

    0x023 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None

    0x024 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None

    0x025 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None

    0x026 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None

    0x027 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None

    0x028 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None

    0x029 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 0 0 None

    0x02a 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 0 0 None

    0x02b 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 2 1 None

    0x02c 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 2 1 None

    0x02d 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 2 1 None

    0x02e 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 2 1 None

    0x02f 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 4 1 None

    0x030 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 4 1 None

    0x031 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 4 1 None

    0x032 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 4 1 None

    0x033 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 6 1 None

    0x034 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 6 1 None

    0x035 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 6 1 None

    0x036 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 6 1 None

    0x037 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 8 1 None

    0x038 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 8 1 None

    0x039 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 8 1 None

    0x03a 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 8 1 None

    0x03b 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None

    0x03c 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 None

    0x03d 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None

    0x03e 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 None

    0x03f 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None

    0x040 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None

    0x041 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 0 0 None

    0x042 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 0 0 None

    0x043 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 2 1 None

    0x044 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 2 1 None

    0x045 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 2 1 None

    0x046 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 2 1 None

    0x047 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 4 1 None

    0x048 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 4 1 None

    0x049 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 4 1 None

    0x04a 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 4 1 None

    0x04b 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 6 1 None

    0x04c 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 6 1 None

    0x04d 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 6 1 None

    0x04e 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 6 1 None

    0x04f 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 8 1 None

    0x050 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 8 1 None

    0x051 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 8 1 None

    0x052 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 8 1 None

    0x087 32 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 4 1 Ncon

    0x087 32 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 0 0 Ncon

    0x087 32 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 Ncon

    0x087 32 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 Ncon

    0x087 32 tc 0 32 0 r . . 8 8 8 8 . . 0 0 0 0 0 0 0 0 0 Ncon

    0x087 0 tc 0 128 0 y . 32 32 32 32 . . 0 24 0 0 0 0 0 0 0 None

    0x087 0 tc 0 128 0 . . 32 32 32 32 . . 0 24 0 0 0 0 0 0 0 None

    0x087 0 tc 0 64 0 y . 16 16 16 16 . . 0 24 0 0 0 0 0 0 0 None

    0x087 0 tc 0 64 0 . . 16 16 16 16 . . 0 24 0 0 0 0 0 0 0 None

    0x087 0 tc 0 32 0 y . 11 11 10 0 . . 0 24 0 0 0 0 0 0 0 None

    0x087 0 tc 0 32 0 . . 11 11 10 0 . . 0 24 0 0 0 0 0 0 0 None

  10. Hi. I still haven't managed to solve the problem. Here are, for the brevity sake, first 24 lines of glxinfo output:

     

    name of display: :0.0

    display: :0 screen: 0

    direct rendering: Yes

    server glx vendor string: ATI

    server glx version string: 1.4

    server glx extensions:

    GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap,

    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_OML_swap_method,

    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,

    GLX_SGIX_visual_select_group, GLX_SGI_make_current_read,

    GLX_SGI_swap_control

    client glx vendor string: ATI

    client glx version string: 1.4

    client glx extensions:

    GLX_AMD_gpu_association, GLX_ARB_context_flush_control,

    GLX_ARB_create_context, GLX_ARB_create_context_profile,

    GLX_ARB_fbconfig_float, GLX_ARB_get_proc_address, GLX_ARB_multisample,

    GLX_EXT_buffer_age, GLX_EXT_framebuffer_sRGB, GLX_EXT_import_context,

    GLX_EXT_swap_control, GLX_EXT_texture_from_pixmap, GLX_EXT_visual_info,

    GLX_EXT_visual_rating, GLX_MESA_allocate_memory, GLX_MESA_copy_sub_buffer,

    GLX_MESA_swap_control, GLX_MESA_swap_frame_usage, GLX_NV_swap_group,

    GLX_OML_swap_method, GLX_SGIS_multisample, GLX_SGIX_fbconfig,

    GLX_SGIX_pbuffer, GLX_SGIX_swap_barrier, GLX_SGIX_swap_group,

    GLX_SGIX_visual_select_group, GLX_SGI_make_current_read,

  11. It would be very useful to have a noise generating function. Given such parameters as x and y, along with parameters such as frequence, amplitude, persistance and octave - as explained in this article - this function would return a noise value at the selected coordinated. A function could be used for many things, such as random motion, landscape and cloud generation, etc.

     

    This function would be consistent with an existing API, which gives us already such functions as Curve and Lerp. It would not make an overhead or a clutter, since it's relatively basic and is used very often in the game development.

    • Upvote 3
  12. I think this question is better suited for the Ubuntu forum? It sounds like something is eating up your system resources.

     

    In general, yes. However, if no system monitor - such as top - is showing any resource leaking and the problem does not appear when I play games and use other game creation software, then there is a very high probability that the problem has to do something with LE.

     

    Can you please copy and paste the end result from this command?

    First, you need to install mesa-utils: sudo apt-get install mesa-utils

     

    then:

     

    glxinfo | less

     

    Thanks for the interest. Will do it when I get to my dev machine.

    • Upvote 1
  13. Oh, sorry I see now what hardware you use. Do you have the same frames inside Windows? Is it huge difference or is it just like 5 fps?

     

    The main issue, in fact, is not a win-lin performance difference. As far as I can tell, the performance is nearly the same. Problem is the following: when I start the ubuntu session (after the restart of the computer), I get the same or near same FPS as in Win. However, after a few LE or LE game restarts, LE starts to show poor FPS. Something does happen in the mean time which slows the LE down.

     

    By the way, do you have swithcible GPU? AMD drivers may not work properly, you need to install drivers manually from AMD website.

    No, I don't have the switchable GPU. Regarding the AMD drivers, I installed them from Ubuntu repos: fglrx-updates. Why? Because in almost two years that I have this laptop, I didn't manage to install a working version of the AMD drivers from the AMD site. Either I had no clue why it did not work or the module would not compile for different reasons (for example, the last version of drivers is known not to work with the current ubuntu kernel). And I followed exactly the instructions from the AMD site, to that extent that I know them by heart probably now smile.png

     

    P.S. I've tried to run the executable directly, but to no avail. The same poor FPS.

  14. Differences in performance between sessions strongly indicates that the problem lies with Ubuntu and AMD.

     

    Sure... I should change a title of the post, since I do talk about a win-lin FPS diff anymore. Rather, I have good FPS at the beginning of the Ubuntu session. Suddently, without any obvious reason, I start to get low FPS until I restart the machine. Fiddled with catalyst center and with compiz, but to no avail...

  15. So, I have installed Ubuntu 15.04 on my laptop with AMD Radeon HD 7500M/7600M Series. I'm using proprietary drivers on Ubuntu. Otherwise, LE and Steam won't work.

     

    I should also note that other games run fine and that I cannot see the difference in performance between Windows and Linux.

     

    Now, as to LE, it runs just fine under Windows. However, on Linux, I get about ~45 with very simple scenes. When I grab an object using First Person Shooter script, for example, fps drops to ~35 even though nothing new gets drawn on the screen.

     

    This kind of behavior annoys me very much. Since I don't want to go back to Windows and like LE very much, the issue is very important to me. Any help would be much appreciated.

  16. In fact, you have never told to lua that Script.timer is a number and what is it's initial value. So, when your program reaches the line that says

     

    self.timer = self.timer + (Time:GetSpeed()/100)
    

     

    The value of the self.timer is nil. You cannot add nil to a number.

     

    So, in order to fix this, you just have to say

     

    Script.timer = 0
    

     

    in the third line of your code. That way, Lua will know that your variable is a number and what is it's initial value.

     

    EDIT In fact, it seems that your program never gets into the UpdateWorld function. That's because it expects you to put a = somewhere "near" the function. Anyway, initialize Script.time = 0, and you'll be fine.

    • Upvote 1
  17. When created, every entity script starts with a code like this:

     

    --[[
    function Script:Start()
    
    end
    ]]--
    
    --[[
    function Script:UpdateWorld()
    
    end
    ]]--
    
    --[[
    function Script:UpdatePhysics()
    
    end
    ]]--
    
    -- etc.
    

     

    Now, according to PIL, a common trick to comment out a block of code goes like this

     

    --[[
    print(10)		 -- no action (comment)
    --]]
    

     

    If we add a hyphen to the first comment line, we get this:

     

    ---[[
    print(10)		 --> 10
    --]]
    

     

    Unfortunately, with a LE current default comment, we cannot do this. That's because the author of the default script was thinkng of Lua comments in the vein of C++ /* and */, which is, however, a wrong approach, since Lua comments do not function in that way. So, if you add a hyphen, you'll get this:

     

    ---[[
    function Script:Start()
    end
    ]]--
    
    --[[
    function Script:UpdateWorld()
    
    end
    ]]--
    
    --[[
    function Script:UpdatePhysics()
    
    end
    ]]--
    
    -- etc.
    

     

    and that's obviously unwanted and error-generating result, since Lua does not know what to do with ]] part of the ]]--. So, please correct this, so we can quickly comment out entity functions.

     

    Thanks.

    • Upvote 2
  18. I would like to download docs myself in an official package. For now, you'll have to use an internet site downloading tool. Those come with a possibility to restrict a depth level of downloaded links as well to restrict the download to the domain in question. The easiest thing would be, in my opinion, to start from the API index and simply download one level depth links. If you are using Linux, then wget is an excellent tool to do that. Otherwise, you can try this nice tool for Firefox.

    • Upvote 2
  19. An object script as a class concept does alleviate a need to use classes extensively. What I like about LE is the fact that, unlike Unity for example, you can have a script which is totally unrelated to any game object. What is more, you can "import" or "require" it from Main.lua script or from any object script.

     

    That said and if you keep in mind that in Lua functions are first-class citizens, you can hava a simple table of useful functions and dynamically assign them or remove them from entities via "self.entity.func_name = global_table_name.func_name" or "self.entity.func_name = nil". That's quite a duck typing, kind a strange to c++ only users, but it's a great technique for game development, IMO. In this way you can have a "multi-class" entity or make entity dynamically change class. Really neat, if you ask me :)

    • Upvote 2
×
×
  • Create New...