The problem of magnetic attitude control of a CubeSat is analyzed. Three controller types are examined: a Constant-Gain Simple PD controller, a Linear Constant-Gain Optimal PD controller (i.e. an LQR), and a Fuzzy Gain-Scheduled PD controller. Each subsequent controller type utilizes a more-complex design algorithm. The Simple PD controller is tuned by hand iteration, the LQR is tuned using rule-of-thumb algorithms, and the Fuzzy Gain-Scheduled PD controller is designed using a Genetic Algorithm operating on two Fuzzy Inference Systems. Though the basic structures of these three controllers are identical, the differing design processes lead to different controller performance. The use of a Genetic-Fuzzy System is of particular interest, because this demonstrates the use of an intelligent algorithm to automate the controller design process. The techniques presented herein are directly applicable to any magnetically actuated satellite that can be modeled as a rigid body, although the mass distribution, geometry, and orbit of the satellite will determine controller-specific constants.