Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/turesnake/tprpix

a Cross-Platform, 2D Survival Sandbox Game Project. Based on C++17/cmake/OpenGL/SQLite3.
https://github.com/turesnake/tprpix

c-plus-plus c-plus-plus-17 clang cmake cpp cpp11 cpp17 cross-platform game glad glfw3 graphics opengl sqlite3

Last synced: 6 days ago
JSON representation

a Cross-Platform, 2D Survival Sandbox Game Project. Based on C++17/cmake/OpenGL/SQLite3.

Awesome Lists containing this project

README

        

# tprPix
**tprPix** 是一个跨平台的,2D生存向沙盒游戏项目。

项目基于: **C++17/OpenGL/SQLite3**.

(注意,**tprPix** 是项目的名称, 而非游戏本身的名称 (我还没想好hhh...) )

![screenShot.01](Docs/pngs/screenShots/ss.01.png)

## 我该下载哪个分支
直接下载 Branch:**master** 即可。

## 此项目支持哪些平台
- **Win10**
- **MacOSX** (10.12 或更高版本)
- **Ubuntu** (16.04 或更高版本)

也许可以支持各平台的较早版本,但我尚未测试。

## 支持哪款编译器
**Clang** 是最推荐的编译器,即便是在 **Win10** 平台。
请确保你所下载和安装的 **Clang** 版本,支持 **C++17**。

## 如何安装

### Mac OS X

在 **Mac** 平台的安装非常简单。

首先,确保你已经成功安装如下程序:
- **CMake** (3.1 或更高版本; 若想使用PCH,Unity-builds 技术加速编译,推荐 3.16 或更高版本)
- **Clang** (足以支持 **C++17** 的较新版本)
- **OpenGL** 相关的库

然后,打开 **终端**(terminal),**"cd"** 至 本项目的根目录:

$ cd .../appRootDir/

(**注意**,此处的 "appRootDir" 应替换为实际的根目录名字)

接着,运行一份 shell 脚本程序:

$ ./unix_release.sh

脚本 `unix_release.sh` 将会自动化地帮我们完成程序的 **build** 和本地化部署工作。
你也可以选择运行另一份脚本:`unix_debug.sh`, 正如名字所示,它将生成一份 **DEBUG** 版的程序。在 **DEBUG** 模式下,游戏的运行性能会显著下降。想要试玩的朋友,请尽可能调用 **release** 模式。

现在,所有的安装工作都已经 **完成** 了!!!

你可以在目录: **.../appRootDir/build/publish/** 中找到可执行文件:**tprpix**。
双击它,开始我们的游戏!!!
(**注意**,此处的 "appRootDir" 应替换为实际的根目录名字)

### Ubuntu
在 **Ubuntu** 上的安装与 **Mac OS X** 十分相似。

首先,请确保你已经安装如下程序:

**CMake** (3.1 或更高版本; 若想使用PCH,Unity-builds 技术加速编译,推荐 3.16 或更高版本):

$ sudo apt-get install cmake

**Clang** (足以支持 **C++17** 的较新版本):

$ sudo apt-get install llvm
$ sudo apt-get install clang

重设系统默认的 **C/C++编译器**:

$ sudo update-alternatives --config c++
$ sudo update-alternatives --config cc

再安装几个与图形有关的第三方库:

$ sudo apt-get install libx11-dev
$ sudo apt-get install libglfw3-dev
$ sudo apt-get install libsdl2-dev

现在,打开 **终端**(terminal),**"cd"** 至 本项目的根目录:

$ cd .../appRootDir/

(**注意**,此处的 "appRootDir" 应替换为实际的根目录名字)

接着,运行一份 shell 脚本程序:

$ ./unix_release.sh

脚本 `unix_release.sh` 将会自动化地帮我们完成程序的 **build** 和本地化部署工作。
你也可以选择运行另一份脚本:`unix_debug.sh`, 正如名字所示,它将生存一份 **DEBUG** 版的程序。在 **DEBUG** 模式下,游戏的运行性能会显著下降。想要试玩的朋友,请尽可能调用 **release** 模式。

现在,所有的安装工作都已经 **完成** 了!!!

你可以在目录: **.../appRootDir/build/publish/** 中找到可执行文件:**tprpix**。
(**注意**,此处的 "appRootDir" 应替换为实际的根目录名字)

在 **终端** 中启动它:

$ build/publish/tprpix

开始我们的游戏!!!

### Win10

为了支持 **Win10** 中的 **Clang**,我们首先要安装 **Visual Studio 2019**。

同时,确保你的 **Visual Studio** 中也安装了如下组件:

![Check Clang and Cmake](Docs/pngs/win10/clang_and_cmke_check.png)

然后,启动 **Visual Studio 2019**,点选初始界面中的 `Open a local folder` 按钮,在弹出的窗口中,选择本程序的根目录 ->

![open a local folder](Docs/pngs/win10/000.png)

进入主界面后,VS 会主动识别出一份根目录下的配置文件:`CMakeSettings.json`,并且根据这份文件内的描述,自动创建一份名为 `x64-Clang-Release` 的 配置方案(configurations)。此时你会看到 VS: **Output 面板**中 正在做有关 cmake Cache 的解析和生成工作。 稍等数秒后,你会在 **Output 面板** 中看到:

CMake generation finished.

这表明 cmake Cache 生成成功了!

**注意:** 如果在这一过程中发生错误,请阅读 [这份文章](Docs/how_to_handle_visual_studio.md),学习如何以 **手动配置** 的方式,来生成 cmake Cache。

在 cmake Cache 生成成功后。在 **Visual Studio 2019** 左上方的 `Build` 菜单中,找到 `Build All` 按钮,点击它,开始正式的 **Build** 工作。(也可以使用快捷键:`F7`) ->

![Build All](Docs/pngs/win10/009.png)

**Build** 工作 将会持续数分钟,直到我们在下方的 **Output** 面板中看到 `Build All succeeded.` 的信息。这表示,**Build** 成功。我们在 **Visual Studio 2019**
中的工作就全部结束了。

最后的最后,回到本项目所在的根目录。寻找并双击一份名为 `win.bat` 的脚本文件。
它将帮助我们执行本地化部署工作。

现在,安装正式**完成**!!!

你可以在目录 **.../appRootDir/build/publish/** 中,找到可执行文件 **tprpix.exe**,
它就是我们的程序本体。
(**注意**,此处的 "appRootDir" 应替换为实际的根目录名字)

双击此文件,开始我们的游戏!!!

## 编译后的 最终生成包

不管在任何平台编译,最终的生成包是统一的:**.../appRootDir/build/publish/**, 你可以将这个 **publich** 文件夹,
复制到任何位置,都不会影响文件夹内 可执行文件 的运行。可执行文件需要的一切资源,都被集成在了 **publish** 目录内。

## 怎么玩这款游戏

本游戏同时支持 **键盘** 和 绝大部分 **游戏手柄** 输入。
考虑到这是一款动作类游戏,作者更推荐大家使用手柄来游戏。( Xbox360 或其他山寨版都支持 )

### 手柄按键布置(Xbox360-Style):
- **左摇杆**: 控制角色移动。

- **按键:A**: 确认键。
在游戏世界中,玩家可以按压 **按键:A** 来提升 玩家所操作角色的 移动速度。
(其实这是提供给开发者 Debug 用的功能)

- **按键:B**: 降低 玩家所操作角色的 移动速度。

- **按键:X/Y**: 在 **终端** 中打印一些数据,供开发者 Debug 用。

### 键盘按键布置:
- **按键:W/A/S/D**: 控制角色移动。
- **按键::Enter**: 确认键。
- **按键::H/J/K/L**: 功能对应游戏手柄中的 **'A/B/X/Y'** 键.

**请注意,当系统输入法为中文模式时,游戏将无法识别键盘按键。请务必切换到英文输入法模式。**

在目前版本中,一旦玩家进入游戏世界,可以控制一只小鸡四处游览世界。通过按下 **键盘键:H** 或者 **游戏手柄键:A**,可以让小鸡速度加快甚至飞行。这原本是提供给开发者来检视 世界生成效果用的。

鉴于本游戏的剩余部分仍在开发中,所以还请体验者们耐心等待。

## 如何修改程序窗口尺寸
现阶段暂不支持 全屏模式。改写窗口尺寸的配置文件,放置在 **.../publish/jsons/windowConfig.json** 文件中。如图所示:

![Window Config](Docs/pngs/oth/windowConfig_1.png)

如果你想调整你的 **窗口尺寸**,请修改变量:`windowPixW, windowPixH`(单位为像素)。正如变量:`recommend:windowPixW, recommend:windowPixH` 所示,推荐的尺寸是 1920,1200。(事实上,你可以将变量 `windowPixW, windowPixH` 改写成任意整形数值(integer),只要记得别超出你的显示器限制。程序会自动照顾好窗口长宽比。)

请勿修改变量 `recommend:windowPixW, recommend:windowPixH`,它们对程序不起任何作用,仅仅是一份提示。

请保持变量 `isFullScreen` 值为 `false`。 针对它的修改将使程序启动失败。

在修改完参数后,保存文件。再次运行 app,就能获得对应效果。无需再次编译。

# 现存的问题
如果您在运行程序时,遭遇以下问题,请勿惊慌:

## 进入游戏,点击一个存档后,陷入死机
这个 bug 有较小的几率被触发。
当遇到这个问题时,推荐您先强制退出程序。然后直接删除 **.../appRootDir/build/publish/dataBase/** 文件夹。对,整个删除即可。这是程序的 存档文件夹。请放心粗暴地随意删除之。

## 三个存档占满了怎么办
目前的游戏尚未实现完整的 **UI系统**,就连 **存档系统** 也是残缺的。
如果存档已满,还是请直接删除 **.../appRootDir/build/publish/dataBase/** 文件夹。

## 运行中出现闪退怎么办
您可以将闪退后的**命令行信息**提交到**issues**处,或者直接通过下方的联系方式传达给我。这将帮助我更好地完成程序。

## 更多问题有待暴露
...

# 版权协议遵守 [BSD 3-Clause](LICENSE)

# 欢迎反馈与建议
本游戏的剩余部分仍在开发中,如果您有任何反馈或建议,都可以通过下方联系方式联系开发者本人。

## 联系方式
* E-mail: [[email protected]](mailto:[email protected])
* QQ: 651700603
* 微信:turesnake