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

OpenTibia SPR Replacement Project

Status
Not open for further replies.

e.e

Divine Intellect
Joined
Sep 16, 2016
Messages
476
Solutions
1
Reaction score
226
Hey again everyone.

Backstory:
So @Peonso has already got the first Open Source Sprites project going called "OpenTibia Sprite Pack".
This is a decent project with a lot of high quality sprites which are not to be underestimated in that regard.

However, the way he's set it all up is pretty impractical and troublesome as he requires you to use his map converter which literally permanently deletes all items on your map that he is missing in his sprites pack to replace original sprite files/objects, and there are tons of sprites missing (not to mention many other minor issues and inconveniences with the whole setup he requires you to use).
In fact his sprite files for version 10.41 contains 7691 sprites, while the original sprite file for the same version contains 153192 sprites. That's about 5% of the original sprites meaning that 95% of the original sprites are missing from his pack.
If we look further into and analyze the source code of his tool there are exactly 16997 out of 20229 (84% of) item objects that are setup to be permanently deleted when you use his converter tool.
In other words his converter and thus his sprites does not seem to have a lot of serious utility/purpose at the moment or in general, especially as these items deletions are irreversible, but even if they weren't there are still serious issues with his setup and with some of the stated goals of his project which I will describe below, issues in particular if we want to keep our current OTS maps and servers and still want to use Open Source sprites that is. If you're ready to forget about every single OTS map ever made, including real maps, and only make maps using brand new custom sprites, then the OpenTibia Sprites Pack is perfect for you.

Now lets get to the issue of Peonso's stated goal of his project and why it will likely not have any utility for a long time.
Peonso told me publicly just a few days ago that he's not interested in directly replacing the original sprites or collecting replacements for all the original sprites at all for two reasons that he gives: a) somehow "he does not see the point of it", and b) he believes it's not possible (with his project) because, he says, "people only share what they want".

In reality it's not only possible but should not even be that hard to collect all the sprites at the very least for version 7.x and below, and it's also most certainly useful and much more sane to just replace the sprites directly or on the client side rather than on the server side.
Some of the most obvious advantages of replacing the sprites directly and of my project's method/aims/philosophy by comparison:
  • No complex, lossy and irreversible conversion processes needed (Peonso's map conversions results in maps with permanently deleted map items, completely new item and spriteids with little if any backwards compatibility for item server files, etc)
  • My project actually aims to replace the old sprites rather than to just collect a bunch of random new sprites forever. This means you can keep all the old items.xml and items.otb files (items server properties), you can easily make the spr files yourself if I were to ever stop making them, we don't have to modify item ids or lose any map data, in fact there's no need for map involvement whatsoever. With Peonso's process you must convert absolutely everything including items server properties and you will lose up to 84% or more of your map items.
At the same time there are a few disadvantages or challenges with this project that I would also like to mention for the sake of fairness:
  • It will in fact be harder to replace all the old sprites than it is to accept all kinds of random incoming sprites.
  • For the reason above we're likely going to have to compromise a lot when it comes to the quality of the sprites to be able to replace everything. After all there are tens of thousands of sprites just by version 7.x, and about 150k in version 10.41. Personally I only really care about the versions 6 through 8, but I'll also accept replacements for newer versions for those interested in that.

Now a little about my this new project right here:
Lets start with the standards I will set for all incoming sprites to this project:
  • Must be open source. Preferably low to medium quality self-drawn sprites and Open Source sprites found elsewhere with a URL to the source of the sprites where the sprites' Open Source/Free status is clearly declared.
    Feel free to get creative, silly, and have fun, as long as the sprites fits the rest of the criteria in this list.
  • Sprites' backgrounds must be of pink color #FF00FF and the image must be in RGB mode, preferably 32x32 canvas and PNG format too, which I believe is the spriting standard.
  • Sprites should resemble original sprites well enough that you can kind of recognize what it is (the more recognizable the better).
  • All sprites must be named "%d.png" where %d is the numeric itemid of the sprite it's trying to replace, e.g. "100.png".
  • Zip and Tar formats preferred for file archives if you're going to send or upload the files. For git pulls make the directory name your OTLand username and use that as the directory root for your sprites.
  • Preferred but not required: If you think your sprites resembles a or various particular client versions' of sprites, please organize the sprites by client version (e.g. directories named "760", "770", "860", etc, "default" for general/ambiguous version, and "custom" for new sprites not trying to replace any particular old ones).


In return I will:
  • Generate and upload client.spr files frequently based on all the uploaded sprites.
  • Maintain a public list of sprite ids not yet replaced.
  • Try to maintain a GIT to hold the sprites for everyone to make get and pull requests (I'm still completely new to git). You can also send me sprites over Discord if you prefer ¯\(ツ)/¯.
  • Maintain a public list of sprites by authors both for the sake of credit and reversibility in case any of the accepted sprites turns out not to actually be open source in the future.

All generated and uploaded client.spr files will be fully usable from the very start in the sense that your client will never crash from the lack of sprites, however all missing sprites will be replaced with black spots or some other default sprite in the future, so you won't be able to see much (or anything) when using these sprites in the very beginning. Nothing more can be done than this until all the sprites has been replaced.

A git will be made soon (within hours/days whenever I feel like it) along with the first generated client.spr.

There are a few more details that needs to be hashed out and which will be useful to talk about later on, but first I'd like your feedback about the idea of this project, if anyone will be interested to contribute, etc.

Final thoughts:
Before anyone decides to start accusing me of bashing on Peonso's project or something, let me say I'm not.
I like the sprites he's collected, I think it's cool that he got this far, and I think the sprites are useful for custom projects.
However as Peonso has said he's not interested in replacing any original sprites. This means we will never be able to use his sprites pack to play on or host any full/lossless OTS map made in the past or in the future that was or will be made using standard sprites as his sprites pack is not really compatible with old sprites at all.
For this reason I started this project, and I feel like I had to explain these things out in detail for y'all to understand what the point of this project is and some of the more serious issues/disadvantages of Peonso's project which will never change according to his own statements.

Feel free to post feedback/discuss, etc.
 
Last edited:
Accompanying some sort of first mockup/prototype would be great in the "showoff" forum. I think you are aiming to high, the scope is immense, and in all this big wall of text one simple thing is missing, where are the sprites comming from? Even if you gather all OTSP and Crawl Stone Soup great majority will be missing, and that's just thinking on 7.6, unless you go the dark ripoff way and steal Altaron/Medivia sprites, but than the whole idea doesn't make sense.

To help, some things you should have in mind: Client ids and server ids aren't the same in otserver. Also client ids for each item change with protocol version, so you would need to make, for each protocol it's intended to work with, a different spr file (that will greatly differ and be a pain to set unless you figure out a way to automate it, parsing items.otb from different versions). Regarding organization, each item id may actually be made by a bunch of sprites, either big, or animated, or layers, or patterns. Also outfits, projectiles and effects ids start from 1, like items.
 
Hey @Peonso, thanks for the bump.
Accompanying some sort of first mockup/prototype would be great in the "showoff" forum
Here you go: "void" (itemid 100, sprite ids 136-151):
WiZ7dE1.png
=>
vztOSpK.png
ingame.

To help, some things you should have in mind: Client ids and server ids aren't the same in otserver.
  1. I'm sorry Peonso, but you'd honestly be the very last person on this forum that I would ever go to for advice.
  2. As far as your claim goes that client ids and server ids are not the same: https://github.com/TwistedScorpio/OTHire/blob/master/data/items/items.xml
I'd appreciate it if you either stayed on-topic or preferably just left me alone now, thanks.
 
Its a huge project, and i dont want to smash your dreams but with that attitude you got i dont really care.
i bet you will never finish this, would like to see you actually go though with it tho.

But man come on, whats up with that attitude?..
Peonso has a lot of experience in this and he is giving a small advice that you can just ignore if you would like to but instead, You give that reply?
wow.
Also he does have a major point in what he is saying.

anyway, Try to be a little more nice to people and some might actually help you out. because you are going to need a lot of help..
 
Its a huge project, and i dont want to smash your dreams but with that attitude you got i dont really care.
i bet you will never finish this, would like to see you actually go though with it tho.

But man come on, whats up with that attitude?..
Peonso has a lot of experience in this and he is giving a small advice that you can just ignore if you would like to but instead, You give that reply?
wow.
You have absolutely no god damn idea what you're talking about or who I am, do you?
You just jump in here, notice that I didn't respond to Peonso the way you wanted or expected to with no backstory or background knowledge, and decided to start shitting on me like some autistic Internet-SJW or something looking for some brownie points and some likes?

Peonso needs me, not the other way around.

Never asked him for anything, never will, he's an arrogant, condescending twirp who liks to troll random people on the forums in his spare time for fun by saying as much nonsense as possible to confuse people and to provoke.

And no, this fucking project isn't my dream, are you kidding? Or are you just trying to be a condescending flower just like Peonso, "I hate to crush your dreams", huh? Go off yourself.
I have about 10-20 different projects I'm working on, most of them are private, and this is one of the smallest and easiest ones...

anyway, Try to be a little more nice to people and some might actually help you out. because you are going to need a lot of help..

And no, I don't need any technical advice or help for this project.
I reverse enginereed the DAT and SPR file formats in about a day's time a few weeks ago and made a 100 line python script that converts his otsp.dat file with garbage random item and sprite ids into a uniform 7.7 client/dat file.
Clearly Peonso hasn't figured out how to do than in 2 years time since he's still relying on a garbage map converting process which deletes easily 90% of all map items in the process.
Screenshot:
DJCU47n.png


Only thing I "need help" for is the spriting, and it's not actually a serious need, I already know exactly how I can avoid the whole legal issue with sprites my own way, it's just better and nicer to have actual sprites.
If nobody are interested, fuck it, I don't care. In fact I'm losing more and more patience with this whole community thanks to people like you and Peonso, so I wouldn't mind just stop trying to work with or help anyone here out and just work on my own projects, and we'll see which of us ends up with something decent once the community's dead thanks to people like yourself.
 
Last edited by a moderator:
It is an interesting project and you obviously gave it some thoughts, However your approach and attitude is questionable.

First of all as I see it there you just wrote a wall of text which half is about your hatred for Peonso, the rest of us do not really care about your personal relationship and therefore all you needed to state regarding to OTSP was that 'Peonso's project is not trying to replace the original sprites but you are'. Instead you mention Peonso's name 8 times just in your first post, it is not even slightly relevant if your hatred is justified for the threads purpose.

Secondly replacing all the sprites is a huge project as you know and making new sprites is time consuming. You build your project around getting people to help you and thus to invest time in your project, meanwhile you state that the project means nothing to you and you can do it without any help.

"[...]I have about 10-20 different projects I'm working on, most of them are private, and this is one of the smallest and easiest ones..."

"[...]Only thing I "need help" for is the spriting, and it's not actually a serious need, I already know exactly how I can avoid the whole legal issue with sprites my own way, it's just better and nicer to have actual sprites."

Please take a moment to consider if you would invest your time in such a project. Basically what you're saying is that they should put down a lot of time in spriting but it actually doesn't matter, I'd say that is kind of a demotivator for most people.

I would also like to add that I don't know you or Peonso or care about any ongoing feud, I'm simply just writing from an objective bystanders point of view, my feeling is that you will take it personally and that is absolutely not my point, I'm not against you on the contrary I think it is nice that you are trying to do achieve this with the help of the community.
 
It is an interesting project and you obviously gave it some thoughts, However your approach and attitude is questionable.
I think it's kinda questionable of you to (continue to) derail this thread with your personal concerns about "my attitude" (why should you give a shit? Peonso has a shitty attitude as well, are you gonna go into his thread and "question" his bad attitude? Clearly not, so wtf are you really doing? Short answer: trying to derail my thread) instead of taking it up with me in PM first at the very least, which shows your own bad/disrespectful and selfish attitude, spending your time voicing nothing but your personal opinion about my attitude which itself is a strong statement about your own bad attitude since you couldn't bring it up in a more constructive way.

Btw you mentioned "my approach is questionable", would you mind elaborating? Cus it seems like you forgot to actually question it, only thing you're questioning here is "my attitude", and why the fuck does my attitude matter at all? We all have attitudes, and like I said you're showing a shitty attitude yourself right now wasting my time and patience and thread space.

First of all as I see it there you just wrote a wall of text which half is about your hatred for Peonso, the rest of us do not really care about your personal relationship and therefore all you needed to state regarding to OTSP was that 'Peonso's project is not trying to replace the original sprites but you are'.
That's not even close to true. Read the main post again. My main post was fair towards Peonso and his project, I even complimented it even though I'm not sure he actually deserves any credit as the sprites contributors seem to deserve credit more than he does considering how bad his methodology and knowledge is on this subject.
That aside, my second post was a direct answer to another condescending post by some random guy jumping into my thread and bashing on me on a personal level for absolutely nothing just to continue to try to derail this thread along with Peonso who might just as well be pissing in his pants right now.
And now you're doing the same thing.
I would ignore you all, but people who might still be good at spiriting might come in and think you have some legitimate point just because you scream and cry loud enough about nothing like a bunch of babies crying for attention/Internet forum status unless I question/answer it, so that's what I'm doing and will continue to do, and why I posted the link to Peonso asking me for help over and over again since this Andrew came in here and acted like I need Peonso's help when in actual fact the opposite is the truth; Peonso begs me for help, not the other way around; I challenge Peonso to prove me wrong about this by showing me ever asking his for help, lmao.

and making new sprites is time consuming.
Yes....? Why do you think I started this project? Because I'm looking for sprite contributions maybe, right, makes sense, no, yes, what, huh, hard to comprehend, wat?

You build your project around getting people to help you and thus to invest time in your project, meanwhile you state that the project means nothing to you and you can do it without any help.
I stated I don't need any technical help. Peonso offered me no sprite contributions (only garbage/troll-level technical advice), and the same with the other two of you, so all three of you are of no help and should stop wasting my time, go do something better with your life, like start your own projects so I can come and shit in and derail your threads :rolleyes:

Basically what you're saying is that they should put down a lot of time in spriting but it actually doesn't matter
The sprites doesn't matter much to me compared to other projects I'm working on. The Andrew guy literally said to me "I hate to crush your dreams".

Anyway I'm done talking to you, go waste someone else's time and patience, or go troll in twitter or facebook or something.
Or just keep hating in here like a bunch of losers, though I'm about to ignore all three of you at this point since you're utterly useless.
 
Last edited by a moderator:
Oh sorry i must've completely misunderstood the words you put in your first post.

Feel free to post feedback/discuss, etc.

Don't say something if you obviously don't want it, i don't want to "derail" your thread so I'll leave you to it i don't have any grudge with you and I'm not going to make one either from my part atleast so I'll just leave with saying good luck.
 
Don't say something if you obviously don't want it
On-topic feedback/discussions. How hard is that to understand? "You asked for feedback let me tell you all about how unfashionable your clothes are herp derp".
i don't want to "derail" your thread so I'll leave you to it i don't have any grudge with you and I'm not going to make one either from my part atleast so I'll just leave with saying good luck.
Damage already done. Twice. Feel free to leave never to return again, and the same for your two friends, I'd appreciate it :)
 
Short answer: trying to derail my thread) instead of taking it up with me in PM first at the very least, which shows your own bad/disrespectful and selfish attitude, spending your time voicing nothing but your personal opinion about my attitude which itself is a strong statement about your own bad attitude since you couldn't bring it up in a more constructive way.

Hypocrite
 
Hypocrite
Never posted in anyone's project or advertisement thread about someone's "bad attitude", that kind of shit is for.
In the last 3 years (since my registration) I've exposed a couple or three people in their advertisement threads for lying or scamming people such as Ecstazya for taking donations, not delivering anyone donation items, and closing his server 1 month later without a word, Septera for grossly lying about their project pretending it's literally a 100% perfect replica of Realots with every single detail and feature correct (even Ezzz's Nostalirius isn't anywhere close to perfect), and one more project doing the same thing, don't even remember the fake and shitty project's name, but I logged into their server and it seemed to literally be unmodified OTHire...
 
Last edited by a moderator:
when in actual fact the opposite is the truth; Peonso begs me for help, not the other way around; I challenge Peonso to prove me wrong about this by showing me ever asking his for help, lmao.
I'm confused, how is that related with anything? I can't prove you wrong, but I never said I didn't asked you for help either. I asked your help and you gave me valuable help, as others did for me, as I did for others, is that so huge of a deal? Big thanks. Also, I gave you advice here, but somehow facts I stated are being considered as misleading/false. Try to come up with a working prototype and you will see.

Also, my contribution:
Peonso.png


Available under CC BY4.0 Creative Commons — Attribution 4.0 International — CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/legalcode)
 
Last edited by a moderator:
I'm confused, how is that related with anything?
You came in here condescendingly and arrogantly and started/fueled shitposting/derailing the thread by or together with other members in here by acting fake helpful and covertly trying to criticize my project without anything of substance, you just made like 10 random claims that makes no sense in literally a couple of sentences or something, I even addressed one of them that you still haven't responded to yourself.
I'm also clearly not interested in your help as this thread was made in reaction to your own project's very bad technical setup which has no long-term future, and your very narrow and close-minded leadership, in other words this project as an alternative to yours, and I clearly criticized your project many times in the main post, so your "advice" is obviously not welcome, obviously for anyone with any social awareness whatsoever anyway, maybe you need to change your forum title to "Godly Autist", in which case I could be more understanding of your special needs.
Quotes:
To help, some things you should have in mind: Client ids and server ids aren't the same in otserver. Also client ids for each item change with protocol version, so you would need to make, for each protocol it's intended to work with, a different spr file (that will greatly differ and be a pain to set unless you figure out a way to automate it, parsing items.otb from different versions). Regarding organization, each item id may actually be made by a bunch of sprites, either big, or animated, or layers, or patterns. Also outfits, projectiles and effects ids start from 1, like items.
Peonso has a lot of experience in this and he is giving a small advice that you can just ignore if you would like to but instead, You give that reply?
wow.
Also he does have a major point in what he is saying.

anyway, Try to be a little more nice to people and some might actually help you out. because you are going to need a lot of help..
Make sure to respond to this saying "but I'm not responsible for that!!!! I was just trying to be helpful!!!! honestly!!! I'm Peonso, I'm always very nice and honest, I never troll!!!" btw.
fPGvd7S.png


I can't prove you wrong, but I never said I didn't asked you for help either.
If you can't prove me wrong that I've never asked for your help, then don't come in here "just to try to give me some advice" trying to act like the top dog and derailing the thread with nonsense.
I don't want your advice, never will, I don't want anything to do with you whatsoever; I'd honestly be happy if you were to off yourself, I think the community would be better off.
I thought perhaps we could be civil about our "disagreements", but when I've been nothing but nice to you for so long in the past, even tried to be fair about you in this thread until you came in here "trying to give me some advice", and you keep on trolling and act like a condescending moron every time I talk to you, then this is how it ends.

Also, I gave you advice here, but somehow facts I stated are being considered as misleading/false. Try to come up with a working prototype and you will see.
They're not facts. I'm not gonna waste my time responding to all of your bullshit, it's not worth my time as it takes more time to answer claims than it does to make up random bullshit and pretend it's facts, not to mention this isn't even a discussion thread, but I directly proved one of the points of yours that you stated as if it was fact, that item ids, according to you, does not match between the server and client side.
You've worked a lot on OTHire, and yet you don't even know that item ids match on client and server side?
Here's your actual quote:
Client ids and server ids aren't the same in otserver
.
Keep in mind I never said "they are the same", your phrasing is intentionally ambiguous and can mean either "the item ids are not the same" or "they are different constructs".
Obviously they are different constructs, but this is how trolls operate, they say ambiguous shit on purpose so they can keep talking shit endlessly and change the meaning of what they said when they are confronted just like little kids who has too much time on their hands, when the adult asks the kid to repeat himself the kid slightly changing the words and meanings of what they say to confuse people while giggling and farting in the background.
But you know very well I never said anything about item ids being the same technical construct on client and server side, this is obvious, quote me saying it if I'm incorrect, so don't even start with that, because I know you would if I didn't point this out, you deceitful and manipulating little shit.
So you clearly was saying that item ids does not have the same value on server and client side, and I proved you wrong with the items.xml file from your own server (in the sense that you're the only actively maintainer of it) in this post.
Feel free to keep trolling about this shit though, I don't give a fuck, just make sure you write down in your little gist notepads that you've made yourself an enemy for life out of me. You're the person I probably least respect in this whole community right now, including every troll and random poster in it, you're a waste of time, energy and a waste of life, and I'd be happy to see you ruined at this point, I have nothing for your kind (true nobodies).

I'll just take all your sprites someday for this project if I feel like it, I already have a copy. No need to ask your permission since your sprites are open source. Thanks.

Being a two-faced loser completely out of touch with reality, then try to act like an alpha top dog the very next moment if he thinks he can get away with it like the little snake he is.

Then in some time I'll probably give this a second go. Make sure you all three of you sit at home and spam F5 all day so you're right there ready once the thread is clean again and you'd ofc like to try to derail the thread again, cus lets face it, it's not like you have anything better to do.
 
Last edited by a moderator:
your phrasing is intentionally ambiguous (...)
So you clearly was saying that item ids does not have the same value on server and client side, and I proved you wrong with the items.xml file from your own server
You have to decide. Check for me please, hydra egg client id and server id. After you see they don't match, read again everything you wrote here. Enjoy.
 
You have to decide. Check for me please, hydra egg client id and server id. After you see they don't match, read again everything you wrote here. Enjoy.
Another example of your dishonesty/lack of interest in truth, you just want to score points like an internet forum troll/loser, you could've addressed this much earlier, but you wait until the very end to point out some insignificant technical detail at the very end where a few item random item ids does not match in items.xml just so you can try to declare victory and try to have the last word like some desperate mongoloid.
In objects.srv, which is what I use for all my projects; Realots and PyOT2, every single item id match including hydra egg and everything else.
Objects.srv is also used in Nostalrius which is now a publicly available otserver.
Original objects file here.

You claimed that Client ids and server ids aren't the same in otserver which is just as false now since objects.srv matches completely.
Only reason I tried to use items.xml as an example was to be cheeky as I took a look for fun and noticed that all the item ids in the beginning and the end of items.xml matched, so I thought it'd be funny if you were wrong even about the items.xml in your "own" distro (not even yours but Ezzz's who himself think OTHire is shit now, lmao, so gz wasting all your time on nothing).

Keep trolling though, I'm sure it's the only way you can learn anything, by copying all the answers to your bullshit trolling like the fucking ignorant dummy that you are.
 
Last edited:
Status
Not open for further replies.
Back
Top