开发一个网页游戏的流程?

开发一个网页游戏的流程?,第1张

开发一个网页游戏的流程是:

1、程序:

一个服务器程序员,主要工作是构建数据库和游戏的各个功能模块编程,要求PHP比较熟悉,代码体验越久越好。代码越长的人编写程序的效率越高,错误越少。基本上,他们一次写的东西不会有任何问题供以后使用。相反,大多数新手模块很难说。

很可能只需要2到3个月就可以编写一套完整的代码,并且需要5到6个月才能修复bug,这样才能满足游戏正常运行的最基本要求。

客户端程序员,流行的名字似乎是网页设计师?主要工作是设计网页,这需要精通javascript和AJAX。如果你在网页上写得很好,你可以在客户端做出很多判断和计算。将服务器负担减少50%没有问题。

减轻服务器负担的主要优点是同时大大提高了单个服务的在线能力。每个人都知道玩家喜欢聚在一起。凭借大量的服务参与者和强大的附着力,运营商有着长期的赚钱基础。

2、规划:

游戏内容规划,包括游戏内容的所有方面,如世界观、职业、数值、地图、任务等。,同时进行游戏测试。用户界面规划,包括游戏网页界面布局、操作面板布局、操作模式设置、复制等。,同时做游戏的主要测试工作。

扩展资料:

网站开发是制作一些专业性强的网站,比如说动态网页。ASP、PHP、JSP网页。而且网站开发一般是原创,网站制作可以用别人的模板。网站开发字面意思比制作有更深层次的进步,它不仅仅是网站美工和内容,它可能涉及到域名注册查询、网站的一些功能的开发。

对于较大的组织和企业,网站开发团队可以由数以百计的人(web开发者)组成。规模较小的企业可能只需要一个永久的或收缩的网站管理员,或相关的工作职位,如一个平面设计师和/或信息系统技术人员的二次分配。Web开发可能是一个部门,而不是域指定的部门之间的协作努力。

游戏程序员也是有分工的,比如说图形程序、逻辑程序、工具程序等等

图形程序主要负责游戏画面的显示,对于3D游戏来说,图形渲染包括模型、材质、贴图的显示,光照和阴影的效果等等,这可以说是游戏编程中技术含量最高的部分。从事图形程序需要良好的3D数学训练,线性代数、图形学是需要主要攻克的课程,现在业界主流使用DirectX作为底层库,这也是比较基础的技能。

逻辑程序员对于外行人来说其实是个比较抽象的概念,其实就是控制游戏世界的规则,我举个简单的例子,比如说俄罗斯方块里,一个规则是如果一个方块落下之后发现有行满了,就会消掉这些行,然后上面没有被消掉的行会按位置下降。在游戏世界中,你能看到的一切gameplay都要依赖逻辑程序来控制,在绝大多数情况下,逻辑程序在代码数量上占据了游戏程序的主体。

业界主流的发展越来越倾向于这样一个认识,策划创造游戏的玩法,美术创造游戏的画面,而程序的职责是为他们提供帮助。这种帮助主要就是提供给他们工具,在游戏开发流水线越来越进化的今天,工具的好坏对游戏的质量起着决定性的作用。一些典型的工具包括地形编辑器、场景编辑器、脚本编辑器、粒子编辑器等等。对程序员来说,编写工具程序往往需要掌握Windows(或其他操作系统)编程的能力。

当然还有很多很多其他的分工,比如AI程序员负责编写怪物和BOSS的行为,角色的寻路,UI程序员负责编写游戏的界面,比如各种菜单、状态的显示,服务端程序员负责编写服务器端的逻辑程序等等。鉴于答者的工作,这种分类其实主要是按照3D网游来讲的,其他不同平台不同类型的游戏当然会有不同的分工,不过大体上差不多。而且这些分工很多都是有交集的,并没有选了其中一种就不会做别的这种事,分开来讲只是希望能有个大概的印象。

 我刚开始做Web开发的时候,根本没有前端,后端之说。

原因很简单,那个时候服务器端的代码就是一切: 接受浏览器的请求,实现业务逻辑,访问数据库,用JSP生成HTML,然后发送给浏览器。

即使后来Javascript在浏览器中添加了一些AJAX的效果,那也是锦上添花,绝对不敢造次。因为页面的HTML主要还是用所谓“ 套模板 ”的方式生成:美工生成HTML模板,程序员用JSP,Veloctiy,FreeMaker等技术把动态的内容添加上去,仅此而已。

 那个时候最流行的图是这个样子:

在最初的J2EE体系中,这个 表示层 可不仅仅是浏览器中运行的页面,还包括Java写的桌面端,只是Java在桌面端太不争气, 没有发展起来。

每个程序员都是所谓 “全栈”工程师 ,不仅要搞定HTML, JavaScript, CSS,还要实现业务逻辑,编写访问数据库的代码。等到部署的时候,就把所有的代码打成一个WAR包,往Tomcat指定的目录一扔,测试一下没问题,收工回家!

 不差钱的公司会把程序部署到Weblogic,Websphere这样的应用服务器中,还会用上高大上的EJB。

 虽然看起来生活“简单”又“惬意”,但实际上也需要实现那些多变的、不讲逻辑的业务需求,苦逼的本质并没有改变。

随着大家对浏览器页面的 视觉和交互 要求越来越高,“套模板”的方式渐渐无法满足要求,这个所谓的表示层慢慢地迁移到浏览器当中去了,一大批像Angular, ReactJS之类的框架崛起,前后端分离了!

 后端的工程师只负责提供接口和数据,专注于业务逻辑的实现,前端取到数据后在浏览器中展示,各司其职。

 像Java这样的语言很适合去实现复杂的业务逻辑,尤其是一些MIS系统,行业软件如税务、电力、烟草、金融,通信等等。 所以剥离表示层,只做后端挺合适的。

 但是如果仅仅是实现业务逻辑,那后端也不会需要这么多技术了,搞定SSH/SSM就行了。

互联网,尤其是移动互联网开始兴起以后,海量的用户呼啸而来,一个单机部署的小小War包肯定是撑不住了,必须得做分布式。

原来的单个Tomcat得变成Tomcat的 集群 ,前边弄个Web服务器做请求的 负载均衡, 不仅如此,还得考虑状态问题,session的一致性。

 (注:参见文章《小白科普:分布式和集群》)

业务越来越复杂,我们不得不把某些业务放到一个机器(或集群)上,把另外一部分业务放到另外一个机器(或集群)上,虽然系统的计算能力,处理能力大大增强,但是这些系统之间的通信就变成了头疼的问题, 消息队列 (MQ), RPC框架 (如Dubbo)应运而生,为了提高通信效率,各种 序列化的工具 (如Protobuf)也争先空后地问世。

单个数据库也撑不住了,那就做数据库的 读写分离 ,如果还不行,就做 分库和分表 ,把原有的数据库垂直地切一切,或者水平地切一切, 但不管怎么切,都会让应用程序的访问非常麻烦,因为数据要跨库做Join/排序,还需要事务,为了解决这个问题,又有各种各样“ 数据访问中间件 ”的工具和产品诞生。

为了最大程度地提高性能,缓存肯定少不了,可以在本机做缓存(如Ehcache),也可以做 分布式缓存 (如Redis),如何搞 数据分片 ,数据迁移,失效转移,这又是一个超级大的主题了。

互联网用户喜欢上传和文件,还得搞一个 分布式的文件系统 (如FastDFS),要求高可用,高可靠。

数据量大了,搜索的需求就自然而然地浮出水面,你得弄一个支持全文索引的 搜索引擎 (如Elasticsearch ,Solr)出来。

林子大了,什么鸟都有,必须得考虑 安全 ,数据的加密/解密,签名、证书,防止SQL注入,XSS/CSRF等各种攻击。

前面提到了这么多的系统,还都是分布式的,每次上线,运维的同学说:把这么多系统协调好,把老子都累死了。

得把持续集成做好,能自动化地部署,自动化测试(其实前端也是如此),后来出现了一个革命化的技术 docker , 能够让开发、测试、生成环境保持一致,系统原来只是在环境(如Ngnix, JVM,Tomcat,MySQL等)上部署代码,现在把代码和环境一并打包, 运维的工作一下子就简化了。

公司自己购买服务器比较贵,维护也很麻烦,又难于弹性地增长,那就搞点虚拟的服务器吧,硬盘、内存都可以动态扩展(反正是虚拟的), 访问量大的时候多用点,没啥访问量了就释放一点,按需分配,很方便,这就是 云计算 的一个场景。

 随着时间的推移,各个公司和系统收集的数据越来越多,都堆成一座大山了,难道就放在那里白白地浪费硬盘空间吗?

 有人就惊奇地发现,咦,我们利用这些数据搞点事情啊, 比如把数据好好分析一下,预测一下这个用户的购买/阅读/浏览习惯,给他推荐一点东西嘛。

可是这么多数据,用传统的方式计算好几天甚至好几个月才能出个结果,到时候黄花菜都凉了,所以也得利用分布式的技术,想办法把计算分到各个计算机去,然后再把计算结果收回来, 时势造英雄, Hadoop 及其生态系统就应运而生了。

 之前听说过一个大前端的概念,把移动端和网页端都归结为“前端”,我这里造个词“大后端”,把那些用户直接接触不到的、发生在服务器端的都归结进来。

现在无论是前端还是后端,技术领域多如牛毛,都严重地细分了,所以 我认为真正的全栈工程师根本不存在,因为一个人精力有限,不可能搞定这么多技术领域,太难了

 培训机构所说的“全栈”,我认为就是前后端还在拉拉扯扯,藕断丝连,没有彻底分离的时候的“全栈”工程师。

 那么问题来了, 后端这么多东西,我该怎么学?

 之前写过一篇文章叫做《上天还是入地》,说了学习的广度和深度,在这里也是相通的。

 往深度挖掘,可以成为某个技术领域的专家,如搜索方面的专家、安全方面的专家,分布式文件的专家等等,不管是哪个领域,重点都不是学会使用某个工具和框架, 而是保证你可以自己的知识和技术去搞定这个领域的顶尖问题。

 往广度发展,各个技术领域都要了解,对于某种需求,能够选取合适的软件和技术架构来实现它,把需求转化成合适的技术组件,让这些组件以合适的方式连接、部署、运行,这也需要持续地学习和不断的经验积累。

 最后,以一张漫画来结束吧!

C/C++高级工程师学习路线图:

前端开发和后端开发都很累,差不多。

1、前端开发:

网站的“前端”是与用户直接交互的部分,包括你在浏览网页时接触的所有视觉内容--从字体到颜色,以及下拉菜单和侧边栏。这些视觉内容,都是由浏览器解析、处理、渲染相关HTML、CSS、Java 文件后呈现而来。前端开发,就是要创造上面提到的网站面向用户的部分背后的代码,并通过建立框架,构建沉浸性的用户体验。为了实现这个目标,开发需要熟练运用下列语言、框架、工具库。

2、后端开发:

为了让服务器、应用、数据库能够彼此交互,后端工程师需要具有用于应用构建的服务器端语言,数据相关工具,PHP框架,版本控制工具,还要熟练使用 Linux 作为开发和部署环境。后端开发者使用这些工具编写干净、可移植、具有良好文档支持的代码来创建或更新 Web 应用。但在写代码之前,他们需要与客户沟通,了解其实际需求并转化为技术目标,制定最有效且精简的方案来进行实现。

两者最大的区别体现在展示的方式、所用的技术和思考的方向不同。而且前端开发入门简单,但是深入之后就会发现要掌握的东西也不少;而后端开发从一开始就很难,需要经常和一堆业务逻辑代码打交道。所以无论是从事前端开发还是后端开发,都没有谁更好更有前途这一说,职业的发展前景主要还是得看个人的能力。

关于程序复杂度的问题,如果你的程序的规模,跟你的程序的复杂度成正比的话,说明你的程序架构出问题了。 也就是说随着项目规模的增加,程序的复杂度不能够显著的增加。 就是因为程序复杂度的增加,而不是工作量的增大,导致了维护成本越来越高,接下来的工作你会需要越来越多的后端人员或者前端人员。 

这一点上来说,主要就看你程序的架构是如何设计的,如果你的后端的复杂度设计得非常高,那你当然需要很多很多人,前端实际上也是一样。 后端之所以需要很多人手, 主要来说就是复杂度的问题,前端需要很多人,主要是因为工作量的问题。

这也是前端跟后端的一个区别。 另外一个后端有时候用来做监控服务的工作, 比如,某种条件可以触发短信,邮件等等,这些并不需要前端做配合,这时候算是单独的后端的工作量。 但是为了管理方便,一般即使是这些数据,也是需要写一套前端来进行管理的。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 开发一个网页游戏的流程?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情