If you haven't ever programmed before, then you ought to even start with text-output before doing 2D graphics (potentially - others may disagree with that). You need to learn the basics of the language before writing games.
Most 2D games don't use "engines", though they can; usually they are just written. They almost always use APIs though. I go into more detail about what I mean in this post.
Even if you decide to use an engine, different engines are better suited to different types of games, and you don't want to have to fight against the engine to make your game, so I'd have to know more details about the game before suggesting a specific engine. But it doesn't matter, because any game complex enough that I'd actually suggest an engine for, is not a game I'd recommend as a first project.
The difficulty is, how can you write good game code architecture, if you don't yet know how to program? It's kinda like trying to build a house when you've never even held a hammer before. (or more like, trying to write a book in spanish at the same time as trying to learn spanish itself! A tad difficult). So you may want to spend at least a few months learning the bare basics of programming before starting on even a small game. (And maybe your brother, if he's never done graphics design before, could spend the same few months learning the basics of digital game art, that way the two of you can hit your game running, instead of stumbling)
Neither Lua nor C++ is "best" - different languages serve different purposes; and there are many other languages besides those two.
What are your long-term goals in learning to program? Are you just wanting to have some fun? Consider Game Maker (or RPG Maker)! It's really powerful and flexible, and you can get things running quickly. Jumping into programming for the first time, you likely won't get things up and running quickly.
If you are actually wanting to become a programmer long-term, Lua or Python would definitely be a possible choice. You'll end up learning many languages if you program for a long time, but Python or Lua will still be useful even when you learn other languages.
C++ is also a good choice (and the language I started with, and still use), but is also a bit of an uphill battle! Still, don't let that discourage - it is probably what you'll need to learn anyway, if you want to become a programmer as a career.
Whatever you choose, it's important to stick with it long-term. Programming isn't something learnt overnight, and even though you can master the basics in just a few years, you'll continue to learn more and more (or, at least I continue to, nine years later). So if this is something you're really wanting to learn, choose to be stubborn enough to stick with it through the boring parts. It's really fun and exciting, but also can be aggravatingly frustrating at times (rather frequently, actually ). Programming is definitely worth learning though! I strongly recommend learning it! It's just not something that you can learn in a month.
So what are your actual goals? What are you wanting to get out of this project with your brother, and what are you wanting to get, long-term, out of learning computer programming?
Sorry for being all, "life choices" and "career" and "goals and planning" when you're just wanting to make games and have fun. But I can't give good advice without knowing what you actually want.