Silverlight C# 游戏开发:高深莫测却浅显易懂的游戏开发

简介:

游戏开发一直都是一个神秘的学科,无论图书大厦里的设计书籍还是网络上的开发攻略,无不让人望而却步,冗长的代码以及高深的言语,使得游戏开发爱好者们造成各种各样的误解,很长一段时间,都误认为游戏开发就是DirectX、就是Opengl、就是……,这种观念从招聘中就能看得到,少有真正理解游戏开发,那么游戏开发确实是一个很复杂的学问吗?其实不是,它本身就是一个简单的构成。

对于游戏,很早就产生了,DirectX只是一种SDK,以前没有它的时候,游戏照样有,姚仙写仙剑奇侠传使用的是Basec语言,俄罗斯方块也不过是汇编代码的集合,如今flash也好silverlight也好,都是一个开发包,一个工具,本身没有太复杂的。

我本身是一位游戏开发爱好者,总结下来,觉得游戏开发的基础最少应了解以下三个部分:

第一:逻辑思维和基础学科

逻辑思维是一个重要的部分,如果逻辑思维很好的话,有很多问题都可以很容易在之前找到(我们戏称为YY),但是逻辑思维不等于理性思维,游戏开发需要的是逻辑思维,如果过于理性的话,游戏开发也不会充满激情,比如:在任何情景下,设计一个双人娱乐项目,这时候需要的是逻辑,而不是理性。但是理性是控制大脑的根本,指导我们什么东西该做什么东西不该做,就如这个双人娱乐项目不是拿菜刀互砍,也不是一个人打一个人不还手,因为理性告诉我们,需要公平,需要安全,游戏开发是一个结合逻辑和理性思维的学科,如果我们想开发好游戏那么这方面绝不能不考虑。

对于基础学科上,建议是学习好数据结构、良好的数学基础、最好有点艺术感觉,这些学科都是影响将来游戏开发最近基本的知识,如果有更高层次的追求,那么学习一下心理学、经济学、图形学、项目管理,都将会未来奠定好的基础。

第二:游戏循环

任何游戏归根结底其实都是一个循环,一个大循环套各种小循环,各种小循环套更多的小小循环,这些循环为游戏创造了一个体系,在这个体系下,通过循环的方式获得最终的展现,如果说游戏没有循环,那么可以说不是一个游戏,别说面向对象,别说MVC,作为游戏来说一个界面也好,一个控制也好,都是一个简单循环的体现,这个理论也不是什么高深的思想,而是最简单的游戏开发雏形,如果有模式比这更好,那么我可以说,那些可能没有循环的模式理解容易,游戏做循环的处理,简单易行方便快捷。

 

上图只是一种简单的表示,可能高手们对此可能有其他的论述,在后面,咱们用代码的方式来考虑它的合理性。

第三:代码设计模式

虽然说Silverlight提供了MVC的设计方式,但是作为游戏开发者应该了解软件开发的代码设计模式,这些设计模式常常划分成不同的种类,常见的种类有:

创建型设计模式,如工厂方法(Factory Method)模式、抽象工厂(Abstract Factory)模式、原型(Prototype)模式、单例(Singleton)模式,建造(Builder)模式等

结构型设计模式,如合成(Composite)模式、装饰(Decorator)模式、代理(Proxy)模式、享元(Flyweight)模式、门面(Facade)模式、桥梁(Bridge)模式等

行为型模式,如模版方法(Template Method)模式、观察者(Observer)模式、迭代子(Iterator)模式、责任链(Chain of Responsibility)模式、备忘录(Memento)模式、命令(Command)模式、状态(State)模式、访问者(Visitor)模式等等。

作为游戏开发,需要了解的是抽象工厂(Abstract Factory)、迭代子(Iterator)、观察者(Observer)、访问者(Visitor)这几种,这几种方式如果做了了解,那么在游戏开发中将会驾轻就熟。

如果是引擎级别的开发,则必须将设计模式搞清楚,我曾经写过两个游戏引擎,一个是C++一个是DirectX,现在回过头去看那代码实在垃圾,主要是在思想意识上达不到很高的水准,所以写出来的代码也是什么都没有——没有体系,没有性能,没有便捷,没有安全……但是反过来说,有再好的设计思路和设计体系,代码写不出来也是白搭,正是因为有之前的两个垒出来的上万行代码才使得学习的更多。所以对于这方面,需要两方面都要加强,代码的设计和坚持不懈的Coding才能真正达到提高。


本文转自nowpaper 51CTO博客,原文链接:http://blog.51cto.com/nowpaper/712609


相关文章
|
7月前
|
存储 开发框架 .NET
【C#】C# 基础语法与游戏开发
【1月更文挑战第21天】【C#】C# 基础语法与游戏开发
|
4月前
|
图形学 C# 开发者
全面掌握Unity游戏开发核心技术:C#脚本编程从入门到精通——详解生命周期方法、事件处理与面向对象设计,助你打造高效稳定的互动娱乐体验
【8月更文挑战第31天】Unity 是一款强大的游戏开发平台,支持多种编程语言,其中 C# 最为常用。本文介绍 C# 在 Unity 中的应用,涵盖脚本生命周期、常用函数、事件处理及面向对象编程等核心概念。通过具体示例,展示如何编写有效的 C# 脚本,包括 Start、Update 和 LateUpdate 等生命周期方法,以及碰撞检测和类继承等高级技巧,帮助开发者掌握 Unity 脚本编程基础,提升游戏开发效率。
109 0
|
7月前
|
存储 开发框架 .NET
【C#】认识C# (为了游戏开发 O(≧口≦)O)
【1月更文挑战第26天】【C#】认识C# (为了游戏开发 O(≧口≦)O)
|
存储 C# 图形学
Unity游戏开发之C#快速入门
Unity游戏开发之C#快速入门C#是微软团队在开发.NET框架时开发的,它的构想接近于C、C++,也和JAVA十分相似,有许多强大的编程功能。个人感受是C#吸收了众多编程语言的优点,从中可以看到C、C++、Java、Javascript、python的影子,设计思想都是相通的(过段时间一定要看看设计模式),对比迁移地学习基本只需要记关键字、语法和包的用法。
1710 0