About the role
As a network programmer, you will be responsible for selecting appropriate network function design solutions for different game projects, and effectively use the middleware provided by Ubisoft's middle platform combined with independent development to implement the game's network-related functions. Your solution needs to support game clients to access background services in a fast, efficient and stable manner. At the same time, it is necessary to consider cross-platform play, multi-platform support, high concurrency and other key requirements. In addition, in your daily work, you need to independently drive function design, execution, troubleshooting and promote optimization. During the development process, your work will revolve around answering some basic questions: Do players respond promptly in multiplayer mode? Does the degree of network latency meet players' expectations for the game? Can the player experience be improved? Always start from the perspective of player experience and deliver high-quality code.
What you will do
- Gradually familiarize yourself with and master the network technology stack of Ubisoft's middle platform, and use it for daily development
- Work closely with game designers to clarify and confirm design requirements involving network/server/operation and maintenance tools.
- Provide network communication solutions for the development of new game functions according to the requirements of game designers.
- Design and implement required game-specific servers according to the needs of game designers.
- Work closely with game client programmers to integrate network functions into the game to achieve functions such as seeking team formation, network communication, state synchronization or frame synchronization.
- Work closely with technical operations and IT teams to assist in the continuous release and maintenance of network services on the cloud.
- Debug network functions and solve network performance bottlenecks, perform corresponding stress tests on developed network services and make improvements and optimizations.
- Be able to notify management in advance when task progress is behind schedule and propose solutions.
岗位介绍
作为一名网络程序员,你将负责为不同的游戏项目选取合适的网络功能设计方案,并有效利用育碧中台提供的中间件结合自主开发来实现游戏的网络相关功能,你的解决方案需要支持游戏客户端以快速、高效和稳定的方式访问后台服务。同时,需要考虑到跨平台游玩,多平台支持,高并发性等需求重点。此外在日常工作中,你需要自主驱动进行功能设计、执行、故障排除以及推动优化。在开发过程中,你的工作将围绕着解答一些基本问题:玩家在多人连线模式中是否响应及时?网络延迟的程度是否能满足玩家对该游戏的预期?玩家体验是否还能得到提升?始终从玩家体验角度出发并交付高质量的代码。
岗位职责
- 逐步熟悉并掌握育碧中台的网络技术栈,并用于日常开发
- 与游戏设计师密切合作,澄清并确认涉及网络/服务器/运维工具的设计要求。
- 根据游戏设计师的要求,为新游戏功能开发提供网络通信方案
- 根据游戏设计师的需求,设计并实现需要的游戏专属服务器
- 与游戏客户端程序员密切合作,将网络功能整合到游戏内,实现寻求组队,网络通信,状态同步或者帧同步等功能。
- 与技术运营和 IT 团队密切合作,协助云上持续发布和维护网络服务。
- 调试网络功能和解决网络性能瓶颈,对开发的网络服务进行对应的压力测试并进行改进优化
- 能够在任务进度落后时提前通知管理层并提出解决方案。
- More than 6 years of relevant programming experience.
- Proficient in C++, proficient in multi-threaded programming, familiar with database programming, familiar with Socket programming. Have excellent network programming knowledge.
- Familiar with and apply various network protocols, such as TCP, UDP, QUIC, HTTP and other basic protocols.
- Proficient in at least one WebAPI development technology stack, regardless of language
- Familiar with network diagnostic software, at least one network sniffing software, such as Wire Shark, CharlesProxy
- Understand databases, experience with MySQL, MongoDB, Tcaplus or Redis databases is preferred
- Proficient in virtual machine related technologies, familiar with Linux and Windows cross-platform network programming
- Understand the network object synchronization mechanism in online games
- Have software engineering practice knowledge and knowledge of agile software development
- Able to analyze and evaluate development risks and provide solutions
- Able to write and debug programs using object-oriented or procedural programming thinking
- Good communication skills in Chinese and English, competent for daily work English communication
- Passionate about playing games and making games
- Understand and use Python, lua, go or other scripting languages
- Familiar with Kubernetes, Prometheus, kong, locusts
岗位要求
- 拥有6年以上相关编程经验。
- 精通C++,熟练掌握多线程编程,熟悉数据库编程,熟悉Socket编程。具备出色的网络编程知识。
- 熟悉并应用各种网络协议,如 TCP、UDP、QUIC、HTTP 等基本协议。
- 精通至少一种WebAPI的开发技术栈,语言不限
- 熟悉网络诊断软件,至少了解一种网络嗅探软件,例如Wire Shark,CharlesProxy
- 了解数据库,具有MySQL, MongoDB, Tcaplus或者Redis数据库经验者优先
- 熟练掌握虚拟机相关技术,熟悉Linux和windows跨平台网络编程
- 了解在线游戏中网络对象同步机制
- 具备软件工程实践知识,具备敏捷软件开发的知识
- 能够分析和评估开发风险并提供解决方案
- 能够使用面向对象或过程编程思维编写及调试程序
- 良好的中英文沟通能力,胜任日常工作的英语交流
- 对玩游戏和制作游戏富有热情
- 了解并使用Python,lua, go或其他脚本语言
- 熟悉 Kubernetes,Prometheus,kong,locusts
Ubisoft CSR commitment
Making a long-lasting positive impact for our players, our teams, our partners and our planet.
In Ubisoft, we are working to enrich players’ lives through unique and memorable gaming experiences and by improving the positive impacts of our games. To get there, we are creating a safer, more inclusive work environment, we are giving back to the communities where Ubisoft operates by working with local non-profit partners and by working to reduce the environmental impact of our business.
为我们的玩家、团队、合作伙伴以及地球持续带来积极影响
育碧致力于通过打造新颖深刻的游戏体验及扩大游戏的积极影响,来丰富玩家的生活。为了实现这一目标,我们始终寻求为团队提供更加安全包容的工作环境。我们通过与世界各地的非营利机构合作开展项目,同时努力降低自身业务对环境的影响,来回馈社区。
To learn more about Ubisoft’s Environmental Commitment
了解更多有关育碧对环境的承诺
Play Green: Ubisoft’s Commitment to Global Carbon Neutrality
2022 Update