游戏开发

拆解游戏开发中策划配置动态公式问题

星期一, 四月 13th, 2015 | JAVA-and-J2EE, 游戏开发 | 没有评论

游戏开发中,策划总希望自己能配置奖励等公式,从程序这边对于这种太动态的东西是有点不太想去实现添加它;

既然有需求也要实现,从spring里剥离的SpelExpressionParser 可以很好的解决这个问题, 支持常见的 +—X/(加减乘除) 和指数计算^等

依赖 spring-expression-3.2.8.RELEASE.jar, 运行还需要 核心库 spring-core-3.2.8.RELEASE.jar
上代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package com.i5a6.semp.test;
 
import org.springframework.expression.EvaluationContext;
import org.springframework.expression.Expression;
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext;
 
public class TestExpress {
 
	public static void main(String[] args) {
		int num = dynamicCalOutput(2, 2, "#playerLevel^(1/2.7)*100*#num");
 
		System.out.println((Math.pow(2, (1 / 2.7)) * 100));
		System.out.println(num);
 
	}
 
	public static int dynamicCalOutput(int lev, int num, String arithmetic) {
		if (arithmetic == null || arithmetic.length() <= 0) {
			return 0;
		}
		ExpressionParser parser = new SpelExpressionParser();
		Expression expression = parser.parseExpression(arithmetic);
 
		EvaluationContext context = new StandardEvaluationContext();
		context.setVariable("playerLevel", lev);
		context.setVariable("num", num);
		return expression.getValue(context, Integer.class);
	}
}

Tags: , ,

游戏服务端C/C++与脚本语言(php,Lua,Squirrel)共服务

星期五, 八月 31st, 2012 | webgame, 游戏开发 | 一条评论

前两年一直用java做页游的服务端编程,也没有想过对应的语言混合编程,毕竟java可以一种搞定,效率上也还不错.
现在就职的技术老大以前是做客户端游戏出身的,c/c++功力比较牛,技术上就采用 c + Squirrel(一种类似Lua的脚本),刚好在网上看到有人提出为什么要脚本加C,简要回答记录下.

实际上只要底层通信和数据层做好对应的框架后(c封装并提供接口),游戏开发的关键还主要在 对策划功能的理解和实现,即功能实现的设计方案,主要业务逻辑的处理,偶尔也要呼唤底层c的支持而已. 个人的一点认识.

提问:
游戏服务端程序使用PHP与C交互实现与客户端通信,C负责实现处理聊天频道、地图、组队什么的,为什么要这么设计?使用PHP直接与客户端交互不行吗,或者只使用C。各负责什么模块,在这些方面有什么优势?

简要回答:
1.个人认为从语言特性,开发成本,以及项目组人员构成等方面考虑,这么设计应该是可以理解的。
C言语开发的工具运行效率高,但开发难度大,而像游戏中的聊天、地图、组队等功能其实各游戏之间的差别不会特别大,有经验的开发人员可以很容易的将别的游戏类似功能组件移植过来使用。
php言语开发的功能运行效率稍差,但开发成本要低得多,调整灵活,用php来处理一下业务逻辑是非常适合的。
另外像我们公司的游戏的一些对外接口,如跟平台之间的交互接口,我们平台部这边也一般是建议他们使用php来进行开发的。
对于做架构,我个人认为言语并不是最重要的,系统的瓶颈往往也不是因为某种语言,可以根据不同的需要使用不同的语言来进行灵活处理。
› Continue reading

Tags: , , , , , ,

Search

文章分类

Links

Meta