## 远程工作者
编译游戏时,通常使用 “本地” 工作程序,即安装了*GameMaker Studio 2*的计算机。但是,在某些情况下,你可能需要使用另一台计算机来构建项目。For example, if you are working on a Mac and you want to build aWindowsproject, then you would want to configure a**Remote Worker**and have aWindows PCdo the build. Essentially, when you use a remote worker,*GameMaker Studio 2*will send all the required files from the (local) machine it is running on to the remote worker machine, and then use that machine to build the final executable for the project (either saving it on the remote machine, or returning it to the local machine afterwards). 但是,在使用此功能之前,你必须在构建计算机上安装某些工具并执行一些设置,我们将在此处解释。
> **IMPORTANT!**You can set up a remote worker using a localWindows PCand remoteWindows PC, or between a local MacPCand a remoteWindows PC, but currently you**cannot**set up a localWindows(or Mac)PCand a remoteMac PC, ie: you cannot have a Mac remote worker, only aWindowsone.
### 初始设置
要设置远程工作者,你需要首先将远程工作者构建工具应用程序安装到要使用的 PC 上。 你可以通过点击本地计算机上[GameMaker Studio 2](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/1_overview/2_quick_start/menus/build_menu.html)中的*构建*菜单并选择 “显示远程工作者安装程序” 选项来找到此工具:
:-: ![Build Menu Remote Worker Installer](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/remoteworker_menu.png)
或者,你可以单击[目标平台管理器](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/1_overview/2_quick_start/6_compiling.html)中的 “眼睛” 图标,然后以这种方式获取远程工作者安装程序:
:-: ![Target Manager Remote Worker Installer](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/remoteworker_targeteye.png)
安装程序将被称为 “GameMakerStudio-Remote-Installer-X.X.X.XXX.exe”,你需要将其复制到要用作远程工作者的 PC(你*不*需要安装*GameMaker Studio 2*,只需要安装这个程序)。将其复制到构建 PC 后,按照屏幕上的提示进行安装,安装完成后,操作系统可能会要求你通过防火墙访问网络。 授予访问权限后,安装程序将在你的 Web 浏览器中打开一个页面,你**必须记下此页面上显示的 IP 地址和端口号**,因为下一步将需要它。
:-: ![IP Address for Remote Worker](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/remoteworker_ip.png)
你现在需要返回安装了*GameMaker Studio 2*的计算机,然后单击目标平台管理按钮![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/icon_targetmanager.png)打开目标平台管理窗口,然后转到**工作者**部分并单击*添加工作者*按钮。![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/icon_addworker.png)然后,这将打开以下窗口:
:-: ![Add IP Address for Remote Worker](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/remoteworker_add.png)
在这里,你需要为远程工作者命名(这将在目标平台管理的 “工作者” 列表中显示),然后在*主机名*部分中,添加你之前从工作者计算机上显示和记录的地址及端口号。
如果一切正确,你现在应该收到一条消息,说明你可以成功连接到远程工作者计算机。 安装远程工作者并连接到主 IDE 计算机后,你需要先为每个平台设置**本地构建设置**(请参阅下面的部分以获取更多详细信息),然后才能编译项目。
### 远程设置
设置页面显示远程工作者应用程序的不同路径和构建设置。 在设置的顶部,你有远程工作者应用程序将使用的不同路径,在执行任何其他操作之前,应根据需要修改这些路径并将其设置为备用路径(通常,默认路径应该没问题)。你可以使用以下任一方法访问 “远程工作者” 设置页面:
* 单击远程计算机浏览器中打开的 “远程工作者” 页面顶部的 “设置” 链接:
*
:-: ![Remote Worker Settings - Browser](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/remoteworker_settingsbrowser.png)
* 使用远程工作者托盘图标上的鼠标右键菜单打开远程计算机浏览器中的设置:
:-: ![Remote Worker Settings - System Tray](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/remoteworker_settingstray.png)
* 在本地计算机上,打开目标平台管理器,然后单击 “cog” 图标![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/icon_cog.png),在本地计算机的窗口中打开工作者设置:
:-: ![Remote Worker Settings - GameMaker Studio 2 IDE](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/remoteworker_settingside.png)
这将显示设置页面,你可以在其中查看(和设置)允许你设置构建项目的路径的不同选项:
:-: ![Remote Worker Settings](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/remoteworker_settings.png)
本地编译设置
在检查要使用的远程工作者应用程序的路径之后,你可以设置(如果需要)不同的**本地构建设置**。不同的平台需要在构建 PC 上安装不同的构建工具,远程工作者需要能够通过 “设置” 页面使用它们来构建游戏。这里的第一个设置是**常规**设置:
:-: ![Local General Settings](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/remote_worker_local_general.png)
你可以在此处设置帮助服务器的端口和调试器要使用的端口。如果在使用调试模块时遇到任何连接问题,可以更改这些,但通常应保留其默认值。
你现在可以继续为远程工作者可以为其构建的平台设置不同的选项:
* **Windows**
:-: ![Local Windows Settings](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/remote_worker_local_windows.png)
If you have access to theWindowstarget platform, you should be able to build using the remote worker on theWindows PCimmediately using the**VM**option. However if you wish to use the**YYC**then you will also need to set the path to**Visual Studio**on the build PC. For full details of how to set up aWindows PCto compile your projects, please see the following helpdesk article:
* [Setting Up ForWindows](https://help.yoyogames.com/hc/en-us/articles/235186048-Setting-Up-For-Windows)
*
编译
一旦你设置了远程工作者并完成了本地构建设置(请参阅上面的部分),你就可以开始使用它来编译游戏了。为此,只需从目标平台管理器列表中选择远程工作者,选择要测试 / 编译的平台,以及任何其他选项(如编译类型或配置),然后按**运行**![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/icon_play.png)或**创建可以执行程序**![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/icon_compile.png)。
**注意**:目标平台管理器中的可用平台将根据远程工作者计算机的功能而更改,并非所有目标平台都可用。另请注意,远程工作者没有 “测试” 目标。
如果你只是在运行项目,那么远程工作者计算机将编译并运行它,但如果你要创建可执行文件,则远程工作程序将编译该项目,然后将\*.zip文件返回到本地计算机以进行保存。
应该注意的是,使用远程工作者时,调试按钮![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/icon_debug.png)和 清理![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/icon_clean.png)按钮都不可用。另请注意,你目前同时只能执行*一次*远程构建。
在远程计算机上安装并运行远程工作者后,它将作为图标显示在任务栏中,你可以右键单击它以显示以下选项:
:-: ![Remote Worker RMB System Menu](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/remoteworker_rmbmenu.png)
* **打开**:在默认浏览器中打开远程工作者应用程序。
* **显示日志**:在浏览器中打开远程工作者的日志文件。
* **网络设置**:你可以在此处过滤希望能够将构建发送到远程工作者计算机的计算机。每个过滤器可以是[CIDR 样式](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation)过滤器或允许的机器主机名。你应该知道,如果你希望多台计算机连接到一个远程工作线程,或者你正在混合连接类型(即:有线和 wifi),那么你可能需要在此处编辑 IP 允许范围。
* **编辑设置**:打开 “远程工作者” 设置菜单(在上面的*设置*部分中进行了说明)。
* **退出**:退出远程工作者应用程序。这意味着在重新启动远程工作者应用程序之前,你无法再从本地计算机连接(或编译)应用程序。
- 介绍
- 新手须知
- 版本授权
- 安装
- 更新
- 发布日志
- 所需SDK
- 账号
- 首选项设置
- 拖拽编程
- 扩展编辑器设置
- 基本项设置
- 图片编辑器设置
- 语言设置
- 市场设置
- 对象编辑器设置
- 插件设置
- 资源树设置
- 场景编辑器设置
- 运行库设置
- 样条编辑器设置
- 精灵编辑器设置
- 文本编辑器设置
- 瓷片编辑器设置
- 时间轴设置
- 输入
- 快速上手
- 概览
- 启动页
- 工作区
- 资源树
- 工作流
- 创建精灵
- 创建瓷片集
- 创建音频
- 创建对象
- 创建场景
- 编译
- 调试
- 快捷键
- 菜单
- 文件菜单
- 编辑菜单
- 构建菜单
- 窗口菜单
- 工具菜单
- 市场菜单
- 帮助菜单
- 布局菜单
- 附加信息
- 位运算符和二进制
- 命令行
- 出错信息
- 文件系统
- 导入非位图精灵
- JSDoc使用
- 微型WEB服务端
- 过时函数
- 纹理页
- 使用缓冲区
- 编辑器
- 扩展编辑器
- 字体编辑器
- 图像编辑器
- 内含文件编辑器
- 备注编辑器
- 对象编辑器
- 路径编辑器
- 场景编辑器
- 脚本编辑器
- 着色器编辑器
- 音频编辑器
- 精灵编辑器
- 瓷片集编辑器
- 时间轴编辑器
- 对象可用事件
- 异步事件
- 绘制事件
- 手势事件
- 其它
- 调试管理器
- 设备管理器
- YoYo资源市场
- 输出停靠栏
- 项目图生成器
- 最近使用窗口
- 远程工作
- 混音器
- 版本控制
- 设置项
- 音频组
- 配置项
- 跨平台配置
- 纹理组
- 游戏配置选项
- AmazonFire 配置
- Android配置
- HTML5配置
- iOS配置
- Linux配置
- Mac配置
- Windows配置
- WindowsUWP配置
- 脚本编程
- 拖放编程概览
- 拖放编程功能索引
- GML概览
- 代码
- 数组
- array_create
- array_copy
- array_equals
- array_length_1d
- array_height_2d
- array_length_2d
- 赋值
- 表达式
- 数据存取
- 功能性语法
- 函数
- 脚本
- 注释
- 关键词
- 变量及作用域
- variable_global_exists
- variable_global_get
- variable_global_set
- variable_instance_exists
- variable_instance_get
- variable_instance_get_names
- variable_instance_set
- 寻址变量
- 评估顺序
- 数据类型
- is_array
- is_bool
- is_int32
- is_int64
- is_matrix
- is_ptr
- is_real
- is_string
- is_undefined
- is_vec3
- is_vec4
- 变元计数
- 指针
- 内置变量属性
- async_load
- health
- lives
- score
- GML函数索引
- asset_get_index
- asset_get_type
- Compatibility_Functions
- Asynchronous Functions
- Audio
- Buffers
- Cameras And Display (摄像机和显示)
- Cameras(摄像机)
- camera_apply
- camera_create
- camera_create_view
- camera_destroy
- camera_get_active
- camera_get_begin_script
- camera_get_default
- camera_get_end_script
- camera_get_proj_mat
- camera_get_update_script
- camera_get_view_angle
- camera_get_view_border_x
- camera_get_view_border_y
- camera_get_view_height
- camera_get_view_mat
- camera_get_view_speed_x
- camera_get_view_speed_y
- camera_get_view_target
- camera_get_view_width
- camera_get_view_x
- camera_get_view_y
- camera_set_begin_script
- camera_set_default
- camera_set_end_script
- camera_set_proj_mat
- camera_set_update_script
- camera_set_view_angle
- camera_set_view_border
- camera_set_view_mat
- camera_set_view_pos
- camera_set_view_size
- camera_set_view_speed
- camera_set_view_target
- view_camera
- view_current
- view_enabled
- view_get_camera
- view_get_hport
- view_get_surface_id
- view_get_visible
- view_get_wport
- view_get_xport
- view_get_yport
- view_hport
- view_set_camera
- view_set_hport
- view_set_surface_id
- view_set_visible
- view_set_wport
- view_set_xport
- view_set_yport
- view_surface_id
- view_visible
- view_wport
- view_xport
- view_yport
- The Screen Display
- Controls
- Data_Structures(数据结构)
- ds_exists
- ds_set_precision
- DS Grids
- DS Lists(列表)
- ds_list_create
- ds_list_destroy
- ds_list_clear
- ds_list_empty
- ds_list_size
- ds_list_add
- ds_list_set
- ds_list_delete
- ds_list_find_index
- ds_list_find_value
- ds_list_insert
- ds_list_replace
- ds_list_shuffle
- ds_list_sort
- ds_list_copy
- ds_list_read
- ds_list_write
- ds_list_mark_as_list
- ds_list_mark_as_map
- DS Maps(映射表)
- ds_map_exists
- ds_map_create
- ds_map_add
- ds_map_clear
- ds_map_copy
- ds_map_replace
- ds_map_delete
- ds_map_empty
- ds_map_size
- ds_map_find_first
- ds_map_find_last
- ds_map_find_next
- ds_map_find_previous
- ds_map_find_value
- ds_map_read
- ds_map_write
- ds_map_destroy
- ds_map_secure_save
- ds_map_secure_save_buffer
- ds_map_secure_load
- ds_map_secure_load_buffer
- ds_map_add_list
- ds_map_add_map
- ds_map_replace_list
- ds_map_replace_map
- DS Priority Queues
- DS Queues
- DS Stacks
- Debugging
- Drawing
- draw_enable_drawevent
- draw_flush
- Colour(颜色)
- colour_get_blue
- colour_get_green
- colour_get_hue
- colour_get_red
- colour_get_saturation
- colour_get_value
- draw_clear
- draw_clear_alpha
- draw_get_alpha
- draw_get_colour
- draw_getpixel
- draw_getpixel_ext
- draw_set_alpha
- draw_set_colour
- make_colour_hsv
- make_colour_rgb
- merge_colour
- Forms
- draw_arrow
- draw_button
- draw_circle
- draw_circle_colour
- draw_ellipse
- draw_ellipse_colour
- draw_healthbar
- draw_line
- draw_line_colour
- draw_line_width
- draw_line_width_colour
- draw_path
- draw_point
- draw_point_colour
- draw_rectangle
- draw_rectangle_colour
- draw_roundrect
- draw_roundrect_colour
- draw_roundrect_colour_ext
- draw_roundrect_ext
- draw_set_circle_precision
- draw_triangle
- draw_triangle_colour
- GPU
- gpu_get_alphatestenable
- gpu_get_alphatestref
- gpu_get_blendenable
- gpu_get_blendmode
- gpu_get_blendmode_dest
- gpu_get_blendmode_destalpha
- gpu_get_blendmode_ext
- gpu_get_blendmode_ext_sepalpha
- gpu_get_blendmode_src
- gpu_get_blendmode_srcalpha
- gpu_get_colorwriteenable
- gpu_get_cullmode
- gpu_get_fog
- gpu_get_state
- gpu_get_texfilter
- gpu_get_texfilter_ext
- gpu_get_texrepeat
- gpu_get_texrepeat_ext
- gpu_get_zfunc
- gpu_get_ztestenable
- gpu_get_zwriteenable
- gpu_pop_state
- gpu_push_state
- gpu_set_alphatestenable
- gpu_set_alphatestref
- gpu_set_blendenable
- gpu_set_blendmode
- gpu_set_blendmode_ext
- gpu_set_blendmode_ext_sepalpha
- gpu_set_colorwriteenable
- gpu_set_cullmode
- gpu_set_fog
- gpu_set_state
- gpu_set_texfilter
- gpu_set_texfilter_ext
- gpu_set_texrepeat
- gpu_set_texrepeat_ext
- gpu_set_zfunc
- gpu_set_ztestenable
- gpu_set_zwriteenable
- Lighting
- draw_get_lighting
- draw_light_define_ambient
- draw_light_define_direction
- draw_light_define_point
- draw_light_enable
- draw_light_get
- draw_light_get_ambient
- draw_set_lighting
- Mipmapping
- gpu_get_tex_max_aniso
- gpu_get_tex_max_aniso_ext
- gpu_get_tex_max_mip
- gpu_get_tex_max_mip_ext
- gpu_get_tex_min_mip
- gpu_get_tex_min_mip_ext
- gpu_get_tex_mip_bias
- gpu_get_tex_mip_bias_ext
- gpu_get_tex_mip_enable
- gpu_get_tex_mip_enable_ext
- gpu_get_tex_mip_filter
- gpu_get_tex_mip_filter_ext
- gpu_set_tex_max_aniso
- gpu_set_tex_max_aniso_ext
- gpu_set_tex_max_mip
- gpu_set_tex_max_mip_ext
- gpu_set_tex_min_mip
- gpu_set_tex_min_mip_ext
- gpu_set_tex_mip_bias
- gpu_set_tex_mip_bias_ext
- gpu_set_tex_mip_enable
- gpu_set_tex_mip_enable_ext
- gpu_set_tex_mip_filter
- gpu_set_tex_mip_filter_ext
- Particles
- Particle Emitters
- part_emitter_burst
- part_emitter_clear
- part_emitter_create
- part_emitter_destroy
- part_emitter_destroy_all
- part_emitter_exists
- part_emitter_region
- part_emitter_stream
- Particle Systems
- part_particles_clear
- part_particles_count
- part_particles_create
- part_particles_create_colour
- part_system_automatic_draw
- part_system_automatic_update
- part_system_clear
- part_system_create
- part_system_create_layer
- part_system_depth
- part_system_destroy
- part_system_draw_order
- part_system_drawit
- part_system_exists
- part_system_get_layer
- part_system_layer
- part_system_position
- part_system_update
- Particle Types
- part_type_alpha1
- part_type_alpha2
- part_type_alpha3
- part_type_blend
- part_type_clear
- part_type_colour_hsv
- part_type_colour_mix
- part_type_colour_rgb
- part_type_colour1
- part_type_colour2
- part_type_colour3
- part_type_create
- part_type_death
- part_type_destroy
- part_type_direction
- part_type_exists
- part_type_gravity
- part_type_life
- part_type_orientation
- part_type_scale
- part_type_shape
- part_type_size
- part_type_speed
- part_type_sprite
- part_type_step
- Simple Effects
- ef_cloud
- ef_ellipse
- ef_explosion
- ef_firework
- ef_flare
- ef_rain
- ef_ring
- ef_smoke
- ef_smokeup
- ef_snow
- ef_spark
- ef_star
- effect_clear
- effect_create_above
- effect_create_below
- Primitives(基本几何体)
- draw_primitve_begin
- draw_primitive_begin_texture
- draw_primitive_end
- draw_vertex
- draw_vertex_colour
- draw_vertex_texture
- draw_vertex_texture_colour
- Primitive Building
- vertex_argb
- vertex_begin
- vertex_colour
- vertex_create_buffer
- vertex_create_buffer_ext
- vertex_create_buffer_from_buffer
- vertex_create_buffer_from_buffer_ext
- vertex_delete_buffer
- vertex_end
- vertex_float1
- vertex_float2
- vertex_float3
- vertex_float4
- vertex_freeze
- vertex_get_buffer_size
- vertex_get_number
- vertex_normal
- vertex_position
- vertex_position_3d
- vertex_submit
- vertex_texcoord
- vertex_ubyte4
- Vertex Formats
- vertex_format_add_colour
- vertex_format_add_custom
- vertex_format_add_normal
- vertex_format_add_position
- vertex_format_add_position_3d
- vertex_format_add_textcoord
- vertex_format_begin
- vertex_format_delete
- vertex_format_end
- Sprites_and_Tiles
- draw_enable_swf_aa
- draw_get_swf_aa_level
- draw_self
- draw_set_swf_aa_level
- draw_skeleton
- draw_skeleton_collision
- draw_skeleton_instance
- draw_skeleton_time
- draw_sprite
- draw_sprite_ext
- draw_sprite_general
- draw_sprite_part
- draw_sprite_part_ext
- draw_sprite_pos
- draw_sprite_stretched
- draw_sprite_stretched_ext
- draw_sprite_tiled
- draw_sprite_tiled_ext
- draw_tile
- draw_tilemap
- Surfaces
- application_get_position
- application_surface
- application_surface_draw_enable
- application_surface_enable
- application_surface_is_enabled
- draw_surface
- draw_surface_ext
- draw_surface_general
- draw_surface_part
- draw_surface_part_ext
- draw_surface_stretched
- draw_surface_stretched_ext
- draw_surface_tiled
- draw_surface_tiled_ext
- surface_copy
- surface_copy_part
- surface_create
- surface_create_ext
- surface_exists
- surface_free
- surface_get_height
- surface_get_texture
- surface_get_width
- surface_getpixel
- surface_getpixel_ext
- surface_reset_target
- surface_resize
- surface_save
- surface_save_part
- surface_set_target
- surface_set_target_ext
- The Application Surface
- Text
- draw_highscore
- draw_set_font
- draw_set_halign
- draw_set_valign
- draw_text
- draw_text_colour
- draw_text_ext
- draw_text_ext_colour
- draw_text_ext_transformed
- draw_text_ext_transformed_colour
- draw_text_transformed
- draw_text_transformed_colour
- Textures
- draw_texture_flush
- texture_get_height
- texture_get_texel_height
- texture_get_texel_width
- texture_get_uvs
- texture_get_width
- texture_global_scale
- texture_set_stage
- File Handing
- Fonts
- Game
- In App Purchases
- Instances
- 数学运算(Maths)
- Date and Time
- 数字方法(Number Functions)
- Vector Functions
- Matrices
- Miscellaneous
- Movement and Collisions
- Networking
- Objects
- Paths
- Physics
- 场景(Rooms)
- 常规的场景函数及变量(General Room Functions And Varibales)
- 常规图层函数(General Layer Functions)
- 瓷片函数(TIlemap Tile Functions)
- 背景图层(Backgrounds)
- 精灵图层(Sprites)
- Scirpts
- Shaders
- Sprites
- Steam API
- Strings
- Timelines
- Web
- XBox_Live
- 翻译名词对照表