• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

OTCv8 is now opened for c++ developers

kondra

Excellent OT User
Joined
Apr 9, 2018
Messages
192
Solutions
3
Reaction score
692
Location
/dev/null
GitHub
OTCv8
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:
1617975573661.png

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.
1617975708104.png

So I did code review and accepted it. Then the other script merged Oen44 changes and released official version with his new feature.

1617975846352.png

After doing all the tests again, it was automaticlly released as OTCv8 3.0 rev 12 on OTCv8/otclientv8 (https://github.com/OTCv8/otclientv8)

1617975892587.png

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:

1617976277516.png

So, if you want to help, check out OTCv8/otcv8-dev (https://github.com/OTCv8/otcv8-dev)
 
Last edited:
It is good to know that you are finally making the decision to open the code that you have modified and perfected so much, I suppose that in 1 or 2 years I will use this client when it is completely free code, great job OTCv8
 
It is good to know that you are finally making the decision to open the code that you have modified and perfected so much, I suppose that in 1 or 2 years I will use this client when it is completely free code, great job OTCv8
I'm with Sarah. I will use this client too. Good job @kondra

...also waiting for an "original" client theme, otclient default and retro are not my taste for a custom server. We have to move from Cipbia.
 
This will open many doors, so that each time the client gets better :)
 
The only closed source part here is the part that 99% of you won't even understand (if you could, then you would make OTC as good as v8 is).
With Developer Edition you can create A LOT more than you could with modules (and that's powerful enough).
Kondrah used my feature as example, here is video showing what it really does and that should be enough to show you what you can do now.
 
Last edited:
By doing that we will keep every change to otcv8 client part open-source, and there'll be good code review.
Code review and management of contributions can be done in a fully open-source environment. It has been done for decades. I don't see how your decision to only partially open-source the code while asking for help from external developers has anything to do with ensuring code quality.
 
Code review and management of contributions can be done in a fully open-source environment. It has been done for decades. I don't see how your decision to only partially open-source the code while asking for help from external developers has anything to do with ensuring code quality.
TFS, OTC, literally everything in this community. People just clone and do stuff in private, 25% of the work is shared. The moment v8 goes fully open-source, it will end the same. Now? You want custom features? You have to share it with others. You don't want to share it? Support v8 devs and pay for full sources.
 
TFS, OTC, literally everything in this community. People just clone and do stuff in private, 25% of the work is shared. The moment v8 goes fully open-source, it will end the same. Now? You want custom features? You have to share it with others. You don't want to share it? Support v8 devs and pay for full sources.
I see. I did not take this into consideration. Appreciate the insight, honestly.
 
I added mac os and linux support.
View attachment 58902
I have this error every time I try to execute the mac executable:

FATAL ERROR: Render error: 1286 in draw (/Users/runner/work/otclient/otclient/src/framework/graphics/drawqueue.cpp:267)

Btw I was able to execute it the first time, then it started to appear that error.
 
Back
Top