Infinideastudio/NEWorld

申请目录结构修改

harrynull opened this issue · 35 comments

修改后的目录结构:
工作目录: ./bin/
./bin/NEWorld.dll
./bin/NEWorldServer.dll
./bin/NEWorldLauncher.exe
./bin/res/
./bin/plugins/
缓存、中间文件位置不规定,但是要求被ignore;VS中放在各个project的目录下,例如:.\build\visualstudio_v14\NEWorld\Debug
理由:方便启动器寻找dll路径,方便安放依赖库dll,方便在客户端中启动服务端,方便发布

之前分散到各个编译器的目录里主要是出于方便同时使用不同编译器开发的场景和切换不同编译模式不清空缓存,实际上这种情况很少发生,并且因此启动器的参数复杂了很多,目录结构较为混乱,发布复杂,且对新开发者不友好。

res和plugins直接放到./res和./plugins吧,其他的表示赞同

@qiaozhanrong 我的意思是发布的时候只发布./bin就行了,这样避免目录上下级切换

蛤,什么鬼
只发布./bin的话NEWorld文件夹就一个bin好奇怪
目录上下级切换其实只要在所有相对路径之前加个../就行了

@qiaozhanrong 不奇怪啊,发布的时候bin改名NEWorld

我原打算是一个NEWorld文件夹,bin里放二进制代码,res里放资源,plugins里放插件,data里放生成的数据(好像目前就一个data/worlds),configs里放设置。。。

你可以把bin当成release文件夹……(话说我们这样刷不会被骂吗233 你不上QQ吗)

bin和release有啥联系
不上QQ是防止被家长发现【其实是懒得上2333】

@qiaozhanrong 就是bin目录用来发布,里面是发布所需要的文件
P.S. NEWorld x64 编译/运行成功

_bin和**release**_有啥联系

@qiaozhanrong release==发布

别告诉我是因为“发布的都是二进制文件” 2333

@qiaozhanrong ……那你改个名字也好啊

那还不如我那种啊233

你那种还要多一层目录,unix/linux用户就会在那里跟你扯工作目录,然后弄个-f参数了

23333

我支持把bin改为release,并把资源文件丢进去
或者资源文件放到data文件夹,外层就是launcher和client/server

资源和二进制代码分开吧。。。

支持@Miigon 的方案

资源和代码本身就没直接关系
而是跟可执行文件有关系

已修改……

@Miigon 我说的是“资源”和“二进制代码”

@qiaozhanrong 资源和二进制代码不是匹配的么?放到一起是合理的吧

@qiaozhanrong 现在资源放在外面,然后一个软链接进去

@abc612008 什么鬼
软链接不说跨平台了,连Windows都不一定能够兼容

@Miigon 为啥

尝试以下这些事情:

  • 把你的硬盘格式化成fat32,然后执行mklink
  • 把你的系统重装为xp,然后执行mklink
  • 把一个软链接用git上传
  • 用Mac查看Windows的软连接
  • 用Windows查看Mac的软连接

@Miigon mklink只是给开发者用的,因为release/目录下的东西会被ignore掉,但是素材都是要传到git的,所以素材放在外面一层目录,然后clone下来之后软连接到release目录里去

如果不支持软连接的话完全可以用复制代替

所以发布的时候还是要自己去拷贝的话和没有修改有什么区别。。。

@Miigon 不是啊……发布的时候只需要发布release文件夹里的东西就行了……复制/软连接是针对开发者的,想要节省空间就软连接

要是这点麻烦也忍受不了的话,那就把res挪到release文件夹好了,我只是懒得改.gitignore而已

不是怕麻烦,是怕忘记

已修改……

你是不是忘了push了

@Miigon 已修改指的是改成./bin 但是我没改cmake(我不会cmake QAQ)

我支持把bin改为release,并把资源文件丢进去
或者资源文件放到data文件夹,外层就是launcher和client/server

你自己说支持把资源文件丢进去的

已改