首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java程序员:工作还是游戏,是该好好衡量一下了

图片来自百度 前阵子我终于下定决心,删掉了硬盘里所有的游戏。 身为一个程序猿,每天都要和各种新技术打交道,闲暇时间,总还得看一下各大论坛,逛逛博客园啥的,给自己充充电。游戏的话,其实我自小就比较喜欢,可以算是一种兴趣,而且在现在的大趋势下,这种兴趣变得再正常不过。然而我还是毅然决然地决定,要渐渐放下,直到彻底放下这个兴趣爱好。 如今我这样看待电脑游戏,它似乎是一种限制,我把自己从现实生活中脱离出来,然后置身于一种自己创造出来的限制中。 为什么我考量再三,决定放弃玩游戏,而把更多的精力花在学习和生活上呢?原因

09
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    关于网游分布式服务器的讨论?

    如题 请大家讨论一下网游服务器端结构设计方面的问题。 希望大家畅所欲言,能说说细节更好。 还有关于网络游戏其他方面的问题也可以。 在此先摘篇文章 随着网游从业者的规模和需求不断扩大,越来越多的朋友进入了网游开发这个领域,使得市场中网游开发技术相关的需求量迅猛增长。目前,(网游)网络游戏行业比较紧缺的是具有较深技术功底的“专家型”开发者,这主要包括两个方面:服务器端设计人员以及客户端设计人员。对于网络游戏而言,由于其主要的游戏逻辑计算是在服务器端完成的,数据同步与广播信息的传递也是通过服务器完成的,所以,是否拥有一个有经验的服务器端设计人员已经成为一款网游产品能否成功的关键之一。鉴于此,本文将试图就网游服务器设计的一系列问题展开讨论和总结,笔者将结合自己的开发经验和体会,将其中各方面内容逐一呈现。希望能够对以下三类人员有所帮助:   有一定网络编程基础、准备进入(网游)网络游戏行业作服务器端设计的人员;   正在从事网游服务器设计的人员;   网游项目的技术负责人。   由于网游服务器的设计牵涉到太多内容,比如:网络通信方面、人工智能、数据库设计等等,所以本文将重点从网络通信方面的内容展开论述。谈到网络通信,就不能不涉及如下五个问题: 1、 常见的网游服务通信器架构概述 2、 网游服务器设计的基本原则 3、 网游服务器通信架构设计所需的基本技术 4、 网游服务器通信架构的测试 5、 网游服务器通信架构设计的常见问题 下面我们就从第一个问题说起: 常见的网游服务器通信架构概述   目前,国内的网游市场中大体存在两种类型的网游游戏:MMORPG(如:魔兽世界)和休闲网游(如:QQ休闲游戏和联众游戏,而如泡泡堂一类的游戏与QQ休闲游戏有很多相同点,因此也归为此类)。由于二者在游戏风格上的截然不同,导致了他们在通信架构设计思路上的较大差别。下面笔者将分别描述这两种网游的通信架构。 1.MMORPG类网游的通信架构   网游的通信架构,通常是根据几个方面来确定的:游戏的功能组成、游戏的预计上线人数以及游戏的可扩展性。   目前比较通用的MMORPG游戏流程是这样的: a. 玩家到游戏官方网站注册用户名和密码。 b. 注册完成后,玩家选择在某一个区激活游戏账号。 c. 玩家在游戏客户端中登录进入已经被激活的游戏分区,建立游戏角色进行游戏。   通常,在这样的模式下,玩家的角色数据是不能跨区使用的,即:在A区建立的游戏角色在B区是无法使用的,各区之间的数据保持各自独立性。我们将这样独立的A区或B区称为一个独立的服务器组,一个独立的服务器组就是一个相对完整的游戏世界。而网游服务器的通信架构设计,则包括了基于服务器组之上的整个游戏世界的通信架构,以及在一个服务器组之内的服务器通信架构。   我们先来看看单独的服务器组内部的通信是如何设计的。   一个服务器组内的各服务器组成,要依据游戏功能进行划分。不同的游戏内容策划会对服务器的组成造成不同的影响。一般地,我们可以将一个组内的服务器简单地分成两类:场景相关的(如:行走、战斗等)以及场景不相关的(如:公会聊天、不受区域限制的贸易等)。为了保证游戏的流畅性,可以将这两类不同的功能分别交由不同的服务器去各自完成。另外,对于那些在服务器运行中进行的比较耗时的计算,一般也会将其单独提炼出来,交由单独的线程或单独的进程去完成。   各个网游项目会根据游戏特点的不同,而灵活选择自己的服务器组成方案。经常可以见到的一种方案是:场景服务器、非场景服务器、服务器管理器、AI服务器以及数据库代理服务器。   以上各服务器的主要功能是:   场景服务器:它负责完成主要的游戏逻辑,这些逻辑包括:角色在游戏场景中的进入与退出、角色的行走与跑动、角色战斗(包括打怪)、任务的认领等。场景服务器设计的好坏是整个游戏世界服务器性能差异的主要体现,它的设计难度不仅仅在于通信模型方面,更主要的是整个服务器的体系架构和同步机制的设计。   非场景服务器:它主要负责完成与游戏场景不相关的游戏逻辑,这些逻辑不依靠游戏的地图系统也能正常进行,比如公会聊天或世界聊天,之所以把它从场景服务器中独立出来,是为了节省场景服务器的CPU和带宽资源,让场景服务器能够尽可能快地处理那些对游戏流畅性影响较大的游戏逻辑。   服务器管理器:为了实现众多的场景服务器之间以及场景服务器与非场景服务器之间的数据同步,我们必须建立一个统一的管理者,这个管理者就是服务器组中的服务器管理器。它的任务主要是在各服务器之间作数据同步,比如玩家上下线信息的同步。其最主要的功能还是完成场景切换时的数据同步。当玩家需要从一个场景A切换到另一个场景B时,服务器管理器负责将玩家的数据从场景A转移到场景B,并通过协议通知这两个场景数据同步的开始与结束。所以,为了实现这些内容繁杂的数据同步任务,服务器管理器通常会与所有的场景服务器和非场景服务器保持socke

    03

    从动物科学到乐队鼓手,腾讯技术小哥的开源人生

    “要么孤独,要么庸俗” 在孤独和庸俗之间,王炜选择了开挂。 小学三年级开始学编程,爱打游戏,为了上网省钱,攻破网吧计费系统;因为喜欢小动物,大学时期选择抛弃自己擅长的计算机,选择冷门的动物科学,业余时间参加乐队,成功追到了乐队主唱;为了发家致富,在大学二年级自己创业开发外卖系统,后期做成 SaaS 自己寻找客户售卖,超前性的以云的模式赚到了人生的第一桶金,在武汉实现了买房自由。 一路走来,王炜用活生生的案例,无时无刻不在提醒着我,彪悍的人生不需要解释。 和王炜在深圳南山的比克大厦见了面,第一眼看到他,

    03

    从动物科学到乐队鼓手,腾讯技术小哥的开源人生

    “要么孤独,要么庸俗” 在孤独和庸俗之间,王炜选择了开挂。 小学三年级开始学编程,爱打游戏,为了上网省钱,攻破网吧计费系统;因为喜欢小动物,大学时期选择抛弃自己擅长的计算机,选择冷门的动物科学,业余时间参加乐队,成功追到了乐队主唱;为了发家致富,在大学二年级自己创业开发外卖系统,后期做成 SaaS 自己寻找客户售卖,超前性的以云的模式赚到了人生的第一桶金,在武汉实现了买房自由。 一路走来,王炜用活生生的案例,无时无刻不在提醒着我,彪悍的人生不需要解释。 和王炜在深圳南山的比克大厦见了面,第一眼看到他,

    03

    零基础学Java,大胆尝试让我找到工作与兴趣的平衡点

    说起学计算机的相关知识,是我在大学期间考计算机二级时学过一些,当时考的是C语言,所以对编程也多少了解一些。但当时可能学习太匆忙了,学C语言编程并没有激发起我对编程的兴趣,在获得二级证书之后就没有再去看过。直到大学毕业后工作了一年多,在和技术部的同事合作过几次之后才逐渐意识到编程的重要性,也渐渐对编程产生了兴趣。我供职的是一家网络科技公司,网站、服务器、数据库可以说是每天都要接触的事物。因为工作的需要我也对这些内容进行操作。从事网络开发主要用到Java语言,为了更好地适应工作我便开始了零基础学Java。 和C

    07

    他们用AI,让大山里的孩子也能「说好」普通话

    机器之心原创 作者:蛋酱 他们用 AI 帮助千千万万个「丁真」学习普通话,走出大山,走向更好的未来。 「我的家在四川甘孜州理塘县,就住在格聂雪山脚下。在我们村庄,每天推开门就能看见格聂雪山。这就是我的世界……」 伴随着「丁真」的名字火遍全国,理塘也越来越为人所熟知。 图片来源:理塘县人民政府 雪山、草原、冰川、寺庙、白塔…… 这里有着如画的风景,无愧于它「天空之城」的称号。但受制于交通、地理、海拔等因素,不少生活在山区的儿童仍然缺乏与外界的连接。部分地区的素养教育资源分配不均匀,且网络信息良莠不齐,很多山

    01
    领券