保存和加密 java class
saving and encrypting java class
我已经编写了自己的 3D 游戏引擎并开始编写游戏。我正在使用使用 TurboSquid Royalty Free License
的 OBJ 模型
基本上,它说我可以使用他们的 OBJ 文件,但必须实现一些东西来避免用户从我的程序中提取 OBJ 文件。
我写了一个转换器,从 OBJ 文件中提取信息并创建几个 float/integer 数组 [顶点、顶点坐标、法线、切线...、索引]
这些数组稍后将用于创建 VAO/VBO。所以我的想法是创建一个名为 OBJModelData
的 Java class 来包含这些数组。 OBJModelData
实施Serializable
。我的尝试是将 class 保存到文件中并使用它们而不是 OBJ 文件,这样用户就无法看到和使用内容。
我的尝试是这样的:
public void writeToFile(String file){
File f = new File(OBJLoader.RES_LOC+ file +".dat");
try {
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(f));
out.writeObject(this);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
这会生成一个名为 modelName.dat
的文件,如下所示:
显然必须进行逆向工程才能重新创建我的数组。我只是不喜欢它的书写方式。例如已经序列化的class写在第一行。如果有人通过对我的引擎进行一些逆向工程以某种方式管理获取我的引擎的源文件,他可以轻松读取该文件。
我的方法是否足够节省以避免重新创建 obj 文件,我仍然可以使用此方法来满足许可条件,还是有任何其他通常使用的方法(例如在其他 games/engines 中)?
你引用的结尾说:"without reverse engineering",所以你不需要进行逆向工程。你只需要 "translate" 从 OBJ 到你创作的另一种格式,就像你一样。
我已经编写了自己的 3D 游戏引擎并开始编写游戏。我正在使用使用 TurboSquid Royalty Free License
的 OBJ 模型基本上,它说我可以使用他们的 OBJ 文件,但必须实现一些东西来避免用户从我的程序中提取 OBJ 文件。 我写了一个转换器,从 OBJ 文件中提取信息并创建几个 float/integer 数组 [顶点、顶点坐标、法线、切线...、索引]
这些数组稍后将用于创建 VAO/VBO。所以我的想法是创建一个名为 OBJModelData
的 Java class 来包含这些数组。 OBJModelData
实施Serializable
。我的尝试是将 class 保存到文件中并使用它们而不是 OBJ 文件,这样用户就无法看到和使用内容。
我的尝试是这样的:
public void writeToFile(String file){
File f = new File(OBJLoader.RES_LOC+ file +".dat");
try {
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(f));
out.writeObject(this);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
这会生成一个名为 modelName.dat
的文件,如下所示:
显然必须进行逆向工程才能重新创建我的数组。我只是不喜欢它的书写方式。例如已经序列化的class写在第一行。如果有人通过对我的引擎进行一些逆向工程以某种方式管理获取我的引擎的源文件,他可以轻松读取该文件。
我的方法是否足够节省以避免重新创建 obj 文件,我仍然可以使用此方法来满足许可条件,还是有任何其他通常使用的方法(例如在其他 games/engines 中)?
你引用的结尾说:"without reverse engineering",所以你不需要进行逆向工程。你只需要 "translate" 从 OBJ 到你创作的另一种格式,就像你一样。