Well since my project was not accepted for the Unity Summer of Code, I am still going through with my submission as I think it would be beneficial for Unity to have. I am not going to be working on it as much as I would have if it would be accepted but hope to have it released some time around Unite 09 (which I will be going to).
My project is a multipurpose game console window system. In its first release, it is good to be nothing more that a simple game console that the player is going to be able to type commands to.
Currently, the only console that unity provides in the one in the editor and that is mainly useful for finding compile errors in your scripts and printing data to while running your game in the editor. This game console is going to be built into the game itself so it can be run while playing the game in standalone mode. My original idea was just to have something I could run in standalone mode, print data to and run custom commands from. While this project will still have all that I also want to build it so that it can be used for other things. For one, have it also work as a chatting system. Also allow the developer to give the user commands they can run while playing the command (like /dance that you see in MMORPGs).
The true power I see in this is the ability to be able to test your games faster. For example, lets say I am building a single player RPG. My character have 5 different attributes that I can set. Would it be helpful to be able to just do /set_strength 100 and then your characters strength would be 100. Maybe I am making a FPS, would it be useful to be able to do /set_weapon MP5 and now that is your current gun. The list can go on and on and I think most applications built with unity can benefit from an addonlike this.
I would like to get what you guys think about this, would this be something useful and something you would like to have? Also feel free to chime in with any suggestions like built in commands that are generically useful no matter what type of application you are building or features like tabbed windows (which is a planned feature, just not for the first release).
Honestly I don’t think this is too useful. We exclusively test our games in the Unity IDE and very rarely, if ever, do any kind of playtesting in a standalone/web build.
I’m with Matthew. The reason why unity is as flexible and fast when doing the dev is the testing in the editor. If you require testing with the build client, then I would first review the procedure of using Unity before writting stuff that already exists.
Additionally there is already a debugconsole script that would more or less offer what oyu are trying to achieve at the time (shooter alike console with output and input)
It’s a shame about all the negative comments, as I can see some real benefits from a project like this:
it would help in debugging standalone games. i still run in to a multitude of things that work in the editor and don’t work in a standalone build. this could be an invaluable tool in figuring out what is going wrong in these instances. trying to read the player log file (particularly while still running the game) is both annoying an distracting, while having it built into the UI would be a real help.
secondly it could be of considerable help to anyone working on multiplayer games. i don’t know how most other people test networked games (unless they have a team and multiple computers), but i usually run the unity editor as a server instance and a standalone build as a client instance (and much less frequently test on multiple computers - as this takes far longer to set up and drastically increases iteration times). having a console window in the client would be really useful here, both for the reasons mentioned above, and because things that work smoothly in a single player environment can quickly go awry in a networked game.
I think it is a great idea, and if I was not so swamped with work right now, I had planned on doing a similar project myself. A runtime debugger console would be really helpful to quickly test things.
Being able to run a standalone and have access to query and set variables would be very helpful for beta testers.
And having this sort of access inside of Unity would be a vast improvement over the current debugger-free IDE. I commonly have to test something that only happens 30 minutes into a simulation. It is extremely tedious to have to wait that long just to get to the point that the issue happens on. I would love to be able to type in a few commands and get to the problem faster.
I have used the debug console from the Wiki, and it is helpful, but it is not as powerful or easy to use as I would like. It is a good start, but it needs more to become truly spectacular, but it has not been updated in a long time. It is very close but not quite there yet.
What kinda of testing do you do in standalone/web builds? I mean sure, testing inside the Unity IDE is very useful and provides a lot of functionality to streamline the testing process, but it does not give you access to everything that would be able to have access to through a game console type system (since with a game console type system, I can do anything that I can do through scripting which is pretty much anything).
I agree partly here. Yes, being able to debug the game inside the editor is often very useful and fast. While this is useful and fast, you don’t always have access to everything about the game through the IDE. This is where I think having access to being able to run specific script code can increase the speed of testing even more. I could build this as an editor plugin but since it can be built into the game, they why not, makes it even more useful I think.
While that script (assuming you are talking about this http://www.unifycommunity.com/wiki/index.php?title=DebugConsole script) does provide some of the functionality I want, it not really designed in the best way for expandability. It seemed like this was a script to solve a specific problem for someone and they just released it freely to the community (which is a great thing). This script will be useful to see what he did but it would not really solve what I would want to solve for a game console system.
This is the type of problem I really want to solve with this project.
While I can see this project might not be as useful for people build more causal games (even tho I think it would still provide some usefulness), the bigger the project gets, the more useful I think this project gets.
Thanks for all the feedback so far and looking forward to whatever other feedback this great community will give me.