Consider from the player's perspective, given your own game's design. What's the most beneficial thing to show and what's redundant? Also, which combination leads to the most "fun"? Sometimes, the absence of information can heighten the tension.
Think for a little while and I'm sure you'll get arrive at the answer. If you still aren't sure, let some people play it both ways and tell you.
There's no universal truth to such UI and game design.
This is a very interesting conversation to have! I've been programming for over 10 years. I really enjoy it and the feeling of wanting to improve persists! Here are some things I've found:
#1) Most regular professional jobs are results oreinted. They really do not care if you've written the best search algorithm or the most optimized string parsing routine. You can get into trouble as you are bombarded with deadlines, and tasks cannot be consistently challenging. Here, it is very common to be an OK programmer and do well with a bit of politics. To do the really good stuff, you'll have to turn to #2. If you have a burning desire to do cutting edge things, steer your career away from jobs that don't need it.
#2) A lot of great programming achievements were started as pet projects / hobby projects. These are the projects that someone really cared about intensely, and found the time and energy to devote to something exceptional. Never stop making stuff on your own.
#3) There are a few exceptionally rare companies that try to build the very best libraries themselves, and then release them to the world. For example, Twitter with Bootstrap, Google with AngularJS and their plethora of tools and Apple with their various frameworks that they provide to App developers. You can make decent money if you find yourself at one of these coveted companies. Microsoft and Facebook have really really smart people too, and there may be many companies that could have exceptional teams. Finding these hidden gems can be difficult.
#4) Finish stuff. Today you have so many avenues to see if people care about what you made. App Stores, GitHub just to name a few. Let people play with or use the things you make. The art of finishing is lost on many (including myself for so many years). It is hard to learn the really valuable stuff that a real life use will teach if you can't finish your projects. Start small if you have to. Find passionate teammates before attempting massive stuff.
#5) If you have the time, take great open source projects and make them better. The world will thank you for it. I will thank you for it!
If you are not a naturally great problem solver - or if you don't know, the best path is to join a place with REALLY smart people. You'll see their tricks, their way of thinking and you will learn quickly.
Ok I'll stop here for now. Let's see what others have to say.
I recommend Unity3D for what you want to do, as it can do PC, Mobile and Web with the same game scripts so you won't have to rewrite after that.
Polish, test and release your games. Then, sell it for Windows 8 & Surface RT, Windows Mobile, and Android. When you make some money from them (by selling them in the respective App Stores), invest in a Mac Mini and iPod Touch (cheapest entry into the Apple world) and you've got a full studio for all the platforms you want to hit. One of the best ways to score Apple gear for less is to look at the Apple Store online in the "Refurbished & Clearance" link. You'll save 20% or more.
Wish you the very best. Writing and selling multi-platform games can be very fulfilling
This might not be useful in all cases, but I have a game engine written in C++ and I wanted an editor in C# from the very beginning.
== My Approach ==
In my case, I use a library called SWIG to generate C# wrappers around C++ classes that I want to expose to an editor. It might take a long time to tweak the ".i" files so that the C# output is exactly what you want.
So, the typical setup is:
- Special build for Editor. First we run SWIG to generate C# wrappers and a master .cxx file that contains the DLL invoke receiver functions.
- Engine compiles to a DLL with regular C++ files and the .cxx file.
- Link in your DLL into the C# project as a reference.
- File link your C# files into the Editor C# project.
You'll need to keep them somewhat synchronized when you make changes to your C++ api. You can write many extensions on top of the C++ classes to bring in really nice C# functionality like reflection, properties etc.
== Second Approach ==
I did this in the past but it is Windows ONLY.
- A version of your C++ editor that properly compiles into a C++/CLI DLL.
- Use the DLL as a reference in your pure C# editor project.
Writing CLI compatible C++ code requires a lot of consideration though.