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


相关文章
|
4月前
|
存储 开发框架 .NET
【C#】C# 基础语法与游戏开发
【1月更文挑战第21天】【C#】C# 基础语法与游戏开发
|
4月前
|
存储 开发框架 .NET
【C#】认识C# (为了游戏开发 O(≧口≦)O)
【1月更文挑战第26天】【C#】认识C# (为了游戏开发 O(≧口≦)O)
|
22天前
|
开发框架 前端开发 .NET
C#编程与Web开发
【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。
|
22天前
|
SQL 开发框架 安全
C#编程与多线程处理
【4月更文挑战第21天】探索C#多线程处理,提升程序性能与响应性。了解C#中的Thread、Task类及Async/Await关键字,掌握线程同步与安全,实践并发计算、网络服务及UI优化。跟随未来发展趋势,利用C#打造高效应用。
|
22天前
|
存储 安全 网络安全
C#编程的安全性与加密技术
【4月更文挑战第21天】C#在.NET框架支持下,以其面向对象和高级特性成为安全软件开发的利器。本文探讨C#在安全加密领域的应用,包括使用System.Security.Cryptography库实现加密算法,利用SSL/TLS保障网络传输安全,进行身份验证,并强调编写安全代码的重要性。实际案例涵盖在线支付、企业应用和文件加密,展示了C#在应对安全挑战的同时,不断拓展其在该领域的潜力和未来前景。