Welcome to JavaRanch!
Basically, main should serve as an entry point to get things going. After that, things should be handled by objects.
In defining classes, try to keep your objects
cohesive in terms of fulfilling specific purposes. Your application might "do" a lot of things, but it should probably
have different objects that specialize in the details. When the
word "has" comes up, it's a good indication that an object might be needed. For example, a game
has players.
You're definitely on the right track in the way you're thinking. Just don't dive in too deep and get frustrated. (Remember, these objects will probably need to send messages to each other, so you don't want to weave a tangled web of references.) Keep it manageable. Post back with more details as you work on this.