2013年12月6日

Hibernate注解实现单表递归树形结构

摘要: 目录:概述环境代码示例测试结果[一]、概述在系统中,经常会用到无限级递归的树形结构,比如菜单、组织机构管理、多级分类等等,一般是在同一个表中定义父子关系实现这种树形结构,本文主要讲述如何运用hibernate全注解的方式实现这个功能。[二]、环境hibernate 4.1.2java 1.6mysql 5.1[三]、代码示例第一步:创建Entity类,并添加注解实现关联关系ps: 主要是利用@ManyToOne 和@OneToMany 配置在同一个Entity类中实现树形递归的结构。TreeNode.java1package com.micmiu.hibernate.anno.entity;2 阅读全文

posted @ 2013-12-06 20:40 gzwlj 阅读(663) 评论(0) 推荐(0) 编辑

使用hibernate实现树形结构无限级分类

摘要: 在系统中,经常会用到无限级的树形结构分类,如组织机构管理、商品/地区分类等等。在以前的一个贴子:http://www.iteye.com/topic/26987“复杂商品分类的表如何建立?”中,讨论过树形无级分类的实现方法。 一般无外采用两种方式, 一是类似struts-menu(http://struts-menu.sourceforge.net)的XML文件管理方式,配置起来比较方便,但很难与系统中其它应用数据集成; 二是使用数据库存储,定义父子关系。在我们现在开发的一个产品中,使用hibernate实现了一套树形结构的处理方法,实现了树的基本操作,上溯、下溯、子节点的添加/移除和递归.. 阅读全文

posted @ 2013-12-06 20:37 gzwlj 阅读(1666) 评论(0) 推荐(0) 编辑

2011年3月2日

Java中堆内存与栈内存分配浅析

摘要: Java 把内存划分成两种:一种是栈内存,另一种是堆内存。在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配,当在一段代码块定义一个变量时,Java 就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java 会自动释放掉为该变量分配的内存空间,该内存空间可以立即被另作它用。堆内存用来存放由 new 创建的对象和数组,在堆中分配的内存,由 Java 虚拟机的自动垃圾回收器... 阅读全文

posted @ 2011-03-02 22:00 gzwlj 阅读(142) 评论(0) 推荐(0) 编辑

小谈网络游戏同步

摘要: 同步在网络游戏中是非常重要的,它保证了每个玩家在屏幕上看到的东西大体是一样的。其实呢,解决同步问题的最简单的方法就是把每个玩家的动作都向其他玩家广播一遍,这里其实就存在两个问题:1,向哪些玩家广播,广播哪些消息。2,如果网络延迟怎么办。事实上呢,第一个问题是个非常简单的问题,不过之所以我提出这个问题来,是提醒大家在设计自己的消息结构的时候,需要把这个因素考虑进去。而对于第二个问题,则是一个挺麻烦的问题,大家可以来看这么个例子: 比如有一个玩家A向服务器发了条指令,说我现在在P1点,要去P2点。指令发出的时间是T0,服务器收到指令的时间是T1,然后向周围的玩家广播这条消息,消息的内容是“玩家A从 阅读全文

posted @ 2011-03-02 21:00 gzwlj 阅读(134) 评论(0) 推荐(0) 编辑

带宽限制下的视觉实体属性传播

摘要: 1. Introduction 简介 The Saga of Ryzom is a persistent massively-multiplayer online game (MMORPG) released in September 2004 throughout Europe and North America, localised in 3 languages so far. It has been developed by Nevrax since 2000, and was taken over by Gameforge in late 2006. The Sage of Ryzom 阅读全文

posted @ 2011-03-02 20:57 gzwlj 阅读(386) 评论(0) 推荐(0) 编辑

网游服务端开发入门知识

摘要: 大多数的网络游戏的服务器都会选择非阻塞select这种结构,为什么呢?因为网络游戏的服务器需要处理的连接非常之多,并且大部分会选择在Linux/Unix下运行,那么为每个用户开一个线程实际上是很不划算的,一方面因为在Linux/Unix下的线程是用进程这么一个概念模拟出来的,比较消耗系统资源,另外除了I/O之外,每个线程基本上没有什么多余的需要并行的任务,而且网络游戏是互交性非常强的,所以线程间的同步会成为很麻烦的问题。由此一来,对于这种含有大量网络连接的单线程服务器,用阻塞显然是不现实的。对于网络连接,需要用一个结构来储存,其中需要包含一个向客户端写消息的缓冲,还需要一个从客户端读消息的缓. 阅读全文

posted @ 2011-03-02 20:46 gzwlj 阅读(289) 评论(0) 推荐(0) 编辑

角色扮演游戏引擎的设计原理

摘要: 角色扮演游戏(RPG)是深受广大游戏迷们喜爱的一种游戏, 它以独特的互动性和故事性吸引了无数的玩家。它向人们提供了超出现实生活的广阔的虚拟世界,使人们能够尝试扮演不同的角色,去经历和体验各种不同的人生旅程或奇幻经历。这些体验都是在现实生活中无法实现的。在玩过许多游戏后,许多玩家都不再仅仅满足于一个游戏玩家的身份,而会思考游戏是如何制作的,并且打算制作一个自己的游戏,网上的各种游戏制作小组更是如雨后... 阅读全文

posted @ 2011-03-02 20:43 gzwlj 阅读(241) 评论(0) 推荐(0) 编辑

游戏服务器架构

摘要: 服务器结构探讨 -- 最简单的结构所谓服务器结构,也就是如何将服务器各部分合理地安排,以实现最初的功能需求。所以,结构本无所谓正确与错误;当然,优秀的结构更有助于系统的搭建,对系统的可扩展性及可维护性也有更大的帮助。 好的结构不是一蹴而就的,而且每个设计者心中的那把尺都不相同,所以这个优秀结构的定义也就没有定论。在这里,我们不打算对现有游戏结构做评价,而是试着从头开始搭建一个我们需要的MMOG结构。 对于一个最简单的游戏服务器来说,它只需要能够接受来自客户端的连接请求,然后处理客户端在游戏世界中的移动及交互,也即游戏逻辑处理即可。如果我们把这两项功能集成到一个服务进程中,则最终的结构很简单: 阅读全文

posted @ 2011-03-02 16:57 gzwlj 阅读(587) 评论(0) 推荐(0) 编辑

2011年2月24日

一种高效的寻路算法 - B*寻路算法

摘要: 在此把这个算法称作B* 寻路算法(Branch Star 分支寻路算法,且与A*对应),本算法适用于游戏中怪物的自动寻路,其效率远远超过A*算法,经过测试,效率是普通A*算法的几十上百倍。 通过引入该算法,一定程度上解决了游戏服务器端无法进行常规寻路的效率问题,除非服务器端有独立的AI处理线程,否则在服务器端无法允许可能消耗大量时间的寻路搜索,即使是业界普遍公认的最佳的A*,所以普遍的折中做法是服务器端只做近距离的寻路,或通过导航站点缩短A*的范围。 算法原理 本算法启发于自然界中真实动物的寻路过程,并加以改善以解决各种阻挡问题。 前置定义: 1、探索节点:为了叙述方便,我们定义在寻路过程中. 阅读全文

posted @ 2011-02-24 14:20 gzwlj 阅读(3363) 评论(0) 推荐(0) 编辑

导航