`
pengmj
  • 浏览: 24593 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

如何开发一款网游?(一)——数据结构设计

阅读更多

本文中的网游是指智能设备的网游游戏。网游开发是一个系统工程,里面涉及到的工序繁多,人员可以从几人到数十人不等,主要包含策划、美术、客户端、服务端。这里主要是从服务端技术的角度并以最简洁的方式来阐述一个游戏的开发过程。虽然本文所描述的内容与具体的开发语言无关,但是平常大多数时间在用JAVA。

这一篇主要讲述一款游戏是如何一步一步的设计数据结构。当然,具体的游戏需要根据策划案来实现,我们这里主要是一些通用的方法。

 

1、游戏角色

所有网游都会有角色,它可以是RPG游戏中的一个主角人物,也可以是卡片游戏中的一个队长,它在这个游戏区中是唯一的。它与游戏帐号是什么关系?游戏帐号数据比较简单,是指一整个游戏的唯一标识,一个游戏可能会有多个区,一个帐号在所有区中使用,每一个区中又会有多个角色,所有帐号和角色的关系是一对多的关系。帐号的数据结构通常是:ID,用户名,密码,等基本信息。角色的数据结构通常是:帐号ID,角色ID,昵称,性别,等级信、经验、多个货币信息,VIP信息,以及一些相关信息。

2、核心玩法

任何一款游戏都会有一个核心玩法,核心玩法的概念比较难定义,可以是一套流程也可以是一个功能点,简单的来说就是游戏策划希望玩家花的时间或金钱最多的一个点。集卡、战斗、操作、装备等等,这些都可以成为核心玩法的点,现我们以“战斗”为例:



 3、人物/卡片

上段中的“战斗”是一个抽象化的概念,需要通过“人物”等一系列其它元素来体现。这里的“人物”是指游戏中可以看到的,在战斗场景中出现的英雄或者卡片等实体。围绕“人物”,我们可以设计出众多的数据结构。



 人物的属性主要包含:生命值、攻防属性、概率属性等等

装备包含武器、装饰品等等,主要是加人物属性,以及产生特殊技能。

技能分类比较多,有只加属性的,有战斗效果,有被动产生抗性的技能,所以技能是游戏中比较灵活的元素。

 

4、阵型

阵型主要是指战斗场所,像一些卡片游戏,阵型也是一个非常重要的元素。



 阵型的属性表示一个“人物”站在这个位置上就会获得额外的属性。

布阵规则是指“人物”不同的排列方式会有不同效果。

5、物品

物品是游戏中一块很关键的内容,它的设计好坏直接影响到后期的扩展性。物品的范围很广,游戏中可以看得到的所有东西都可以把它划归为物品,所以物品的分类尤为重要。



 

 道具类主要是一些点击可以使用的物品。

装备分为装饰品和武器,主要是因为1、放置位置不同;2、效果不同

材料一般是指那些不可立即使用的物品,可以出售,可以被其它功能所消耗。

这里的分类肯定不是完整的,具体的游戏还须参考策划案,个人经验一般都是这样来区分的。

6、总结

游戏中的数据结构宏观上分为两大类:

a、静态数据

b、动态数据

静态数据是指一些字典数据,不管游戏进行到哪一步它都不会改变,比如装备字典数据:ID1,青龙偃月刀,描述,属性,等等,些数据是固定的。

动态数据是指随着游戏的进行会有一定的生命周期变化,比如一张卡牌,从创建,到升级、进化,最后分解,这一类数据是不停的在变化着。

开头说过,游戏是一个复杂的系统功能,我并不认为阅读了这篇文章之后会使你完全掌握游戏的开发,但是希望能通过这篇文章使你对游戏开发有所认识,哪怕是一点点即可。

更多内容:

如何开发一款网游?(二)——服务器程序框架

如何开发一款网游?(三)——服务器物理部署

  • 大小: 14.9 KB
  • 大小: 2.3 KB
  • 大小: 16.5 KB
  • 大小: 27.1 KB
  • 大小: 30.7 KB
1
0
分享到:
评论

相关推荐

    《C++语言描述——数据结构算法与应用》

    《C++语言描述——数据结构算法与应用》是一本深入探讨C++编程语言在数据结构和算法应用方面的专业书籍。本书旨在帮助读者理解和掌握如何利用C++高效地实现各种数据结构和算法,从而提升编程技能和解决问题的能力。...

    C# 数据结构——图

    在编程领域,尤其是在数据结构和算法的学习中,"图"是一种非常重要的概念,它用于模拟现实世界中的关系网络。在C#中,处理图数据结构能够帮助我们解决各种复杂问题,如路由查找、社交网络分析等。本篇将深入探讨C#...

    网络游戏开发——论文

    网络游戏开发是一个涵盖广泛的技术领域,涉及众多的编程语言、数据结构、算法以及系统设计。本文将深入探讨网络游戏开发的关键知识点,结合给定的文件标题、描述及标签,我们将重点讨论3D网络游戏设计的位置引擎、...

    南京邮电大学数据结构课件——陈慧楠

    课件以C++语言为描述工具,C++是一种通用的、面向对象的编程语言,因其高效性和灵活性而广泛用于系统软件、应用程序以及游戏开发等领域。在数据结构中使用C++,可以更好地理解抽象数据类型和类的概念,同时C++的模板...

    游戏程序设计教程——何青

    本教程“游戏程序设计教程——何青”旨在引导学习者掌握利用Java进行游戏开发的核心技术和流程。 首先,我们要了解Java语言在游戏开发中的优势。Java作为一种跨平台的面向对象语言,具有强大的内存管理和多线程支持...

    游戏程序设计教程code——何青

    "游戏程序设计教程code——何青"这本书,显然旨在教授读者如何利用Java进行游戏开发,通过实例深入浅出地解析游戏设计的各个方面。 首先,我们需要理解Java语言的基础知识。Java提供了丰富的类库,如Swing和JavaFX...

    java课程设计——中国象棋网络对战游戏

    这个Java课程设计项目是一个综合性的实践,涵盖了网络编程、图形用户界面、并发处理、数据结构、算法等多个重要知识点,对于提升Java编程能力和软件工程实践有着显著的帮助。通过实际操作,开发者不仅能深入理解这些...

    跳一跳的前世今生——小游戏开发经验分享.zip

    《跳一跳的前世今生——小游戏开发经验分享》是一份深度探讨小游戏开发历程与经验的文档,主要聚焦在微信小程序中的热门游戏“跳一跳”。本文档可能包含了开发者从概念设计到实现,再到优化和运营的全过程,对于想要...

    互联网时代下餐饮企业创新生态的建立——数据智能和网络协同双螺旋驱动下的案例研究.pdf

    总结来说,互联网时代下的餐饮企业创新生态建立是一个动态的过程,涉及数据智能和网络协同的深度融合。企业需要把握这两个核心驱动力,借助数字化转型的力量,提升竞争力,创造出更丰富、更个性化的餐饮体验,以适应...

    网络编程课程设计——猜数字

    总结来说,这个"网络编程课程设计——猜数字"项目涵盖了基础的网络编程概念,如C/S架构、Java编程以及TCP/IP通信。通过实现这个游戏,学生能够实际操作这些理论,提升对网络编程的理解。同时,"caishu"文件的分析...

    JAVA课程设计——网络版五子棋

    本项目名为"JAVA课程设计——网络版五子棋",是基于Java Swing组件开发的一款五子棋游戏,不仅支持单机模式,还具备网络功能,允许玩家通过服务器进行联网对战,实现了多人在线游戏。以下是该项目涉及的主要知识点和...

    小型网络游戏实例(vc++)——网络五子棋

    总的来说,"小型网络游戏实例(vc++)——网络五子棋"项目涵盖了多方面的技术知识,包括C++编程、图形用户界面设计、网络编程、数据结构与算法,以及游戏逻辑实现等。这个项目对于学习者来说,是理解并实践这些技术...

    vc开发的socket网络程序——五子棋游戏

    本项目“vc开发的socket网络程序——五子棋游戏”是一个利用Visual C++(简称VC)编写的,基于Socket接口实现的网络五子棋游戏。这个项目对于初学者和有经验的开发者来说都是一个很好的学习资源,因为它将基础的网络...

    Android毕业设计——成语游戏.zip

    《Android毕业设计——成语游戏》是一款基于Android平台的益智类应用,旨在通过游戏的方式让玩家在娱乐中学习和巩固中华传统文化中的成语知识。在这个项目中,开发者运用了Android开发的相关技术,包括UI设计、数据...

    vb程序设计——网吧计费系统

    总结,VB程序设计的网吧计费系统是一项综合性的项目,涵盖了用户管理、计费逻辑、数据安全、网络通信等多个方面。开发者需要具备扎实的VB编程基础,理解面向对象的设计思想,以及一定的数据库和网络知识,才能打造出...

    跳一跳的前世今生——小游戏开发经验分享.pdf

    本文以《跳一跳》这款游戏的开发为例,分享了小游戏开发的经验,从如何制作一款优秀的小游戏,到小游戏平台的概述,再到具体的游戏开发实践,为有志于小游戏开发的读者提供了一系列知识点和经验总结。 首先,在探讨...

    游戏编程入门经典——+C#篇

    《游戏编程入门经典——C#篇》是一本专为初学者设计的游戏开发教材,它将带你进入游戏编程的精彩世界,使用的是微软的C#语言。C#是一种面向对象的编程语言,尤其适合用于开发Windows平台上的应用程序,包括游戏。在...

    C++Builder程序设计范例——中国象棋

    《C++Builder程序设计范例——中国象棋》是一份详尽的教程,旨在引导学习者使用C++Builder开发一个完整的中国象棋游戏。通过这个项目,你可以深入了解C++Builder的编程理念,以及如何利用其强大的VCL(Visual ...

    BombMan——实时联机对战小游戏 一个用java swing写的实时联机对战小游戏.zip

    总而言之,《BombMan——实时联机对战小游戏》是一个全面展示Java Swing编程能力的项目,它涵盖了图形界面设计、网络编程、游戏逻辑实现、数据结构运用以及多媒体处理等多个方面。通过深入研究和学习这个游戏,...

Global site tag (gtag.js) - Google Analytics