本文主要是介绍黄巾之乱-历次版本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
(这首页美工花了一周)
2006年网页游戏开始出现在玩家的眼前,我开始琢磨做一个类似于腾讯战神的WebGame网页游戏。因为战神太糟糕,只能在固定几块地上修房子。我想要的游戏世界是全开放的:全部游戏单位都可以在几乎无限大的地图中野蛮生长、移动,由玩家指挥去攻城略地。
最初是找伍先明看看怎么样,结果要我拿策划案,并承诺只要想得出,交给他就搞得出来.但是从零起步不可能有完整的策划案,所以那个时点,无论如何是拿不出策划案的。借助外力来实现就此做罢。 (伍先明大学同学,他姓伍,我姓刘,我们小组就叫了56EG)
开始设想的系统非常简单,构建一个web服务,提供完全基于文字的访问界面,只要内容好玩,应该会有用户的.然后开始做web相关的程序.原来有些asp的基础.但是不知道怎么选择了jsp,可能同工作中了解到sap和oracle都在推JAVA。 找了一本jsp和servlet的书,开始学起来. 然后找到孙卫琴JAVA基本教程看,这样查java函数比较方便。jsp用熟了后,还是使用JDBC连接数据库。
时间到了2007年6月,当时已经发现基于文字的界面太是糟糕,重点放在了如果改变界面上,并有一个很困惑的问题,地图是怎么设计的?
开始感觉应该有地图数据,于是找来三国世纪游戏里的地图,该地图是1600*1200大小.给100多个城市点上一个点,做了一个程序(老vc终于有点用了)按象素取点法,得到了城市的坐标.然后就一直想不通这些个地图数据要怎么设计到游戏中.服务器要怎么设计这么大一个阵列数组。
王懿(儿时一起玩QUAKE1的枪手,长大后的挚友)告诉了我hibernate,说这个得了什么什么奖,是java对象用的。于是找来一本hibernate的书看起来,又是孙卫琴的.后来发现孙卫琴的书也是翻译过来,不过开始学习概念是最好不过的了。三个月后,可以使用hibernate这个数据库的ORM了。
关于地图的设计,在设计游戏单位时有了新的想法:就象食神说的"其实根本就没有食神,或者人人都是食神"。其实根本就没有地图,或者人人都是地图。 位置坐标数据被放到游戏对象里,就是在对象表中多了放坐标point (X,Y)的数据字段。这样就不用专门搞个地图数据,场景就可以跑起来了。为了把web的动态界面做好,AJAX是一定要学习的,还好AJAX比较好学,核心就是新开一个连接向服务器要数据,然后整个页面局部刷新要修改的数据。
2008年3月,黄巾之乱第一版有了一个雏形。
第一版:2007-2009 JSP+AJAX+JS+SQLsrver2000。
每个对象,玩家都是可以操作的。
用ajax实现了一个沙盘地图,有21*21=421这么多块,使用的图片图标是20*20像素.
21*21=421个地点是一个area地区。
单位在同一地点上的数量没有限制,这是为了方便数据库以地点为条件取数据。
游戏对象数据在服务器端用了list对象组来实现对应。到放弃ajax的时候,我在黄巾之乱第一版中写了150个页面文件,
感觉也不算浪费吧,因为路总是一步一步走出来的.游戏业务逻辑内容也获得了一定的测试,游戏中涉及的对象如下:
人物 | 建筑 | 资源 | 物资 | 装备 | 书籍 | 技能 |
村民 | 农田 | 树林 | 谷物 | 头饰 | 研究 | |
枪兵 | 伐木场 | 石堆 | 木材 | 衣物 | 招募 | |
刀兵 | 采石场 | 铁矿 | 石材 | 长裤 | ||
弓兵 | 铁矿场 | 煤矿 | 铁矿石 | 鞋子 | ||
骑兵 | 煤矿场 | 煤 | 兵器 | |||
粮草车 | 猪圈 | 猪肉 | 首饰 | |||
英雄 | 马圈 | 马匹 | 坐骑 | |||
酒窖 | 酒水 | |||||
炼铁房 | 铁锭 | |||||
民宅 | 长枪 | |||||
仓库 | 长刀 | |||||
市场 | 长矛 | |||||
城墙 | 盾牌 | |||||
弓箭 |
主体功能完成了一些后,我迫不及待的开放到了互联网上让用户注册和测试,游戏的设计比较独特,颇受玩家称赞,
同一时期所有的WEB游戏可操作对象的坐标都是固定的,就像在玩一个单机版,而我的黄巾之乱在尝试给玩家真正网络版的体验。建筑、人物和物品不少功能都或多或少的被玩家使用。
其中有个头号玩家,年纪同我相仿,三十多岁,他玩得很上隐,我想他基本和我一样是老玩家了。
在ajax这么糟糕的用户体验下,居然修了半个城,大概100多个建筑,花了不少时间,这让我大吃一惊。可惜当时的截图丢了。
随作游戏功能越来越多,数据库里的操作也多了,最初用的是mysql数据库,后来发现ms的sql2000好用,还有作业功能。然后就开始使用sql2000.写存储过程,邮标。邹建的sql2000管理拿来翻翻,网上文章下来看看,时间又过了好几个月。
时间很快到了2009年9月,我准备推出全新一版的黄巾之乱,首先使用ActionScript3,用flash换掉了糟糕的ajax。数据库的sql2005也换掉了2000,大量使用存储过程、游标、触发器同步。
当然游戏内容仍然还是原来构想的<龙之崛起>和<七个王国>的无限世界的策略类型。
第二版使用的技术:2009-2010 ActionScript3+SQLserver2005 。
玩了QQ的七雄争霸,借鉴了一些东西,去掉原来实现不了的很多设计,并且地图功能也比较好的实现,策划如下:
人口(全局数据) 劳动人口, 空闲人口
影响:
增加一个建筑, 会占用空闲人口->劳动人口
减少一个建筑,会减少劳动人口->空闲人口
空闲人口不足,无法新建建筑。
时间增加,空闲人口增加.
物资(全局数据) 铜钱, 谷物, 菜, 盐, 木材, 铁矿石, 煤, 猪肉, 马匹, 酒水, 铁锭
影响:
时间增加,各种建筑增加对应的资源。
高级资源增加,低级资源减少。
军队(全局数据) 枪兵,刀兵,弓兵,骑兵
影响:
武将分配军队,军队减少。
军营建筑内,随时间的增加,物资减少,军队数量增加。
武将(单一对象) 坐标,生命,等级,技能,能力等属性。
影响:
茶馆建筑物中产生。用户点击新增在地图中。
对敌人建筑,武将,NPC产生影响。
武将需要指定仓库或车队做补给,否则影响能力。
武将包含军队种类和数量。
武将包含车队数量。
水源(单一对象)坐标。
影响:
农田必须建在水源旁边。
民宅(单一对象)坐标,生命。
影响:
民居必须建在农田旁边。
------------------------------------------
建筑地理位置限制关系:
水源->农田->民宅->炼铁房,粮仓,市场,武器铺,军营.
资源->采集场.
按目前这种设计,地图上移动的单位就只有武将和NPC......
虽然架构上,采用最简化的方式去掉了第三层,但黄巾之乱第二版的开发还是失败了。
二版开发失败总结:
1. 重复工作量太恐怖,压跨了项目。
改动源于数据库表,对象的属性调整对应数据库的表字段调整,工作量一。
PO文件被MyEclipse产生自动释放到web的po目录,需要编译成class类文件,工作量二。
用editplus写JSP文件做相应的调整,工作量三。
用as3写SWF内部调整,工作量四。
数据库表改动后,需要对sql2005中的触发器或存储过程调整,工作量五。
全部要协调一致,工作量六。
上述改动一直频繁地伴随做前期开发,每走一小步,所有工作都会重做
2.策划不完整,导致程序写一点,看一点,改一点:
一直拿不出一个完整的策划案,导致不停的增加内容而一遍又一遍重复修改,但要一次拿出完整程序设计确是比较困难的,而且中途为游戏性增加不少内容让工作量雪上加霜。策划案应该可以整体拿出,并简化功能。程序设计根据策划模拟后再编写,减少工作量。
3. 按现有开发工具和模式,实现比较困难,选择放弃开发。
第三版
2015 C# C/S版本的尝试
2015年开始学习使用C#,最初只是感觉函数功能比MFC强太多,语法很优雅(一行代码可以干很多事情),后来发现整套环境可以使用的三方组件也非常丰富和强大,比如网络部分可以使用HP-SOCKET轻松搞定,UI可以使用去FineUI,ORM用MS的EF更是爽到爆,移动端也可以用Unity 2D跨平台。
今天已经是2019年了,回顾过去这个历经10年的小项目终究是没有实现 。原因很多,我想最主要的是因为自己一个人的力量很有限,不过正是因为这些技术铺垫,才让我一直追逐作技术,最终用C#在近几年的企业软件开发中如此的高产。
再见,我的黄巾之乱!
黄巾之乱最简设计
这篇关于黄巾之乱-历次版本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!