szmyk / gmbt Goto Github PK
View Code? Open in Web Editor NEWBuild automation tool designed to speed up testing and cooking Gothic & Gothic 2 NotR mods
Home Page: https://szymonzak.ovh/gmbt/
License: MIT License
Build automation tool designed to speed up testing and cooking Gothic & Gothic 2 NotR mods
Home Page: https://szymonzak.ovh/gmbt/
License: MIT License
The current method of detection the configuration changes is based on hashing the whole file and checking the last config's hash from GOTHIC.INI.
It must be replaced by checking only those keys and values from the config, the change of which requires re-unpacking the assets.
It can be done in several ways:
[GMBT]
lastConfig=gothicRoot:..\..|modFiles:assets:-mdk:-mdk-overrides|exclude:-mod\dk.ini|defaultWorld:NEWWORLD.ZEN;
Saving config file, eg. in System
directory and then checking the differences.
Saving to the other file only those keys and values from the config, the change of which requires re-unpacking the assets and then checking the differences.
For example:
gmbt test --reinstall
- reinstall needs full testgmbt test --reinstall --merge=scripts
- reinstall needs all assets to compile, not only scriptsGothic will launch again after ending with an error message before.
Only a Gothic2.exe process is seen in Task Manager, but the game doesn't launch.
To enable a better distribution of the tool, an in-application updater should be created.
It could use a parameter or verb command, eg. gmbt update
and provide auto-checking latest release at the end of every instance.
Pack mode should only merge directories and pack assets to VDF.
-V
, --verbosity
Compile mode should only merge directories and run Gothic with nomenu argument and kill process after scripts parsing.
For example default language, default zSpy mode could be set in the config file.
Hooks system will be very similar to git
functionality of specifying scripts that git will call based on different events and actions.
Hooks will be defined in YAML config, eg. something like this:
hooks:
- 'common-pre': 'scripts\pre.bat'
- 'common-pre-subtitles-convert': 'scripts\pre-subtitles-convert.bat'
- 'test-pre-subtitles-convert': 'scripts\pre-subtitles-convert-test.bat'
- 'quickTest-pre-subtitles-convert': 'scripts\pre-subtitles-convert-quick-test.bat'
- 'fullTest-pre-textures-compile': 'scripts\pre-textures-compile.bat'
- 'build-pre-game-start': 'scripts\pre-game-start.bat'
etc...
pre
post
pre-assets-merge
pre-subtitles-convert
pre-textures-compile
pre-game-start
pre-vdf-build
post-vdf-build
--comment
parameter of build
verb command which allows user to define/override comment of VDF.
Fatal:-1 C: maximum texture size is lower than 32. possible reasons: wrong gfx driver setup (install other driver), bad os state (try to reboot), or insufficient gfx hardware (buy better gfx card!) .... <zTexture.cpp,#588>
Before GMBT it worked properly.
..\..\..
to ..\..
On fresh it's working, but after trying to build by GMBT i can't run game. I tried to find a solution but without any results.
(attach log file which you can find in %APPDATA%/GMBT/logs/**date**/**time**.log
)
15-27-02.log
To enable better comfort of using the tool, it is necessary to allow the user to save command line parameters which will be used in the next runs of the tool.
It can be done in two ways:
--save
argument which will save whole arguments array and using it every time when user is not passing any arguement,
gmbt config
verb command similar to git config
command
User config file is used by many other tools and IDEs. The config file will be the file which can contain only user related options, eg. default zSpy mode and other default options. For example GMBT will be searching for .gmbt_user.yaml
file to parse user options.
Possibility to set predefined console arguments in config file:
options:
- "world": "-world=WORLD.ZEN"
- "anotherworld": "--windowed --world=WORLD2.ZEN"
and then using them eg. like this: gmbt test anotherworld
.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.