I need to value an Asian commodity option using Monte Carlo and a log-normal model. The inputs are the commodity forward curve and the volatility surface for futures/options expiry. Unfortunately, all book examples are somewhat simplistic in that they generate paths starting from the spot rate using flat volatility. However, in this case, I assume I need to assign proper volatility to each futures contract and then simulate the evolution of the forward curve at each time step. At the same time, should I assume perfect correlation and use the same random process as inputs for curve points? I hope I'm not overcomplicating things. I would greatly appreciate a response, especially if it is supported by links to numerical examples (Python, C++, or any other language).