MysqlHelper使用反射机制智能推算数据类型以及属性名称
class MySqlHelper { private string ConnString; public MySqlHelper(string connectionString) { ConnString = connectionString; } public IList<T> RunMySqlSelect4ReturnList<T>(string strCommand) where T : new() { MySqlCommand mySqlCommand = new MySqlCommand(); mySqlCommand.CommandText = strCommand.ToString(); IList<PropertyInfo> ilPropertyInfo = typeof(T).GetProperties().ToList(); //p[0].Name =travel_id; IList<T> ilResult = new List<T>(); DataTable dt = new DataTable(); using (MySqlConnection conn = new MySqlConnection(this.ConnString)) { conn.Open(); using (MySqlCommand cmd = mySqlCommand) { cmd.Connection = conn; using (MySqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.SequentialAccess)) { dt.Load(rdr); } } } foreach (DataRow dr in dt.Rows) { T tItem = new T(); foreach (var v in ilPropertyInfo) { if (dt.Columns[v.Name] == null) continue; ConvertionExtensions.SetValue(tItem, v.Name, dr[v.Name]); } ilResult.Add(tItem); } return ilResult; } public T getSinggleObj<T>(string strCommand) where T : new() { MySqlCommand mySqlCommand = new MySqlCommand(); mySqlCommand.CommandText = strCommand.ToString(); IList<PropertyInfo> ilPropertyInfo = typeof(T).GetProperties().ToList(); //p[0].Name =travel_id; T ilResult = new T(); DataTable dt = new DataTable(); using (MySqlConnection conn = new MySqlConnection(this.ConnString)) { conn.Open(); using (MySqlCommand cmd = mySqlCommand) { cmd.Connection = conn; using (MySqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.SequentialAccess)) { dt.Load(rdr); } } } if (dt.Rows.Count <= 0) { return default(T); } else { foreach (DataRow dr in dt.Rows) { T tItem = new T(); foreach (var v in ilPropertyInfo) { if (dt.Columns[v.Name] == null) continue; ConvertionExtensions.SetValue(tItem, v.Name, dr[v.Name]); } ilResult = tItem; } } return ilResult; } public IList<T> RunMySqlSelect4ReturnList<T>(DataTable dts) where T : new() { IList<PropertyInfo> ilPropertyInfo = typeof(T).GetProperties().ToList(); //p[0].Name =travel_id; IList<T> ilResult = new List<T>(); DataTable dt = dts; foreach (DataRow dr in dt.Rows) { T tItem = new T(); foreach (var v in ilPropertyInfo) { if (dt.Columns[v.Name] == null) continue; ConvertionExtensions.SetValue(tItem, v.Name, dr[v.Name]); } ilResult.Add(tItem); } return ilResult; } } public static class ConvertionExtensions { public static T ConvertTo<T>(this IConvertible convertibleValue) { var t = typeof(T); if (null == convertibleValue) { return default(T); } if (!typeof(T).IsGenericType) { return (T)Convert.ChangeType(convertibleValue, typeof(T)); } else { Type genericTypeDefinition = typeof(T).GetGenericTypeDefinition(); if (genericTypeDefinition == typeof(Nullable<>)) { return (T)Convert.ChangeType(convertibleValue, Nullable.GetUnderlyingType(typeof(T))); } } throw new InvalidCastException(string.Format("Invalid cast from type "{0}" to type "{1}".", convertibleValue.GetType().FullName, typeof(T).FullName)); } public static void SetValue(object inputObject, string propertyName, object propertyVal) { //find out the type Type type = inputObject.GetType(); //get the property information based on the type System.Reflection.PropertyInfo propertyInfo = type.GetProperty(propertyName); //find the property type Type propertyType = propertyInfo.PropertyType; //Convert.ChangeType does not handle conversion to nullable types //if the property type is nullable, we need to get the underlying type of the property var targetType = IsNullableType(propertyInfo.PropertyType) ? Nullable.GetUnderlyingType(propertyInfo.PropertyType) : propertyInfo.PropertyType; //Returns an System.Object with the specified System.Type and whose value is //equivalent to the specified object. propertyVal = Convert.ChangeType(propertyVal, targetType); //Set the value of the property propertyInfo.SetValue(inputObject, propertyVal, null); } private static bool IsNullableType(Type type) { return type.IsGenericType && type.GetGenericTypeDefinition().Equals(typeof(Nullable<>)); } }
MysqlHelper使用反射机制智能推算数据类型以及属性名称
标签:
小编还为您整理了以下内容,可能对您也有帮助:
如何通过java反射将数据库表生成实体类
首先有几点声明:
1、代码是在别人的基础进行改写的;
2、大家有什么改进的意见可以告诉我,也可以自己改好共享给其他人;
3、刚刚毕业,水平有限,肯定有许多不足之处;
4、希望刚刚学习java的同学能有所启发。
//这个是做转换的类,里面的DB只是封装了数据库的连接,大家可以用自己的,随意
package com.tt.util.gen.entity.tool;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Properties;
import com.tt.util.DB;
public class GenEntityMysql {
private String packageOutPath;// 指定实体生成所在包的路径
private String authorName;// 作者名字
private String tablename;// 表名
private String databasename;// 数据库名
private List<String> tablenames;// 拿到对应数据库中所有的实体类(实体类需要与其他表明做区分)
private List<String> colnames; // 列名集合
private List<String> colTypes; // 列名类型集合
private boolean f_util = false; // 是否需要导入包java.util.*
private boolean f_sql = false; // 是否需要导入包java.sql.*
/*
* 构造函数
*/
public GenEntityMysql() {
// 使用properties读取配置文件
Properties prop = new Properties();
try {
InputStream genentity = getClass().getResourceAsStream(
"/genentity.properties");
prop.load(genentity);
if (genentity != null) {
genentity.close();
}
} catch (Exception e) {
System.out.println("file " + "catalogPath.properties"
+ " not found!\n" + e);
}
this.databasename = prop.getProperty("databasename").toString();
this.tablename = prop.getProperty("tablename").toString();
this.packageOutPath = prop.getProperty("packageOutPath").toString();
this.authorName = prop.getProperty("authorName").toString();
}
// 创建多个实体类
private void genEntity(List<String> tablenames, Connection conn) {
// 使用第归生成文件
for (String tablename : tablenames) {
this.genEntity(tablename, conn);
}
}
// 创建单个实体类
private void genEntity(String tablename, Connection conn) {
String sql = "select * from " + tablename;
PreparedStatement pstmt = null;
ResultSetMetaData rsmd = null;
try {
pstmt = DB.getPStmt(conn, sql);
rsmd = pstmt.getMetaData();
int size = rsmd.getColumnCount(); // 统计列
colnames = new ArrayList<String>();
colTypes = new ArrayList<String>();
for (int i = 0; i < size; i++) {
colnames.add(rsmd.getColumnName(i + 1));
colTypes.add(rsmd.getColumnTypeName(i + 1));
if (colTypes.get(i).equalsIgnoreCase("datetime")) {
f_util = true;
}
if (colTypes.get(i).equalsIgnoreCase("image")
|| colTypes.get(i).equalsIgnoreCase("text")) {
f_sql = true;
}
}
System.out.println(colnames);
System.out.println(colTypes);
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} finally {
DB.close(pstmt);
}
// 在内存中生成代码
String content = parse(tablename);
// 写入到文件中
try {
File directory = new File("");
String outputPath = directory.getAbsolutePath() + "/src/"
+ this.packageOutPath.replace(".", "/") + "/";
System.out.println("写出的路径:" + outputPath);
// 检测路径是否存在,不存在就创建路径
File path = new File(outputPath);
if (!path.exists() && !path.isDirectory()) {
path.mkdir();
System.out.println(path.exists());
}
// 创建文件
outputPath += initcap(tablename) + ".java";
File file = new File(outputPath);
if (!file.exists()) {
file.createNewFile();
}
// 写出到硬盘
FileWriter fw = new FileWriter(file);
PrintWriter pw = new PrintWriter(fw);
pw.println(content);
pw.flush();
pw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private void getAllEntityTable(Connection conn, List<String> tablenames) {
ResultSet rs = null;
try {
DatabaseMetaData dmd = (DatabaseMetaData) conn.getMetaData();
/*
* TABLE_CAT String => 表类别(可为 null)
* TABLE_SCHEM String => 表模式(可为null)
* TABLE_NAME String => 表名称
* TABLE_TYPE String => 表类型
*/
rs = dmd.getTables(null, null, "%", null);
while (rs.next()) {
tablenames.add(rs.getString("TABLE_NAME"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
*
* @param tablename
* @return
*/
private String parse(String tablename) {
StringBuffer sb = new StringBuffer();
// 判断是否导入工具包
if (f_util) {
sb.append("import java.util.Date;\r\n");
}
if (f_sql) {
sb.append("import java.sql.*;\r\n");
}
sb.append("package " + this.packageOutPath + ";\r\n");
sb.append("\r\n");
// 注释部分
sb.append(" /**\r\n");
sb.append(" * " + tablename + " 实体类\r\n");
sb.append(" * " + new Date() + " " + this.authorName + "\r\n");
sb.append(" */ \r\n");
// 实体部分
sb.append("\r\n\r\npublic class " + initcap(tablename) + "{\r\n");
processAllAttrs(sb);// 属性
processAllMethod(sb);// get set方法
sb.append("}\r\n");
return sb.toString();
}
/**
* 功能:生成所有属性
*
* @param sb
*/
private void processAllAttrs(StringBuffer sb) {
for (int i = 0; i < colnames.size(); i++) {
sb.append("\tprivate " + sqlType2JavaType(colTypes.get(i)) + " "
+ colnames.get(i) + ";\r\n");
}
}
/**
* 功能:生成所有方法
*
* @param sb
*/
private void processAllMethod(StringBuffer sb) {
for (int i = 0; i < colnames.size(); i++) {
sb.append("\tpublic void set" + initcap(colnames.get(i)) + "("
+ sqlType2JavaType(colTypes.get(i)) + " " + colnames.get(i)
+ "){\r\n");
sb.append("\t\tthis." + colnames.get(i) + "=" + colnames.get(i)
+ ";\r\n");
sb.append("\t}\r\n");
sb.append("\tpublic " + sqlType2JavaType(colTypes.get(i)) + " get"
+ initcap(colnames.get(i)) + "(){\r\n");
sb.append("\t\treturn " + colnames.get(i) + ";\r\n");
sb.append("\t}\r\n");
}
}
/**
* 功能:将输入字符串的首字母改成大写
*
* @param str
* @return
*/
private String initcap(String str) {
char[] ch = str.toCharArray();
if (ch[0] >= 'a' && ch[0] <= 'z') {
ch[0] = (char) (ch[0] - 32);
}
return new String(ch);
}
/**
* 功能:获得列的数据类型
*
* @param sqlType
* @return
*/
private String sqlType2JavaType(String sqlType) {
if (sqlType.equalsIgnoreCase("bit")) {
return "boolean";
} else if (sqlType.equalsIgnoreCase("tinyint")) {
return "byte";
} else if (sqlType.equalsIgnoreCase("smallint")) {
return "short";
} else if (sqlType.equalsIgnoreCase("int")) {
return "int";
} else if (sqlType.equalsIgnoreCase("bigint")) {
return "long";
} else if (sqlType.equalsIgnoreCase("float")) {
return "float";
} else if (sqlType.equalsIgnoreCase("decimal")
|| sqlType.equalsIgnoreCase("numeric")
|| sqlType.equalsIgnoreCase("real")
|| sqlType.equalsIgnoreCase("money")
|| sqlType.equalsIgnoreCase("smallmoney")) {
return "double";
} else if (sqlType.equalsIgnoreCase("varchar")
|| sqlType.equalsIgnoreCase("char")
|| sqlType.equalsIgnoreCase("nvarchar")
|| sqlType.equalsIgnoreCase("nchar")
|| sqlType.equalsIgnoreCase("text")) {
return "String";
} else if (sqlType.equalsIgnoreCase("datetime")) {
return "Date";
} else if (sqlType.equalsIgnoreCase("image")) {
return "Blod";
}
return null;
}
/**
* 出口 TODO
*
* @param args
*/
public static void main(String[] args) {
new GenEntityMysql().start();
}
private void start() {
// 创建连接
Connection conn = DB.getConn();
if (databasename != null && !databasename.equals("")
&& tablename != null && !tablename.equals("")) {
System.out.println("databasename 和 tablename 不能同时存在");
} else {
// 如果配置文件中有数据库名字,则可以拿到其中所有的实体类
if (databasename != null && !databasename.equals("")) {
// 获取所有实体表名字
tablenames = new ArrayList<String>();
getAllEntityTable(conn, tablenames);
System.out.println(tablenames);
// 为每个实体表生成实体类
genEntity(tablenames, conn);
} else {
// 为指定实体表生成实体类
genEntity(tablename, conn);
}
// 关闭数据库连接
if (conn != null) {
DB.close(conn);
}
}
}
}
如何通过java反射将数据库表生成实体类
首先有几点声明:
1、代码是在别人的基础进行改写的;
2、大家有什么改进的意见可以告诉我,也可以自己改好共享给其他人;
3、刚刚毕业,水平有限,肯定有许多不足之处;
4、希望刚刚学习java的同学能有所启发。
//这个是做转换的类,里面的DB只是封装了数据库的连接,大家可以用自己的,随意
package com.tt.util.gen.entity.tool;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Properties;
import com.tt.util.DB;
public class GenEntityMysql {
private String packageOutPath;// 指定实体生成所在包的路径
private String authorName;// 作者名字
private String tablename;// 表名
private String databasename;// 数据库名
private List<String> tablenames;// 拿到对应数据库中所有的实体类(实体类需要与其他表明做区分)
private List<String> colnames; // 列名集合
private List<String> colTypes; // 列名类型集合
private boolean f_util = false; // 是否需要导入包java.util.*
private boolean f_sql = false; // 是否需要导入包java.sql.*
/*
* 构造函数
*/
public GenEntityMysql() {
// 使用properties读取配置文件
Properties prop = new Properties();
try {
InputStream genentity = getClass().getResourceAsStream(
"/genentity.properties");
prop.load(genentity);
if (genentity != null) {
genentity.close();
}
} catch (Exception e) {
System.out.println("file " + "catalogPath.properties"
+ " not found!\n" + e);
}
this.databasename = prop.getProperty("databasename").toString();
this.tablename = prop.getProperty("tablename").toString();
this.packageOutPath = prop.getProperty("packageOutPath").toString();
this.authorName = prop.getProperty("authorName").toString();
}
// 创建多个实体类
private void genEntity(List<String> tablenames, Connection conn) {
// 使用第归生成文件
for (String tablename : tablenames) {
this.genEntity(tablename, conn);
}
}
// 创建单个实体类
private void genEntity(String tablename, Connection conn) {
String sql = "select * from " + tablename;
PreparedStatement pstmt = null;
ResultSetMetaData rsmd = null;
try {
pstmt = DB.getPStmt(conn, sql);
rsmd = pstmt.getMetaData();
int size = rsmd.getColumnCount(); // 统计列
colnames = new ArrayList<String>();
colTypes = new ArrayList<String>();
for (int i = 0; i < size; i++) {
colnames.add(rsmd.getColumnName(i + 1));
colTypes.add(rsmd.getColumnTypeName(i + 1));
if (colTypes.get(i).equalsIgnoreCase("datetime")) {
f_util = true;
}
if (colTypes.get(i).equalsIgnoreCase("image")
|| colTypes.get(i).equalsIgnoreCase("text")) {
f_sql = true;
}
}
System.out.println(colnames);
System.out.println(colTypes);
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} finally {
DB.close(pstmt);
}
// 在内存中生成代码
String content = parse(tablename);
// 写入到文件中
try {
File directory = new File("");
String outputPath = directory.getAbsolutePath() + "/src/"
+ this.packageOutPath.replace(".", "/") + "/";
System.out.println("写出的路径:" + outputPath);
// 检测路径是否存在,不存在就创建路径
File path = new File(outputPath);
if (!path.exists() && !path.isDirectory()) {
path.mkdir();
System.out.println(path.exists());
}
// 创建文件
outputPath += initcap(tablename) + ".java";
File file = new File(outputPath);
if (!file.exists()) {
file.createNewFile();
}
// 写出到硬盘
FileWriter fw = new FileWriter(file);
PrintWriter pw = new PrintWriter(fw);
pw.println(content);
pw.flush();
pw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private void getAllEntityTable(Connection conn, List<String> tablenames) {
ResultSet rs = null;
try {
DatabaseMetaData dmd = (DatabaseMetaData) conn.getMetaData();
/*
* TABLE_CAT String => 表类别(可为 null)
* TABLE_SCHEM String => 表模式(可为null)
* TABLE_NAME String => 表名称
* TABLE_TYPE String => 表类型
*/
rs = dmd.getTables(null, null, "%", null);
while (rs.next()) {
tablenames.add(rs.getString("TABLE_NAME"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
*
* @param tablename
* @return
*/
private String parse(String tablename) {
StringBuffer sb = new StringBuffer();
// 判断是否导入工具包
if (f_util) {
sb.append("import java.util.Date;\r\n");
}
if (f_sql) {
sb.append("import java.sql.*;\r\n");
}
sb.append("package " + this.packageOutPath + ";\r\n");
sb.append("\r\n");
// 注释部分
sb.append(" /**\r\n");
sb.append(" * " + tablename + " 实体类\r\n");
sb.append(" * " + new Date() + " " + this.authorName + "\r\n");
sb.append(" */ \r\n");
// 实体部分
sb.append("\r\n\r\npublic class " + initcap(tablename) + "{\r\n");
processAllAttrs(sb);// 属性
processAllMethod(sb);// get set方法
sb.append("}\r\n");
return sb.toString();
}
/**
* 功能:生成所有属性
*
* @param sb
*/
private void processAllAttrs(StringBuffer sb) {
for (int i = 0; i < colnames.size(); i++) {
sb.append("\tprivate " + sqlType2JavaType(colTypes.get(i)) + " "
+ colnames.get(i) + ";\r\n");
}
}
/**
* 功能:生成所有方法
*
* @param sb
*/
private void processAllMethod(StringBuffer sb) {
for (int i = 0; i < colnames.size(); i++) {
sb.append("\tpublic void set" + initcap(colnames.get(i)) + "("
+ sqlType2JavaType(colTypes.get(i)) + " " + colnames.get(i)
+ "){\r\n");
sb.append("\t\tthis." + colnames.get(i) + "=" + colnames.get(i)
+ ";\r\n");
sb.append("\t}\r\n");
sb.append("\tpublic " + sqlType2JavaType(colTypes.get(i)) + " get"
+ initcap(colnames.get(i)) + "(){\r\n");
sb.append("\t\treturn " + colnames.get(i) + ";\r\n");
sb.append("\t}\r\n");
}
}
/**
* 功能:将输入字符串的首字母改成大写
*
* @param str
* @return
*/
private String initcap(String str) {
char[] ch = str.toCharArray();
if (ch[0] >= 'a' && ch[0] <= 'z') {
ch[0] = (char) (ch[0] - 32);
}
return new String(ch);
}
/**
* 功能:获得列的数据类型
*
* @param sqlType
* @return
*/
private String sqlType2JavaType(String sqlType) {
if (sqlType.equalsIgnoreCase("bit")) {
return "boolean";
} else if (sqlType.equalsIgnoreCase("tinyint")) {
return "byte";
} else if (sqlType.equalsIgnoreCase("smallint")) {
return "short";
} else if (sqlType.equalsIgnoreCase("int")) {
return "int";
} else if (sqlType.equalsIgnoreCase("bigint")) {
return "long";
} else if (sqlType.equalsIgnoreCase("float")) {
return "float";
} else if (sqlType.equalsIgnoreCase("decimal")
|| sqlType.equalsIgnoreCase("numeric")
|| sqlType.equalsIgnoreCase("real")
|| sqlType.equalsIgnoreCase("money")
|| sqlType.equalsIgnoreCase("smallmoney")) {
return "double";
} else if (sqlType.equalsIgnoreCase("varchar")
|| sqlType.equalsIgnoreCase("char")
|| sqlType.equalsIgnoreCase("nvarchar")
|| sqlType.equalsIgnoreCase("nchar")
|| sqlType.equalsIgnoreCase("text")) {
return "String";
} else if (sqlType.equalsIgnoreCase("datetime")) {
return "Date";
} else if (sqlType.equalsIgnoreCase("image")) {
return "Blod";
}
return null;
}
/**
* 出口 TODO
*
* @param args
*/
public static void main(String[] args) {
new GenEntityMysql().start();
}
private void start() {
// 创建连接
Connection conn = DB.getConn();
if (databasename != null && !databasename.equals("")
&& tablename != null && !tablename.equals("")) {
System.out.println("databasename 和 tablename 不能同时存在");
} else {
// 如果配置文件中有数据库名字,则可以拿到其中所有的实体类
if (databasename != null && !databasename.equals("")) {
// 获取所有实体表名字
tablenames = new ArrayList<String>();
getAllEntityTable(conn, tablenames);
System.out.println(tablenames);
// 为每个实体表生成实体类
genEntity(tablenames, conn);
} else {
// 为指定实体表生成实体类
genEntity(tablename, conn);
}
// 关闭数据库连接
if (conn != null) {
DB.close(conn);
}
}
}
}
明天专业游戏专业概论答案
小测试(答案部分)
1.游戏发展的两个极端分别是纯游戏、复杂的拟真化。
2.游戏被称为第九艺术,那么前八种艺术分别为:绘画、雕塑、文学、
音乐、建筑、影视、舞蹈、戏剧。
3.游戏技术使用方面的两个发展方向是专业游戏厂商选用通用硬件平台、游戏公司都为PC开发游戏。
小测试(答案部分)
1.1946年世界上第一台计算机ENIAC出现。
2.1961年世界公认的第一个电子游戏宇宙战争出现。
3.1974年埃德.罗伯茨发明了世界上第一台PC电脑。
4.作为游戏业奠基石的三条基本原则是什么?尽可能充分利用现有的硬件资源,并将其推向极限;在一个持续时段内尽可能提高程序的变化性;务必使观者积极愉快的参与进来。
小测试(答案部分)
1.市场调研可以细分为数据获取、数据分析两个过程。
2.游戏策划内容主要包括内容系统性、表达明确性两个部分。
3.游戏开发主要包括技术选用、结构设计、项目组织等内容。
4.市场运营主要包括市场宣传、产品定价、售后服务等内容。
小测试(答案部分)
1.美术总监(主美)的管理工作性质是协调整个小组工作、统一整体绘画风格、整合所有美术元素。
2.网络游戏程序员现分为客户端开发工程师和服务器端开发工程师。
3.游戏产品经理主要负责一款游戏的产品包装、市场宣传、运营销售策略的制定等工作。
4.随游戏行业的快速发展而衍生出的一些新职业有游戏推广员、职业战队、游戏带练、游戏商人等。
小测试(答案部分)
1. 游戏的含义是什么?游戏就是按照一定规则进行的交互式娱乐行为。
2. 什么是规则?一个游戏在进行的过程中,所有参与游戏的人员必需遵守的行
为准则。
3. 游戏主要具备交互性、游戏模式、行为规则、娱乐性、满足感五种特征。
4. 电子游戏主要具备现实模仿真实性、采用技术复杂性、游戏内容丰富性、时
间空间虚拟性四个特性。
小测试(答案部分)
1、电子游戏分类时考虑的类型范式中最主要的四项分别是主题、故事情节、视觉风格、游戏规则。
2、电子游戏类型演变过程的三个阶段分别是初始阶段、确立阶段、融合阶段。
3、目前流行的分类中基本分类包括:动作类、冒险类、模拟类、益智类、经营类。
小测试(答案部分)
1、人类的5个基本需求是:生理的需求、安全的需求、社交的需求、尊重的需求、自我实现的需求
2、游戏能够满足人类5个需求中的:安全的需求、社交的需求、尊重的需求、自我实现的需求。
3、玩家需求中的“体验”包括:情感体验、幻想体验
小测试(答案部分)
1、列出3个以扮演为主要内容的游戏:仙剑奇侠传、剑侠情缘、博德之门
2、列出3个以洞察为主要内容的游戏:扫雷、空挡接龙、逆转裁判
3、列出3个以冒险为主要内容的游戏:生化危机、恐龙危机、鬼武者
4 、 玩家期望中的操作体现在游戏自身操作的一致性、与其他游戏操作的一致性
两个方面。
5 、 玩家需求对游戏的题材、操作、制作技术、游戏内容等方面会有相当大的影响。
小测试(答案部分)
1 .游戏设计文档的主要功能有:指导游戏开发的顺利进行、确保游戏主题的连贯性、确保游戏项目的持续性。
2 .公认的游戏设计文档应具有以下特点:便于阅读、避免重复、简洁明确。
3 .常用的文字表格处理工具有:Word、Excel、PowerPoint。
4、常用图形图像处理工具中常用三维软件包:MAYA、3Dmax、Light Wave 。
5 .常用游戏引擎编辑器有:Unreal、Radiant系列等。
小测试(答案部分)
1. 策划文档的中需要注意的编写误区:编写过于简单、过多地描写背景故事 、过于繁琐 、过多的幻想、没有及时更新 。
2. 游戏策划的应该具备哪些基本素质:对市场敏锐的洞察力 、要能够充分了解玩家的心理 、对游戏其他部门的工作有所了解、有影视、美术、文学方面的功底、能够虚心采纳别人的合理化建议、对游戏制作有持续的极大热情。
小测试(答案部分)
1.获得游戏创意的主要途径:发挥自身想象力、从其他媒体获得创意、从其他游戏获得创意。
2.从游戏技术方面考虑游戏设计时应考虑的引擎情况包括:使用公司原有引擎、在原有引擎基础上升级、开发新的游戏引擎、引进游戏引擎。
3.构思游戏时应考虑技术环境、时间和成本上的制约因素。
小测试(答案部分)
1.一个完整的游戏创意说明书包括:游戏名称、游戏类型、游戏内容、游戏特点描述、玩家操作、游戏风格六部分内容。
2.游戏开发各项工作始终围绕游戏创意进行,贯彻游戏创意在工作中要做到细化创意、调整创意。
3.编写游戏创意说明书是应注意:避免引用其他游戏、避免无谓形容。
4.游戏创意说明书的作用:立项报告、策划文档、宣传资料。
小测试(答案部分)
1.明确故事来源通过:改编他人小说或故事结构、原创游戏故事、借用已有题材编写新故事。
2.讲述故事的顺序有:正叙法、倒叙法、插叙法。
3.设计描述角度时通过第一人称、第三人称两种方法。
小测试(答案部分)
1.在一个故事开始的时候,给玩家一个完整的时间和空间,并将这个故事产生的原因或背景告诉玩家,这个过程叫做故事情节的切入 。
2.所谓“剧情阻碍”指的是在游戏进行过程中玩家必须解决的问题,这些问题是玩家继续游戏的阻碍。
3.目前流行的游戏故事结尾通常表现为两种主要的形式,一种是完美型,整个游戏故事最后有一个非常完美的结局;另外一种是缺憾型 。
小测试(答案部分)
1 .游戏故事结构分为单线式结构和非线性结构两种情况。
2 .构成非线性结构的因素有:非线性剧情设计、多种解决问题途径、玩家玩的顺序、玩家的选择。
3 .非线性结构的种类:橄榄状结构、树根状结构、树冠状结构、网状结构。
小测试(答案部分)
1.非线性结构故事设计中矛盾设置包括:多重矛盾设置、连环矛盾设置、分支矛盾设置。
2.所谓多层矛盾设置是指将若干个小的悬念和冲突同时给玩家,这些矛盾的解决没有先后顺序,玩家可以按照自己的想法选择完成次序。当玩家完成所有的悬念和冲突之后,就可以完成一个相对完整的任务。
3.我们在构思和安排情节的过程中,有可能一次只给出一个矛盾和冲突,等玩家解决完矛盾和冲突之后,再将下一个矛盾和冲突现实给玩家,这种方法我们叫连环矛盾设置。
4.所谓的分支矛盾设置是指在解决前一个冲突的时候,安排下一个矛盾冲突,为情节的下一步进展做好铺垫。
小测试(答案部分)
1.游戏元素由角色、道具、实体对象三部分组成。
2.游戏元素属性设计时需要把握突出主题、明确作用、相互关联三方面原则。
3.游戏元素通过形象特征、属性特征两方面来设计。
小测试(答案部分)
1.游戏中NPC可分为:非控制主要角色、非控制简单角色、非控制次要角色。
2.游戏中NPC可起到提供线索、情节交互、烘托气氛、提升等级等作用。
小测试(答案部分)
1.设计游戏中角色时应考虑确定游戏角色、确定游戏角色属性。
2.编写游戏角色属性时应从属性说明、属性作用、取值范围、适用范围、相关说明几方面开展。
小测试(答案部分)
1.游戏种道具可分为:使用类道具、装备类道具、情节类道具三种。
2.游戏中使用类道具可分为:食用类道具、投掷类道具两种。
3.游戏中玩家可以通过情节获得、金钱购买、战斗获得、解开谜题、打造合成等途径获得道具。
小测试(答案部分)
1、策划文档中对道具进行描述包括:道具名称、获得方式、物品等级、使用效果、装备条件五部分内容。
2.以《魔兽世界》举例,。魔兽中的装备按质量级别分类可分为:粗制品质、普通品质、精致品质、珍稀品质、史诗品质、传说品质、神器;
小测试(答案部分)
1.策划文档中对实体对象进行描述包括:对象名称、设计目的、出现场景、基本属性、显示状态五部分内容。
2.对形象特征进行描述时通常使用形象描述、文字描述、特点描述等方法。
3.游戏设计中常用的人物角色典型的形象有:英雄、反面人物、狡诈者、双面人、盟友等。
小测试(答案部分)
1.游戏规则构成的要素:相关事件、事件主体、对应规则。
2.游戏规则中相关事件构成的要素:事件的完整性、与某个规则相关联。
3.什么是对应规则?依据相关事件进行的特定行为,简称规则。
4.游戏中对应规则体现方式是计算公式,计算公式包括两部分:运算规则、与运算相关的数据。
小测试(答案部分)
1.策划文档中游戏规则的编写包括:名称、说明、公式、推算、触发、适应六部分。
2.物品掉落分为:随机掉落、计数掉落两种。
小测试(答案部分)
1.在考虑游戏公式设计上应考虑游戏的静态平衡、动态平衡两方面。
2.静态平衡在游戏中体现为:优势策略、对称平衡、交替平衡、传递与不传递结合、循环平衡。
3.动态平衡在游戏中体现为:维护平衡、建立平衡、破坏平衡。
4.动态平衡的类型:势均力敌、相对变化、互相制约、互相协作。
小测试(答案部分)
1.RPG游戏公式系统设计上主要考虑哪些?职业系统、技能系统、道具系统、升级系统、货币系统。
2.游戏中技能平衡一般指:攻击技能、防御技能、恢复技能等。
小测试(答案部分)
1.人工智能(Artificial Intelligence), 英文缩写为 AI, 是一门综合了计算机科学、生理学、哲学的交叉学科。人工智能是人类在机器上对智能行为的研究,是人类创造的物体的智能行为。
2.人工智能的四个研究方向是模拟人的思考能力、模拟人的行为能力、理性思考、理性行为。
3.游戏AI基本是在AI学术研究的第四条,即理性行为领域。
小测试(答案部分)
1.电子游戏中设计人工智能的方法包括:有限状态设计、模糊状态设计、可扩展性AI 。
2.模糊状态设计(FuSM)的基本思想就是在有限状态设计(FSM)基础上引入不确定性。
3.可扩展性AI:给玩家提供一些简单易用的工具,使得他们可以轻松地修改NPC的行为规则。
小测试(答案部分)
1.游戏进程的作用:游戏设计人员需要把游戏分解为玩家经历的各种事件,并叙述他们如何发展变化。
2.目前哪些游戏类型最好使用关卡来细分?RPG、RTS、FPS、ACT、AVG等。
3.关卡的具体设计内容包括:任务目的、条件*、发生地点、相关NPC、所需物品、相应奖励、故事流程。
4.游戏进程中悬念设计的方法包括:剧情式悬念、操作式悬念、技术性悬念。
小测试(答案部分)
1.游戏中非互动方式讲述故事方法有:片头动画、文本滚屏、图像、声音。
2.片头动画技术上分为:游戏引擎生成动画、视频数据动画。
3.在游戏流程中讲述故事的方法:文本、环境、对话、NPC的行为。
4.设计游戏场景的作用:场景交待时空关系、营造情绪气氛。
小测试(答案部分)
1.通常是技术*决定某个关卡应该在什么地方结束,由于内存每次只能载入有限的纹理、声音和关卡的数据,当这些资源使用完毕之后,就需要使游戏停止一段时间,以载入新的游戏关卡数据。
2.设计良好的关卡,从开始到结束,在难度和紧张程度上是逐渐增加的。
3.关卡通常由动作、探险、解密、剧情叙述、美工五部分组成。
4.关卡设计层面包括:*层、感性层、理性层。
小测试(答案部分)
1.关卡设计的要素包括:地形、边界、物品、敌人、目标、情节、大小、视觉风格。
2.游戏关卡设计中容易走进的误区:玩家的空间流程没有过渡、不合理的安排敌人、滥用开关系统、过于平淡、缺乏奖励 。
3.使用关卡编辑脚本有点是易于学习和控制,不足是效率不高。
4.监测游戏的基本可玩性包括:调整总体结构和地形特征、检查整个关卡的角色流。
小测试(答案部分)
1.游戏的交互过程:一部分是玩家向游戏发出的指令信息,告诉系统如何运行;一部分是系统向玩家发送的信息,也就是关于玩家操作之后游戏的状态。
2.人机界面决定了游戏性,起到连接玩家和游戏内核的作用。
3.界面设计的原则:设计人性化界面 、避免游戏界面干扰游戏显示区域、简化控制模式。
小测试(答案部分)
1.界面设计的方法:调查研究、基本概念设计、生成界面原型、界面可行性测试、反复优化。
2.游戏界面的文档编写分为: 游戏的主界面、角色属性面板。
小测试(答案部分)
1.如果可以用二维的操作思路,尽量不要用一维的操作。减少玩家的操作次数。在设计二维操作时,尽可以多的把操作资源罗列出来。
2.鼠标移动最短原则:在设计过程中,尽可能避免鼠标移动轨迹过长 节省玩家的时间为目标。
3.使用一维的操作的前提下,尽量把一些常用的键,放在第一层面上 。
4.快捷键放置原则:设置为左手打字时可击点的键位。
5.二维操作:则是尽可能的利用你的操作资源,把所有的可以击点的内容与你的操作资源一一对应,并且“唯一化” 。
小测试(答案部分)
1.教材中其他人机交互手段中最有希望的交互手段为语音识别 、 姿势识别。
2.游戏操作的文档表达主要内容是鼠标基本操作、 键盘操作设计。
1.游戏色彩系统包括(RGB)、(CMYK)
2.游戏色彩的作用包括(加强游戏置入感)、(表达感情)、(引导玩家的注意力)
3.所谓身体比例,就是身体各个部分之间的相对大小。对游戏人物来说就是(头)、(胸)、(臀)三大块
4.如果一个 RGB 的值为 255,255,255 则表示为(白色)。如果完全拿掉这三原色的光 (RGB:0,0,0) 则产生(黑色)
1.未来网游配乐的主要趋势是(音乐的耐听性)
2.(循环播放)是网络游戏音乐的独特性。
3.在目前国内外的网络游戏中,主要的播放形势为(首尾无缝衔接)、(自然首尾)
判断题:
1.游戏引擎的好坏,直接影响游戏品质的好坏。( √ )
2.游戏引擎就是用于控制所有游戏功能的主程序,从计算碰撞、物理系统和物体的相对位置,到接受玩家的输入,以及按照正确的音量输出声音等等。(√)
3.游戏引擎重要的处理环节包括光影处理、动画系统、物理系统、碰撞检测、成像、网络处理、输入。(√)
4.如果游戏公司想开发一款游戏,首先必须主自研发游戏引擎。(×)
1.游戏引擎的历史和( FPS游戏)的发展密不可分
2.引擎对游戏的影响包括(对游戏开发的影响)、(对游戏玩家的影响)、(对整个游戏产业链的完善与促进)
3.游戏引擎的(商用)直接促成了游戏产业的飞速发展
1. 欧洲游戏文化具有强的本土特征,多以(宗教)、(希腊神话)、(骑士精神)、(北欧传说为主)。
2. 依照《龙与地下城》(D&D)游戏规则的游戏有:(博德之门)、(博德之门2)、(冰风谷)、(无冬之夜)、(异域镇魂曲)等。
3. *教义和骑士精神指得是一个信仰*的应具有的八大美德:谦卑、正直、怜悯、英勇、公正、牺牲、荣誉、灵魂。
4. 以三国时期为背景的游戏有:(三国志-霸王的*)、(诸葛孔明传)、(三国志)、(三国群英传)、(三国豪侠传)、(铁血三国志)、(幻想三国志)。
5. 五行相克:(金克木),(木克土),(土克水),9水克火),9(火克金)。五行相生:(金生水),(水生木),(木生火),(火生土),(土生金)。
1. 《星际争霸》,是由暴雪公司(Blizzard)制作并于(1998)年发行的一款即时战略类游戏 。
2.由暴雪公司开发的(《暗黑破坏神》)被堪称是RPG游戏精品中的精品。
3. 《反恐精英》,是一个以(团队合作)为主的射击类单机游戏。
4. 在《古墓丽影》中,女主角的名称叫(劳拉)。
5.1995年由大宇软星公司狂徒创作群制作开发的著名中文角色扮演游戏(《仙剑奇侠传》),被堪称为中国游戏史上至今无法超越的巅峰之作。
1. 单机游戏的概况主要包括(游戏名字)、(游戏类型)、(游戏内容)、(特点描述)、(玩家操作)、(游戏风格)等内容。
2.编写游戏背景要求(确定故事主题)、(明确故事来源)、(确定讲述顺序)、(设计描述角度)。
3.游戏背景故事的来源主要分为(原创)、(改编)、(借用)等多个渠道。
1. 游戏构成元素一般包括(形象特征)、(属性特征)、(动作特征)三个部分。
2.游戏元素的设计中,设计者一般遵循(突出主题)、(作用明确)、(相互关联)原则。
3.NPC角色的作用有(提供线索)、(情节交互)、(烘托气氛)、(提升等级)。
4.情节类道具的获得方式有(情节获得)、(金钱购买)、(战斗获得)、(解开迷题)。
1. 游戏机制构成的三个要素是(相关事件)、(事件主体)、(对应规则)。
2.构成相关事件的因素有:(具有事件的完整性)、(与某个规则的关联性)。
3.所谓的对应规则,就是依据相关事件进行的(特定行为),简称规则。
1. 人工智能的设计目的有:(增加玩家的挑战性)、(模拟真实世界)、(增加游戏的可玩性)、(帮助叙述故事)、 (创造一个*真的世界)。
2.场景的设计层次分为(物质空间)和(社会空间)。
3.界面设计的原则有:(设计人性化界面)、(避免游戏界面干扰游戏显示区域)、(简化控制模式)
1. 网络游戏的发展至今共经历了( 三 )个阶段。
2. 一般的观点是把(《网络创世纪》)视为网络游戏的奠基者。
3.把(2D画面为主或2D/3D画面混用的)网络游戏统称为“第一代网络游戏”,把(《无尽的任务》)、(EverQuest )和(《天堂2》)等全3D大作视为“第二代网络游戏”。
4.网络游戏的类型有两种划分方式,分别为(按照客户端图像形式划分)、(按照网络游戏内容划分)。
1. 网络游戏的优点:(玩家的社会化 )、(人类智能取代人工智能 )、(网络游戏与街机游戏的对比) 。
2. 街机游戏强制限定了每次参与的玩家的(数量)。
3. 到目前为止,最为成功的网络游戏都是面向(角色)的。
1.网络游戏策划与开发的风险,主要由(价格)、(可用性)、(内容的独特性)、(熟悉程度)等因素影响。
2.网络游戏运营与维护的风险,主要由(服务器的安装和冗余)、(网络带宽问题)、(数据库构造与维护)、(质量保证费用)、(大范围的客户服务)、(安全与攻击问题)等因素影响。
1.Windows开发环境的优势有:(平台易于安装和维护)、(系统软件和底层应用软件的支持非常丰富)、(程序员广泛的技术熟练程度)、(更多的游戏引擎都运行于Windows上)、(很多集成开发环境都运行于Windows上)、(多种组件技术支持程序代码的复用)、(Windows平台本身有价格优势)。
2. Windows开发环境的缺点有:(indows的安全性问题)、(效率问题)、(多进程和多线程的支持)、(系统稳定性)。
1. Linux/Unix开发环境的优势有:(运行效率)、(支持定制)、(系统安全性)、(多线程)、(系统稳定性)。
2. Linux/Unix开发环境的缺点有:(平台不便于安装和维护)、(其他软件的支持)、(程序员缺乏)、(集成开发环境少)、(组件技术的应用很有限)、(基于图像显示的编程比较困难)、(价格因素)。
1. 网络游戏的开发语言很多,常用的有(Java )、( C )、( C++ )等等。
2. 目前比较流行的数据库系统包括(MySQL )、(SQLServer)、(Oracle)。
3.常用的通信协议有(TCP/IP )、(SPX/IPX )、(NetBEUI)协议等。
1. 在网络游戏开发中,服务器端的作用有(众多玩家客户端请求的处理)、(众多玩家间的信息同步)、(繁重的数据维护工作)、(大量的日志记录和分析处理)。
2.大部分的网络游戏采用了(TCP/IP)传输协议。
3.在网络游戏客户端的开发中,一般选用(Windows)平台进行游戏前端开发。
1.设计网络游戏时应考虑的问题:(网络游戏的总体结构);(消息延迟);(模块化);(步调与平衡);(玩家中断/掉线);(网络游戏的游戏机制)。
2.适当的(步调与平衡)是网络游戏中的一个重大问题。
3.网络游戏的魅力需要通过这个虚拟社会中的(人性冲突)和(戏剧性事件),塑造及传达游戏可玩性。
1、(书籍)、(电影)、(电视)和(其他娱乐媒体)是游戏创意的重要灵感来源
2、游戏的故事叙述角度也有(第一人称)和(第三人称)主角。
3、这种没有分支,每个条件依次完成,完成一个条件,生成下一个条件,直到游戏结束的结构方式,叫(单线式结构)。
1.游戏机制三要素是(相关事件)、(事件主体)、(对应规则)。
2.在游戏机制或规则的制定中,(事件主体)是不可缺少的重要因素。这个引发相关事件的人或其他物质,我们叫(事件主体)。
1、手机显示屏:(TFT)、(TFT-LCD)、(UFB)、(UFB-LCD)、(CSTN)、(DSTN)。
2、手机摄像头内置CCD(光电荷耦合器件),内置的摄像头一般利用(手机显示屏显示影象)和(手机内存)进行数据保存。
3、红外接口是新一代手机的配置标准,它支持(手机与电脑以及其他数字设备进行数据交流)。通过红外接口,(各类移动设备)可以自由进行数据交换。
4、手机的三代短信服务是:(SMS)、(EMS)、(MMS)。
1、移动游戏开发平台:(直接进入嵌入式开发)、(Jin-Fusio ExEn娱乐平台)、(J2ME平台)、(BREW游戏平台)。
2、In-Fusio公司只把ExEn游戏放在少数系统来下载,目前仅有(德国)、(法国)、(意大利)、(西班牙)、(英国)、(荷兰等欧洲国家),(中国)共七个国家能下载到ExEn游戏。
1、手机游戏与传统游戏开发的区别:开发团队小;预算少;开发周期短;网络设备功能强大;开放标准多为免费;部署。
2、手机游戏设计遵循的规则:易于学习;可中断性;基于订阅;丰富的社会交互;利用手机技术的优点;无违法内容。
1. 我们在策划手机游戏时,要根据游戏的故事背景,手机游戏技术特点,创造
出符合游戏的角色、属性、规则。
2. 游戏故事和一般的小说和戏剧还不一样,因为游戏是交互性的。
3. 游戏故事的来源一般也分为原创、改编、借用等多个渠道。追问是游戏3121班的吗?
追答明天你就知道了。
参考资料:PPT教材
明天专业游戏专业概论答案
小测试(答案部分)
1.游戏发展的两个极端分别是纯游戏、复杂的拟真化。
2.游戏被称为第九艺术,那么前八种艺术分别为:绘画、雕塑、文学、
音乐、建筑、影视、舞蹈、戏剧。
3.游戏技术使用方面的两个发展方向是专业游戏厂商选用通用硬件平台、游戏公司都为PC开发游戏。
小测试(答案部分)
1.1946年世界上第一台计算机ENIAC出现。
2.1961年世界公认的第一个电子游戏宇宙战争出现。
3.1974年埃德.罗伯茨发明了世界上第一台PC电脑。
4.作为游戏业奠基石的三条基本原则是什么?尽可能充分利用现有的硬件资源,并将其推向极限;在一个持续时段内尽可能提高程序的变化性;务必使观者积极愉快的参与进来。
小测试(答案部分)
1.市场调研可以细分为数据获取、数据分析两个过程。
2.游戏策划内容主要包括内容系统性、表达明确性两个部分。
3.游戏开发主要包括技术选用、结构设计、项目组织等内容。
4.市场运营主要包括市场宣传、产品定价、售后服务等内容。
小测试(答案部分)
1.美术总监(主美)的管理工作性质是协调整个小组工作、统一整体绘画风格、整合所有美术元素。
2.网络游戏程序员现分为客户端开发工程师和服务器端开发工程师。
3.游戏产品经理主要负责一款游戏的产品包装、市场宣传、运营销售策略的制定等工作。
4.随游戏行业的快速发展而衍生出的一些新职业有游戏推广员、职业战队、游戏带练、游戏商人等。
小测试(答案部分)
1. 游戏的含义是什么?游戏就是按照一定规则进行的交互式娱乐行为。
2. 什么是规则?一个游戏在进行的过程中,所有参与游戏的人员必需遵守的行
为准则。
3. 游戏主要具备交互性、游戏模式、行为规则、娱乐性、满足感五种特征。
4. 电子游戏主要具备现实模仿真实性、采用技术复杂性、游戏内容丰富性、时
间空间虚拟性四个特性。
小测试(答案部分)
1、电子游戏分类时考虑的类型范式中最主要的四项分别是主题、故事情节、视觉风格、游戏规则。
2、电子游戏类型演变过程的三个阶段分别是初始阶段、确立阶段、融合阶段。
3、目前流行的分类中基本分类包括:动作类、冒险类、模拟类、益智类、经营类。
小测试(答案部分)
1、人类的5个基本需求是:生理的需求、安全的需求、社交的需求、尊重的需求、自我实现的需求
2、游戏能够满足人类5个需求中的:安全的需求、社交的需求、尊重的需求、自我实现的需求。
3、玩家需求中的“体验”包括:情感体验、幻想体验
小测试(答案部分)
1、列出3个以扮演为主要内容的游戏:仙剑奇侠传、剑侠情缘、博德之门
2、列出3个以洞察为主要内容的游戏:扫雷、空挡接龙、逆转裁判
3、列出3个以冒险为主要内容的游戏:生化危机、恐龙危机、鬼武者
4 、 玩家期望中的操作体现在游戏自身操作的一致性、与其他游戏操作的一致性
两个方面。
5 、 玩家需求对游戏的题材、操作、制作技术、游戏内容等方面会有相当大的影响。
小测试(答案部分)
1 .游戏设计文档的主要功能有:指导游戏开发的顺利进行、确保游戏主题的连贯性、确保游戏项目的持续性。
2 .公认的游戏设计文档应具有以下特点:便于阅读、避免重复、简洁明确。
3 .常用的文字表格处理工具有:Word、Excel、PowerPoint。
4、常用图形图像处理工具中常用三维软件包:MAYA、3Dmax、Light Wave 。
5 .常用游戏引擎编辑器有:Unreal、Radiant系列等。
小测试(答案部分)
1. 策划文档的中需要注意的编写误区:编写过于简单、过多地描写背景故事 、过于繁琐 、过多的幻想、没有及时更新 。
2. 游戏策划的应该具备哪些基本素质:对市场敏锐的洞察力 、要能够充分了解玩家的心理 、对游戏其他部门的工作有所了解、有影视、美术、文学方面的功底、能够虚心采纳别人的合理化建议、对游戏制作有持续的极大热情。
小测试(答案部分)
1.获得游戏创意的主要途径:发挥自身想象力、从其他媒体获得创意、从其他游戏获得创意。
2.从游戏技术方面考虑游戏设计时应考虑的引擎情况包括:使用公司原有引擎、在原有引擎基础上升级、开发新的游戏引擎、引进游戏引擎。
3.构思游戏时应考虑技术环境、时间和成本上的制约因素。
小测试(答案部分)
1.一个完整的游戏创意说明书包括:游戏名称、游戏类型、游戏内容、游戏特点描述、玩家操作、游戏风格六部分内容。
2.游戏开发各项工作始终围绕游戏创意进行,贯彻游戏创意在工作中要做到细化创意、调整创意。
3.编写游戏创意说明书是应注意:避免引用其他游戏、避免无谓形容。
4.游戏创意说明书的作用:立项报告、策划文档、宣传资料。
小测试(答案部分)
1.明确故事来源通过:改编他人小说或故事结构、原创游戏故事、借用已有题材编写新故事。
2.讲述故事的顺序有:正叙法、倒叙法、插叙法。
3.设计描述角度时通过第一人称、第三人称两种方法。
小测试(答案部分)
1.在一个故事开始的时候,给玩家一个完整的时间和空间,并将这个故事产生的原因或背景告诉玩家,这个过程叫做故事情节的切入 。
2.所谓“剧情阻碍”指的是在游戏进行过程中玩家必须解决的问题,这些问题是玩家继续游戏的阻碍。
3.目前流行的游戏故事结尾通常表现为两种主要的形式,一种是完美型,整个游戏故事最后有一个非常完美的结局;另外一种是缺憾型 。
小测试(答案部分)
1 .游戏故事结构分为单线式结构和非线性结构两种情况。
2 .构成非线性结构的因素有:非线性剧情设计、多种解决问题途径、玩家玩的顺序、玩家的选择。
3 .非线性结构的种类:橄榄状结构、树根状结构、树冠状结构、网状结构。
小测试(答案部分)
1.非线性结构故事设计中矛盾设置包括:多重矛盾设置、连环矛盾设置、分支矛盾设置。
2.所谓多层矛盾设置是指将若干个小的悬念和冲突同时给玩家,这些矛盾的解决没有先后顺序,玩家可以按照自己的想法选择完成次序。当玩家完成所有的悬念和冲突之后,就可以完成一个相对完整的任务。
3.我们在构思和安排情节的过程中,有可能一次只给出一个矛盾和冲突,等玩家解决完矛盾和冲突之后,再将下一个矛盾和冲突现实给玩家,这种方法我们叫连环矛盾设置。
4.所谓的分支矛盾设置是指在解决前一个冲突的时候,安排下一个矛盾冲突,为情节的下一步进展做好铺垫。
小测试(答案部分)
1.游戏元素由角色、道具、实体对象三部分组成。
2.游戏元素属性设计时需要把握突出主题、明确作用、相互关联三方面原则。
3.游戏元素通过形象特征、属性特征两方面来设计。
小测试(答案部分)
1.游戏中NPC可分为:非控制主要角色、非控制简单角色、非控制次要角色。
2.游戏中NPC可起到提供线索、情节交互、烘托气氛、提升等级等作用。
小测试(答案部分)
1.设计游戏中角色时应考虑确定游戏角色、确定游戏角色属性。
2.编写游戏角色属性时应从属性说明、属性作用、取值范围、适用范围、相关说明几方面开展。
小测试(答案部分)
1.游戏种道具可分为:使用类道具、装备类道具、情节类道具三种。
2.游戏中使用类道具可分为:食用类道具、投掷类道具两种。
3.游戏中玩家可以通过情节获得、金钱购买、战斗获得、解开谜题、打造合成等途径获得道具。
小测试(答案部分)
1、策划文档中对道具进行描述包括:道具名称、获得方式、物品等级、使用效果、装备条件五部分内容。
2.以《魔兽世界》举例,。魔兽中的装备按质量级别分类可分为:粗制品质、普通品质、精致品质、珍稀品质、史诗品质、传说品质、神器;
小测试(答案部分)
1.策划文档中对实体对象进行描述包括:对象名称、设计目的、出现场景、基本属性、显示状态五部分内容。
2.对形象特征进行描述时通常使用形象描述、文字描述、特点描述等方法。
3.游戏设计中常用的人物角色典型的形象有:英雄、反面人物、狡诈者、双面人、盟友等。
小测试(答案部分)
1.游戏规则构成的要素:相关事件、事件主体、对应规则。
2.游戏规则中相关事件构成的要素:事件的完整性、与某个规则相关联。
3.什么是对应规则?依据相关事件进行的特定行为,简称规则。
4.游戏中对应规则体现方式是计算公式,计算公式包括两部分:运算规则、与运算相关的数据。
小测试(答案部分)
1.策划文档中游戏规则的编写包括:名称、说明、公式、推算、触发、适应六部分。
2.物品掉落分为:随机掉落、计数掉落两种。
小测试(答案部分)
1.在考虑游戏公式设计上应考虑游戏的静态平衡、动态平衡两方面。
2.静态平衡在游戏中体现为:优势策略、对称平衡、交替平衡、传递与不传递结合、循环平衡。
3.动态平衡在游戏中体现为:维护平衡、建立平衡、破坏平衡。
4.动态平衡的类型:势均力敌、相对变化、互相制约、互相协作。
小测试(答案部分)
1.RPG游戏公式系统设计上主要考虑哪些?职业系统、技能系统、道具系统、升级系统、货币系统。
2.游戏中技能平衡一般指:攻击技能、防御技能、恢复技能等。
小测试(答案部分)
1.人工智能(Artificial Intelligence), 英文缩写为 AI, 是一门综合了计算机科学、生理学、哲学的交叉学科。人工智能是人类在机器上对智能行为的研究,是人类创造的物体的智能行为。
2.人工智能的四个研究方向是模拟人的思考能力、模拟人的行为能力、理性思考、理性行为。
3.游戏AI基本是在AI学术研究的第四条,即理性行为领域。
小测试(答案部分)
1.电子游戏中设计人工智能的方法包括:有限状态设计、模糊状态设计、可扩展性AI 。
2.模糊状态设计(FuSM)的基本思想就是在有限状态设计(FSM)基础上引入不确定性。
3.可扩展性AI:给玩家提供一些简单易用的工具,使得他们可以轻松地修改NPC的行为规则。
小测试(答案部分)
1.游戏进程的作用:游戏设计人员需要把游戏分解为玩家经历的各种事件,并叙述他们如何发展变化。
2.目前哪些游戏类型最好使用关卡来细分?RPG、RTS、FPS、ACT、AVG等。
3.关卡的具体设计内容包括:任务目的、条件*、发生地点、相关NPC、所需物品、相应奖励、故事流程。
4.游戏进程中悬念设计的方法包括:剧情式悬念、操作式悬念、技术性悬念。
小测试(答案部分)
1.游戏中非互动方式讲述故事方法有:片头动画、文本滚屏、图像、声音。
2.片头动画技术上分为:游戏引擎生成动画、视频数据动画。
3.在游戏流程中讲述故事的方法:文本、环境、对话、NPC的行为。
4.设计游戏场景的作用:场景交待时空关系、营造情绪气氛。
小测试(答案部分)
1.通常是技术*决定某个关卡应该在什么地方结束,由于内存每次只能载入有限的纹理、声音和关卡的数据,当这些资源使用完毕之后,就需要使游戏停止一段时间,以载入新的游戏关卡数据。
2.设计良好的关卡,从开始到结束,在难度和紧张程度上是逐渐增加的。
3.关卡通常由动作、探险、解密、剧情叙述、美工五部分组成。
4.关卡设计层面包括:*层、感性层、理性层。
小测试(答案部分)
1.关卡设计的要素包括:地形、边界、物品、敌人、目标、情节、大小、视觉风格。
2.游戏关卡设计中容易走进的误区:玩家的空间流程没有过渡、不合理的安排敌人、滥用开关系统、过于平淡、缺乏奖励 。
3.使用关卡编辑脚本有点是易于学习和控制,不足是效率不高。
4.监测游戏的基本可玩性包括:调整总体结构和地形特征、检查整个关卡的角色流。
小测试(答案部分)
1.游戏的交互过程:一部分是玩家向游戏发出的指令信息,告诉系统如何运行;一部分是系统向玩家发送的信息,也就是关于玩家操作之后游戏的状态。
2.人机界面决定了游戏性,起到连接玩家和游戏内核的作用。
3.界面设计的原则:设计人性化界面 、避免游戏界面干扰游戏显示区域、简化控制模式。
小测试(答案部分)
1.界面设计的方法:调查研究、基本概念设计、生成界面原型、界面可行性测试、反复优化。
2.游戏界面的文档编写分为: 游戏的主界面、角色属性面板。
小测试(答案部分)
1.如果可以用二维的操作思路,尽量不要用一维的操作。减少玩家的操作次数。在设计二维操作时,尽可以多的把操作资源罗列出来。
2.鼠标移动最短原则:在设计过程中,尽可能避免鼠标移动轨迹过长 节省玩家的时间为目标。
3.使用一维的操作的前提下,尽量把一些常用的键,放在第一层面上 。
4.快捷键放置原则:设置为左手打字时可击点的键位。
5.二维操作:则是尽可能的利用你的操作资源,把所有的可以击点的内容与你的操作资源一一对应,并且“唯一化” 。
小测试(答案部分)
1.教材中其他人机交互手段中最有希望的交互手段为语音识别 、 姿势识别。
2.游戏操作的文档表达主要内容是鼠标基本操作、 键盘操作设计。
1.游戏色彩系统包括(RGB)、(CMYK)
2.游戏色彩的作用包括(加强游戏置入感)、(表达感情)、(引导玩家的注意力)
3.所谓身体比例,就是身体各个部分之间的相对大小。对游戏人物来说就是(头)、(胸)、(臀)三大块
4.如果一个 RGB 的值为 255,255,255 则表示为(白色)。如果完全拿掉这三原色的光 (RGB:0,0,0) 则产生(黑色)
1.未来网游配乐的主要趋势是(音乐的耐听性)
2.(循环播放)是网络游戏音乐的独特性。
3.在目前国内外的网络游戏中,主要的播放形势为(首尾无缝衔接)、(自然首尾)
判断题:
1.游戏引擎的好坏,直接影响游戏品质的好坏。( √ )
2.游戏引擎就是用于控制所有游戏功能的主程序,从计算碰撞、物理系统和物体的相对位置,到接受玩家的输入,以及按照正确的音量输出声音等等。(√)
3.游戏引擎重要的处理环节包括光影处理、动画系统、物理系统、碰撞检测、成像、网络处理、输入。(√)
4.如果游戏公司想开发一款游戏,首先必须主自研发游戏引擎。(×)
1.游戏引擎的历史和( FPS游戏)的发展密不可分
2.引擎对游戏的影响包括(对游戏开发的影响)、(对游戏玩家的影响)、(对整个游戏产业链的完善与促进)
3.游戏引擎的(商用)直接促成了游戏产业的飞速发展
1. 欧洲游戏文化具有强的本土特征,多以(宗教)、(希腊神话)、(骑士精神)、(北欧传说为主)。
2. 依照《龙与地下城》(D&D)游戏规则的游戏有:(博德之门)、(博德之门2)、(冰风谷)、(无冬之夜)、(异域镇魂曲)等。
3. *教义和骑士精神指得是一个信仰*的应具有的八大美德:谦卑、正直、怜悯、英勇、公正、牺牲、荣誉、灵魂。
4. 以三国时期为背景的游戏有:(三国志-霸王的*)、(诸葛孔明传)、(三国志)、(三国群英传)、(三国豪侠传)、(铁血三国志)、(幻想三国志)。
5. 五行相克:(金克木),(木克土),(土克水),9水克火),9(火克金)。五行相生:(金生水),(水生木),(木生火),(火生土),(土生金)。
1. 《星际争霸》,是由暴雪公司(Blizzard)制作并于(1998)年发行的一款即时战略类游戏 。
2.由暴雪公司开发的(《暗黑破坏神》)被堪称是RPG游戏精品中的精品。
3. 《反恐精英》,是一个以(团队合作)为主的射击类单机游戏。
4. 在《古墓丽影》中,女主角的名称叫(劳拉)。
5.1995年由大宇软星公司狂徒创作群制作开发的著名中文角色扮演游戏(《仙剑奇侠传》),被堪称为中国游戏史上至今无法超越的巅峰之作。
1. 单机游戏的概况主要包括(游戏名字)、(游戏类型)、(游戏内容)、(特点描述)、(玩家操作)、(游戏风格)等内容。
2.编写游戏背景要求(确定故事主题)、(明确故事来源)、(确定讲述顺序)、(设计描述角度)。
3.游戏背景故事的来源主要分为(原创)、(改编)、(借用)等多个渠道。
1. 游戏构成元素一般包括(形象特征)、(属性特征)、(动作特征)三个部分。
2.游戏元素的设计中,设计者一般遵循(突出主题)、(作用明确)、(相互关联)原则。
3.NPC角色的作用有(提供线索)、(情节交互)、(烘托气氛)、(提升等级)。
4.情节类道具的获得方式有(情节获得)、(金钱购买)、(战斗获得)、(解开迷题)。
1. 游戏机制构成的三个要素是(相关事件)、(事件主体)、(对应规则)。
2.构成相关事件的因素有:(具有事件的完整性)、(与某个规则的关联性)。
3.所谓的对应规则,就是依据相关事件进行的(特定行为),简称规则。
1. 人工智能的设计目的有:(增加玩家的挑战性)、(模拟真实世界)、(增加游戏的可玩性)、(帮助叙述故事)、 (创造一个*真的世界)。
2.场景的设计层次分为(物质空间)和(社会空间)。
3.界面设计的原则有:(设计人性化界面)、(避免游戏界面干扰游戏显示区域)、(简化控制模式)
1. 网络游戏的发展至今共经历了( 三 )个阶段。
2. 一般的观点是把(《网络创世纪》)视为网络游戏的奠基者。
3.把(2D画面为主或2D/3D画面混用的)网络游戏统称为“第一代网络游戏”,把(《无尽的任务》)、(EverQuest )和(《天堂2》)等全3D大作视为“第二代网络游戏”。
4.网络游戏的类型有两种划分方式,分别为(按照客户端图像形式划分)、(按照网络游戏内容划分)。
1. 网络游戏的优点:(玩家的社会化 )、(人类智能取代人工智能 )、(网络游戏与街机游戏的对比) 。
2. 街机游戏强制限定了每次参与的玩家的(数量)。
3. 到目前为止,最为成功的网络游戏都是面向(角色)的。
1.网络游戏策划与开发的风险,主要由(价格)、(可用性)、(内容的独特性)、(熟悉程度)等因素影响。
2.网络游戏运营与维护的风险,主要由(服务器的安装和冗余)、(网络带宽问题)、(数据库构造与维护)、(质量保证费用)、(大范围的客户服务)、(安全与攻击问题)等因素影响。
1.Windows开发环境的优势有:(平台易于安装和维护)、(系统软件和底层应用软件的支持非常丰富)、(程序员广泛的技术熟练程度)、(更多的游戏引擎都运行于Windows上)、(很多集成开发环境都运行于Windows上)、(多种组件技术支持程序代码的复用)、(Windows平台本身有价格优势)。
2. Windows开发环境的缺点有:(indows的安全性问题)、(效率问题)、(多进程和多线程的支持)、(系统稳定性)。
1. Linux/Unix开发环境的优势有:(运行效率)、(支持定制)、(系统安全性)、(多线程)、(系统稳定性)。
2. Linux/Unix开发环境的缺点有:(平台不便于安装和维护)、(其他软件的支持)、(程序员缺乏)、(集成开发环境少)、(组件技术的应用很有限)、(基于图像显示的编程比较困难)、(价格因素)。
1. 网络游戏的开发语言很多,常用的有(Java )、( C )、( C++ )等等。
2. 目前比较流行的数据库系统包括(MySQL )、(SQLServer)、(Oracle)。
3.常用的通信协议有(TCP/IP )、(SPX/IPX )、(NetBEUI)协议等。
1. 在网络游戏开发中,服务器端的作用有(众多玩家客户端请求的处理)、(众多玩家间的信息同步)、(繁重的数据维护工作)、(大量的日志记录和分析处理)。
2.大部分的网络游戏采用了(TCP/IP)传输协议。
3.在网络游戏客户端的开发中,一般选用(Windows)平台进行游戏前端开发。
1.设计网络游戏时应考虑的问题:(网络游戏的总体结构);(消息延迟);(模块化);(步调与平衡);(玩家中断/掉线);(网络游戏的游戏机制)。
2.适当的(步调与平衡)是网络游戏中的一个重大问题。
3.网络游戏的魅力需要通过这个虚拟社会中的(人性冲突)和(戏剧性事件),塑造及传达游戏可玩性。
1、(书籍)、(电影)、(电视)和(其他娱乐媒体)是游戏创意的重要灵感来源
2、游戏的故事叙述角度也有(第一人称)和(第三人称)主角。
3、这种没有分支,每个条件依次完成,完成一个条件,生成下一个条件,直到游戏结束的结构方式,叫(单线式结构)。
1.游戏机制三要素是(相关事件)、(事件主体)、(对应规则)。
2.在游戏机制或规则的制定中,(事件主体)是不可缺少的重要因素。这个引发相关事件的人或其他物质,我们叫(事件主体)。
1、手机显示屏:(TFT)、(TFT-LCD)、(UFB)、(UFB-LCD)、(CSTN)、(DSTN)。
2、手机摄像头内置CCD(光电荷耦合器件),内置的摄像头一般利用(手机显示屏显示影象)和(手机内存)进行数据保存。
3、红外接口是新一代手机的配置标准,它支持(手机与电脑以及其他数字设备进行数据交流)。通过红外接口,(各类移动设备)可以自由进行数据交换。
4、手机的三代短信服务是:(SMS)、(EMS)、(MMS)。
1、移动游戏开发平台:(直接进入嵌入式开发)、(Jin-Fusio ExEn娱乐平台)、(J2ME平台)、(BREW游戏平台)。
2、In-Fusio公司只把ExEn游戏放在少数系统来下载,目前仅有(德国)、(法国)、(意大利)、(西班牙)、(英国)、(荷兰等欧洲国家),(中国)共七个国家能下载到ExEn游戏。
1、手机游戏与传统游戏开发的区别:开发团队小;预算少;开发周期短;网络设备功能强大;开放标准多为免费;部署。
2、手机游戏设计遵循的规则:易于学习;可中断性;基于订阅;丰富的社会交互;利用手机技术的优点;无违法内容。
1. 我们在策划手机游戏时,要根据游戏的故事背景,手机游戏技术特点,创造
出符合游戏的角色、属性、规则。
2. 游戏故事和一般的小说和戏剧还不一样,因为游戏是交互性的。
3. 游戏故事的来源一般也分为原创、改编、借用等多个渠道。追问是游戏3121班的吗?
追答明天你就知道了。
参考资料:PPT教材
高分请教Windows xp的进程问题
windows系统进程介绍- -
(1)[system Idle Process]
进程文件: [system process] or [system process]
进程名称: Windows内存处理系统进程
描 述: Windows页面内存管理进程,拥有0级优先。
介 绍:该进程作为单线程运行在每个处理器上,并在系统不处理其他线程的时候分派处理器的时间。它的cpu占用率越大表示可供分配的CPU资源越多,数字越小则表示CPU资源紧张。
(2)[alg.exe]
进程文件: alg or alg.exe
进程名称: 应用层网关服务
描 述: 这是一个应用层网关服务用于网络共享。
介 绍:一个网关通信插件的管理器,为 “Internet连接共享服务”和 “Internet连接防火墙服务”提供第三方协议插件的支持。
(3)[csrss.exe]
进程文件: csrss or csrss.exe
进程名称: Client/Server Runtime Server Subsystem
描 述: 客户端服务子系统,用以控制Windows图形相关子系统。
介 绍: 这个是用户模式Win32子系统的一部分。csrss代表客户/服务器运行子系统而且是一个基本的子系统必须一直运行。csrss用于维持Windows的控制,创建或者删除线程和一些16位的虚拟MS-DOS环境。
(4)[ddhelp.exe]
进程文件: ddhelp or ddhelp.exe
进程名称: DirectDraw Helper
描 述: DirectDraw Helper是DirectX这个用于图形服务的一个组成部分。
简 介:Directx 帮助程序
(5)[dllhost.exe]
进程文件: dllhost or dllhost.exe
进程名称: DCOM DLL Host进程
描 述: DCOM DLL Host进程支持基于COM对象支持DLL以运行Windows程序。
介 绍:com代理,系统附加的dll组件越多,则dllhost占用的cpu资源和内存资源就越多,而8月的“冲击波杀手”大概让大家对它比较熟悉吧。
(6)[explorer.exe]
进程文件: explorer or explorer.exe
进程名称: 程序管理
描 述: Windows Program Manager或者Windows Explorer用于控制Windows图形Shell,包括开始菜单、任务栏,桌面和文件管理。
介 绍:这是一个用户的shell,在我们看起来就像任务条,桌面等等。或者说它就是资源管理器,不相信你在运行里执行它看看。它对windows系统的稳定性还是比较重要的,而红码也就是找它的麻烦,在c和d根下创建explorer.exe。
(7)[inetinfo.exe]
进程文件: inetinfo or inetinfo.exe
进程名称: IIS Admin Service Helper
描 述: InetInfo是Microsoft Internet Infomation Services (IIS)的一部分,用于Debug调试除错。
介 绍:IIS服务进程,蓝码正是利用的inetinfo.exe的缓冲区溢出漏洞。
(8)[internat.exe]
进程文件: internat or internat.exe
进程名称: Input Locales
描 述: 这个输入控制图标用于更改类似国家设置、键盘类型和日期格式。internat.exe在启动的时候开始运行。它加载由用户指定的不同的输入点。输入点是从注册表的这个位置HKEY_USERS\.DEFAULT\Keyboard Layout\Preload 加载内容的。internat.exe 加载“EN”图标进入系统的图标区,允许使用者可以很容易的转换不同的输入点。当进程停掉的时候,图标就会消失,但是输入点仍然可以通过控制面板来改变。
介 绍:它主要是用来控制输入法的,当你的任务栏没有“EN”图标,而系统有internat.exe进程,不妨结束掉该进程,在运行里执行internat命令即可。
(9)[kernel32.dll]
进程文件: kernel32 or kernel32.dll
进程名称: Windows壳进程
描 述: Windows壳进程用于管理多线程、内存和资源。
介 绍:更多内容浏览非法操作与Kernel32解读
(10)[lsass.exe]
进程文件: lsass or lsass.exe
进程名称: 本地安全权限服务
描 述: 这个本地安全权限服务控制Windows安全机制。管理 IP 安全策略以及启动 ISAKMP/Oakley (IKE) 和 IP 安全驱动程序等。
介 绍:这是一个本地的安全授权服务,并且它会为使用winlogon服务的授权用户生成一个进程。这个进程是通过使用授权的包,例如默认的msgina.dll来执行的。如果授权是成功的,lsass就会产生用户的进入令牌,令牌别使用启动初始的shell。其他的由用户初始化的进程会继承这个令牌的。而windows活动目录远程堆栈溢出漏洞,正是利用LDAP 3搜索请求功能对用户提交请求缺少正确缓冲区边界检查,构建超过1000个"AND"的请求,并发送给服务器,导致触发堆栈溢出,使Lsass.exe服务崩溃,系统在30秒内重新启动。
(11)[mdm.exe]
进程文件: mdm or mdm.exe
进程名称: Machine Debug Manager
描 述: Debug除错管理用于调试应用程序和Microsoft Office中的Microsoft Script Editor脚本编辑器。
介 绍:Mdm.exe的主要工作是针对应用软件进行排错(Debug),说到这里,扯点题外话,如果你在系统见到fff开头的0字节文件,它们就是mdm.exe在排错过程中产生一些暂存文件,这些文件在操作系统进行关机时没有自动被清除,所以这些fff开头的怪文件里是一些后缀名为CHK的文件都是没有用的垃圾文件,可匀我馍境��换岫韵低巢��涣加跋臁6?X系统,只要系统中有Mdm.exe存在,就有可能产生以fff开头的怪文件。可以按下面的方法让系统停止运行Mdm.exe来彻底删除以fff开头的怪文件:首先按“Ctrl+Alt+Del”组合键,在弹出的“关闭程序”窗口中选中“Mdm”,按“结束任务”按钮来停止Mdm.exe在后台的运行,接着把Mdm.exe(在C:\Windows\System目录下)改名为Mdm.bak。运行msconfig程序,在启动页中取消对“Machine Debug Manager”的选择。这样可以不让Mdm.exe自启动,然后点击“确定”按钮,结束msconfig程序,并重新启动电脑。另外,如果你使用IE 5.X以上版本浏览器,建议禁用脚本调用(点击“工具→Internet选项→高级→禁用脚本调用”),这样就可以避免以fff开头的怪文件再次产生。
(12)[mmtask.tsk]
进程文件: mmtask or mmtask.tsk
进程名称: 多媒体支持进程
描 述: 这个Windows多媒体后台程序控制多媒体服务,例如MIDI。
介 绍:这是一个任务调度服务,负责用户事先决定在某一时间运行的任务的运行。
(13)[mprexe.exe]
进程文件: mprexe or mprexe.exe
进程名称: Windows路由进程
描 述: Windows路由进程包括向适当的网络部分发出网络请求。
介 绍:这是Windows的32位网络界面服务进程文件,网络客户端部件启动的核心。印象中“A-311木马(Trojan.A-311.104)”也会在内存中建立mprexe.exe进程,可以通过资源管理结束进程。
(14)[msgsrv32.exe]
进程文件: msgsrv32 or msgsrv32.exe
进程名称: Windows信使服务
描 述: Windows信使服务调用Windows驱动和程序管理在启动。
介 绍:msgsrv32.exe 一个管理信息窗口的应用程序,win9x下如果声卡或者显卡驱动程序配置不正确,会导致死机或者提示msgsrv32.exe 出错。
(15)[mstask.exe]
进程文件: mstask or mstask.exe
进程名称: Windows计划任务
描 述: Windows计划任务用于设定继承在什么时间或者什么日期备份或者运行。
介 绍:计划任务,它通过注册表自启动。因此,通过计划任务程序实现自启动的程序在系统信息中看不到它的文件名,一旦把它从注册表中删除或禁用,那么通过计划任务启动的程序全部不能自动运行。win9X下系统启动就会开启计划任务,可以通过双击计划任务图标-高级-终止计划任务来停止它自启动。另外,攻击者在攻击过程中,也经常用到计划任务,包括上传文件、提升权限、种植后门、清扫脚印等。
(16)[regsvc.exe]
进程文件: regsvc or regsvc.exe
进程名称: 远程注册表服务
描 述: 远程注册表服务用于访问在远程计算机的注册表。
(17)[rpcss.exe]
进程文件: rpcss or rpcss.exe
进程名称: RPC Portmapper
描 述: Windows 的RPC端口映射进程处理RPC调用(远程模块调用)然后把它们映射给指定的服务提供者。
介 绍:98它不是在装载解释器时或引导时启动,如果使用中有问题,可以直接在在注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices添加"字符串值",定向到"C:\WINDOWS\SYSTEM\RPCSS"即可。
(18)[services.exe]
进程文件: services or services.exe
进程名称: Windows Service Controller
描 述: 管理Windows服务。
介 绍:大多数的系统核心模式进程是作为系统进程在运行。打开管理工具中的服务,可以看到有很多服务都是在调用%systemroot%\system32\service.exe
(19)[smss.exe]
进程文件: smss or smss.exe
进程名称: Session Manager Subsystem
描 述: 该进程为会话管理子系统用以初始化系统变量,MS-DOS驱动名称类似LPT1以及COM,调用Win32壳子系统和运行在Windows登陆过程。
简 介:这是一个会话管理子系统,负责启动用户会话。这个进程是通过系统进程初始化的并且对许多活动的,包括已经正在运行的Winlogon,Win32(Csrss.exe)线程和设定的系统变量作出反映。在它启动这些进程后,它等待Winlogon或者Csrss结束。如果这些过程时正常的,系统就关掉了。如果发生了什么不可预料的事情,smss.exe就会让系统停止响应(就是挂起)。
(20)[snmp.exe]
进程文件: snmp or snmp.exe
进程名称: Microsoft SNMP Agent
描 述: Windows简单的网络协议代理(SNMP)用于监听和发送请求到适当的网络部分。
简 介:负责接收SNMP请求报文,根据要求发送响应报文并处理与WinsockAPI的接口。
(21)[spool32.exe]
进程文件: spool32 or spool32.exe
进程名称: Printer Spooler
描 述: Windows打印任务控制程序,用以打印机就绪。
(22)[spoolsv.exe]
进程文件: spoolsv or spoolsv.exe
进程名称: Printer Spooler Service
描 述: Windows打印任务控制程序,用以打印机就绪。
介 绍:缓冲(spooler)服务是管理缓冲池中的打印和传真作业。
(23)[stisvc.exe]
进程文件: stisvc or stisvc.exe
进程名称: Still Image Service
描 述: Still Image Service用于控制扫描仪和数码相机连接在Windows。
(24)[svchost.exe]
进程文件: svchost or svchost.exe
进程名称: Service Host Process
描 述: Service Host Process是一个标准的动态连接库主机处理服务.
介 绍:Svchost.exe文件对那些从动态连接库中运行的服务来说是一个普通的主机进程名。Svhost.exe文件定位在系统的%systemroot%\system32文件夹下。在启动的时候,Svchost.exe检查注册表中的位置来构建需要加载的服务列表。这就会使多个Svchost.exe在同一时间运行。每个Svchost.exe的回话期间都包含一组服务,以至于单独的服务必须依靠Svchost.exe怎样和在那里启动。这样就更加容易控制和查找错误。windows 2k一般有2个svchost进程,一个是RPCSS(Remote Procere Call)服务进程,另外一个则是由很多服务共享的一个svchost.exe。而在windows XP中,则一般有4个以上的svchost.exe服务进程,windows 2003 server中则更多。
(25)[taskmon.exe]
进程文件: taskmon or taskmon.exe
进程名称: Windows Task Optimizer
描 述: windows任务优化器监视你使用某个程序的频率,并且通过加载那些经常使用的程序来整理优化硬盘。
介 绍:任务管理器,它的功能是监视程序的执行情况并随时报告。能够监测所有在任务栏中以窗口方式运行的程序,可打开和结束程序,还可直接调出关闭系统对话框。
(26)[tcpsvcs.exe]
进程文件: tcpsvcs or tcpsvcs.exe
进程名称: TCP/IP Services
描 述: TCP/IP Services Application支持透过TCP/IP连接局域网和Internet。
(27)[winlogon.exe]
进程文件: winlogon or winlogon.exe
进程名称: Windows Logon Process
描 述: Windows NT用户登陆程序。这个进程是管理用户登录和退出的。而且winlogon在用户按下CTRL+ALT+DEL时就激活了,显示安全对话框。
(28)[winmgmt.exe]
进程文件: winmgmt or winmgmt.exe
进程名称: Windows Management Service
描 述: Windows Management Service透过Windows Management Instrumentation data WMI)技术处理来自应用客户端的请求。
简 介:winmgmt是win2000客户端管理的核心组件。当客户端应用程序连接或当管理程序需要他本身的服务时这个进程初始化。WinMgmt.exe(CIM对象管理器)和知识库(Repository)是WMI两个主要构成部分,其中知识库是对象定义的数据库,它是存储所有可管理静态数据的中心数据库,对象管理器负责处理知识库中对象的收集和操作并从WMI提供程序收集信息。WinMgmt.exe在Windows 2k/NT上作为一个服务运行,而在Windows 95/98上作为一个的exe程序运行。Windows 2k系统在某些计算机上出现的WMI错误可以通过安装Windows 2k SP2来修正。
(29)[system]
进程文件: system or system
进程名称: Windows System Process
描 述: Microsoft Windows系统进程。
介 绍:在任务管理器中会看到这项进程,属于正常系统进程。
其他常见系统进程:
clipsrv.exe 支持"剪贴簿查看器",以便可以从远程剪贴簿查阅剪贴页面
cisvc.exe 索引服务
dfssvc.exe 管理分布于局域网或广域网的逻辑卷
dmadmin.exe 磁盘管理请求的系统管理服务
dns.exe 应答对域名系统(dns)名称的查询和更新请求
faxsvc.exe 帮助您发送和接收传真
grovel.exe 扫描零备份存储(sis)卷上的重复文件,并且将重复文件指向一个数据存储点,以节省磁盘空间(只对 ntfs 文件系统有用)
ismserv.exe 允许在 windows advanced server 站点间发送和接收消息
llssrv.exe 证录服务
locator.exe 管理 rpc 名称服务数据库
lserver.exe 注册客户端许可证
mnmsrvc.exe 允许有权限的用户使用 netmeeting 远程访问 windows 桌面
msdtc.exe 并列事务,是分布于两个以上的数据库,消息队列,文件系统或其它事务保护护资源管理器
msiexec.exe 依据 .msi 文件中包含的命令来安装、修复以及删除软件
netdde.exe 提供动态数据交换 (dde) 的网络传输和安全特性
ntfrs.exe 在多个服务器间维护文件目录内容的文件同步
rseng.exe 协调用来储存不常用数据的服务和管理工具
rsfsa.exe 管理远程储存的文件的操作
rssub.exe 控制用来远程储存数据的媒体
rsvp.exe 为依赖质量服务(qos)的程序和控制应用程序提供网络信号和本地通信控制安装功功能
scardsvr.exe 对插入在计算机智能卡阅读器中的智能卡进行管理和访问控制
smlogsvc.exe 配置性能日志和警报
snmptrap.exe 接收由本地或远程 snmp 代理程序产生的陷阱(trap)消息,然后将消息传递到运行在这台计算机上 snmp 管理程序
termsrv.exe termservice
tcpsvcs.exe 提供在 pxe 可远程启动客户计算机上远程安装 windows 2000 professional 的能力
tftpd.exe 实现 tftp internet 标准。该标准不要求用户名和密码。
tlntsvr.exe tlnrsvr
ups.exe 管理连接到计算机的不间断电源(ups)
utilman.exe 从一个窗口中启动和配置辅助工具
wins.exe 为注册和解析 netbios 型名称的 tcp/ip 客户提供 netbios 名称服务
系统进程就介绍到这里。
在Windows2k/XP中,以下进程是必须加载的:
smss.exe、csrss.exe、winlogon.exe、services.exe、lsass.exe、svchost.exe(可以同时存在多个)、spoolsv.exe、explorer.exe、System Idle Process;
在Windows 9x中,一下进程是必须加载的:
msgsrv32.exe、mprexe.exe、mmtask.tsk、kenrel32.dll。
应该怎样学习JAVA?顺序是什么?
不知道Java 学习顺序的话,我提供你一条学习线路图!
按照视频学习的过程中,学习方法也是很重要的!一定要记得勤记笔记,整理程思维导图,方便后续复习方便。
第一部分:JavaSE:Java语言最基本的一套库
学习JavaEE或JavaME之前,JavaSE是必学的。
* Java开发环境搭建
* Java基础语法
* 面向对象
* 数组
* 异常
* 集合
* 线程
* IO流
* 反射机制
* 注解Annotation
* 网络编程
第二部分:数据库 【MySQL + JDBC】
* 只要学习编程,数据库是一定要学习的,是一门公共的学科。
* java、C、python、C#等程序员都需要学习数据库。
* 数据库产品很多: MySQL、Oracle、SqlServer、DB2......
* 我们动力节点数据库课程包括:MySQL + Oracle
* Oracle:银行、使用oracle的较多。
* MySQL:互联网公司、一般企业使用MySQL较多。
* Oracle我们是提供视频的。课堂上不讲。
* 我们课堂上讲MySQL。
* Java语言链接数据库:JDBC
第三部分:WEB前端
* 系统结构:B/S【Browser/Server】 C/S【Client/Server】
* WEB是网站的意思。WEB前端是:网站当中的页面。
* WEB前端程序是运行在浏览器当中的。
* HTML5 + CSS3 + JavaScript(JS)
* WEB前端也有很多框架:
- jQuery
- Bootstrap
- Vue
- NodeJS
- AugularJS
- RectJS
- LayUI
- EasyUI
.....
第四部分:JavaWEB
* Servlet
* JSP
* AJAX(是JavaScript的一部分语法,专门做页面局部刷新)
第五部分:JavaWEB项目
* 做一个B/S结构的项目,将WEB前端和JavaWEB内容做一个整合练习。
* 其实到这里为止,所有的系统都可以做了。但是用的技术很Low。没有用框架。