How exactly can I generate a transaction id? I'd like to create a transaction object from scratch. I've read that the tx id for a transaction is the double SHA-256 hash of a serialized transaction, but havent been able to find details on exactly how the data is formatted before its serialized or how it is serialized for that matter. 

Could someone, perhaps, provide an example of how the data is organized before it's serialized and/or describe the manner of serialization taking place?
The serialized format is described here.