Monkey productivity improvements

Monkey Archive Forums/Monkey Discussion/Monkey productivity improvements

Shinkiro1(Posted 2013) [#1]
Hi,

I have got a bit of time to play with so I wanted to ask you guys what functionality you would love to use in combination with monkey.
This is strictly NOT a topic about language features!

I am more thinking about productivity gains, and it hasn't got to be a module, it could be a tool or something else.

Some of my own ideas (well 1):

- a module that let's you view your objects values + change them at runtime (inspired by Bret Victors talk: http://vimeo.com/36579366 )


Sensei(Posted 2013) [#2]
That would be excellent.


slenkar(Posted 2013) [#3]
I was using firefox but when I switched to chrome my HTML5 game ran faster.


MikeHart(Posted 2013) [#4]
a module that let's you view your objects values + change them at runtime (inspired by Bret Victors talk: http://vimeo.com/36579366 )



Can't you use reflections for it?


Shinkiro1(Posted 2013) [#5]
Yeah, I would use reflection for the implementation.
But reflection only gives you the ability programatically, which is to slow if you want to iterate over some design fast. I would envision a whole debug environment (running live with the game) that has sliders, etc. to change values ...
There could also be a debug console (again, graphically) where you can add specific variables to a watchlist which then get updated live.

That was just one idea I had in mind, I would also be interested what you think we could build to make building games with monkey easier.


Whiteball(Posted 2013) [#6]
I would envision a whole debug environment (running live with the game) that has sliders, etc. to change values ...
There could also be a debug console (again, graphically) where you can add specific variables to a watchlist which then get updated live.

That would indeed be awesome and very helpful.


Nobuyuki(Posted 2013) [#7]
An unwinding/rewinding debugger. When hitting an exception, I'd like to resume execution, and also I wish I could examine the contents of container objects like I can with .NET. Something like DebugPause() would be great. A way to clear or manage the print buffer would be nice, too. And, I'd like an open source texture packer tool that doesn't suck, but I might have to end up writing that one myself. Bin packing algos seem to be the big trade secret there, but there are some good ones out there that don't require my soul, money, or breaking the law to use. *cough*

Edit: I clipped my post short because it was full of language feature wishes


V. Lehtinen(Posted 2014) [#8]
I am actually playing with this idea in my game engine. I've created a class called InstanceInfo, which has name for instance, instance (this would be a player object for example) itself and StringMaps for fields and methods. Any field and method that is registered in this instance can be accessed and invoked. I also have collections for registered constants, globals and functions for classes, which aren't inside InstanceInfo of course. All these registered infos can be accessed via my in-game console. :P
Once I've experimented enough with this and got the stuff working, I might post some codes that will help you creating these in-game debug systems. :)

[EDIT]
So yeah, so far so good. After a long fight with really weird errors, I was able to change the values of my registered fields. Feels really great when you get something working, 'eh? No idea what the errors mean, but I got things working by putting my Ball test class in a separate file and putting only that in reflection filter.

But here's the errors:



V. Lehtinen(Posted 2014) [#9]
Errors aside, here's some images from my dev-console in action:





Line "val1='2', val2='1.5', val3='apinaPineapple'" is what TestMethod puts out.


V. Lehtinen(Posted 2014) [#10]
Hi again! Sorry for posting like this, but I wanted to bump this up, because... Check this out!

So far it is possible to select objects on the screen and see their field-values on the bottom-left corner of your screen... :)
Will be adding a lot of stuff once I get forward!

Sincerely,
~Lehtinen