Yes, you definitely can (and should!) try implementing your own ERC721 contract. ERC721 is simply a token standard, and in order for your token to be considered ERC721, you must implement the interface described here. You can also refer back to the OpenZeppelin implementation for inspiration on how to handle security vulnerabilities, gas optimization, etc. Note that any NFT project that has some sort of special functionality (gamification, mutation, etc.) must have implemented their own version of an ERC721 token.
To list your NFT on OpenSea, check out this link
Good luck with your project!