I guess it will be more important how good you are at programming than how good you are at chess. It is not entirely clear what your eventual goal is. Do you want to create an opportunity for human players to play these variants against each other on line? Or is it just that you want to play these variants against an AI? And in the latter case, what level are you aiming for: should it be a super-human 3000+ Elo monster, or an entertaining opponent that you can beat?
There already exist several engines that can be configured for playing variants with unorthodox pieces, and most downloadable user interfaces do allow arbitrary graphics to be used for the piece images. So that it is only a matter of whether the number of different piece types it supports is enough for the variant at hand. E.g. WinBoard / XBoard supports 66 different piece types.
Using pieces that move in unorthodox ways is usually no problem, but the 'abilities' you mention can be an issue. I suppose that with "freeze" you mean some kind of immobilizer, which would prevent adjacent enemy pieces from moving or capturing, but I am not sure what you mean by "pull". In general pieces that affect what happens on squares other than the two between which they move are very un-chess-like. The number of possibilities for this are unlimited, which makes it very unlikely that a configurable variant engine would offer exactly what you want as a standard option. There are very general programs for implementing games, such as Jocly or the commercial Zillions of Games, where you can basically implement anything, but this requires you to write part of the program yourself.
I developed a JavaScript program for including "Interactive Diagrams" on a web page, so they can be viewed through a web browser. This is very easily configured for a wide variety of chess variants, by embedding a description of the appearance and rules for the variant in the web page. Such a description consists of specification of the graphics to use for the pieces, and the color of the board, as well as the board format, a list of participating pieces, how each of these moves, which of those promote, and what they can promote too, how deep the promotion zone is, which pieces are royal, etc. This is enough for implementing a great many chess variants ( https://www.chessvariants.com/invention/variants-playable-against-the-diagrams-ai ). The diagram is equiped with a (rather weak) AI so it can act as a sparring partner for people who have just read the explanation of the rules for that variant.
Rules that are not implemented as a standard feature, so that it is not possible to merely switch those on, can sometimes be enforced by small user-supplied JavaScript functions, WeirdPromotion or BadZone. The former can take care of automatic changing of the piece type on some moves (e.g. for implementing pieces that move differently in different locations, or which promote when they capture something). While the latter was intended for enforcing confinement of pieces to part of the board (as in Chinese Chess), or restrictions on what can capture what (such as the ban on Cannons to capture each other in Korean Chess), by vetoing some of the moves that would otherwise be allowed.
This BadZone routine could conceivably be used to veto moves of a piece standing next to a piece of some other type, albeit in a rather inefficient way. It does require some programming in JavaScript, however. In general move definitions for the pieces allow the possibility to capture something on squares where you do not move to, and to 'unload' what you captured on another square, which in some cases would allow it to displace other pieces. There also is a possibility for a piece inducing new moves in others.
Hopefully this is in the right place, this is the first time I've ever posted on these forums.
So I'm not the greatest at chess in general. I'm not very good at remember openings or responses to them, but I still have fun. I've had several ideas for variants and I can't find anything quite like what I have in mind. I've been trying to find site or program that allows you to create new pieces and new movement abilities. I'm aware there is a custom variant feature, but does it allow you to:
Create a 'new' piece(or just combine abilities)
Add a new image for the piece
Add abilities like 'freeze or pull'
The 3rd one is the main factor. I've found places that give me some of these options, but nothing all together. I'm starting to realize I probably have to make my own engine, or modify an existing one. Do I just start learning how to code an engine and go from there? It's almost like the pieces I intend to add change the entire structure of the game itself, and It would only utilize a checkerboard and the idea of checkmating the king. I'm sure this question has been asked before, but none of the answers have really been what (I think) I'm looking for.
Any help would be appreciated.