耘芃 的个人资料不凡之星辰照片日志列表更多 工具 帮助
2009/10/11

《石头剪刀布OL》开发记录

今天终于下定决心开始写代码了,可以说这是五月病症状有所缓解的好兆头么?
考虑到十一月初有期中考,虽然不是决定性的一击,但也影响到期末的bonus,所以这次的《石头剪刀布OL》还是慢慢来。

今天主要尝试了建立简单的TCP连接,并在两台主机之间发送信息。写完demo找几位同学测试了一下,发现凡是内网用户都不能作为TCP连接的服务器端,但是他们可以作为客户端去连接一个拥有外网ip的用户(我在宿舍用无线上网居然还能分到一个外网ip,全世界总共2^32个ip地址就被我占掉一个,在这一点上不得不承认瑞士很牛叉)。
(在写这篇日志的时候突然想到,如果两个内网用户和同一个外网用户分别建立连接之后,外网用户可以把内网用户建立连接时使用的外网ip地址和端口号分别发回给内网用户,然后这两个内网用户是不是就可以使用这个ip地址和端口号来直接建立连接了呢?在计算机网络的书里面写了,NAT其实是利用端口号来进行ip地址的扩展的,主机的内网地址和管理内网的服务器的外网地址以及这个服务器的一个端口号有一一对应的关系,那么有了这个端口号是不是就可以实现连接呢?)

接下来的一段时间仍然是进行未掌握技术的尝试,大概有以下这么两点:
1 实现多客户端对单一服务器的连接
  *服务器如何检测客户端是否已经断开连接(网上的结论是用C#的话没有直接的函数能够实现这项功能,解决的方法是服务器端定时向客户端发送确认信息,如果收到客户端回应就表示客户端仍然连接,否则表示连接已经断开)
  *各个客户端之间如何通信(也就是说服务器端需要提供一种标记客户端的机制,等于是给每个客户端一个名字。这一套标记要能让连接到服务器的每一个客户端知道,而且还要根据客户端的连接情况时刻保持更新)
2 实现命令行环境下的多线程消息收发机制
  如何在用户输入信息的同时显示新接收到的消息(把程序图形化就不会有这方面的问题了,但是和C#搭配的图形API我只会用XNA,而用XNA的话就要先安装一大堆微软的补丁才能运行程序)

完成以上尝试之后,就要对代码进行整理,重写,并封装,做成一个可以重用的如dll之类的东西。

再往后才是设计游戏,写游戏本身的代码。这部分工作其实是有可能和上面的那些尝试工作一起进行的,比如你是个双头巨人,然后某个法师好心给你用了个奇迹术让你不再弱智,同时你全身挂满各种+1、+2直到+5智力的斗篷或是戒指项链护身符。但是在现实世界里,这些都不可能发生,唯一可能的只有去绑架一个会写程序的游戏策划来,然后再骑马滴XX灌XX地调教他,让他死心塌地地从了你,从此两人就一直幸福地生活下去,不对,是从此他就帮你毫无怨言地做策划,写试玩demo。

明天要看数学了,还有vhdl的作业(要做一个ALU和一个内存),还有Scala的编程项目,还有……
不能再列举下去了,一项一项列举出来只会发现时间完全不够用,一件接一件地去做才是把事情全部做完的正确方法。

评论

请稍候...
很抱歉,您输入的评论太长。请缩短您的评论。
您没有输入任何内容,请重试。
很抱歉,我们当前无法添加您的评论。请稍后重试。
若要添加评论,需要您的家长授予您相应权限。请求权限
您的家长禁用了评论功能。
很抱歉,我们当前无法删除您的评论。请稍后重试。
您已超过了一天之内允许提供的评论数上限。请在 24 小时后重试。
因为我们的系统表明您可能在向其他用户提供垃圾评论,您的帐户已禁用了评论功能。如果您认为我们错误地禁用了您的帐户,请联系 Windows Live 支持部门
完成下面的安全检查,您提供评论的过程才能完成。
您在安全检查中键入的字符必须与图片或音频中的字符一致。

若要添加评论,请使用您的 Windows Live ID 登录(如果您使用过 Hotmail、Messenger 或 Xbox LIVE,您就拥有 Windows Live ID)。登录


还没有 Windows Live ID 吗?请注册

引用通告

此日志的引用通告 URL 是:
http://argoran.spaces.live.com/blog/cns!368851DC9D62C39D!5297.trak
引用此项的网络日志