• 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!

Moving towards OTC

What should we do


  • Total voters
    57
  • Poll closed .
Status
Not open for further replies.
These guys from Necronia solved the performance issue, which was #1 stated here by other people, however they did not share it with community.
They probably didn't share because either they spent money doing this or they think that by sharing, they'll help competition.
I'm not saying that they are right or wrong by not sharing, just stating that this is why OTC or any other client will not go much further.

I feel that I shared (and still am sharing) a lot of stuff with the community and I'm not willing to go all out and share every single file and script I have to people who won't even take 2 seconds to say thank you or post some feedback, as it happened in most cases before. Whatever we did to shaders (and they're still not fixed fully), took a lot of research and work on Tarjei's side, and he himself has lost interest in sharing with the community as well, when nobody appreciated the posts he made before.

I already shared some knowledge in this thread of how the issue could be dealt with, but I don't personally have experience with coding it because I never did it, I know the theory from what I heard the experienced associates say.
Sorry if I come off as cross, but I feel accused and it's rude to say that my project is the reason why no progress on OTC is ever getting made. To give so much to the community and still be called a leecher discourages me to ever post anything again, but I've dealt with stuff like this before so, whatever
 
We use OTC on Necronia and I can confirm that it's a bit fishy when it comes FPS and graphics in general. We had to do a lot of optimization on animations and light shaders in order to get it to be decently fluid without noticeable FPS drops in crowded areas and big fights, however, the most optimal way to make lights that work even on engines like DirectX9 without being problematic is to make them as vertex shaders. Currently we use fragment shaders and they still cause a ton of lag if a lot of light is displayed in a single area.

I noticed this especially in areas where tiles (for example: lava) give off light. Since each tile of lava gives off light, areas where there's a lot of lava will make the FPS drop by up to 95%, depending on your machine. On my new laptop, the FPS drops are not so bad (drops from 120 to 70), but on my old PC (2.0 ghz intel cpu, 1 gb nvidia gfx, 4 GB ram) the FPS drops were horrible, like, from 60~ to 5.

I think OTC uses a poor lighting algorithm by default as well, that one caused lags non stop before we changed to frag. shaders. :|
Maybe don't make map tiles/items emit light?
and give them that condition on server startUp. depending on your own formula. (aka , if lava tile is 3x3 then middle tiles only gives strenght 3 red light or something) that latter is not hard to do.
However don't know how hard is to remove light from items.
 
Maybe don't make map tiles/items emit light?
and give them that condition on server startUp. depending on your own formula. (aka , if lava tile is 3x3 then middle tiles only gives strenght 3 red light or something) that latter is not hard to do.
However don't know how hard is to remove light from items.

It's very easy to remove light from items in ObjectBuilder, but this is not a permanent solution because if we can't use lights, a lot of the game's nice looks and ambient is killed. What's the point of having light if you can't use it, you know?
However, we resorted to this solution for the time being.
 
It's very easy to remove light from items in ObjectBuilder, but this is not a permanent solution because if we can't use lights, a lot of the game's nice looks and ambient is killed. What's the point of having light if you can't use it, you know?
However, we resorted to this solution for the time being.
I'm not saying to remove light in game. I just said you add the light on server startup to places where you want. You said its problem if light is stacked or or near eachother.
well just put only 1 light source there which will make the end result still look the same.
 
I feel that I shared (and still am sharing) a lot of stuff with the community and I'm not willing to go all out and share every single file and script I have to people who won't even take 2 seconds to say thank you or post some feedback, as it happened in most cases before. Whatever we did to shaders (and they're still not fixed fully), took a lot of research and work on Tarjei's side, and he himself has lost interest in sharing with the community as well, when nobody appreciated the posts he made before.

I already shared some knowledge in this thread of how the issue could be dealt with, but I don't personally have experience with coding it because I never did it, I know the theory from what I heard the experienced associates say.
Sorry if I come off as cross, but I feel accused and it's rude to say that my project is the reason why no progress on OTC is ever getting made. To give so much to the community and still be called a leecher discourages me to ever post anything again, but I've dealt with stuff like this before so, whatever

I don't think he is saying that YOU are the problem, it's projects that rarely share things.
I would not say that realmapHighExp.com is the main problem, but s/he and the others make a gruop, that never release things.
And when most people join the "no share" train the community dies out, everyone wants what everyone else has but won't share what others might want.
So id say don't take offence yourself, it's not just you I have also been this way with alot of things, hell I have kept unused codes for years, mainly since I think they are things you should deserv not just get(a way to get away from most of the leechers).


Maybe don't make map tiles/items emit light?
and give them that condition on server startUp. depending on your own formula. (aka , if lava tile is 3x3 then middle tiles only gives strenght 3 red light or something) that latter is not hard to do.
However don't know how hard is to remove light from items.

Things I plan to look at in the future is;
How much of the map is loaded when you stand at 100, 100, 7. Do you get what you see + abit more, or is a large portion of the map loaded.
The more we load and cache the more we "punish" users with bad computers.
Also simple things in the grafics code, is there other things we can optimize to make it easier for users with bad computers, maybe (if it dosen't exist) add some type of grafics settings, min, mid, max or an FPS limiter.
 
I'm not saying to remove light in game. I just said you add the light on server startup to places where you want. You said its problem if light is stacked or or near eachother.
well just put only 1 light source there which will make the end result still look the same.

We have invisible objects that act as light sources in places where we need light but can not risk putting them on items that are frequently repeated throughout the area. Like I said, the problem is temporarily resolved on our side this way, but it exists in the core of the lighting mechanics in general, that's something that someone needs to overcome if they want to fully fix this.
 
We have invisible objects that act as light sources in places where we need light but can not risk putting them on items that are frequently repeated throughout the area. Like I said, the problem is temporarily resolved on our side this way, but it exists in the core of the lighting mechanics in general, that's something that someone needs to overcome if they want to fully fix this.
That's what I'm saying, but instead of manually placing the lights, you simply give series of formulas which will automatically generate these light sources for you. (totally doable in LUA)

Things I plan to look at in the future is;
How much of the map is loaded when you stand at 100, 100, 7. Do you get what you see + abit more, or is a large portion of the map loaded.
The more we load and cache the more we "punish" users with bad computers.
Also simple things in the grafics code, is there other things we can optimize to make it easier for users with bad computers, maybe (if it dosen't exist) add some type of grafics settings, min, mid, max or an FPS limiter.
@Flatlander might give some input on this, he increased the tiles which we can see trough client. Maybe he noticed the limits or problems when doing so.
 
I am going to look into the lighting system and re-do it if possible. (Mainly because I planned to do it anyway because I have some interesting ideas of how to make tibia's lighting better)

There HAS to be a good way to do lighting. We don't have shadows, and the lights don't even move.

So other than Lighting.

What else do you think is making the OTClient slow?
If you know any specifics post them here, I use the OTClient, but I basically have a super-computer so I never experience any of these issues.

I plan on building a terrible computer to do tests on, but if people already know what the issues are, it could help.
 
I am going to look into the lighting system and re-do it if possible. (Mainly because I planned to do it anyway because I have some interesting ideas of how to make tibia's lighting better)

There HAS to be a good way to do lighting. We don't have shadows, and the lights don't even move.

So other than Lighting.

What else do you think is making the OTClient slow?
If you know any specifics post them here, I use the OTClient, but I basically have a super-computer so I never experience any of these issues.

I plan on building a terrible computer to do tests on, but if people already know what the issues are, it could help.
I did a quick profiling and the most consuming task is inside the Map drawing ( is not a suprise ), a lot of thing could be optimized here but for now i think is fine.
Maybe looking in the movement or effects could be good but what i think which is the main problem for now is the light's, this really need a optimization.
 
I did a quick profiling and the most consuming task is inside the Map drawing ( is not a suprise ), a lot of thing could be optimized here but for now i think is fine.
Maybe looking in the movement or effects could be good but what i think which is the main problem for now is the light's, this really need a optimization.

How did you do your profiling? If I may ask.
 
How did you do your profiling? If I may ask.
I use Instruments from XCode. Linux you should use perf or xperf in Windows, also VTune from Intel could be a very good choice ( they have a free non-comercial license )
 
I use Instruments from XCode. Linux you should use perf or xperf in Windows, also VTune from Intel could be a very good choice ( they have a free non-comercial license )

Xcode is on mac right?

I have been reading up on multiple ways of doing lighting systems. My first goal will be to simply make the cheapest (cpu wise) lighting system I can manage.
But after that, I plan to see if I can make it so items that block sight, also block light.

Just to let you know, I'll basically be doing this from almost no knowledge of lighting systems. I have been reading up on multiple different ways of doing lighting, and which ways are more cost-effective, but I am sure there are plenty of people out there more knowledgeable than I am.

So when I produce something that I show is faster after I do testing with it. And some person posts a reply saying "You should of done it this way ~~, it would have been 10x faster, plus give more functionality". I will first probably be angry that I wasted my time, and that someone else could have simply told me which lighting system might work well. But the only suggestion I have seen is that Vertex Shaders would make faster lighting.
 
Xcode is on mac right?

I have been reading up on multiple ways of doing lighting systems. My first goal will be to simply make the cheapest (cpu wise) lighting system I can manage.
But after that, I plan to see if I can make it so items that block sight, also block light.

Just to let you know, I'll basically be doing this from almost no knowledge of lighting systems. I have been reading up on multiple different ways of doing lighting, and which ways are more cost-effective, but I am sure there are plenty of people out there more knowledgeable than I am.

So when I produce something that I show is faster after I do testing with it. And some person posts a reply saying "You should of done it this way ~~, it would have been 10x faster, plus give more functionality". I will first probably be angry that I wasted my time, and that someone else could have simply told me which lighting system might work well. But the only suggestion I have seen is that Vertex Shaders would make faster lighting.
Yes, OS X.
I also have not knowledge for doing this now and no time for search more about how the good way of doing it or reading deep in how the code works and can be optimized, this is why i can't do it right now.
I find some interesting things on the otc repository, maybe you want to know it.
Here, here and here.
 
Yes, OS X.
I also have not knowledge for doing this now and no time for search more about how the good way of doing it or reading deep in how the code works and can be optimized, this is why i can't do it right now.
I find some interesting things on the otc repository, maybe you want to know it.
Here, here and here.

I will do some testing and post my results later (might take a few days).
 
Well to me code style is almost #1, I can't work with something I can't understand and to understand it you have to read up on it, same thing we did 0.x.
I rarely botherd to mess around with the source codes of 0.x, but I started more and more when 1.0 was released, mainly because I now could read the code.
If you ask me what I have right now on github is alot easier to understand then what is on the main repo(I have learned atleast some by just reading the little code I have the past few days).

It's like starting to work in any Ruby project, saying you can only work with C++ and expecting the whole community to move with you and rewrite the entire code.
 
It's like starting to work in any Ruby project, saying you can only work with C++ and expecting the whole community to move with you and rewrite the entire code.

As ive said, im not doing this only for me also never asked the whole community to help, but atleast some who wishes to.
I get the feeling that you are negative to this, may I ask why?
Becuase to me this is a thing that can finally get this community growing again, insted of us all splitting up and writing our own codes.

And I don't see any problems doing a project like this if others wants it aswell, same goes for things like TFS.
Only diffrence is that we are on the other side, the client.
 
As ive said, im not doing this only for me also never asked the whole community to help, but atleast some who wishes to.
I get the feeling that you are negative to this, may I ask why?
Becuase to me this is a thing that can finally get this community growing again, insted of us all splitting up and writing our own codes.

And I don't see any problems doing a project like this if others wants it aswell, same goes for things like TFS.
Only diffrence is that we are on the other side, the client.

You are willing to put effort on OTC but your main concern is to drive your energy for something that provides no gain at all. If every project you start working with, you need to change the language for a language you already know and the code style to one you are already used to, you will waste to much time just to set up your comfort zone. People showed a lot of concern with performance (the light shit) and how it could look more as default client, but your number one issue is to have to change the entire code style to something WibbenZ is comfort with.
 
You are willing to put effort on OTC but your main concern is to drive your energy for something that provides no gain at all. If every project you start working with, you need to change the language for a language you already know and the code style to one you are already used to, you will waste to much time just to set up your comfort zone. People showed a lot of concern with performance (the light shit) and how it could look more as default client, but your number one issue is to have to change the entire code style to something WibbenZ is comfort with.

Well id more or less say what Mark and most of the others prefer (seeing as it now looks like TFS).
If you read the thread, you will notice that I was correct, people seem to prefer a code that is easy to read.
Just take this:
Code:
1*3/2+2+4*mfs-mvn*2/3

Things like that are imposible to read, but they are still approved in PRs.
Same with for loops;
Code:
for(int i=0;i<mxlm;i++)

Or what about the one liners if statments that you always miss?
Code:
if player:getHealth()<0 or player:getMana()/2>player:getHealth()/2 then return end

Wierd things that you miss = truoble.
That is most likely the main reason why Mark changed the code style with 1.0.

About the spaces, sure some prefer them saying they prefer the "shorter tabs" - but a tab is a thing you can change, a tab could look like 100 spaces or 2 spaces - learn to work with your code editor.

But yes the code style was a #1 for me, it makes it easier to find the issues aswell as learning the codes.
I have started with some smaller things, but it's really hard to even understand the grafics code since it's split out everywhere(thanks Gesior for telling me this) and how it's all so boxed.
So please don't say it won't provide any gain, the things ive already started to change to be more like the standalone client I would never have been able to do if the code was a mess, not even using serach tools.
 
Well id more or less say what Mark and most of the others prefer (seeing as it now looks like TFS).
If you read the thread, you will notice that I was correct, people seem to prefer a code that is easy to read.
Just take this:
Code:
1*3/2+2+4*mfs-mvn*2/3

Things like that are imposible to read, but they are still approved in PRs.
Same with for loops;
Code:
for(int i=0;i<mxlm;i++)

Or what about the one liners if statments that you always miss?
Code:
if player:getHealth()<0 or player:getMana()/2>player:getHealth()/2 then return end

Wierd things that you miss = truoble.
That is most likely the main reason why Mark changed the code style with 1.0.

About the spaces, sure some prefer them saying they prefer the "shorter tabs" - but a tab is a thing you can change, a tab could look like 100 spaces or 2 spaces - learn to work with your code editor.

But yes the code style was a #1 for me, it makes it easier to find the issues aswell as learning the codes.
I have started with some smaller things, but it's really hard to even understand the grafics code since it's split out everywhere(thanks Gesior for telling me this) and how it's all so boxed.
So please don't say it won't provide any gain, the things ive already started to change to be more like the standalone client I would never have been able to do if the code was a mess, not even using serach tools.

The issue is, the people who designed OT Client, used the type of coding they prefer. And Mark, when he re-designed TFS 1.0 used the coding style HE prefers.
  • Mark didn't make a vote on OTLand and make sure everyone was ok with how he did things. He just did it the way he wants.
  • OTClient developers did not make a vote on OTLand and make sure everyone was ok with how they did things. They just did it the way they wanted.
Now you may disagree with how they did it, but honestly. I can learn both ways. It isn't even learning a whole new language.

As long as you understand code, you can easily edit both OTClient and TFS. The issue is, everyone has YEARS of practice with TFS, and ZERO practice with OTClient.

You will have to learn, and it will take a little time, but it isn't hard at all, its actually very easy.
 
Status
Not open for further replies.
Back
Top