kondra
Excellent OT User
Hey,
Recently, OTCv8 has reached recently 300k installations, including 95k android installations, is used by around 10k players every week, our discord server has 4500 members. It's all great, but there's a problem, I don't have so much time as I used to have, due to involvement in other buisness projects, so let's say I can spend max 20h per month on otcv8 development. This isn't enough for such a big project but I don't want to abandon it, like other developers before me did with their projects.
I was discussing with otcv8 source code owners about open-sourcing otcv8, and we agreed it's not a way to go, it didn't work before and it won't work now. Instead, I did something else, I open-sourced whole client/ and lua part of OTCv8, and allowed everyone to edit it. The deal is, if you want to add something new in c++ part, you must do a pull request with your changes. By doing that we will keep every change to otcv8 client part open-source, and there'll be good code review.
To make it work, I created developer edition of OTCv8, it's available here - OTCv8/otcv8-dev (https://github.com/OTCv8/otcv8-dev) - it allows your to edit client/ files without direct access to framework .cpp files. It has many limitations and is designed only for developers. If you want your changes to be released in production-ready version, just do pull request, wait for code-review and merge and after that my CI/CD scripts will build release version and release it on OTCv8/otclientv8 (https://github.com/otcv8/otclientv8). I automated whole process with github actions.
Access to otcv8 framework and some features like bot protection is still a paid option, however from now I'll split profits for that 50/50 with other contributors (I was already doing that before with some developers and maintainers). The price will be lowered a bit every year, and after some time (>3 years) it will become an open-source project.
Here's an example, how to modify otcv8 client part.
Oen44 wanted to add new feature, customizable health and mana bars, something like this:
He downloaded otcv8-dev, added required changes and created pull request - Health and mana bar backgrounds added by Oen44 · Pull Request #8 · OTCv8/otcv8-dev (https://github.com/OTCv8/otcv8-dev/pull/8)
The pull request was tested (OTCv8/otcv8-dev (https://github.com/OTCv8/otcv8-dev/blob/master/.github/workflows/Test.yml)) and everything was fine.
So I did code review and accepted it. Then the other script merged Oen44 changes and released official version with his new feature.
After doing all the tests again, it was automaticlly released as OTCv8 3.0 rev 12 on OTCv8/otclientv8 (https://github.com/OTCv8/otclientv8)
To make it work even better, I developed method of testing otcv8, there are 2 tests so far - OTCv8/otcv8-dev (https://github.com/OTCv8/otcv8-dev/tree/master/tests). After every change to otcv8-dev, you can download otclient binaries, otclientv8.log and screenshots from tests (check for example: OTCv8/otcv8-dev (https://github.com/OTCv8/otcv8-dev/actions/runs/732663598). Here's an example screenshot from test phase:
So, if you want to help, check out OTCv8/otcv8-dev (https://github.com/OTCv8/otcv8-dev)
Recently, OTCv8 has reached recently 300k installations, including 95k android installations, is used by around 10k players every week, our discord server has 4500 members. It's all great, but there's a problem, I don't have so much time as I used to have, due to involvement in other buisness projects, so let's say I can spend max 20h per month on otcv8 development. This isn't enough for such a big project but I don't want to abandon it, like other developers before me did with their projects.
I was discussing with otcv8 source code owners about open-sourcing otcv8, and we agreed it's not a way to go, it didn't work before and it won't work now. Instead, I did something else, I open-sourced whole client/ and lua part of OTCv8, and allowed everyone to edit it. The deal is, if you want to add something new in c++ part, you must do a pull request with your changes. By doing that we will keep every change to otcv8 client part open-source, and there'll be good code review.
To make it work, I created developer edition of OTCv8, it's available here - OTCv8/otcv8-dev (https://github.com/OTCv8/otcv8-dev) - it allows your to edit client/ files without direct access to framework .cpp files. It has many limitations and is designed only for developers. If you want your changes to be released in production-ready version, just do pull request, wait for code-review and merge and after that my CI/CD scripts will build release version and release it on OTCv8/otclientv8 (https://github.com/otcv8/otclientv8). I automated whole process with github actions.
Access to otcv8 framework and some features like bot protection is still a paid option, however from now I'll split profits for that 50/50 with other contributors (I was already doing that before with some developers and maintainers). The price will be lowered a bit every year, and after some time (>3 years) it will become an open-source project.
Here's an example, how to modify otcv8 client part.
Oen44 wanted to add new feature, customizable health and mana bars, something like this:
He downloaded otcv8-dev, added required changes and created pull request - Health and mana bar backgrounds added by Oen44 · Pull Request #8 · OTCv8/otcv8-dev (https://github.com/OTCv8/otcv8-dev/pull/8)
The pull request was tested (OTCv8/otcv8-dev (https://github.com/OTCv8/otcv8-dev/blob/master/.github/workflows/Test.yml)) and everything was fine.
So I did code review and accepted it. Then the other script merged Oen44 changes and released official version with his new feature.
After doing all the tests again, it was automaticlly released as OTCv8 3.0 rev 12 on OTCv8/otclientv8 (https://github.com/OTCv8/otclientv8)
To make it work even better, I developed method of testing otcv8, there are 2 tests so far - OTCv8/otcv8-dev (https://github.com/OTCv8/otcv8-dev/tree/master/tests). After every change to otcv8-dev, you can download otclient binaries, otclientv8.log and screenshots from tests (check for example: OTCv8/otcv8-dev (https://github.com/OTCv8/otcv8-dev/actions/runs/732663598). Here's an example screenshot from test phase:
So, if you want to help, check out OTCv8/otcv8-dev (https://github.com/OTCv8/otcv8-dev)
Last edited: