I am trying to generate a simple diagram by using tikz. I couldn't figure it out how to set equal distance between sibling nodes to stop overlapping. The code that I have tried so far:
\documentclass[]{article}
\usepackage{tikz}
\usepackage{tikz-qtree}
\usetikzlibrary{er,positioning,shadows,trees}
\begin{document}
\begin{figure}[h]
\caption{Diagram}
\begin{tikzpicture}[auto,node distance=0.5cm]
\node[entity] (node1) {Engine}
[grow=down,sibling distance=2.5cm, align=center]
child {node[attribute] {A}}
child {node[attribute] {B}}
child {node[attribute] {C}}
child {node[attribute] {Long label for node}}
child {node[attribute] {D}};
\node[relationship] (rel1) [text width=1.6cm, align=center, above = of node1] {Protocol};
\node[entity] (node2) [above left = of rel1] {Player 1};
\node[entity] (node3) [above right = of rel1] {Player 2};
\path (node1) edge node {} (rel1) edge node {} (node1);
\path (node2) edge node {} (rel1) edge node {} (node2);
\path (node3) edge node {} (rel1) edge node {} (node3);
\end{tikzpicture}
\end{figure}
\end{document}
The result that I get is:



parent anchor=children, child anchor=parentis more flexible (but does not work with v1 of Forest, although that's quite old by now).l'=2cmis faster thanl=2cm. – cfr Jun 14 '17 at 23:10has the only acceptable location for a float is pointless. – cfr Jun 14 '17 at 23:12