So, would you believe it... I found some free time. Probably because everyone at home is ill, or sleeping but time none the less. So I decided to read through the current GM suggestions listand there's some interesting stuff on there. I suspect much of it wil have to wait for the rewrite, but we can still do a fair bit during the many updates to 8.x we hope to do in the future.
Types... Not for 8.x (or not fully that's for sure)
Values
we'd like to get ints/bools etc. in there, but not sure when. Enums are also a must at some point - I hate having to define constants in the menu system. Unicode is a long term goal for Game Maker, but I think it may well be too painful for 8.x.
Collections.
Actually, I don't really like any of the collections. I think it's one of the few areas where you really NEED "class" based operations. So instead of giving you a handle to something, you actually get the object back. This will be a hotly debated topic at YoYo, that's for sure. We don't want to break everyone's source, but at some point, you have to make a change. This may mean keeping the old ones and giving some new ones, then removing the older stuff in a later version. But at some point, I think the old "handle" system should go. Again.... will be a huge debate internally on this, and we'll then need to open that debate up to external devs as well.
Scope.
Yes. Need Scope. I'm not a huge fan of C++ style namespaces, but they work well on C#. That said... they aren't vital. So not sure, another one to discuss. Multiple inheritance...Mmmm...prob not, but who knows. def not for 8.x. As to uninitialised variables not being 0, well.... that's needed for beginners, there's no doubt. We are coming to the conclusion that there may be a new level though - Pro (or something), where things get really interesting! Time will tell on that one.
Scripts.
Default args would be better. I suspect we may well start allowing proper script definitions, then all this would be possible. But it would also allow us to keep the current method for beginners. But I prefer proper definitions as it means you get proper error checking when calling functions as it knows the number of args it needs. We can work it out I guess simply by checking how many args it uses IN the script, but it's cleaner and less error prone to define it. I don't think you need pass multiples args back. Again, if you had proper defined functions you could specify "outs", but other than that, you can currently just use globals and set them. It does the same thing.
Flow control - not for 8.x
Multi level break? Don't be silly.
Editor.
non-modal editors. Sooooooooooooooooooooo YES! I hate the horrible modal dialogs! Hate them!! Hate them!! Hate them!! Hate them!! Depending on time, This might get in to 8.1, however we need to discuss with the community to see if there's any valid reasons to keep them. Mark thinks there is... but couldn't remember, so we'll open it up for discussion soon.
Better window management. Yes. def. Tabs would be nice.
Multiple selection/editing of tree resources. Yes.
Dragging resources between projects. This would be nice... but no idea when.
Group duplication. Another nice but "when we have time..." one.
Portable Installation.. We'd have to look into that due to piracy issues.
Escape closes... yeah.
Debugging
Whole debugger needs redoing, but that'll probably be 9.x or so. You need the new scripting engine for this. Once thats in, then pretty much all this is possible, and will be done. Not sure about dynamic recompiling though. It's nice, but might be tricky... Probably between game "ticks" is the simplest way.
Code
I've said before. The code editor is reasonably good, but just needs a little update to make it very good. Most of these should be done at some point, with luck during 8.x life cycle. I'd remove the external editor, but more on this later....
Objects
Bypassing D&D - yes.
Inheritance graph. I guess. I never use them, but on others games it might have been handy to see, and I know others use them.
Show GML equivalent of D&D. We hope to go one better than that...
undo.. yeah... need a better undo system over all. But that's probably a 9.x thing.
Rooms
Instance stuff. Yes. The idea at some point in 8.x is to move to a more select and change system, rather than the current kinda mushed one. We will start making everything brushes, and that will let us do all manner of things. Group selection/editing, grabbing chunks from the map, painting with them and all the rest. You should also be able to set some instance data directly from the editor. rotation, scale, colour etc...
Zooming. Oh HELL yes. Will be there in 8.1, in fact... it's almost complete. We might post a video soon to show it working. It's a massive MASSIVE improvement.
Layers/tiles. Yes. In fact, I want to completely change the tiling/instance system to be more "playfield" based. I find this is much less error prone, and will let the graphics engine draw everything much, MUCH faster. Currently tiles are really just very cheap instances, and everything is drawn pretty slowly. But if you do a proper tile/layer system, then you can blast whole layers very quicly indeed. Rendering would speed up massively. Not sure if this will make it into 8.x as again, we will need to take care not to break everything.
Grid offset/colour - sure.
Sprite.
onion skinning. Yes. Might be 9.x
Selection/manipulation... not sure.
Curves. Probably.
default precise checking. If this is the pixel checking for game collision, then no. This is really REALLY slow... so you should be forced to think about it. If its something to do with the editor, then not sure. Preload. I think all preload stuff is going.
Triggers.
Not used them yet, so won't comment.
Files.
split gmks... More on this later....
Remove redundant compression. The file format will be changing. More on this later.
conditional compilation. Yes. Would be nice. Not sure when.
Editors
Sound editor. Perhaps...
Particle/effect. Yes, at some point. Preferably right inside the room editor. Prob a 9.x thing, but you never know...
Extensions
DLL access to in game resources. Yes, would be nice. But tricky. At the very least getting texture handles and a pointer to variable "values" would be good, but I don't know how possible this is yet.
IDE mods. Not for 8.x
extensions in general will be changed in 9.x I think. We want to do a lot more with them. 8.x ones are pretty limited.
Drawing.
Animated tiles - yes.
isometric tilesets. Not high on the list. (I presume you all mean free assets here)
alpha in colour - oh hell yes! Full 32bit colour values rather than alpha, and colour would save LOADS of effort in the engine.
draw_*_tiled_region... not sure what this means. Draw a sprite./background tiled? yes, sure.
More vector support. more prims. bigger better drawing in general... yep
Layers - I'm a BIG fan of layers...
Correct normals for 3D solids??? They aren't correct? (spheres, cubes etc?)
More 3D formats - 9.x (at some point)
bloody hell this list goes on some!
Collision
Not used the more complex collision very much.. so won't comment. It's pretty slow though, so needs an overhaul.
Instances - sure. Though don't hold your breath for Lambda stuff.
Sound
Sound instance. Yes
formats - yes.
seek - probably
length - probably.
modification - probably
mute - yes. Master volume should mute media player music too really.
Rooms - yes and yes.
I'd also like to add scissor regions. So you can hardware clip to a rectangle.
Networking.
Total rewrite required.
Reflection.
Yes. But not sure when.... 9.x prob
Maths.
Well, better maths in general.
Files
ini files. INI files aren't too bad. But need some kind of instance or handle so you can have multiples open at once. You also need to be able to flush an ini file, to get rid of old stuff. Basically, a refresh would be nice. xml etc would also be good.
read whole file - yes. soon I hope.
game save/load. This whole thing needs redone. But it could throw an event.
Input
yes. Allow multiple mouse clicks at once as well (allows for multi-touch devices)
Joystick - sure.
Timing.
Mmm...
Naming alarms would be nice. I don't like just having alarm[3] either.
Hires timer would be great. It's available, so we should provide it.
Interface.
Message boxes. This is an on going debate. I think we should make all message boxes the OS native ones. This allows for Macs to look like Macs, and windows to look like Windows. But there is a backward comparability issue, in that the code allows your to change the look/feel. I think if you want to do that... do your own dialogues. SO not sure if it'll be in 8.x.
Not sure about the rest.....
Runner.
We will be changing the runner format, and making it harder to decompile. Will be done in 8.x time-frame.
Bytecode generation at build time. Yes. Not sure when. Might need the c++ runner for that.
remove debugging in release builds - would also be nice.
Unused resources. Yes, however... since you can refer to resources as strings, and then later make them into actual object references, then it becomes hard to actually know if someone has used an object. However, we hope to make this an option so if you don't do this, then we can strip out all the crap. We've seen sketches and photos in a games .exe as the developer as used it as a project workspace, but the final program has gotten it all as well. This should be cut in some way.
Wow. Okay, that was much longer than I though it was going to be..... Now just because I've said yes doesn't mean it'll happen tomorrow. And just because I've said no, doesn't mean it'll never happen. ALL these things are still up in the air, and under discussion. We're very aware that anything we change will have a massive impact on the community and developers work flow, so we want to be very careful as to how we proceed. I think I'll probably start some GMC topics to open discussion with the community about some of the changes, and we will speak directly to the devs we've been working with before anything major is affected. In general, additions will probably go right in, while changes may take some time to validate the need, and the effect on the community.
I've mentioned before just how excited I am to start working on Game Maker itself. It's a fabulous product, with a great community, and huge scope for change and improvement. I think we can drive Game Maker to be the tool to use for indi devs, but it'll take time. The real improvements will only come with the rewrite, but we should be able to start the process in this iteration.
In the next few weeks, you'll hear whats going to be in our first update, although you all know about the room editor zoom. We hope to do small iterations, more often. So with luck, for 8.x there won't be any more massive waits, you'll get updates much more often, and new features will slowly start to appear.
EDIT: Oh yeah... The documentation needs an overhaul as well. It should be more like DirectX with actual examples of function use, not just listing them - that's no use to anyone! However, this is a massive task. But one day, we will.
Saturday, January 22, 2011
Subscribe to:
Post Comments (Atom)




14 Smart arse replys:
fod network, you can use very good 39dll, for example as extension (not build-in) - i'm using it over 4 years and it's very, very good!
Woo! Information overload :D
Good to see you're as excited about some of these suggestions as we are :D :D
Thanks for taking the time to read through them and post your comments! I look forward to participating in the GMC topics on these issues.
May I ask what you mean by this?
"I want to completely change the tiling/instance system to be more "playfield" based."
I'm not sure what you mean.
I'll detail the new room/tile stuff later. I'm writing it up for internal use, then I'll release it later for everyone to discuss.
how plausible is it to have variable names etc. in the auto complete box like in Visual Studio?
A very interesting insight into the future of GM. A difficult mix between functionality that improves upon the existing framework and stuff that is likely to confuse new users.
If half of the proposed changes were in Game Maker when I first started then I probably would have been more confounded and less likely to pick it up. Can definately see the need for a GM Pro, not neccesarily a seperate edition but just a different interface and tutorial set (The existing tutorials were very useful when I started).
I suppose another advantage of having a Pro mode is that it positions the software as a viable option when making cross-platform games, which is the direction YoYo games seems keen to down. Going to be a fine line between pleasing experienced devs and first time users.
Exciting stuff though, is good to see so much transparency about software before / whilst it is being developed.
Have you thought of changing the back end to use LLVM? It'd take some work but you'd get native compilation for a lot of processors (very well optimised) or JIT for free.
Seems mad trying to write this stuff when it's been done so well elsewhere
I just wanted to let you know that I love the current movement you bring into the boat!
I'm coming from a looong Smalltalk and Java background and so I do see Game Maker as an incredible tool to get games done quickly but the limitations of GML, collections and scripts always makes me stop in the middle of development and switch back to Java :-/
I really appreciate that you see the needs of improvements in several areas of GM and I think the new GM 8.1 sub forum to discuss or evaluate new ideas for GM changes is just great.
And I'm convinced that GM and GML can be improved to please professional coders and still be easy enough for learners!
Please keep on going, Mike!
Quoting Thomas:
And I'm convinced that GM and GML can be improved to please professional coders and still be easy enough for learners!
---
I'm too. Continue your excellent job Mike, this is the way users want.
@Ben: yes, the Pro version that export cross-platform games makes users very happy.
YYG can earns money for improve GM with selling users games until a "quality check" and offering their licence to publishing games in different markets.
So users can decide to publish their games in a market paying market licence or publish under YYG with a % of the earnings with more visibility.
Hi Mike!
I'll suggest to show a roadmap in the YYG site about the progress on 8.1 and 9...
Runner multi-platform 90%
IDE GM8.1> room stuff 70%
> gml improving 50%
> ecc...
I'll hope GM8.x has an autoupdater...
It's time to improve GML language.
Types, collections and more are not a problem from beginners, don't have fear to add this in the 8.1 version.
We want to see the new runner for pc in action!
...and DX9 too!
Structs is so useful...
Creating an object (with all the events) for simulate a struct is a bad thing.
will be able to use plugins for extra tools for game maker, such as a 3d model editor advanced more than a simple 3d editor and model loader?
Also kind of wondering if we will we be able to modify the window and make applications like a dock, or a desktop toy?
Post a Comment