2009年1月2日
#
摘录自网页游戏集中营
www.vwebgame.com
二、一个详细的例子。
单纯的讨论数据流程是件痛苦的事情。
讨论程序而不给代码也是比较痛苦。
这里用的是php+mysql的。
那就按一个超简单的webgame的方式来讨论。配上适当的代码。应该有所帮助。不足的地方也请大家指出,对我个人也是帮助。
我们不去考虑游戏的可玩性,数值平衡等等问题。我们先只考虑一个简单例子的实现。
那么一个webgame的基本内容需要些什么呢?
数据库:玩家、地图、城市、建筑、武器、士兵。
功能:登陆、升级、个人战斗、士兵之间的战斗、与城市的战斗、修建建筑、打造武器、买卖道具。
(注意:每一个功能,必然对应1个或多个数据表。上面数据库中所列的只是基础中的基础。)
首先是地图、城市、建筑。
这里认为,地图可以有多张,城市在地图上,建筑在城市内。
地图表
Map :Map_ID ,X坐标, Y坐标,City_ID(城市ID),描述。
其中Map_ID是指地图的id。不是自动编号。一张地图就是一个Map_ID,可以重复。
城市表
City:City_ID,城市名字,城市所有人,城市等级,城市资源,描述。
建筑表
Build:ID,City_ID,建筑名称,建筑等级,建筑功能。
其中,地图表确定城市的位置,城市表确定城市的相关数据以及所有人,建筑表内的多条信息属于某一个城市。
建表后,显示出来。
一个for循环。把地图表整个取出来就ok。
跟普通网站的新闻列表没太大区别。不同的是,你需要取得X坐标和Y坐标定位。可以用tabel也可以用div。
class Map//地图类
{
var $Map_ID;
function Map_bg_css($Map_ID) {
$this->Map_ID = $Map_ID;
mysql_select_db($db_name,$link);
$sql="select * from map where Map_ID='".$this->Map_ID."' limit 1";
$result=mysql_query($sql,$link);
echo "<style type="."text"."/"."css>";
$rs=mysql_fetch_array($result);
echo "#map{";
echo "position:absolute;";
echo "width:".$rs[X坐标]."px;";
echo "height:".$rs[Y坐标]."px;";
echo "z-index:0;";
echo "left:0px;top:0px;}";
}
function Map_bg($Map_ID){
$this->Map_ID = $Map_ID;
$sql="select * from map where Map_ID='".$this->Map_ID."'";
$result=mysql_query($sql,$link);
while($rs=mysql_fetch_array($result))
{
echo "<div id=Layer_bg_".$rs[X坐标]."_".$rs[Y坐标].">";
echo "<img src=".$rs[Map_bg]." border=0 title=".$rs[ID]."></div>";
}
}
}
上面是一个很简单的地图类。代码可能不太正确,意思是正确的。就是根据map表中的坐标,生成了一组div层,以及这一组层的css。
你可以改为table的。你可以也把坐标放到一个字段里,用数组的形式取。
使用的时候,用
new map;
map(N);
其中N是map表里的地图Map_ID.
城市内的建筑也类似。如果要显示出来的话。
摘录自网页游戏集中营
www.vwebgame.com
一、简单的程序框架。
webgame程序构成:
三大部分。
第一是数据流程。第二是程序。第三是美术。
其中,数据流程包括了功能。也只有在功能中才能体现数据流程。
数据流程相当的麻烦,后面再讨论。
比如最简单的卖买产品。
要实现这个功能。
那么需要有产品基础表、产品详细表、商店表、背包表。如果扩展性更强,相应的双表是少不不了的。
表的问题都简单了。关键是这个物品有什么用。这样物品的来源,一大堆数据,物品的走向,又是一大堆数据。
最后,这些数据得绕成一个圈。
绕圈是一件困难的事情。特别是功能和道具多了起来的时候。难度是2的n次方。
美术:
UI。简洁漂亮的界面总会有好处。
小图标。道具,地图,装备。一类至少10个吧?大体上百把个是需要的。
程序分5个部分:
服务器定时器。(C语言或自己设定服务器)定时循环执行某一段代码。而这段代码主要是根据数据库的数据进行更新。这个可以找个C语言程序员来做。对于C语言程序员来讲,这个功能是相当的简单。当然,具体的处理数据的判断和操作数据库,需要你自己写。让C语言程序员给你段标准代码就行了。完全支持sql语句的。
功能页面、功能函数。主要就是数据存取,判断,数据走向。
ajax函数。(可选)某些需要伪即时的功能要用到。
javascript函数。(可选)模拟客户端的数据计算。也就是webgame的与时间相关的数据。分为两部分。一部分是真实数据,是由服务器端的定时器计算的。另一部分是只有初始值,客户端显示用的。不需要即时同步,仅仅需要模拟同步就行。
数据库。一大堆基础数据表和详细数据表。基础数据表:比如等级1到等级100的用户的属性初始值。详细数据表:每个用户的具体属性。
2008年12月29日
#
最近看了不少关于软件开发尤其是游戏开发的经验文章,学习之余,发现一个很严重的问题,动手意识太弱,动手能力太差,局限于理论,而不肯亲自去试验,就好像一个旅行家,整天在研究路线了解相关的地理生物知识,却不肯踏出一步,致命弱点。作为一个科班出身的软件工程学生,编码是基本技能,可我并没掌握,就好像没把罗汉拳练习好,就在垂涎易筋经菩提心法一般,眼高手低。
当务之急,整理知识系统,回归基础,了解前沿技术,确定目标。
另外期末考试也需要准备,还有毕业论文,该是写大纲的时候了。
元旦将近,而万达宝已经把我抛弃,接下来,便全心全意的投入游戏开发吧。
每天临睡之前检查当天完成的任务布置好明天的新任务,每周制定大任务,每月一个小项目,如此甚好。
第一周任务
081229-090104
看完linux内核一书
细读谭浩强版C++习题代码
精读Visual C++2005 林俊杰编著版 1-7章
精读OGRE中文社区之OGRE初级教程
精读CEGUI官方文档1-5
精读Introduction.To.Direct3D9中文版(翁云兵版)1-5章,重写源码
(以上任务需做简略笔记记录)
拓展阅读:灵魂机器的时代,图书馆可借 、云风(游戏之旅-我的编程感悟)、卓有成效的软件项目管理
081229
阅读“深入理解linux内核”一书(一到四章)
精读C++程序设计题解与上机指导 第一部分 (一到六章)
精读Visual C++2005 林俊杰编著版 (一到三章)
浏览贝勒王的sina博客 http://blog.sina.com.cn/duki
前往图书馆借“灵魂机器的时代”,并开始阅读
阅读“游戏之旅-我的编程感悟”的第二章“算法,程序的灵魂”
发表于:2008年12月27日 1时43分18秒
我的朋友越来越少了
而说的话,也越来越没深度
想起很多事情没做,得列一个清单
为什么不是画家
就没勇气在纸上涂鸦了
长大了的我,就这样子么
卑鄙,愚蠢,懒惰
想找回那种充实的感觉
而太多过错,已经无法回头
接下来的路
该如何走得更好一些
坦路,或者歧途
舒适,或者颠簸
热闹,还是冷清
无怨,还是遗憾
还是每天那样子,舍本逐末?
其实,我可以换一种方式
细雨带风,温和一点
发表于:2008年12月28日 1时1分22秒
今天看到一个词“Nirvana”
后来才知道是涅槃的意思
晚上和一个师弟谈了几句佛
发现自己的佛性早消磨殆尽
而今心魔极重
做人,还是应该正直
还要勤奋
再加方法
即使不是聪明人
也可成就大智慧
如此而已
发表于:2008年12月26日 23时51分3秒
昨天在boji的ftp上看见竟然有beyond的演唱会视频下载,于是禁不住心动手痒,下载了放在实验室的电脑上。
项目搁置了之后,生活仿佛捉摸不到风向,我这舵手,越来越懒。还书借书,却没一本是从头到尾都静心看完的,心态为甚还好像15岁的小孩子一样浮躁呢,或许15岁的时候更胜于现在,没全盘的计划,随波逐流了。晚上看了两集罗嘉良主演的《难兄难弟》,捧腹而笑,看完了一本C的书,接着看C++,和一本“linux内核”,又跑到图书馆借了本项目管理和软件调试的书,也不知道自己其实有没恒心啃得下去,宿舍桌面上堆书成山了。问saka借了个液晶显示器,在宿舍对着电脑总算没那么累了。
依然每晚一包过桥米线,吃米线的时候把beyond演唱会的视频传了回宿舍,然后边吃米线边看演唱会。
第一部是90年的澳门演唱会,主题是rock,不是最喜欢的歌,但由于有家驹,也算难得,画质太差,看完就删了。93年演唱会那文件无法打开,接着看的便是03年的香港演唱会,没了家驹的演唱会,但是熟悉的旋律响起也足以让我心醉了。
初中的时候并不了解beyond,小学时候懂得唱《海阔天空》,但并不知道出自那支响彻乐坛的beyond,高中对音乐了解得更少。直至大学,才因为各种原因接触了beyond的音乐,加以心境的变化,对它的歌,如痴似醉。
实训的时候在实验室用torque做游戏,那时候一到实验室就戴上耳机听歌,第一首是《午夜怨曲》,从来不知想拥有多少的理想 还离不开种种困忧~~听完两个专辑,刚好下班,天天如是,一度在梦里耳边还响起那旋律。
之后忙碌奔波,也静不下心来听啥歌了。
现在听听,感觉也不错,听完睡觉,tomorrow is another day.
发表于:2008年12月25日 23时52分13秒
圣诞
且不管这个日子的历史意义吧,看见很多人过得不亦乐乎,而也有些人嗤之以鼻,其中关系文化的传播与发展,又是一个争议极多的话题,此处便不一一列举。
而今天对于自己也是个特殊的日子,大学最后一节课,乃至可能是我人生最后一节在学校里上的课,老师依然讲得莫名其妙,只是可以在课堂上感受一下气氛。从大一第一节课至今,心态一再变更,而此刻,竟也让人唏嘘不已.
项目有变,或许就这样离开呆了四个多月的实验室,又或许,就此踏入游戏行业,考虑中,and,等待中。
傍晚身体不适,重新在电脑上装回一个VC6.0,玩玩而已~再过20天回家,过年,恩。
发表于:2008年12月23日 14时16分46秒
前天冬至,晚上打电话给老妈子,老妈说一个人在家里没宰鸡~就买了点猪肉和蒸了条鱼,就算是过节了。
和老妈说了下最近的情况,弟弟的升学依然是个问题,anyway,尽了做兄长的本分就好了。想起自己毫无起色的求职,依然有点忧心,眼高手低是一个问题,抉择是一个问题,想起入大学之前和老妈说要带她到北京去玩,现在想想,也是时候给自己一个宏观的目标了,5年之内要带妈妈去北京玩一次,10年之内要买一辆汽车给老爸,而自己的个人问题,则随缘吧。
今天下午本来有个校友企业招聘会在南校举行,昨晚查了下相关的IT企业,主要有以下几间:
金蝶软件(中国)有限公司广州分公司
http://www.easeday.com/products/index.html
北京昆仑万维科技有限公司
http://www.klonline.cn/index.php?act=index.main
广州优易数码科技有限公司
中山大学广州数字家庭技术支持研究院
广州金山多益网络科技有限公司
远光软件股份有限公司
查看了下相关的职位表和公司概况之后,金蝶是做ERP类的,java开发,并不适合自己;而昆仑是做webgame的,职位表上说招的人数挺多,北京的公司;而优易数码在17173上看见过它的招聘广告,在口碑网看到名声比较差,数字家庭希望也不大;金山多益也是在网游的,17173上在招人,而这次竟然是来招推广专员,不适合自己;最后的远光是做电力系统的软件的,在珠海,名声毁誉参半,不过一半公司是做网游的,感觉还没必要在现场投简历,于是偷懒不去下午的招聘会了。
后天是圣诞,个人并没过圣诞的习惯,估计也是留在实验室看书。
最近加的一个QQ群,C++沉迷与爱恋,感觉挺温馨热闹,也有不少技术牛人在,偶尔还讨论下ZHENGZHI之类的严肃问题,换了个Q号的感觉还不错,最少不会看见一个同学在线就沉溺于聊天了,自制力还亟待增强。
题记
最近发生的事情太多,求职历程颇为艰辛且还看不到尽头;两个月之内两个长辈的离世让我再次体会到生命的脆弱以及人生的宝贵;另外在自己的处世方式上,亦再次遭遇困厄,或,处于一种为大部分人所不认同的状态(态度),IQ、EQ尚待提高;还有很多不良的习惯,终于一一暴露,虽不致命,亦荼毒不浅。多谢后世人,诫之慎勿忘。
一、求职篇
从不经意投考深信服的测试工程师开始,到今天已经两个月了,仍无所着落。期间经历了大大小小数十次笔试面试,笔试除了第一次考的深信服、变态的百度和最近的云浮电信外,其他都顺利通过,只是云浮电信的笔试死得好冤枉,至今不服。微软、google、IBM、oracle等公司,连投简历的勇气也没。
而网易、腾讯、华为、万达宝等公司的笔试是在预料之中又有点在意料之外的,每次接到面试通知都有点意外,目标很不明确,在收到通知之后仓促准备,而基础不扎实和表达不流畅依然是死穴,所以十多个面试基本在一面就铩羽而归,唯一闯入二面且为终面的,就是尚在等待结果的万达宝,无论得失,都是一个很好的收获。
总结了历次面试笔试经验及结合职业测评结果和自己的知识体系分析之后,把目标缩小到软件测试工程师和游戏开发相关的职位上。其实目标还是太大,就一个游戏开发而言,可以做程序员,可以做策划;而程序员又可以分为客户端程序员、服务器程序员、脚本程序员、测试工程师等众多类别。即便是一个软件测试工程师的职位,也因为公司的业务系统和开发环境的不同而差异甚大。其中最为深刻的是面了几个网络通信的公司:华为首当其冲,接着是亚信科技、tplink、广东电信,同一个测试或技术支持的职位,对相关专业基础—通信网络的要求其实颇高,隔壁班通信软件方向有好几个进了tplink,专业优势。而自己的专业优势是做网游、动漫?并不见得。故而迷茫,IT一行,就业范围极广,大至跨国IT巨擘如微软、google者,小到网吧的网管,之间还有各层次各行业的不同,可谓“天涯何处无饭碗”,然而谁都希望自己捧的饭碗比较好,里面装的是琼浆玉液,有多少人甘心捧起一个装着一泓清水的破碗,清水或者已属难得,假若是浊水泥浆呢,而生存的需求,是吸收其中的H2O而已;可是,饭碗之争是不会因为其中的本质而偃旗息鼓的,有的人目标是生存,而更多的人的目标是享受、发展、超越。
跑题了,因为就业方向的不明朗而导致的迷茫,我想不只我一个,男怕入错行,华大基因的HR电话面试我的时候,向我特意强调了这一点,而最终因为我苍白无力的挽回,她依然觉得我不甘心潜心研究生物技术,连口头应允了我的二面机会也成了一纸拒信,我的第二封拒信,第一封是来自网易互动的,人生第一封,印象深刻。
期间去过招聘会,一个是广工本部的,纯粹去看热闹和感受气氛,投了一个巨匠信息,要求当天下午去笔试,扔下简历我就闪人了,之后收到一次笔试的通知,再几天之后收到一个面试的通知,被我鄙视掉了。加上学院推荐的珠海格力通和aveva以及最近的BDNA,竟然不知不觉的拒掉了四次面试的机会。另外一次是中大大学城的招聘会,更加不知该投什么,有种无力的感觉,跑了去和云浮邮政局的叔叔拉家常,看情况知道没戏,铁定怕我以后跳槽,而我也只是去凑个热闹,假若真要自己回去云浮,恐怕没得三年,便沦为一个刻薄尖酸又没技术的大叔了。说起刻薄一词,让我想起最近一些旧时同学对我的评价,此为后话。
每次有人问自己“签了没”,从刚开始的嬉皮笑脸一副为时尚早没啥所谓到现在的垂头丧气如深闺里的太阳花一般萎谢了,虽然每天起床的时候还信心满满的去刷牙洗脸,却看见镜子里一副落魄失魂的样子,大大的黑眼圈,有时闻到牙膏的味道还作势欲呕,但又腹中无物,半天呕吐不出而泪水奔涌而下,感冒的日子。迫切需要锻炼了。
求职两个月,都在打无准备之战,或一直处于防守作战的形式,只是见招拆招,往往悄无声息的就挂在HR鄙视的眼神下。有点收获和心得的时候,发现好一点的公司基本已经招完了,而积累了心得的不只是自己一个,在进步的时候别人也在进步,步伐稍微慢了,就落后,落后就挨打,挨打得多就挂掉了。
总结下,知道自己适合做什么了,也知道下一步应该如何走,战略思想么?聊以解慰而已,不过也解开了心结,只要一直进步,努力加速,总有自己的落脚之处,即使飞不高,我也是只有脚的“小菜鸟”。
二、求学篇
求学本应是这四年的主要任务的,可到还没到最后,却发现自己完全没一个求学者应有的态度和作为。
学的东西很多,而肯用心去学且学有所成的却没多少。软件工程,试验者的教学,本也是探索者,只是铁起心肝任人摆布和沉溺于安逸环境下的,远远不到探索者的境界,充其量只算得一拾人牙慧的跳梁小丑。
课程设置还可以一一数出来;大一;计算机科学导论,高中的时候已经接触过二进制的概念,那时候还懂得用BASIC编鸡兔同笼的小程序,而真到了大学让我以编程为业的时候,却显得彷徨、急躁、功利。
C语言,写了“hello world”之后,便宣告踏上学习高级语言之路么?可惜在学习的过程中自己一直不动手,所以一直没进步,停留在外行人的眼光。其实张锋老师很不错,当初自己还在网易popo上向他大言不惭的说自己的学习计划,后来却一直没执行,惭愧。还有吴向军老师、周凡老师、衣杨老师等,我最尊敬的老师们,冬至快乐哈。
之后便陆续的学了很多,C++、离散数学、数据结构、操作系统、数字电路、计算机组成原理、软件工程、数据库、系统分析、计算机网络、多媒体、java等。
不能再责备教育体制给自己的毒害了,那么多人成了才,教育体制再差,那也是一个外因,决定事物发展方向的,归根结底还是内因,每一门课乍一看都不难,入门容易,于是上课不专心听,逃课,逃作业成为家常便饭,考试之前再抱佛脚,曾经勤奋的孩子,开始懒惰得连走路去饭堂吃饭也不愿意。
专心上课,是从大三开始的,大一大二是最颓废的两年,而大三稍好,尤其是软件工程和系统分析、计算机网络这几门课,难得的专心去听,虽然课外扩展比较少,但也收获不小。
最大的缺陷是动手能力差,可以理解一个算法,但常常无法编码实现。只有最近,才用VS写下小代码,也只是因为参加了项目。
综合分析,知识体系算是比较完备的了,但是这种水平最多只能去考个白痴无聊的软件设计师,与真正的程序员,距离甚远。这些年收集了不少学习资料,常和自己说,日后从事IT行业的时候一定要把这些书看完,然后就天天盼自己不用从事这个行业,可连自己的专业也学不好,还能干什么呢?所以最近在消灭书籍中,若在有生之年可以消灭完毕,也算是功德圆满了。
每每在彷徨的时候想起那首“the road not taken”,还有汪国真的那首“热爱生命”,其中一句常可以让我热泪盈眶的,“既然目标是地平线,留给世界的只能是背影”;那些鄙夷我的人,就慢慢欣赏我的背影吧,还有~路边的野花不要采,哈哈。
最近在kuqin上常可以看见一些很好的文章,多半是转自CSDN的,自己在CSDN也有一个账号,可只是用来下载资料的,在IT博客园也有一个账号,也没发表过什么文章,毕竟是技术博客,或许,技术成长的过程,也可以写上几笔,聊当纪念这平凡而不平静的岁月吧,以后混迹于CSDN,be a CSDNer。有篇文章说到,编程是一种艺术,但更多是体力活,我先让它成为体力活吧,他日有幸,可以成为艺术家的话,也甚不错。
而由于职涯的未知性,无法兼顾软件测试和游戏开发的知识完备,最近都在打基础,从C、C++、Java开始,顺带计算机网络、操作系统、软件工程、系统分析,不做IT则以,若做IT,便做个纯粹点的IT人。
学习无止境,感觉毕业才是我学习的真正起点,亡羊补牢,未为晚矣。
三、工作篇
四、感情篇
后记
素闻有一种美叫缺陷,而懒虫终于也钻入我的脑髓,于是余下两篇,留给各位看官想象的余地,而这个号码,也终于完成它的历史任务,最后一篇日志收笔,这个QQ号,也正式成为收取通知和叫外卖的工具了,有事直接电话联系,祝大家冬至快乐,顺便预祝圣诞元旦春节快乐,有时祝福也是一种吝啬,此后的日子,还是各安天命,好运!
ps:这阵子到了实验室也没看OGRE和CEGUI的资料,项目全盘扔了给大扬同学做,而自己每天到了实验室则翘着手看kuqin上的文章,要不就看C语言,或者在用修改器玩超级马里奥,而更多的是,在QQ上水了又水,惭愧
2008年11月3日
#
很久没仔细的去看文字,尤其是这种回忆性的纪实文字。一个人的心态在踏入大学和踏入社会的时刻是变更最剧烈的,而自己面临的,已是后者,大学给自己带来的不多,自己给自己带来的也不多。与预想的相差太远,与计划的执行相差过大,踟蹰着,终于时间的列车载着我,将要驶离这曾被誉为象牙塔的校园了。
且不论大学教育的利或弊,自觉对自己三年来的表现是颇为失望的,把心力分散于对琐事杂事上,尤其在感情处理上,拖拉犹豫又嬗变,实在不该是一个学工科的人的脾性,也不该是一个男子汉的所为。然后仿佛觉醒了,开始在为工作奔波。
云风的技术很好,得益于他的努力和天资。我现在可以,甚至一辈子可以拥有的,就是努力,不再计较琐碎的人和事,努力创造一个属于自己的天地。
计划了一下,现在到明年毕业,还有半年的时间,其实是很充裕的,至少,如果我的目标只是找一份工作的话,我完全可以偏重于复习或学习所选方向的技术知识,然后下意识着重培养个人的表达和沟通能力。然而我知道我需要的不是这些,我需要从整个基础开始来训练自己,恢复高中时期的阅读和锻炼的习惯,把时间多花在学习和提高自己上。或者,对于社会认同,我更重视个人满足,我必须满足自己对自己的虚荣心,所以,此刻开始,阅读C基础,之后C++,数据结构和算法,linux内核。
同时,项目需要如期进行,CEGUI的使用和扩展,需要付出努力,UI底层拥有的资料不多,啃官方文档,顺便恢复自己的英语阅读能力,如此,甚好。