精华内容
下载资源
问答
  • 游戏客户端

    2018-01-27 15:03:52
    这是一个基于Unity3d 5.5开发的游戏客户端,实现了聊天功能
  • 游戏服务端+模拟游戏客户端游戏服务端+模拟游戏客户端
  • 迷宫小游戏客户端(联机版)
  • 游戏客户端安全方案。

    千次阅读 2021-01-04 14:23:28
    客户端版本号也能让游戏客户端变得不安全。 移动端的游戏通常都会根据客户端版本号决定是否要提示客户端升级或下载新的资源。 开发通常都会使用 1.1, 1.3, 1.6 这样的版本号。连入网络后和最新客户端版本号进行...

    客户端版本号也能让游戏客户端变得不安全。

    移动端的游戏通常都会根据客户端版本号决定是否要提示客户端升级或下载新的资源。

    开发通常都会使用 1.1, 1.3, 1.6 这样的版本号。连入网络后和最新客户端版本号进行比较,决定是否升级。

    进行版本比较的代码,使用了字符串比较。
    我们都应该知道对于字符串来说: "1.2" 是大于 "1.1", "2.0" 是大于 "1.9" 。而且支持含有多个小数点的版本号,例如 "1.1.0" 是大于 "1.0.9" 的。
    一行代码,看上去很简单不会有什么问题。

    在实际项目中突发bug,客户端研发把版本更新到1.10。而对于字符串来说, "1.10"  是小于 "1.9"的。

    结果是,所有线上老版本都没有提示和进行更新。而服务端没有向下兼容,老用户完全无法运行。

    所以,安全做法是强制要求更新客户端模块必须使用数字(INT)对版本号进行比较。如果是字符串,要先解析成数字 INT 整数形态,再逐个比较。而不能直接使用字符串比较。

     

    更多安全技术,请关注“游戏安全攻防”公众号,一起交流,一起进步。

     

    展开全文
  • 斗地主游戏客户端源代码

    热门讨论 2013-11-06 16:39:07
    斗地主游戏客户端源码,用COCOS2DX + lua 新手必备
  • 网络游戏客户端编程 完整版 pdf
  • 游戏客户端面试题干货】--2020年度最新游戏客户端面试干货( C#篇 ) 大家好,我是Lampard~~ 经过春招一番艰苦奋战之后,我终于是进入了心仪的公司。 今天给大家分享一下我在之前精心准备的一套面试知识。...

     【游戏客户端面试题干货】--2020年度最新游戏客户端面试干货( C#篇 )

     

      大家好,我是Lampard~~

      经过春招一番艰苦奋战之后,我终于是进入了心仪的公司。

      今天给大家分享一下我在之前精心准备的一套面试知识。

     

      今天和大家分享的是C#的面试题

      本人亲测80%的引擎相关题目都是围绕着我总结出来的知识点提出的 。

     

    一. 结构和类的区别

    1.结构是值类型,类是引用类型

    2.结构不能够有初始值,类可以有初始值

    3.构造方法在类里面名字和类相同且没有返回类型
    构造方法在结构里面不能定义无参的构造函数,且对结构体里面所有的属性赋值

    4.结构在栈中,类在堆中

     

    二.什么是枚举

    枚举属于值类型
    枚举是从0开始递增的整数

    enum Gender
    {
     男,女  // 注意它的内容不是字符串,不用加双引号
    }        // 男用Gender【0】,女是Gender【1】

     

    三.Ref关键字

    想把值类型当作引用类型传过去就需要这个ref关键字,有点像c++传指针

    int age=3;

    Growth(ref int age)
    {
    age++;
    }

    Growth(ref age);// 注意不要忘记带ref

     

    四.Out关键字

    使用Out关键字在函数里返回多值,return只能返回一个

     

    五.继承

    C#里面只有单继承

    代码中继承用:来实现

     

    六.重载和重写

    一.重载

    新方法的名字相同,但是方法的参数个数或者类型不一样

    二.重写

    新方法的名字和参数个数类型完全相同,在同一个类中编译会不过关,
    在继承它的子类中这样的做法叫做重写,最好加上override关键字

     

    七.虚方法

    基类有共性,子类有差异性。提高代码重用率

    虚方法:声明为virtual的方法就是虚方法。基类的虚方法可以
    在派生类中使用override进行重写

    多态:通过指向派生类的基类引用,调用虚函数,会根据引用所指向
    派生类的实际类型,调用派生类中的同名重写函数,便是多态。

    static和private的方法不能重写

     

    八.密闭类和密闭方法

    密闭类:有些类不希望被继承

    密闭方法:不希望其他人重写这个方法

    关键字:sealed 

    sealed override public void Speak()      // 用了sealed之后该派生类就不可以重写该方法
            {
                

                Console.WriteLine("汪汪汪");
            }

     

    九.接口interface

    接口就是指定一组函数成员,而不实现他们得引用类型 (不能加public)

    !!!就像抽象类一样只能被继承,是一种引用类型

    !!!一个类可以有多个接口,基类要放在最前面

     

    十.静态方法和静态变量
     静态方法和静态变量只属于这个类,不单属于某个对象

     

    十一. 泛型

    泛型的优势

    1.代码量更小,无论多少种笼子,我们只需要一个实现

    2.只有需要的类型才会被实例化

    3.易于维护,修改模板,所有的实例都会被改变


    实例化:

    class Cage<T> {...}

    Cage<Dog> dogcage = new Cage<Dog>();

    default(T)可以得到该类型的默认值

    !!!使用的时候,客户必须通过尖括号内的类型声明
    并实例化创造类型

    泛型方法:参数可泛型化

    class Dog{
         void DogIsHappy<T>(T target){  // 尖括号告诉编译器这是一个泛型方法
    }}


    十二.约束where

    A.主约束 class/struct B.接口约束 C.构造约束

    例子:
      void Cage<T>
              where T :pet,Dog

              // 可以调用宠物的函数

    十三.委托

    委托是持有一个或者多个方法的对象

    可以被执行,可以被传递

    public delegate void ActCute();

    ActCute actCute = new ActCute(同类型的方法名称!!!不用加()); // 委托的类型,返回void

    所有的void类型的方法都可以存进去

    !!!调用一次委托等于执行了所有的方法

    actCute = actCute+方法二;//不用加()

    // 此时actCute 已经存在了两个方法

    委托是什么类型的,方法就是什么类型的


    十四.事件event相当于菜单项,委托相当于回调函数,观察者模式

    发布者和订阅者

    发布者:通知某件事情发生的,就是发布者。

    订阅者:对某件事关注的,就是订阅者。

    通知:事件声明

    被通知:注册

    delegate void Handler();  // 委托,当事件发生时会调用委托

    public event Handler NewDog; // 声明关键字event ,事件名NewDog

    事件订阅

    NewDog = NewDog + 方法 
     
        // 关注

    NewDog = NewDog - 方法 
        
        // 取消关注

    事件触发

    if(NewDog! = null)
    {
       NewDog();
    }

    十五.泛型接口

    接口定义了苏好习惯,方法和事件,这些都是接口的成员。

    接口只包括了接口的定义,不接受接口的声明


     public interface IDemo
    {
       void show(int i);
        
       // 普通的接口
    }


    public interface IDemo<T> where :T :struct

    {
       void show(T t);         
       // 泛型的接口
    }

     

     

    OK,以上就是我呕心沥血总结出来的引擎常见的面试题

    如果对大家有帮助记得点赞呀,谢谢大家 !

    展开全文
  • 谷歌游戏客户端登录

    千次阅读 2017-06-08 18:36:04
    谷歌游戏客户端登录API:https://developers.google.com/games/services/android/quickstart 谷歌游戏客户端demo下载:https://github.com/playgameservices/android-basic-samples 1、下载示例demo 1、下载android...

    谷歌游戏客户端登录API:https://developers.google.com/games/services/android/quickstart

    谷歌游戏客户端demo下载:https://github.com/playgameservices/android-basic-samples

    1、下载示例demo

    1、下载android-basic-samples

    2、导入BasicSamples项目。该项目包括TypeANumber和其他Android游戏样本。

    3浏览到您android-basic-samples在开发机器上下载的目录。选择该文件android-basic-     samples/BasicSamples/build.gradle,然后单击确    定。 

    4、在TypeANumber模块中,打开AndroidManifest.xml并将包名称更改 com.google.example.games.tanc为您自己的不同包名    称。新的包名称不能   以com.google。com.example,或com.android。开头。

    2、在Google Play控制台中设置游戏 

    Google Play Google Play控制台是您管理Google Play游戏服务的地方,并配置用于授权和验证游戏的元数据。

    1、将您的网络浏览器指向 Google Play Console,然后登录。如果您以前没有注册过Google Play Console,系统将提示您这样做。

    2、按照这些说明 将您的游戏添加到Google Play控制台。

    a、系统询问您是否在应用中使用Google API时,请选择我的游戏中没有使用任何Google API。

    b、为了本开发者指南的目的,您可以使用自己的游戏详细信息填写表单。为方便起见,您可以使用“下载” 页面中提供的占位符图标和屏幕截图。

    3、按照以下说明 生成 您的Android应用的OAuth 2.0客户端ID。

    a、当链接您的Android应用程序时,请确保在重命名示例包时指定您之前使用的确切包名称。

    b、您可以在Android Studio中使用“生成签名的APK向导”,以生成新的密钥库和已签名的证书。要了解如何运行生成签名APK向导,请参阅 在Android Studio中签署您的应用程序。

    4、请务必记录以下资料供以后使用:

    a、您的应用程序ID:这是一个仅包含数字(通常为12个或更多)的字符串,位于客户端ID的开头。

    b、您的签名证书:注意在设置API访问时使用的证书(您提供的SHA1指纹的证书)。在测试或发布应用程序时,您应该使用相同的证书签署您的应用程序。

    5、为您的游戏添加测试帐户。此步骤仅适用于尚未在Google Play控制台中发布的应用程式。在应用程序发布之前,只有Google Play控制台中        列出的测试帐户才能登录。但是,一旦应用程序发布,每个人都可以登录。

    3、修改代码

    要运行游戏,您需要将应用程序ID配置为Android项目中的资源。您还需要在其中添加游戏元数据AndroidManifest.xml。
    1、打开res/values/ids.xml并替换占位符ID。如果您从头开始创建Android游戏,则需要先创建此文件。
    a、在app_id资源中指定您的应用程序ID 。
    b、指定您先前在相应的achievement_*资源中创建的每个成就ID 。
    c、指定您先前在相应leaderboard_*资源中创建的每个排行榜ID 。
    2、在AndroidManifest.xml的package属性中打开并输入您的包名称manifest。如果您从头创建Android游戏,请确保您还在application元素中添         加以下      代码:

    <meta-data android:name =“com.google.android.gms.games.APP_ID”
            android:value =“@string/app_id”/>
       <meta-data android:name =“com.google.android.gms.version”
           android:value= “@integer/GOOGLE_PLAY_SERVICES_VERSION”/>

    4、测试游戏

     为了确保您的游戏中的Google Play游戏服务正常运行,请在将应用程序发布到Google Play之前进行测试。
    1、验证您是否设置了用于登录到应用程序的测试帐户(如步骤2所述)。
    2、导出APK,并使用您在Google Play Console中用于设置项目的签名文件进行签名。 

    展开全文
  • 网络游戏客户端的架构

    千次阅读 2018-07-24 10:30:20
    整理的 一个简单的网络游戏客户端的架构

    整理的 一个简单的网络游戏客户端的架构
    这里写图片描述

    展开全文
  • 腾讯游戏客户端开发面试

    万次阅读 多人点赞 2018-03-23 13:50:51
    碎碎念————第一次腾讯游戏客户端开发面试   作为一个本科、研究生专业都跟计算机不沾边的学生,简历被通过筛选本来就应该是最好的结果了,然而自己还是抱着一点点的期望,万一自己就通过了所有面试,进入腾讯...
  • 更多行业干货,上网易游戏学院app查看! ... 客户端是有硬件平台支撑的APP程序,同时能够提供本地服务,并且能够和服务器做远程交互的一个数据存储的系统。...游戏客户端是怎么构成的?我们以车来举例,车子..
  • pubglite下载游戏客户端(2020/04/01版)
  • colyseus-unity3d, 用于Unity的多人游戏客户端 美国的多人游戏客户端,用于统一。视图文档安装将 Assets/Plugins 复制到你的Unity计划中。运行演示服务器确保你已经安装了 node v6+ 。 然后在命令行中运行这些命令:...
  • 【技术分享篇】游戏服务器开发丨采用skynet手撕万人同时在线游戏丨游戏客户端开发 更多精彩内容包括:C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,P2P,Linux内核,Docker,TCP/IP,协程,...
  • 用C#实现网络游戏客户端一、在win10下用telnet进行测试二、UI设计三、主要代码实现四、效果展示五、参考六、总结 一、在win10下用telnet进行测试 ①打开cmd,在能够ping通10.160.52.106(该ip是校园的内网ip,不在内...
  • 2:Unity3D游戏客户端基础框架 一些通用的基础系统的框架搭建,其中包括: UI框架(UGUI+MVC) 消息管理(Message Manager) 网络层框架(Socket + Protobuf) 表格数据(Protobuf) 资源管理(Unity5.x的.....
  • 使用HTML5 Canvas和PHP Swoole构建的五子棋小游戏客户端和服务端
  • 用于编辑大多数游戏客户端内的DPK文件..........This software may not be redistributed, modified or used in other software without the author's permission.
  • 游戏客户端是什么?

    千次阅读 2014-12-08 18:22:47
    在网络游戏 的开发中,在玩家所用设备上(PC机或游戏机)由玩家启动的为了进行游戏而运行着的、用来进行渲染处理和输入输出处理的专用游戏软件称为“游戏客户端”(GameClient)。事实上,这并不是那些与网络上的...
  • 2020腾讯游戏客户端暑期实习生面经

    千次阅读 2020-03-27 17:12:32
    时间 2020.3.12网站投的简历,第二天就直接收到初面邀请邮件,然后非常快速的,一面、二面、hr面...游戏客户端开发暑期实习生(但奇怪的是,面我的人问我的都是服务器网络相关问题,可能是因为我简历里核心项目是 ...
  • 游戏客户端面试(Unity)

    万次阅读 多人点赞 2018-12-11 13:32:02
    推荐阅读: &amp;amp;amp;nbsp;我的CSDN &amp;amp;amp;nbsp;我的博客园 &amp;amp;amp;nbsp;QQ群:704621321 一。最开始的两家公司笔试面试题目 &amp;amp;amp;nbsp;&...一家
  • 上篇文章介绍到Photon服务器部署本文在上一篇博文的基础上继续介绍使用Unity3d游戏客户端与Photon Server数据通信打开Unity3d2017,新建项目,在Asset目录下新建Plugins文件夹找到Photon SDK目录下的lib文件...
  • 王哲:游戏客户端趋势 目前市面上对于手机游戏开发技术的讨论有很多不同的观点。而Cocos2d-x开发过程中,引擎团队尝试并经历了Native, HTML5, Native和HTML5混合等技术所有技术方案,在Cocos2d-x v3.0版本和...
  • 2020.3网易互娱游戏客户端开发面试视频面试 视频面试 首先先问了项目的情况,主要做了哪方面功能,面试之前一定要回忆清楚,会问的比较仔细。 问了UI框架,MVC原理,事件消息机制怎么实现。(回答的时候快忘了,说得...
  • 拉起游戏客户端carsh

    2010-10-26 15:34:00
    提交新版本的游戏客户端carsh,询问开发拿到最新的头文件。开始文件的对比工作。   通过跟踪代码,发现TF 在启动hook的时候报错 Root::getSingletonPtr()->getActiveHookSystem()->startHook...
  • 游戏客户端引擎

    2018-08-22 17:00:00
    Cocos2d-x Unity3D Unreal Egret 白鹭引擎 转载于:https://www.cnblogs.com/panchanggui/p/9518830.html
  • 2020腾讯暑期游戏客户端实习面经一面二面总结     本人末流985 数字媒体技术 大三学生,参加了2020年腾讯暑期实习面试,总结一下,整体感觉不是特别难,可能是不同工作室之间面试的难度不一样吧。 一面 C++和C...
  • Q:有没有一些游戏客户端开发的经历,或者是游戏开发的项目? A:没有 Q:没有这些项目和经历的话为什么选择投游戏客户端开发岗呢? A:因为我看到岗位的要求我都基本满足,所以想投递这个岗位。 Q:能具体说一下吗...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,481
精华内容 3,792
关键字:

游戏客户端