Linux下有哪些游戏值得推荐的好书

【高清图】游戏是硬伤?看Linux系统中的十大网游 图1 -ZOL中关村在线优秀游戏程序员学习资料推荐 - 推酷
优秀游戏程序员学习资料推荐
这两天给单位的技术做的一次学习材料推荐培训,直接ppt上拷过来的。
优秀游戏程序员
学习资料推荐
主讲人:臧旭
今天提到的纯粹是我个人心得和理解,可能片面,可能以偏概全。
目的是给大家做一定的指引作用,想让大家知道自己还有哪些可以去学习,还有哪些不足,我们距离优秀还有多远。
对我今天提到的东西,如果大家有时间,一定要去深入了解,在技术的道路上才有可能看得远、走得稳、飞得高。
另外有一句对所有技术人员想说的话:
学无止境。切忌坐井观天、有一点小小的成就就沾沾自喜、止足不前。
扎实的基础
万丈高楼平地起,勿在浮沙建高楼。
有扎实的计算机理论基础:
1.对计算机知识体系有全局的理解。【广度】
2. 对任何一门技术都将有更深刻和透彻的理解。【深度】
数学是基础中的基础。
不会数学推导,你就看不懂各种文献,也不会明白各种算法的个中所以。
不会数学推导,在3D道路上你更将寸步难行。
当然,你也可以选择让度娘给你一个别人写好的现成的。
但是,对内部原理和推导一窍不通我们就不能变通?网上找不到现成的怎么办?
1.高等数学
积分和微分在任何数学场合都是基本功。
2.线性代数与空间解析几何
向量分析、矩阵分析。3D图形学中最重要的组成部分。
3.基础物理
刚体力学、柔体力学、流体力学,游戏开发中非常常见。
4.离散数学
数据结构的理论基础。
5.概率统计、模糊数学
人工智能的理论工具。
计算机学科专业基础
1.计算机组成原理与体系结构
2.汇编语言程序设计
3.操作系统
4.数据结构
5.程序设计算法
6.计算机网络
7.数据库原理
8.编译原理
9.C/C++语言设计
计算机组成原理与体系结构
组成原理和体系结构可以合并在一起,也可以单独的拆分为两个科目。
两个科目相辅相成,各有重叠的部分。但是总体都讲述了计算机的各个硬件组成部分,各个部分的运作原理以及各个部分之间是如何互通协作的。
总体来说,两个科目都偏硬,但是组成原理偏硬更多,体系结构相比略偏软。
这个是基础中的基础,不学习这个,我们就不明白计算机到底是什么,也不会深入地理解计算机是怎么运作的。当然,我们肯定更不明白自己写的程序本质上到底是什么了。
推荐材料:
找一本高校教材就可以了,推荐清华大学出版社的
汇编语言程序设计
最低级的语言。
学习的目的:
1.深入地理解高级语言的语言特性。高级语言只是给低级语言穿上了华丽的外衣,我们要想知道它到底是什么,必须查看汇编代码。
2.深入理解编译器。编译器会给我们优化,但是很多时候可能好心没做成好事,这个时候必须查看汇编代码才能看出猫腻。
3.性能优化。编译器的汇编指令优化已经很好,但是想要追求更好,自己写汇编代码是最好的选择。
4.深入理解系统内核。比如不开源的windows,那么多漏洞别人都是怎么发现的?当然是通过阅读反汇编代码了。
5.打发大家的一些无聊时间,有强大的汇编基础和操作系统基础,破解和逆向分析都不会难。
6.有时间最好能独立开发一款反汇编工具,对汇编和逆向的帮助会很大。
推荐材料:
王爽 《汇编语言》
《C++反汇编与逆向分析技术揭秘》
《天书夜谈-从汇编语言到Windows内核编程》
《加密与解密》
操作系统是大家很熟悉的名词。不言而喻,基础中的基础。
学习目的:
1.进程、线程、cpu调度、死锁、内存管理、文件管理、I/O系统,这几块都是我们写程序的时候和操作系统打交道最多的地方。必须要有深厚的操作系统系统理论基础来知道我们实践。百度什么的只能给你吃一顿快餐,很难让你有深入地理解。
2.主流的操作系统无非linux和windows,但是他们的设计初衷是大同小异的,有通用的理论我们才能更好地去实践。
推荐材料:
恐龙书《操作系统概念》(《Operating System Concepts 》)
于渊 《自己动手写操作系统》
不懂数据结构的程序员就不是一个程序员。
数据结构内容非常多,建议大家把每种基础类型的数据结构都仔细地学习一下,一定全部要自己动手写程序实现一遍,还要自己动手计算最好、最坏以及一般时间复杂度和空间复杂度。
对于数据结构的学习千万不能马虎,绝对不能眼高手低,能完整地没有bug地实现任何一个基础的数据结构都不是一件容易的事情。
除了基础的那些之外,一些常用的变种也很重要。值得花时间学习和实践。
推荐材料:
严蔚敏 《数据结构》
这里的程序设计算法,指的是六大基础算法。大家如果对ACM比赛有所了解,应该清楚通用计算机算法还有很多。但是对于我们平时遇到的问题,相信有这六大基础算法已经足够。
递归与分治、动态规划、贪心、回溯、分支界限、线性规划
和学习数据结构一样,重要的是理解和动手实践。
推荐材料:
王晓东 《算法设计与分析》+《算法设计与实验题解》(推荐这个,后面两个太厚,讲的太多、太杂,而且《计算机程序设计艺术》三卷难度非常大)
《算法导论》
《计算机程序设计艺术》三卷
北大和浙大的ACM在线judge (无聊的时候做一两条稍有难度的题目也是非常有意思的)
计算机网络
和操作系统一样,所谓计算机网络基础,更加偏重的是理论,一层层地剖析七层网络协议,同时对各种类型的网络、物理媒介、网络拓扑、各种网络算法都有详细的描述。我们平时所关心的SOCKET、TCP、UDP之类的在整个计算机网络的知识体系中只是一滴水而已。
为什么要学习?
不学习这个,我们除了会用socket建立连接、发送消息、知道TCP有三次握手之类的之外,其他还知道什么呢?
所以再一次强调,
学无止境,切忌坐井观天。
推荐材料:
潘爱民译《计算机网络》
《自顶向下网络设计》
数据库应该是一个很重要的学科。它的应用非常广泛。不要一想到数据库,就想到服务器开发人员用的。任何地方都可以使用数据库。
数据库原理主要描述的是关系模型、范式以及SQL规范。数据库原理是数据仓库、数据挖掘之类相关学科的理论基础。
建议大家学习使用任何的数据库之前,最好预先学习一下理论。不然建表和写SQL的时候会出现很多不合理的地方。
另外,对于数据库来说,自己动手写一个小型DBMS(数据库管理系统)的收获是最大的。因为实现一个DBMS涉及到的知识点太多了,需要丰富的编译原理、数据结构、操作系统知识。是一个把知识融会贯通的好机会。
推荐材料:
没什么特别优秀的理论书
一定要自己动手实现一个
编译原理,当然讲的最多的是和编译器相关的原理知识。
为什么要学习:
1.帮助我们理解平时写的高级程序语言最终是如何变成指令码的。
2.编译原理里面有限状态机的概念非常有用,编译器也是它的一个应用而已。
推荐材料:
龙书 《编译原理》
《加载器和链接器》
《程序员的自我修养:加载、链接和库》
LLVM源代码
C++有非常强的语言特性,熟悉C++,对于任何一门其他的语言都能触类旁通。
而且,阅读高级C++代码绝非易事,绕过这道坎,我们阅读任何语言,任何代码都是小菜一碟。
C++的范畴太太广泛,水太深,需要学习的东西也太多。
推荐材料:
我们现在对
的使用只是入门级别而已。
语言基础:
《21天学通C++》
C++圣经《The C++ Programming Language》
《Effective C++》
《More Effective C++》
《深入理解C++11:C++11新特性解析与应用》
《深度探索C++对象模型 》(《 Inside the C++ Object Model 》)
模板,模板元,泛型,库:
《STL源码剖析》
《C++ Templates中文版 》(《 C++Templates:The Complete Guide 》)
《C++模板元编程》(《C++ Template Metaprograming:Concepts, Tools, and Techniques from Boost and Beyond》)
《深入解析ATL 》(《 ATL Internals 》)
《COM原理与应用》
《 Boost程序库完全开发指南——深入C++“准”标准库》
《深入浅出MFC》
夯实基础之后我们做什么?
看了前面一大串的知识和书籍,大家可能头已经晕了。
计算机是一门学科,不是大妈做手抓饼。你要想做一个真正优秀的程序员,前面的全部都是必须!
而且熟悉其中任何一个点都绝不是一天两天的事情。
我们至少要做好前面的80%的积淀,不然我觉得基本上就不要深入后面的内容了。
计算机是一门科学,它有无数的分支和小学科。
从技术选型和实现的角度来看,更是不计其数。
我们今天就关注我们现在做的:游戏编程。
语言只是工具,是我们为了实现完成一款游戏这一目的的工具。
高级语言一般分为静态(类型)语言和动态(类型)语言。
简单的区分手段(不一定):需要预编译的就是静态语言,不需要预编译的就是动态语言。所有的脚本语言都是动态语言。
深入了解语言是如何编译或者解释的,有助于我们更加深入地理解语言是如何实现、内部是如何运作的。基于此,我们才能更加灵活、高效、高性能地使用语言。
推荐材料:
基础的就是编译原理,但是现在已经有了很多其他的编译技术(如相对于AOT的JIT)。
要想对语言有更多的了解,可以直接看开源语言的源代码,或者查阅官方的文档。
建议大家要了解的语言,打星的是要熟练掌握的语言:
宿主语言:
Objective-C(*)
粘合剂语言:
ActionScript
JavaScript
工具语言:
Linux Shell脚本(*)
Windows批处理脚本(*)
Python(*)
学习一门脚本,不仅仅要学习它的语法,更重要的是要学习它的脚本引擎。Lua作为开源语言,以高性能和易使用而闻名。每一个游戏程序员(不管是服务器开发还是客户端开发),都值得投入大量的时间把它学习透彻。
什么时候算学习Lua毕业了?能独立开发一个Lua的单步调试IDE就行了。
友情提示:
容易上手的东西精通都很难。我们现在对
的使用只是皮毛而已。
推荐资料:
《Lua程序设计》(lua基本语法,lua和C函数的互通)
Lua源代码 (Lua源代码的量非常小巧,但是密度很高,要一行一行的精读,调试)
LuaJIT源代码(Lua的JIT编译版本,可以和Lua源码比较阅读,精读)
tolua++源代码(开源Lua和C++绑定实现,精读)
云风的博客
云风 《Lua源码欣赏》
为什么有Java,因为我们要在安卓平台开发,所以我们必须要熟悉Java。但是这里提到的Java是和安卓无关的,安卓是另一个我们需要熟悉的庞大主题。
学习的要点:
Java的语言特性及基础库(匿名类、容器、并发、异常、反射、文件处理、网络)。
Java的AOT和JIT两种编译方式。
Java的JVM虚拟机实现。
Java的GC实现机制。
推荐材料:
《Java编程思想》(《Thinking in Java》)
《深入理解Java虚拟机:JVM高级特性与最佳实践》
《深入Java虚拟机》(《 Inside the Java Virtual Machine》)
《Java SE 7虚拟机规范》
JVM源代码(代码量大,对学习操作系统和各种编译手段很有帮助,泛读)
Objective-C
IOS上开发需要使用Objective-C,是一门优雅的语言。同样,这里提到的Objective-C只是语言级别的东西,不涉及IOS。
学习的要点:
oc的语法和基础库(oc对象模型、函数调用、Interface、Category、Extension、selector、arc、容器、并发、异常、反射、文件处理、网络、NEXTSTEP贡献的设计模式)
推荐材料:
苹果官方开发文档
《Objective-C基础教程》(《Learn Objective-C on the Mac ForOS X and iOS》)
游戏的运行平台
目前我们涉及到的游戏运行平台有三个:
所以要想更好的对我们的游戏做本地优化,我们必须熟悉各个平台操作系统。
学习要点:
Win32窗口程序开发。
MFC程序开发。
COM组件开发
ATL组件开发。
进程、线程、同步IO、异步IO、内存分配技术、API拦截和DLL注入、结构化异常。
内核、驱动编程。
推荐材料:
《深入浅出MFC》
《深入解析ATL 》(《 ATL Internals 》)
《 COM原理与应用》
《Windows核心编程》(《Windows via C/C++》)
《Windows驱动开发技术详解》
《Windows内核原理与实现 》
《天书夜谈-从汇编语言到Windows内核编程》
《寒江独钓——Windows内核安全编程》
WRK( Windows Research Kernel )源代码
不论Android或者IOS,它们使用的操作系统都是Linux的变体,所以熟悉Linux对学好Android和IOS是不可或缺的。
学习目标:就是操作系统必备的那一套,和Windows差不多,都摸熟了就可以了。(进程、调度、内存、中断异常、系统调用、信号、文件系统、同步和异步IO、驱动)
推荐材料:
《鸟叔的Linux私房菜》(入门教材,教你怎么操作,怎么使用命令的)
《UNIX 环境高级编程》(《Advanced Programming in the UNIXEnvironment》)
《Linux内核设计与实现》(《Linux Kernel Development》)
《深入理解Linux内核》 ( 《Understanding the Linux Kernel》)
《深入Linux内核架构》 ( 《Professional Linux KernelArchitecture》)
《Linux内核源代码情景分析》
《Linux设备驱动程序》 ( 《Linux Device Drivers》)
《精通Linux设备驱动程序开发》 ( 《Essential Linux Device Drivers》)
Linux源代码
学习要点:
Android原生应用开发(组件、工具包使用、api等级、manifest配置)
NDK(这个实际上是Java提供的,只是我们只在安卓上面用,才放在这里)(JNI实现原理,NDK编译工具链和mk文件写法)
adb(adb工具使用,adb通信协议)
Android压包和解包工具
Android内核和驱动开发
Dalvik虚拟机
推荐材料:
《精通Android》(《Pro Android 4》)
《 Android应用性能优化》(《Pro Android Apps PerformanceOptimization》)
《 Android底层开发技术实战详解:内核、移植和驱动 》
《 Android系统源代码情景分析》
老罗的博客 blog.csdn.net/luoshengyang
Dalvik虚拟机源代码
NDK工具链源代码
和Android相比,并不推荐大家花很多的时间在IOS上面。个人觉得ios对技术人员来说是个挺没有意思的平台。
学习要点:
熟悉xcode。
熟悉UI组件和工具库。
熟悉ios私有api。
了解objective-c和c++互通的原理。
推荐材料:
官方文档(精读)
《精通iOS开发》(《Beginning iOS6 Development》)
没事可以找个刷机的源代码研究研究
我们在写任何程序之前,一定要有一定的设计模式基础。不然写出来的代码会有各种毛病。
学习要点:
熟悉各种常用的设计模式,做到提到设计模式的名字就要想到对应的设计模式的意图、优缺点,以及对应的UML类图。
推荐材料:
GoF《设计模式-可复用面向对象软件的基础》
POSA 《面向模式的软件架构》 共5卷
游戏是最大也是最关键的主题。
笼统的讲,做出一款游戏,涉及到的东西应该有:
游戏资源管理、IO
游戏对象的管理和显示(渲染引擎)
游戏资源管理、
IO主要和操作系统相关,有了前面的积淀,对我们来说应该不成问题。
游戏资源管理主要是指文件资源打包机制和补丁机制。
打包对提高游戏性能至关重要,重点要解决的问题就是怎样更合理地设计文件资源包格式、合理地设计高效索引提高查找和读取的效率。可以理解为我们自己定制的一个简单的小型数据库。
推荐材料:
暴雪MPQ文件打包源代码
/ladislav-zezula/StormLib
技术要点:
计算机图形学
3D引擎基本结构和设计
各种3D对象是如何组织和渲染的
计算机图形学
2D/3D渲染引擎的数学基础。
学习要点:
光栅算法、不同类型图元的填充算法、反走样算法、三维几何变换、三维观察变换、样条逼近算法、场景树、子场景组织算法、可见面判别算法、光照模型以及面绘制算法(材质、光线、阴影、凹凸、雾、透明混合、镜面映射)、后处理算法。
学习计算机图形学,最忌讳的也一样是眼高手低、不求甚解。什么才叫学会计算机图形学?每一个公式推导你都能自己做,那才叫学会了。
推荐材料:
赫恩《计算机图形学》
《Mathematics for 3D GameProgramming & Computer Graphics》
Mesa 3D源代码(Mesa是OpenGL的开源实现)
Kazmath(cocos2d-x所用的开源数学库)
引擎基本结构和设计
也许很多人会问这个不是框架架构层面的东西么?为什么不是从OpenGL写小Demo入手?
这个道理和我们需要扎实的理论基础是一样的。了解什么是3D引擎,我们就有了一个全局的概念。然后才能一一击破。
学习要点:
第一次看:了解3D引擎层次结构,了解一个典型的3D所必须要有的功能模块和它们的作用,了解模块之间的关联关系,了解渲染引擎在3D引擎中的位置地位。
第二次看:结合开源引擎,深入理解各个模块的实现和当前最新的研究成果。
第三次看:灵活应用,自己动手模仿写基础的3D引擎。
第四次看:结合自己的实践和大量参阅开源3D引擎,明白当前流行的3D引擎各自的有点和缺点。然后弃其糟粕,取其精华。
推荐材料:
《游戏引擎架构》(《Game Engine Architecture》)
《3D Game Engine Design》
《 3D游戏编程大师技巧》
《REALTIME RENDERING》
其实DirectX和OpenGL在一个对等的位置,对于学习而言,两者都一样。DirectX函数设计封装更为彻底、方便,OpenGL的函数则更加简洁、干净、适合学习。但是冲着跨平台的特性,以后大部分人估计都会直接学习OpenGL了。
OpenGL是搭建3D世界的工具,所以一定要非常非常熟悉。OpenGL里面涉及的一些学习要点以前培训过,大家可以自己回顾一下。
推荐材料:
红宝书 《OpenGL编程指南》(《OpenGL Programming Guide》)
蓝宝书《OpenGL超级宝典》(《OpenGL SuperBible》)
Nehe 的OpenGL教程 nehe.gamedev.net
Mesa 3D源代码
这个有了图形学和OpenGL基础,自然就会明白了。所有的3D对象只是复杂度不同,组织方式不同,渲染的原理都是一样的。
学习要点:
常用3D模型格式、地形、树、植被、水、光晕、粒子、布告板、骨骼动画
推荐材料:
《Focus On 3D Terrain Programming》(3D地形)
《Advanced Animation with DirectX》(模型和动画)
GPU编程是3D开发很重要的一个环节。说到底就是Shader语言的应用。Shader可以上3D世界变得更加丰富多彩。很多绚丽的后处理效果都需要依靠Shader来实现。当然,最大限度的利用GPU的能力,已经是3D游戏突破性能瓶颈的最大利器。
相关的技术还有GPGPU(General Purpose GPU),即利用GPU的高速并行处理能力来去掉CPU多线程编程。
推荐材料:
《GPU 精粹》(《GPU Gems》)3卷
《Shadersfor Game Programmers and Artists》
《 Advanced Lighting And MaterialsWith Shaders》
AMD和NVIDIA官网
ACM Siggraph文献
和游戏相关的物理主要有刚体力学、柔体力学以及流体力学。
推荐材料:
&&Game Physics&&
&&Game Physics EngineDevelopment&&
&&Real-time CollisionDetection&&
Box2D引擎源码
LiquidFun引擎源码
Bullet引擎源码
人工智能是一个非常广泛的话题。对数学的要求较高,横跨好多学科。
学习要点:
基础的算法都应该有所了解,至少要知道个每个算法的实现原理和使用情景。
基于图和树的搜索(A*等)(*)
不确定性推理(贝叶斯网络、模糊逻辑等)
机器学习、模式识别(决策树、神经网络等)(*)
计算智能(蚁群算法、模拟退火算法等)(*)
自然语言处理(*)
有限状态机(*)
推荐材料:
《人工智能及其应用》
《高级人工智能》
《游戏开发中的人工智能 》
网络最重要的是要掌握7层模型,掌握TCP模型,掌握Http协议。
学习要点:
搞清楚7层模型上各有哪些协议
TCP协议细节
Http协议细节
常见IO模型(阻塞IO、非阻塞IO、IO复用、信号驱动IO、异步IO)以及常见设计模式(最经典的是POSA中提出的reactor模式)
熟悉windows下的完成端口和linux下的epoll
熟悉游戏服务器中常见的几种网络架构
推荐材料:
《POSA -并发和联网对象》 第二卷
《C++网络编程》2卷 (关于ACE网络框架的好书)
《TCP/IP》3卷(第一卷和第二卷较为经典)
《 UNIX网络编程》(《Unix Network Programming》)2卷
《Windows核心编程》
《Win32多线程程序设计》
MaNGOS源代码
(魔兽世界服务器复刻项目源码)
学习要点:
存储过程使用
数据库的几种锁的使用
熟悉数据库常见的几种存储引擎
推荐材料:
《Mysql必知必会》
《高性能MySQL 》
《深入理解Mysql核心技术》(剖析源码)
Mysql源代码
多线程主要是要熟悉windows的Thread和内核对象,Linux下的pthread。然后就是如何处理线程竞争,做好同步工作。
内存池没有专门的书籍介绍,大家可以到网上搜索基础算法。也可以看看Memcache的源代码。
这套书总共有7卷,以小专题形式讨论游戏的各个方面,推荐大家阅读,非常有帮助。
其他一个比较重要而艰深的主题是
,有时间也要研究透。
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致Linux下有哪些游戏值得推荐?
按投票排序
毫无疑问是Nethack原文:原文:作者: Mike Saunders译文:LCTT
这款游戏非常容易让你上瘾。你可能需要花费一生的时间来掌握它。许多人玩了几十年也没有通关。欢迎来到 NetHack 的世界...不管你信不信,在 NetHack 里你见到字母 D 的时候你会被吓着。但是当你看见一个 % 的时候,你将会欣喜若狂。(忘了说 ^,你看见它将会更激动)在你寻思我们的脑子是不是烧坏了并准备关闭浏览器标签之前,请给我们一点时间解释:这些符号分别代表龙、食物以及陷阱。欢迎来到 NetHack 的世界,在这里你的想象力需要发挥巨大的作用。如你所见,NetHack 是一款文字模式的游戏:它仅仅使用标准终端字符集来刻画玩家、敌人、物品还有环境。游戏的图形版是存在的,不过 NetHack 的骨灰级玩家们都倾向于不去使用它们,问题在于假如你使用图形界面,当你通过 SSH 登录到你的古董级的运行着 NetBSD 的 Amiga 3000 上时,你还能进行游戏吗?在某些方面,NetHack 和 Vi 非常相似 - 几乎被移植到了现存的所有的操作系统上,并且依赖都非常少。那么问题来了,和现代游戏相比如此简陋的画面,是什么造就了 NetHack 如此巨大的吸引力的呢? 事实上,这款地牢探险类神作有着令人难以置信的丰富细节。有太多的东西等着你去发掘:法术释放、怪物战斗以及技巧学习 - 以及随机生成的地牢。有太多的东西等着你去探索,几乎没有哪两局游戏会是完全一样的。许多人玩了几十年也没有通关,每次游戏依然能发现一些以前不知道的秘密。接下来,我们会向你讲述 NetHack 的历史,给你地牢探险的基本指导,再告诉你一些技巧。免责: 在你继续阅读本文之前,视为你已经自动同意了当你沉溺于 NetHack 以致影响到你的现实生活时,你不会起诉我们。NetHack 界面也许是最古老的仍在开发的游戏里名非其实,NetHack 并不是一款网络游戏。它只不过是基于一款出现较早的名为 Hack 的地牢探险类游戏开发出来的,而这款 Hack 游戏是 1980 年的游戏 Rogue 的后代。NetHack 在 1987 年发布了第一个版本,并于 2003 年发布了 3.4.3 版本,尽管在这期间一直没有加入新的功能,但各种补丁、插件,以及衍生作品还是在网络上疯狂流传。这使得它可以说是最古老的、拥有众多对游戏乐此不疲的粉丝的游戏。当你访问
之后,你就会了解我们的意思了 - 骨灰级的 NetHack 的玩家们仍然聚集在一起讨论新的策略、发现和技巧。偶尔你也可以发现 NetHack 的元老级玩家在历经千辛万苦终于通关之后发出的欢呼。但怎样才能通关呢?首先,NetHack 被设定在既大又深的地牢中。游戏开始时你在最顶层 - 第 1 层 - 你的目标是不断往下深入直到你找到一个非常宝贵的物品,护身符 Yendor。通常来说 Yendor 在 第 20 层或者更深的地方,但它是可以变化的。随着你在地牢的不断深入,你会遇到各种各样的怪物、陷阱以及 NPC;有些会试图杀掉你,有些会挡在你前进的路上,还有些... 总而言之,在你靠近 TA 们之前你永远不知道 TA 们会怎样。要学习的有太多太多,绝大多数物品只有在和其他物品同时使用的情况下才会发挥最好的效果。使 NetHack 如此引人入胜的原因是游戏中所加入的大量物品。武器、盔甲、附魔书、戒指、宝石 - 要学习的有太多太多,绝大多数物品只有在和其他物品同时使用的情况下才会发挥最好的效果。怪物在死亡后经常会掉落一些有用的物品,以及某些物品如果你不正确使用的话会产生及其不良的作用。你可以在地牢找到商店,里面有许多看似平凡实则非常有用的物品,不过别指望店主能给你详细的描述。你只能靠自己的经验来了解各个物品的用途。有些物品确实没有太大用处,NetHack 中有很多的恶搞元素 - 比如你可以把一块奶油砸到自己的脸上。不过在你踏入地牢之前,NetHack 会询问你要选择哪种角色进行游戏。你可以为你接下来的地牢之行选择骑士、修道士、巫师,或者卑微的旅者,还有许多其他的角色类型。每种角色都有其独特的优势与弱点,NetHack 的重度玩家喜欢选择那些相对较弱的角色来挑战游戏。你懂的,这样可以向其他玩家炫耀自己的实力。情报不会降低游戏的乐趣用 NetHack 的说法来讲,“情报员”给指其他玩家提供关于怪物、物品、武器和盔甲信息的玩家。理论上来说,完全可以不借助任何外来信息而通关,但几乎没有几个玩家能做到,游戏实在是太难了。因此使用情报并不会被视为一件糟糕的事情 - 但是一开始由你自己来探索游戏和解决难题,这样才会获得更多的乐趣,只有当你遇到瓶颈的时候再去使用那些情报。在这里给出一个比较有名的情报站点 ,其中的情报被分为了不同的类别。游戏中随机发生的事,比如在喷泉旁饮水可能导致的不同结果,从这里你可以得知已确定的不同结果的发生概率。你的首次地牢之行NetHack 几乎可以在所有的主流操作系统以及 Linux 发行版上运行,因此你可以通过 "apt-get install nethack" 或者 "yum install nethack" 等适合你用的发行版的命令来安装游戏。安装完毕后,在一个命令行窗口中键入 "nethack" 就可以开始游戏了。游戏开始时系统会询问是否为你随机挑选一位角色 - 但作为一个新手,你最好自己从里面挑选一位比较强的角色。所以,你应该点 "n",然后点 "v" 以选取女武神(Valkyrie),而点 "d" 会选择成为侏儒(dwarf)。接着 NetHack 上会显示出剧情,说你的神正在寻找护身符 Yendor,你的目标就是找到它并将它带给神。阅读完毕后点击空格键(其他任何时候当你见到屏幕上的 "-More-" 时都可以这样)。接着就让我们出发 - 开始地牢之行吧!先前已经介绍过了,你的角色用 @ 来表示。你可以看见角色所出房间周围的墙壁,房间里显示“点”的那些地方是你可以移动的空间。首先,你得明白怎样移动角色:h、j、k 以及 l。(是的,和 Vim 中移动光标的操作相同)这些操作分别会使角色向向左、向下、向上以及向右移动。你也可以通过 y、u、b 和 n 来使角色斜向移动。在你熟悉如何控制角色移动前你最好在房间里来回移动你的角色。NetHack 采用了回合制,因此即使你不进行任何动作,游戏仍然在进行。这是你可以提前计划你的行动。你可以看见一个 "d" 字符或者 "f" 字符在房间里来回移动:这是你的宠物狗/猫,(通常情况下)它们不会伤害你而是帮助你击杀怪物。但是宠物也会被惹怒 - 它们偶尔也会抢在你接近食物或者怪物尸体之前吃掉它们。
你应该试试teeworlds
linux 下现在出了好多游戏 包括Minecraft, 火炬之光,CS, 求生之路,传送门,经典独立游戏如braid, cave story, 机械迷城, dota2, 我个人都挺喜欢玩的,还有手机上很火的皇家保卫战等等都有linux版本特别是steam进入linux后,linux下的游戏飞速增长,今天为止支持steam for linux的游戏已经上升到了440个了开源游戏有 0ad, super tux cart
韦诺之战或者扫雷坑
最近刚打通了Witcher 2,等着Hearts of Iron IV出来的时候又手贱买了Factorio……抛开Steam不谈,还有一款叫Drawf Fortress的可以玩——2D版生存模式的多人Minecraft。
0AD==================================更新我最近在玩Cities: Skylines,根本停不下来。。。。
steam上linux平台销量前50都是好游戏。
看到有人说Nethack就坐不住了,要说游戏性的话果断是大灾变(CDDA,cataclysmdda)啊!!以下内容来之3DM: 大灾变(Cataclysm)是一款Roguelike游戏,整个游戏发生于末日后的世界。在这个游戏中,生存是非常困难的,你将处于一个非常恶劣的环境中,不但物资匮乏、装备稀缺,而且随处可见食肉的僵尸和各种奇怪甚至畸形的生物。
但是,只有你有足够的谨慎和一点运气,生存下去也不是难事。你可以在森林里静静的埋伏着,用手里的长弓勉强维持自己的生计。你也可以开着一辆破车进城,使
用火力扫清前方的障碍。如果你还担心安全问题,那么造一个坚固的堡垒吧,在周围放上陷阱,你便可以高枕无忧了。随着游戏的深入,你玩的时间越长,经验就越
丰富,获得的装备越多,相应的,你面对威胁的应变能力也就越强。
在严峻的形势面前,你也会面对许多机遇和挑战,它们将是你改变人生的转折点。这个世界中流传着许多强大的幸存者的故事,他们在灾变之后的辐射中发生了变
异,这些变异导致他们的身体和大脑都产生了质的改变。这些突变的表现形式,有的类似于虫子,有的类似于鸟类,有的则类似于鱼类,不管怎样,这些形式都让他
们得以更好的生存下去。以下最近在玩的一个存档的游戏截图:虽然说这画面被吐槽满屏幕的游戏性,但是这游戏的可玩性非常非常高,你可以往自己身上装上各种各样的生化插件把自己改造成一位“钢铁侠”;也可以寻找变异之路,让自己强大得无人能敌;当然你也可以选择成为普通人,攒辆车,走上自己的旅途;你甚至可以到荒郊野外的地方找一块土地开垦,勤勤恳恳的成为一名世界末日的农民……一千个CDDA玩家有一千种CDDA的玩法。而且最难能可贵的是CDDA的作者知道现在都还坚持着每礼拜都有对游戏进行更新,每礼拜都有新的元素被添加到CDDA里面。虽然说这画面被吐槽满屏幕的游戏性,但是这游戏的可玩性非常非常高,你可以往自己身上装上各种各样的生化插件把自己改造成一位“钢铁侠”;也可以寻找变异之路,让自己强大得无人能敌;当然你也可以选择成为普通人,攒辆车,走上自己的旅途;你甚至可以到荒郊野外的地方找一块土地开垦,勤勤恳恳的成为一名世界末日的农民……一千个CDDA玩家有一千种CDDA的玩法。而且最难能可贵的是CDDA的作者知道现在都还坚持着每礼拜都有对游戏进行更新,每礼拜都有新的元素被添加到CDDA里面。所以说非常推荐大家来玩CDDA这款末日题材类的游戏!!!——————————————————————忘了,最后发一下CDDA的官网:
一下子说不完,我给你个链接,你自己看看吧:
已有帐号?
无法登录?
社交帐号登录

我要回帖

更多关于 linux值得安装的软件 的文章

 

随机推荐