In this chapter, an in-depth study and comparisons of simulators and emulators have been presented, with care accorded to their features, implementation, and use. Since emulators are hardware dependent, selecting one to use is straightforward. On the other hand, with the wide variety of simulators, the choice is rather complex and is subject mainly to how is the simulator easy to use, and fulfilling the model requirements. Remarkably, different simulators do not give similar results for the same model due to their different underlying features and implementations. Simulation has proven to be a valued tool in many areas where analytical methods are not applicable and experimentation is not feasible. Researchers generally use simulation to analyze system performance prior to physical design or to compare multiple alternatives over a wide range of conditions. Notably, errors in simulation models or improper data analysis often produce incorrect or misleading results. Although there exists an extensive row of performance evaluation tools for WSNs, it is impractical to have an all-in-one integrated tool that simultaneously supports simulation, emulation, and testbed implementation. In fact, there is no all-in-one stretchy simulator for WSNs. Each simulator exhibits different features and models, and each has advantages and weaknesses. Different simulators are appropriate and most effective in typical conditions, so in choosing a simulation tool from available picks, it is fruitful to elect a simulator that is best suited for the intended study and targeted application. Also, it is recommended to weigh the pros and cons of different simulators that do the same job: the level of complexity of each simulator, availability, extensibility, and scalability. Usually, WSN applications consist of a large number of sensor nodes; therefore it is recommended to settle on the simulation tool capable of simulating large-scale WSNs. Essentially, the reported use, besides the simulation results of a simulator, should not be ignored before deciding which simulator to prefer. The exercises at the end of the chapter are designed to pinpoint the simulator comparison and selection criteria suitable to the model under study. When bottom-up building a simulator, many decisions need to be made. Developers must consider the pros and cons of different programming languages, whether simulation is event-based or time-based, component-based, or object-oriented architecture, the level of complexity of the simulator, features to include and to not include, use of parallel execution, ability to interact with real nodes, and other design choices that are pertinent to a typical application. For researchers, choosing which simulator to use is not an easy duty. A full understanding of one’s own model is however the first major step before looking into the bookshelf of simulators. Then follows a survey of the available simulators that can do the job. A major step comes after, the careful weighting of the simulator features against the model under study and the programming capabilities of the researcher.