团队作业_1_博客1(分工理解)

对于团队大作业分工(服务端)的理解:
这次大作业一经出炉,还是感觉很有意思的,虽然之前老师已经提及会出这么一个大作业来训练我们的能力,但是真的看到作业的出现,还是很惊喜的。
团队作业的分工,我负责服务端这块,下面开始讲讲我的理解过程(心路历程):
一开始被安排写服务端,我一度以为是试玩(先前并没有接触过游戏服务端的书写),后来与队长交流后又以为我的工作是这样的:队友完成的类(英雄,小兵,塔)由我接手,然后写一个main.cpp把类串起来,最后交由客户端的同学,实现可视化界面的种种。当时在想,那我不就是个写过程的么?那不是很简单么?但是我还是觉得这样理解不可靠(因为没有接触,不能这样主观臆断),于是乎进行了资料搜索,个人觉得下面两篇博客讲得不错,看了之后对于服务端有了比较正确的理解,下面附上学习博客:
1、各类游戏对应的服务端架构
2、游戏服务端究竟解决了什么问题
服务端,其实核心就是用户体验,在策划将需求告知之后,把后台的进程编码完毕,交由测试方寻找bug。而其解决问题可描述为:1、建立了玩家到服务器,服务器到玩家,服务器到服务器之间的消息连接;2、描述了游戏世界中状态的维护方式。而现在的服务端编码,可以采用脚本自行编码,即脚本会自己把需要的编码跑出来(个人的理解是脚本需要自行编写?)而至于如何提高用户体验(多人同屏、玩家交互),我认为需要多进程的加入。因为只要是游戏,玩家们肯定会有交互的需求(聊天、工会……),而为了使这些需求达到满足,并且较好地解决这些需求,自然需要引入进程。而如何引入多进程(多场景进程+协调进程)?玩家该如何与服务器建立连接?O(1)的进程简洁、环保,但是如何知道玩家当前与哪个进程相连接?O(n)的进程非但不环保,拓展性还差,也不可能是我们的选择。(答案在学习博客2中有提及)

以上就是当我看完学习博客2后的一些理解,之后我便去看了学习博客1.

学习博客1讲的是服务端的架构,学习之后有种感觉:难道我们这次真的要用到这么专业的东西么?然后加上学习博客2所说,看来我们这次的作业可以完成得十分高大上?后来我告诉自己冷静一下,团队作业,游戏,我们是要当成真的游戏项目来写,但是在很多方面的完成必然与真正的游戏相比是降了不少档次的,于是乎我要解决的问题就是——如何在展示周,让我们队伍的游戏跑起来,没有失误地跑起来,并且用户体验还不差。可以说是任重而道远,至于服务端编写语言的采用,决定先采用c++(因为其它语言如果需要学习,要投入时间,而我们团队作业服务端的编码,个人感觉c++完全可以胜任),过程肯定是在队友把类写完之后,像个裁缝缝缝补补把它们串起来,加上团队中讨论出来的逻辑,让这款游戏运作起来。

PS:从没想过这么早会接触到游戏的编程,还是要设计逻辑的服务端,虽然预感到做出来可能不会说多么的高端,但是毕竟也是自己一个一个字母码出来的游戏,还是非常兴奋和期待了。

转载于:https://www.cnblogs.com/FormerAutumn/p/9137814.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/353558.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pojo类继承pojo类_如何编写更好的POJO服务

pojo类继承pojo类在Java中,您可以轻松地在Plain Old Java Object(POJO)类中实现一些业务逻辑,并且可以在高级服务器或框架中轻松运行它们。 有许多服务器/框架,例如JBossAS,Spring或Camel等,它们…

国外机构操盘图

转载于:https://www.cnblogs.com/carl2380/p/9139020.html

代码气味–第二部分

在上一篇文章《代码气味–第一部分》中 ,我谈到了膨胀器:它们是代码气味,可以识别为长方法,大型类,基元痴迷,长参数列表和数据块。 在这一篇中,我想深入研究面向对象的滥用者和变更阻止者 。 面…

solr 启动、停止

启动命令: solr start 停止命令 solr stop -all 转载于:https://www.cnblogs.com/yby120/p/9139791.html

第一篇博客测试

第一次发博客测试,看看都能进行什么操作。 再编辑一下,发表的时间就又改了? 没想到这个测试也有这么多人访问,那我把我的测试结果也贴出来供大家参考: 1. 无论怎么编辑,发表时间不会更改; 2. 编…

hadoop 提交程序并监控运行

程序编写及打包 使用maven导入第三方jar pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation&qu…

digester_Apache Digester示例–轻松配置

digester解决问题–硬编码&#xff0c;需要为您的应用程序创建自定义配置&#xff0c;例如struts配置文件&#xff0c;仅通过更改文件即可改变应用程序的行为。 Apache Digester可以轻松为您完成此任务。 使用Apache Digester相当容易将XML文档转换为相应的Java bean对象层次结…

MFC状态栏编程(显示系统时间和进度条)

显示系统时间 1、 在状态栏中设置两个新的栏位Timer和Progress。首先到ResourceView中编辑String Table&#xff0c;增加IDS_TIMER(时间),PROGRESS(进度)。然后在MainFrame中修改indicators数组&#xff0c;插入IDS_TIMER和IDS_PROGRESS。插入的位置&#xff0c;即为显示的位置…

极光推送服务端API(定时推送任务,推送到指定设备,推送到所有设备)

极光推送常用的几个api方法总结&#xff0c;抽取出了utils类&#xff0c;利用MsgType进行业务类型区别&#xff0c;方便app端收到推送后进行不同处理&#xff1a; 首先引入依赖&#xff1a; <!-- 极光推送 --><dependency><groupId>cn.jpush.api</groupId…

Java 9附加流

Java 9即将发布&#xff01; 它不仅仅是Jigsaw项目 。 &#xff08;我也很惊讶。&#xff09;它给平台带来了很多小的变化&#xff0c;我想一一看一下。 我将标记所有这些帖子&#xff0c;您可以在这里找到它们。 让我们从…开始 流 Streams学习了两个新技巧。 第一个处理前缀…

MFC注册快捷键

1. 使用RegisterHotKey()注册快捷键&#xff1b;2. OnHotKey()函数中响应快捷键&#xff1b;3. 程序退出时&#xff0c;使用UnregisterHotKey(hWnd, m_HotKeyId)取消快捷键注册。

Hibernate---对象的三种状态

Hibernate---对象的三种状态 简而言之&#xff0c;hibernate本就是面向对象的基于ORM的框架&#xff0c;位于dao层&#xff0c;对数据进行操作的框架。我就谈谈hibernate的对象的三种状态。他们分别为&#xff1a;游离&#xff0c;持久和瞬时。通过代码来详解一下吧。 hibernat…

VS2008 C++ 项目添加“依赖”、“库目录”和“包含目录”

1. 添加编译所需要&#xff08;依赖&#xff09;的 lib 文件[解决方案资源管理器]“项目->属性->配置属性->连接器->输入->附加依赖项”里填写“winsock.lib”&#xff0c;多个 lib 以空格隔开。 &#xff08;等同于“#pragma comment(lib, "winsock.lib&q…

IDEA项目搭建四——使用Mybatis实现Dao层

一、引入mybatis及mysql的jar包 可以从阿里云上面查找版本&#xff0c;db操作放在dao层所以打开该层的pom.xml文件&#xff0c;找到<dependencies>节点增加两个引入 <dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifac…

连词我们…讨厌

最近&#xff0c;我写了与实现相关的名称&#xff0c;并提供了一些示例&#xff0c;这些示例由于方法名称与主体之间的紧密关系而导致方法名称不正确。 有一会儿&#xff0c;我们有以下代码&#xff1a; boolean isComplexOrUnreadableWithTests() { return (complex || unre…

C#常见编译错误

CSharp类型初始值设定项引发异常&#xff1a;类的静态变量初始化遇到异常&#xff0c;或者构造函数中遇到异常

python函数的 全局变量与局部变量

一、函数的全局变量 1、什么是全局变量 顶着头开始写&#xff0c;没有任何缩进&#xff0c;在py文件的任何位置都能调用 #!/usr/bin/env python # _*_ coding:utf8 _*_ name"gouguoqi"name"gouguoqi" def change_name():print ("111",(name)) …

C#程序将DLL包进EXE方法

有时候我们在发布程序的时候只想发布一个EXE&#xff0c;而编写程序的时候往往会有多个DLL&#xff0c;这个时候如果能把这些DLL装进EXE将是一个很令人振奋的事情&#xff0c;事实上对于C#程序有很多方法如下&#xff1a;1. 使用微软的ILMerge&#xff08;缺点&#xff1a;不支…

org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI

org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI 在重启项目中会遇到[org.springframework.web.servlet.PageNotFound] - No mapping found for HTTP request with URI [*********] in DispatcherServlet with name SpringMVC 这个…

spring本地化默认英文_Spring3国际化和本地化

spring本地化默认英文我最近想将Spring 3提供的国际化和本地化功能添加到我当前的项目之一中。 我浏览了Spring文档&#xff0c;然后在Internet上搜索以找到一些资源。 但是我找不到能够满足客户要求的资源。 大多数教程都像hello world应用程序&#xff0c;它提供了基本的理解…