欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    webgame开发中遇到技术问题总结.doc

    • 资源ID:12568603       资源大小:33.50KB        全文页数:17页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    webgame开发中遇到技术问题总结.doc

    webgame开发中遇到技术问题总结webgame开发中遇到技术问题总结2022.8.27(13:0017:00)PHP通道项目开发交流会的几点总结1.防并发并发导致的原因:当游戏数据库处于高压状态,例如用户同时在线高峰或者数据库备份阶段,会导致sql执行耗时加长。当玩家连续点击或者使用外挂,在短时间内发送多次请求,导致后台多个进程并行执行,前面的进程在处理未更新数据前,后继进程读取的还是之前的脏数据,后继进程最后更新将错误的数据覆盖,导致并发问题的产生。实例图:解决方案:方案1:在数据更新前,加where语句判断数据是否被改变,如果数据不对应,取消更实例:$sql=“updategoldsetgold_num=85wheregold_num=100”数值类型的也可以采用:$sql=“updategoldsetgold_num=gold_num-10where新,回滚操作。gold_num-10>=0”方案2:在数据库里建一个表user_lock,共两个字段,User_id和Key,User_id当然要作主键,Key用UNSIGNEDsmallint(0,65535)应该就可以了,用户要两次随机到同一样数字的概率是65536分之一,就算该用户RP极好随机到了,那也就是用户的这次操作不成功,并不会造成严重的后果。如果实在不放心,那就用UNSIGNEDmediumint(0,16777215)。用户注册进来的时候,默认为0。游戏里,user静态类,提供user:lock(),和user:unlock()两个方法,在有数据库更新的请求过来时,我们先调用user:lock()方法,获得user_lock表里的key字段的值,并保存在user静态类里,之后按正常过程处理我们的游戏逻辑,完全不用考虑并发,在处理完后,开始更新数据,begin,插入数据,同样不用考虑并发,接下来就是最重要的了,在commit之前,调用user:unlock(),该方法会重新生成一个key值写入数据库,写入的时候,where条件里加入之前得到那个key,然后判断影响条数,如果影响条数为0,表示是脏数据,不能commit,如果为1,表示成功,OK,commit。实例:/开始游戏的逻辑user:lock();/判断是否达到建筑条件./判断是否有建筑队列.开始操作数据库conn:begin();/更新资源/插入队列/改变建筑状态/最最重要的一步user:unlock();conn:commit();show_msg("建筑成功");点评:建议使用第二种方案,1.模块化易用,2.第一种方案需要严格逻辑判断,容易疏忽导致错误,3.在更新语句较多的情况下,第一种方案需要先把所有数据读出来,增加了数据库负担,和降低了程序效率。2.事物的处理产生的问题:事物由begincommit组成,但是当出现beginbegincommit时,第二个begin将自动提交事物,接下去的sql变成非事物执行,不能保证事物执行的完整性,从而导致隐藏的bug发生。第二个begin的出现,导致自动提交,并且后面的sql语句在非事物中执行,从而产生了问题实例图:Begin.CommitBegin.commit这个commit处于失效状态这是程序中存在的嵌套的子程序解决方案:在db类中,加入计数器的概念,但出现begin后计数器+1,再次出现begin再+1,当出现commit时,计数器-1。只有当计数器=0,时才真正执行begin和commit,计数器>0都直接跳过,不执行。这样就保证,begin和commit只执行一次,中间的都跳过。3.MemCahce失败后的重试MemCache是不稳定的,有一定几率连接失败,或者读取失败,写入失败,这时程序需要有稳健的处理机制,比如重试或者转到数据库读取.4.Flash通信协议:AMF(二进制类似json数组)通信协议统一采用:AMF协议。5.后端服务程序,要做内存限制后台服务进程,要控制好内存的使用,如果不做限制,会导致服务器失去响应。这个commit同样失效状态6.MEMcahce结合采用PHP内存缓存,但要注意清除在PHP中缓存变量,可以适当减少对MemCache的请求次数,减小压力,提高程序效率实例图:缓存流程图:开始获取缓存Md5(Sql)作为Key值第一步判断第二步判断第三步判断php缓存数组中是否存在判断MEM中是否存在从INI库中获取值从MEM中获取值将值写入MEM中写入PHP缓存数组中更新该Key的最后使用时间,使用总次数(该功能可根据参数配置关闭)返回结果7.尽量不要加载配置文件,而是用MEMcache优势:避免一次性加载大量数据,提高程序效率,同时便于维护。8.后台进程控制,统一使用优势:使用公司统一的进程控制系统,功能和稳定性有保障9.功能模块的开关对于已经公测的游戏,大型的新功能,可以采用配置开关,通过开关,可以自由灵活的设置新功能的开启、关闭,方便更新,便于维护。10.语言包,前后端都用,要尽量小前台加载语言包缓存,后台记录所有语言包,语言包要控制大小,尽量小。11.统一直接用SQL,不要用组装建议直接使用sql,不要采用java概念中的ORM。直接使用方面灵活,便于查找问题。12.过程化,统一功能,归类,比如金币类,英雄类,建筑类,wiki集中文档不必追求绝对的对象化,将游戏的逻辑整理清晰,比高程序的共用性,便于维护。将每人写的模块,发布于wiki中,便于其他成员查找调用,减少沟通成功.13.数据库字符串自动截断,数值型上限,无符号问题,整型数据传入小数(验证)1.字符型字段,在插入超过长度的字符串,会自动截断,这时需要判断返回值,如果存在问题,需要根据返回值进行处理。2.数值型上限,设计数值型长度时,尽量放宽,因为以后极可能扩展延伸,导致数据写入超过限定值,导致bug3.无符号数值型,写入极限值,会自动变为0;减成负数,会变成极限大值(这个问题在mysql版本5.0之前发现,在5.6版本为自动截取)4.整型数据,写入小数,会自动转为整数14.服务器时间不同步问题,建议统一使用数据库时间多服务器容易导致时间不同步,此时不要直接采用各服务器时间,统一使用数据库的时间“selectnow()asdb_time”。15.要执行SQL,才能连接数据库,采用connet不要用Pconnet框架中,不要每次都直接连接数据库,而是在有sql请求的时候,判断是否有连接,没有再进行连接。不要使用pconnet长连接,因为这个容易导致连接数饱和,后面的连接不上,采用短连接connet。16.使用xdebug或者xprof调试PHP程序,检查程序瓶颈适当使用辅助工具,坚持程序执行的瓶颈,帮助优化程序。17.通用GM系统使用公司统一的GM系统,可以显著的提高开发效率,避免重复开发18.框架的统一入口和出口程序框架中,入口和出口,必须统一,方便集中处理。19.mysql数值类型与长度的关系注意:数值的极限值取决于类型(tinyint、smallint、mediumint、int、bigint),而不是其长度,长度只是控制显示。扩展阅读:1.1.webgame相关技术介绍人龙游戏工作室webgame相关技术介绍Version1.0编制:日期:李恒2022-12-20批准:日期:变更履历日期版本修改说明修改人核准人审核意见1/人龙游戏工作室目录1游戏类型.41.1ACT动作类.41.2FTG格斗类.41.3STG卷轴式射击类.41.4FPS第一人称射击类.41.5SLG策略类.41.6RPG角色扮演类.41.7AVG剧情探险类.41.8SIM模拟现实类.41.9SPG竞技体育类.41.10RAC赛车类.41.11PUZ益智类.51.12MUG音乐类.51.13ETC其它类.52什么是网页游戏WEBGAME.52.1.1网页游戏2022十大排行榜.53网页游戏的开发团队.53.1策划.53.1.1介绍.63.1.2岗位职责.63.1.3工作分工.63.1.4必备知识.63.1.5策划流程.63.2美术.73.2.1工作分工.73.3程序.83.3.1工作分工.83.4测试.83.4.1工作内容:.84网页游戏的实现技术.84.1客户端.84.1.1纯页面技术:JavaScript/Vbscirpt.84.1.2Flash插件技术:FLASHActionScript.84.1.3自定义插件:ActiveX.82/人龙游戏工作室4.2服务端.84.2.1页面服务端:ASP/ASP.NET/PHP/JSP.84.2.2逻辑服务端:C/C+/Java.84.3数据库.84.3.1MSSQLServer/MySQL.83/人龙游戏工作室1游戏类型1.1ACT动作类英文全称ActionGame,玩家控制游戏人物用各种武器消灭敌人以过关的游戏,不追求故事情节,如超级玛丽、星之卡比、波斯王子等等。1.2FTG格斗类由玩家操纵各种角色与电脑或另一玩家所控制的角色进行格斗的游戏。按呈画技术可再分为2D和3D两种,2D格斗游戏有著名的街头霸王系列、拳皇系列等;3D格斗游戏如铁拳等。1.3STG卷轴式射击类一般指的是卷轴式射击游戏,雷电、鲛鲛鲛、空牙、沙罗曼蛇系列、战区88等分类:射击、光枪射击(英文缩写均为STG,英文全称ShootGame)。1.4FPS第一人称射击类以第一人称视角使用各种武器,主要是枪械进行射击,消灭敌人的游戏。例如我们玩的CS、Quake系列等等游戏。1.5SLG策略类分类:策略(SLG,英文全称StrategyGame)、即时战略(RTS,英文全称Real-TimeStrategyGame),代表作有魔兽争霸、星际争霸、帝国时代等等。1.6RPG角色扮演类由玩家扮演游戏中的一个或数个角色,有完整的故事情节的游戏。与冒险类游戏区分很简单,RPG游戏更强调的是剧情发展和个人体验,如最终幻想、仙剑奇侠传、暗黑破坏神等。1.7AVG剧情探险类AVG的特色是故事情节往往是以完成一个任务或解开某些迷题的形式出现而且在游戏过程中强调谜题的重要性。动作类AVG如生化危机系列、古墓丽影系列等;解迷类AVG代表是神秘岛系列。分类:文字冒险(AVG,英文全称AdventureGenre)、动作冒险(AAVG,英文全称ActionAdventureGenre)1.8SIM模拟现实类在模拟育成游戏中,玩家培养的对象主要是人或生物,也可以是机器人或者机械生命体,其游戏目的就是让培养对象不同方面的能力得到提升,根据能力差异可以达成不容的目标或结局。模拟人生、偶像大师、美少女梦工场、任天狗都属于模拟育成游戏的范畴。分类:模拟育成、模拟经营(英文缩写均为SIM,英文全称SimulationGame)1.9SPG竞技体育类模拟各类竞技体育运动的游戏,花样繁多,如FIFA系列、NBALive系列、实况足球系列、VR网球系列等。1.10RAC赛车类在电脑上模拟各类赛车运动的游戏,通常是在比赛场景下进行,代表作有极品飞车、山脊赛车、摩托英豪等。分类:竞速(RAC,英文全称RacingGame)竞速游戏俗称“赛车游戏”,因为其中大部分游戏需要驾驶车辆进行比赛,或对速度进行挑战。著名的赛车游戏系列有GT赛车、头文字D、火爆狂4/人龙游戏工作室飙等。但并不是所有的竞速游戏驾驶的都是车辆,也有摩托艇、飞行器或是一些科幻色彩浓重的未来交通工具,比如F-ZERO、反重力赛车等。1.11PUZ益智类PUZ游戏多需要玩家对游戏规则进行思考,判断。系统表现相当多样化,主要依游戏规则制定。由于对游戏操作不需要太高要求,代表作品为俄罗斯方块系列,泡泡龙系列等。分类:益智(PUZ,英文全称PuzzleGame)PUZ原来指用于培养和开发儿童智力的拼图游戏,之后概念得到扩展,引申为各类益智休闲游戏。俄罗斯方块是其中最为经典的作品,宝石方块、旋转泡泡球、LUMINES等也是大家喜闻乐见的益智游戏。本次分类会将益智游戏的范围进一步扩充,脑白金、找碴博物馆等原本归于ETC类型的健脑类游戏,也一并归为益智游戏类型。其他归为益智类的还有少量以智力问答为核心内容的游戏。1.12MUG音乐类培养玩家音乐敏感性,增强音乐感知的游戏。伴随美妙的音乐,有的要求玩家翩翩起舞,有的要求玩家手指体操,这类游戏的代表作品有复员热舞革命系列,太鼓达人系列,DJ系列。分类:音乐、节奏节拍(MUG,英文全称MusicGame)音乐游戏是一种音乐节奏、指令编排和操作反馈之间彼此互动的游戏类型。该类型出现时间较晚,最早曾被认为是“方块游戏”的变种,但随着Konami把这一类型做大做强。音乐游戏在街机和家用机时常都曾有不俗的表现,劲舞革命(DDR)更是引发过社会现象。现在比较活跃的音乐游戏有太鼓之达人、DJMAX、应援团等,而销量火爆的“吉他英雄系列”也让音乐游戏重新得到了玩家和市场的重视。1.13ETC其它类分类:实用软件(ETC,即为etc.(etcetera))原先的ETC,也就是所谓的“其他类”游戏,是个比较偷懒的分类方式。比如NDS上的那些学英语、学礼仪、学做菜、学品酒、学美容、学瑜珈、欣赏文学名著的软件,还有PSP上的TALKMAN以及多年前的RPG制作工具等游戏均可归为实用软件类型。2什么是网页游戏WEBGAME网页游戏又称Web游戏,无端网游,其实就是用浏览器玩的游戏,它不用下载客户端,任何地方任何时间任何一台能上网的电脑就可以快乐的游戏,尤其适合上班一族。网页游戏只要能打开浏览器(IE,FF等),10秒钟即可进入游戏,不用下载庞大客户端,更不存在机器配置不够的问题,最重要的是关闭或者切换极其方便。2.1.1网页游戏2022十大排行榜1.赛尔号2.摩尔庄园3.弹弹堂4.烽火战国5.丝路英雄6.仙域7.天书奇谈8.热血三国9.武林英雄10.飞天西游3网页游戏的开发团队3.1策划5/人龙游戏工作室3.1.1介绍游戏策划(GameDesigner),又称为游戏企划、游戏设计师。是游戏开发公司中的一种职称,是电子游戏开发团队中负责设计策划的人员,是游戏开发的核心。主要工作是编写游戏背景故事,制定游戏规则,设计游戏交互环节,计算游戏公式,以及整个游戏世界的一切细节等。3.1.2岗位职责以创建者和维护者的身份参与到游戏的世界,将想法和设计传递给程序和美术;设计游戏世界中的角色,并赋予他们性格和灵魂;在游戏世界中添加各种有趣的故事和事件,丰富整个游戏世界的内容;调节游戏中的变量和数值,使游戏世界平衡稳定;制作丰富多彩的游戏技能和战斗系统;设计前人没有想过的游戏玩法和系统,带给玩家前所未有的快乐。3.1.3工作分工1.游戏主策划:又称为游戏策划主管。游戏项目的整体策划者,主要工作职责在于设计游戏的整体概念以及日常工作中的管理和协调。同时负责指导策划组以下的成员进行游戏设计工作。2.游戏系统策划:又称为游戏规则设计师。一般主要负责游戏的一些系统规则的编写,系统策划和程序设计者的工作比较紧密。3.游戏数值策划:又称为游戏平衡性设计师。一般主要负责游戏平衡性方面的规则和系统的设计,包括AI、关卡等,除了剧情方面以外的内容都需要数值策划负责游戏数值策划的日常工作和数据打的交道比较多,如你在游戏中所见的武器伤害值、HP值,甚至包括战斗的公式等等都由数值策划所设计。4.游戏关卡策划:又称为游戏关卡设计师。主要负责游戏场景的设计以及任务流程、关卡难度的设计,其工作包罗万象,包括场景中的怪物分布、AI设计以及游戏中的陷阱等等都会涉及。简单来说,关卡策划就是游戏世界的主要创造者之一。5.游戏剧情策划:又称为游戏文案策划。一般负责游戏的背景以及任务对话等内容的设计。游戏的剧情策划不仅仅只是自己埋头写游戏剧情而已,而且还要与关卡策划者配合好设计游戏关卡的工作。6.游戏脚本策划:主要负责游戏中脚本程序的编写,类同于程序员但又不同于程序员,因为会负责游戏概念上的一些设计工作。通常是游戏设计的执行者。3.1.4必备知识洞察能力。对市场的调研能力。对系统工程的操作能力。对程序、美术、音乐的鉴赏能力。对游戏作品的分析能力。文字、语言的表达能力。部门之间的协调能力。天马行空的思维能力。常用软件的使用能力。3.1.5策划流程1.2.3.4.5.6.7.8.9.1.2.3.4.5.6.6/人龙游戏工作室3.2美术3.2.1工作分工1.原画师。2.3D模型师。3.动画师。7/人龙游戏工作室3.3程序3.3.1工作分工1.架构师工作职责:a)游戏整体架构建设;b)游戏各功能模块总体把控设计;c)游戏架构平衡设计;d)主持产品架构分析和架构设计,构建系统核心原型;e)参与关键技术问题的紧急攻关活动;f)和各项目开发组进行技术交流,指导日常开发工作;g)全面的软件知识结构(操作系统、软件工程、设计模式、数据结构、数据库系统、网络安全);2.客户端程序工作职责:a)根据功能需求,实现相关的游戏模块;b)开发与维护相关的辅助工具;c)产品线上技术问题处理;3.服务端程序工作职责:a)精通Windows/linux平台下C/C+/Java开发;b)精通各种网络通讯协议,熟悉Socket、TCP/IP编程;c)熟悉数据库开发,有MySQL或PostgreSQL开发经验;d)熟悉Lua或Python脚本语言开发;e)具备良好的分析解决问题能力,能独立承担任务和有系统进度把控能力;f)具有团队协助意识,责任心强,有较强的沟通、表达、协调能力;4.数据库程序工作职责:a)MSSQLServer/MySql;b)XML;3.4测试3.4.1工作内容:1.2.3.4.负责公司游戏产品的测试设计,制订测试策略,评估测试风险;编写测试计划,测试用例;对游戏整体功能进行合理性评测;撰写并提交测试报告。4网页游戏的实现技术4.1客户端4.1.1纯页面技术:JavaScript/Vbscirpt4.1.2Flash插件技术:FLASHActionScript4.1.3自定义插件:ActiveX4.2服务端4.2.1页面服务端:ASP/ASP.NET/PHP/JSP4.2.2逻辑服务端:C/C+/Java4.3数据库4.3.1MSSQLServer/MySQL8/第 17 页 共 17 页

    注意事项

    本文(webgame开发中遇到技术问题总结.doc)为本站会员(一***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开