做网页游戏开发语言好还是网页方面好,如果网页方面,是c

制作一款网页游戏要怎么做_学习_天平线
制作一款网页游戏要怎么做
  很多人想投身游戏行业,成为真正的游戏制作人。但是他们对游戏的制作过程,和各个职位的职能都是比较陌生的。对网页游戏开发也不够了解,但今天小编就告诉你们游戏到底是怎么制作出来的。
  网页游戏开发的程序构成分为三大部分
  1、数据流程
  数据流程其中,数据流程包括了功能。也只有在功能中才能体现数据流程。
  比如最简单的卖买。要实现这个功能,那么需要有产品基础表、产品详细表、商店表、背包表。如果扩展性更强,相应的双表是少不不了的。
  表的问题都简单了,关键是这个物品有什么用,这样物品的来源,一大堆数据,物品的走向,又是一大堆数据。最后,这些数据得绕成一个圈。绕圈是一件困难的事情,特别是功能和道具多了起来的时候。难度是2的n次方。
  2、美术
  UI:简洁漂亮的界面总会有好处。
  小图标:道具,地图,装备,一类至少10个吧?大体上百把个是需要的。
  3、程序分5个部分
  数据库:一大堆基础数据表和详细数据表。基础数据表:比如等级1到等级100的用户的属性初始值。详细数据表:每个用户的具体属性。
  功能页面、功能函数。主要就是数据存取,判断,数据走向。
  这里介绍一个详细的例子
  那么一个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&P; $result=mysql_query($sql,$link); echo &
  type=&.&text&.&/&.&css&&;$rs=mysql_fetch_array($result); echo
  &#map{&; echo &position:&; echo
  &width:&.$rs[X坐标].&&; echo &height:&.$rs[Y坐标].&&; echo
  &z-index:0;&; echo &left:0top:0}&;}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 &
  &; echo
  title=&.$rs[ID].&&
  上面是一个很简单的地图类。代码可能不太正确,意思是正确的。就是根据map表中的坐标,生成了一组div层,以及这一组层的css。你可以改为table的。你可以也把坐标放到一个字段里,用数组的形式取。
  使用的时候,用
  map(N);
  其中N是map表里的地图Map_ID.
  城市内的建筑也类似。如果要显示出来的话。
  有了地图和城市后。
  涉及到的问题就是城市里资源的产生。
  这时候,City表里需要有可供判断的时间和数量的字段。比如:产生资金量Money,产生资金花费的时间Action_Time,上次产生资金时间Money_time。
  这两个字段的数值应该在City_base表里出现。(即城市基础表,不同等级,不同类型城市的对应数值。这是给策划填数据用的,建好表后就等策划去头痛吧。如果你身兼数职。。。)
  如何自动产生资源呢?
  我们可以在城市所有人改变的时候,写入一个时间。或者在城市初始化的时候写入一个时间。
  $Now_Time=date(&Y-m-d H:i:s&);
  (说明:$开头是变量的意思。php里特有的。如果是asp的话可以写成。Now_Time=Now()
  把$Now_Time写入到Money_time里。
  update(&UPDATE City SET Money_time=&$Now_Time
  WHERe City_ID=&$City_ID& LIMIT 1;&);
  $City_ID是你自己定义的。指某一个城市。如:$City_ID=1;
  我们假定当前城市产生资金量为100。即$Money=100;(具体的数值,应该是由City_base表里取出的。)
  假设间隔时间为$Action_Time,我们再假定是每小时执行一次。即$Action_Time=3600;(具体的数值,是根据你的初始化表里取得的。也可以根据城市等级或者用户等级取得。反正随便你自己怎么设定。)
  这时候,有基础时间了。有基础资金产量了。有间隔时间了。
  让它循环执行起来就行了。
  上面说过,服务端用C语言定时器。客户端用javascript。
  服务端,资源定时器设定为5分钟执行一次。那么我们的误差就是5分钟。对网页游戏来说,可以接受。(战斗的定时器得1分钟吧。当然服务器够牛的话,几秒钟都可以。)
  每次执行什么代码呢?
  首先得新建一个定时器任务的表。目的就是让定时器知道需要执行哪些程序和数据的更新。表内容比如:城市资源更新。当然,这个表可要可不要。建立的好处是方便处理类似保护状态不产生资源之类的问题。
  服务端程序:
  获得当前服务器时间。
  获得当前需要更新城市。
  判断服务器时间与$Money_time的时间差。(时间戳,具体的时间戳网上资料满多的。)
  判断时间差是否大于$Action_Time。
  大于,则更新资源。同时更新$Money_time。小于,则无操作。
  客户端程序:
  获得当前服务器时间。
  获得当前城市的$Money,$Money_time,$Action_Time。
  使用javascript显示剩余时间的倒计时,以及增加的资源量。
  客户端特殊情况触发:因为客户端显示的资源情况是伪同步,所以当客户端使用该资源的时候。需要服务端将当前的实际资源更新,属于定时器处理的时间也需要更新。即,当客户端触发涉及资源的情况时,立即更新当前资源。同时更新定时器中会用到的$Money_time。这样才不会造成,看的资源用不到,或者定时器重复产生资源。
  总体来说。这部分程序都很简单。难点在C语言定时器的制作,以及前台javascipt倒计时的写法上。
  C语言定时器,找个C语言程序员,超简单;前台的javascipt,网上有很多倒计时的代码,找个来改改就能用。
  LANGUAGE=&Javascript&&var maxtime =
  这里是你的时间差///一个小时,按秒计算,自己调整!function
  CountDown(){if(maxtime&=0){minutes =
  Math.floor(maxtime/60);seconds = Math.floor(maxtime%60);msg =
  &你的文字说明&+minutes+&分&+seconds+&秒&;//动态显示剩余时间。document.all[&timer&].innerHTML=//if(maxtime
  document.all[&timer&].innerHTML=&只剩3秒!&;&}else{clearInterval(timer);document.all[&timer&].innerHTML=&时间到&;}}timer
  = setInterval(&CountDown()&,1000);
  这个是网上找的代码。稍微修改就可以用的。这里只是显示了倒计时。也可以改为显示资源的增加情况。
  C语言里操作mysql数据库。
  // TODO: Add your control notification handler
  code herebool bRes = m_dbConn.Connect(&数据库ip地址&, 3306 , &用户名&,
  &[email=d203!@#ghj]密码[/email]&, &数据库名&);
  if(!bRes){AfxMessageBox(&connect fail&);}
  string strSql = &select * from city limit
  1&P;//所有显示或取值类的都用这段。中间的sql语句可以自己构造。ResultSet* rs =
  m_dbConn.ExecuteQuery(strSql);while(rs-&Next()){string str =
  rs-&GetString(&username&);AfxMessageBox(str.c_str());}m_dbConn.Close();
  定时器的主函数。void
  CBeiLiDlg::Go(){while(true){//
  AfxMessageBox(&go&);Sleep(5*1000);//毫秒。定时器刷新时间。}}//相当的简单..。
  当然。这里的C的代码不能直接用。只是一部分。
  地图、城市、基本上算是有了。
  接下来是城市里的建筑。
  上面讲的资源增加,其实定位在建筑上更准确。不过建筑的分类和数值会复杂很多。那是策划考虑的问题。
  建筑上,只讲一个前台的修建效果。
  当然,这个效果是可有可无。你可以直接给个类似新闻列表的显示,再加个倒计时就行。显示的效果就是,点修建后。不刷新页面,调入一张动画图片。并在时间到后自动转换为其他图片。
  language=&javascript&& function xiujian() {
  top.abc.document.getElementById(&前台建筑位置所在图片的id&).src="http://js./skin/default/image/lazy.gif" class="lazy" original="http://js./skin/default/image/nopic.gif">
  } function xiujian1() {
  setTimeout(&xiujian()&,5000);//动画时间5秒。这里也可以加入时间判断。当时间不到的完成的时候,继续调用动画。
  } function donghua() {
  top.abc.document.getElementById(&前台建筑位置所在图片的id&).src="http://js./skin/default/image/lazy.gif" class="lazy" original="http://js./skin/default/image/nopic.gif">
  } donghua(); xiujian1();
  后台部分,把时间到增加资源的代码改为时间到增加或更新建筑就行了。又是增加N个表。。
  建筑基础表:产出,类型,图片等等。。建筑详细表:属于哪个城市,可以在城市表里关联。关联的方式不同会对程序有很大的影响。各种关联方式都行,但是一旦关联方式确定后,最好别改动。
  现在建筑也有了。用类似的定时方式,打工,征兵等等都可以实现。
  战斗,兵的参数:兵种,数量,攻击,防御等等。
  战斗的临时表:谁的兵,打谁,出发时间,战斗时间,战斗结果。
  这里的几个字到是简单。实际的表会复杂一些。
  webgame中,战斗的过程分两种,
  一种是给出双方参数,时间到,就根据公式计算结果。
  一种是半即时或者即时的战斗,可以边打边喝药边用技能的那种。
  第一种流程。
  点出兵。这时候,兵的参数,出发时间,到达时间,都记录进战斗临时表。
  定时器中,处理战斗的部分,判断时间是否到开打的时候。到开打的时间了,则取得被攻击方的兵的参数。然后通过几个公式计算结果。处理结果,比如谁的兵挂了多少,战场掉落了多少钱,城市被谁抢到了。一大堆判断以及updata。(这里的定时器处理和获得资源的定时器处理是很类似的。)
  最后把结果分别发给双方。(又涉及到一个短信息系统。)
  第二种流程。
  点攻击。马上就处理数据。打打npc好做。玩家之间对战,也可以把被攻击的玩家当成npc来处理。
  两个人或两人以上即时战斗。需要用到ajax了。目前在技术上和理论上是没问题的,还没实际写代码,所以不好讲。
  很简单的公式,两种战斗都可以用到:
  intval(sqrt($User_B_AP)-sqrt($User_A_DP));
  根号下攻击-根号下防御=伤害。
  具体写的时候,公式肯定会复杂不少,不过这头痛的事,还是交给策划去做吧。
  ajax函数:(可选)某些需要伪即时的功能要用到。
  javascript函数:(可选)模拟客户端的数据计算。也就是webgame的与时间相关的数据。分为两部分。一部分是真实数据,是由服务器端的定时器计算的。另一部分是只有初始值,客户端显示用的。不需要即时同步,仅仅需要模拟同步就行。
  服务器定时器:(C语言或自己设定服务器)定时循环执行某一段代码。而这段代码主要是根据数据库的数据进行更新。这个可以找个C语言程序员来做。对于C语言程序员来讲,这个功能是相当的简单。当然,具体的处理数据的判断和操作数据库,需要你自己写。让C语言程序员给你段标准代码就行了。完全支持sql语句的。
  当然在网页游戏开发前,还要组织相关的专业人才,制作一款网络游戏需要的最核心人才是原画、2D、3D、程序设计、策划等这些方面的人才是必不可少的,因此,要开发一个网页游戏除了要程序员以外,千万不要忘了准备以上人才。
本文由wsg198356提供!个人主页: []只需一步,快速开始
后使用快捷导航没有帐号?
查看: 5123|回复: 35
想学网页方面知识,请问是php好还是c#还是java好?
签到天数: 227 天[LV.7]常住居民III
马上注册加入鱼C,享用更多服务吧^_^
才可以下载或查看,没有帐号?
我听说php是配套mysql的,以前用过mssql,觉得太大太累赘。比较喜欢mysql,当然我自己没用过mysql,只是听高手说过mysql体积小,速度快。
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 30 天[LV.5]常住居民I
个人感觉Java和C#可以挑一门学...最好C#,比较易学。
Java如果往上学,太多太杂了,开源的东西就这样。。
MySQL没感觉到大啊,才几十MB,而且体积小,速度快....包括淘宝用的都是MySql
你说的大是Oracle吧?我这儿Oracle 的安装包 1G多
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 68 天[LV.6]常住居民II
小白请教,你说的Java是JavaScript吗,c#和java也可以作为脚本语言?还有这两个是服务器端技术还是客户端技术??
Java是服务器端的语言(以前用过客户端applet程序),至于JavaScript也有基于他的服务器端语言,不过大部分都是客户端。&
Java是服务器端的语言(以前用过客户端applet程序),至于JavaScript也有基于他的服务器端语言,不过大部分都是客户端。&
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 227 天[LV.7]常住居民III
菜得要自杀 发表于
个人感觉Java和C#可以挑一门学...最好C#,比较易学。
Java如果往上学,太多太杂了,开源的东西就这样。。 ...
版主你看清楚……我是说ms sql大……懂不懂几G的,2005之后。
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 227 天[LV.7]常住居民III
菜得要自杀 发表于
个人感觉Java和C#可以挑一门学...最好C#,比较易学。
Java如果往上学,太多太杂了,开源的东西就这样。。 ...
打错字,是动不动几G……呵呵,
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 66 天[LV.6]常住居民II
:'( 以前我跟一位老师学ASP后来发现去百度搜索ASP发现几乎资料都是ASP.NET& &我建议楼主如果你是追求完美主义并且时间上充足去学java。如果追求生存那要选资料多的,使用人也多的。
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 30 天[LV.5]常住居民I
℡.xiao敏 发表于
打错字,是动不动几G……呵呵,
MySQL有2005版本?第一次知道。
我从Oracle开始学习8i,9i,10G,11G
MYSQL也从4.0用到5.多
SQLSERVER从2000用到2008
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 227 天[LV.7]常住居民III
菜得要自杀 发表于
MySQL有2005版本?第一次知道。
我从Oracle开始学习8i,9i,10G,11G
哥哥你看清楚我打字……是mssql...
MySQL速度的话,你可以看淘宝。淘宝用的MySQL&
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 227 天[LV.7]常住居民III
菜得要自杀 发表于
MySQL有2005版本?第一次知道。
我从Oracle开始学习8i,9i,10G,11G
淘宝挺快的啊。但是我还没学mysql,以前用mssql来做过软件,不过也只懂皮毛,存下客户资料而已。
但是mysql没图形界面哦好像
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 30 天[LV.5]常住居民I
℡.xiao敏 发表于
淘宝挺快的啊。但是我还没学mysql,以前用mssql来做过软件,不过也只懂皮毛,存下客户资料而已。
淘宝是集群,其实有的时候跟数据库有关,也跟服务器有关。。
图形化界面有N多,我现在用的是mysql front
以前也用TOAD,后来改用中文了。
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 227 天[LV.7]常住居民III
菜得要自杀 发表于
淘宝是集群,其实有的时候跟数据库有关,也跟服务器有关。。
图形化界面有N多,我现在用的是mysql front ...
版主也用mysql么?我还没学过mysql,以前用易语言写过东西,当时草草的看世宝教程,随便的用mssql2008。但真的太大材小用了,我的几十人小服务器,用那么大的mssql干嘛~~~求个教程啊。mysql的。QQ
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 18 天[LV.4]偶尔看看III
个人感觉,数据库还是SQL Server 2005 好 毕竟中小企业都可以我们,网页设计方面最多的还是Php和asp
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 30 天[LV.5]常住居民I
℡.xiao敏 发表于
版主也用mysql么?我还没学过mysql,以前用易语言写过东西,当时草草的看世宝教程,随便的用mssql2008。但 ...
我看的是马士兵的Oracle。。。因为不管什么数据库,标准的SQL语句几乎都是一样的。
后来转MySQL,只有很少要注意的(分页MySQL用limit比Oracle容易,Mysql没有序列)别的几乎都一样(Mysql没有varchar2)
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 227 天[LV.7]常住居民III
菜得要自杀 发表于
我看的是马士兵的Oracle。。。因为不管什么数据库,标准的SQL语句几乎都是一样的。
后来转MySQL,只有 ...
你还没告诉我实用教程啊…………
马士兵的Oracle教程。第一句话就是。&
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 9 天[LV.3]偶尔看看II
数据库都差不多 不一样的就是些函数和自身的特点,会一两个就够了,不做dba你会查询就行了啊
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 9 天[LV.3]偶尔看看II
来吧 学java 一起可以交流:$
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 227 天[LV.7]常住居民III
菜得要自杀 发表于
我看的是马士兵的Oracle。。。因为不管什么数据库,标准的SQL语句几乎都是一样的。
后来转MySQL,只有 ...
版主但是我想学的是mysql哦,因为简单啊。最好就是可以在易语言或者MFC上用的教程了
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 227 天[LV.7]常住居民III
老子星爷 发表于
数据库都差不多 不一样的就是些函数和自身的特点,会一两个就够了,不做dba你会查询就行了啊
我可是0基础。。。就懂一点c,一点易语言,一点汇编,,怎么用接口那些都不懂,在学c++呢,c++有大量概念知识要学。。。什么类啊啥的,是鼻祖了吧。这些学好了再学java应该如虎添翼啦。。。现在好像很多人用java,是因为好用?
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 9 天[LV.3]偶尔看看II
java简单,学不学c和c++ 直接上java都可以得
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 9 天[LV.3]偶尔看看II
虽然简单 ,但是在谁又真正的理解透了 面向对象 呢? 比如就说 树形菜单,当数据库没有满足这个结构的时候 谁又能马上想到抽象出我需要的结构?又比如 我要对jquery返回的ajax输出流进行封装,大部分人一上来几个属性一定以马上就写set get方法他们都不想想 这些属性都是不能去set和get的还有看到很多人在js中使用大量的+符号在操作url中的参数 他们也没想想用一个[]装进去再用join方法…………总之
难即使易,易即使难& &色即使空,空即是色
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
•••(
Powered by}

我要回帖

更多关于 网页游戏开发入门教程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信