I had a go at Unity3D. I missed Gamemaker!

Status
Not open for further replies.
M

mysticjim

Guest
So, it's pretty much as the title says!

I've primarily got back into game making after a long hiatus. Messed about with Gamesalad, enjoyed it but quickly hit it's limitations (tried to make a Plants Vs Zombies clone, crashed it with 10 moving sprites on the screen!)

Wanted something with coding options. Had a brief go on Construct 2, didn't like it, prefered Gamesalad, but didn't give it a fair crack to be honest.

Tried Gamemaker, loved it, despite it having a few features I don't like (hate the Room editor most of all) - but there are plenty of threads about what it doesn't do, I was quite chuffed that I could get working ideas prototyped nice and quickly, and I could get my head around the coding language having not coded in years.

However, my main motivation was to create little 2D games for my 6 year old son to play. Despite having an Xbox360 and tons of games, his favourite gaming weapon of choice is our crappy little 7" Samsung Android tablet. He loves the thing. And while my current game making exploits are purely a passion project, I figured if I could find something that really captivated my little boy then I might be to polish it up to such a standard that I could try releasing it on the Android Play store and marketing it, etc.

And while I loved my initial experiences of working on Gamemaker, I obviously discovered early on the fact that you need to buy Studio Pro, and then shell out almost double that to export to Android, just to test the game out on an Android device to see if the damn thing works or if it looks/runs like crap.

This in itself is okay, the price point is pretty reasonable, although I'm pretty cash-strapped it has to be said.

Whilst I was getting to grips with Gamemaker, and I think making lots of really good progress, I was testing on my PC. And my son was impressed with my early prototypes, but soon I got the inevitable, 'so, when can I play this on the tablet, Dad?' The answer, 'when Dad is lucky enough to have a spare £200 burning a whole in his bank account,' didn't really cut it! I do wish there was a free built in function for quick testing on a target device. That would certainly have appeased the little cherub while I slowly and diligently saved up the money to buy the features I really need!.

So, under pressure from a 6 year old, and in a moment of weakness, I thought I'd give Unity a go. It's free, you get a lot thrown in to start with, it has a big wealth of tutorials, a huge community (not as freindly as the Gamemaker crowd, though :) ) and you can export to Android without opening your wallet.

So how have I gotten on so far (about 2 weeks in.) Well, I took more or less the same approach that I took to GameMaker. I studied. I did a load of newbie tutorials, successfully exported some test projects. I can just about navigate through the user interface. I think the 2D features in Unity get a bit of a bad wrap, they're quite good and I could see a lot of things built in that actually need a lot more effort to execute in GameMaker (layers and grouping are very useful) but 3D is a complete minefield, but I figured I could build up to that.

But I am having trouble with the coding. C# is complicated - and while I can just about understand what I'm doing - it's a real labour, but I expected that. I've worked my way through most of the Microsoft Academy Beginning C# tutorial and it's gradually going in, but it makes my head hurt so much.

And these last few days I've been thinking, when I used to get a game idea - without even going near the computer, I'd be able to plan roughly how I'd go about making it in GameMaker. In Unity, not a clue.

It's mostly the coding - I really took to GML. I know it's based on a language that hardcore coders sneer at, but I found it so intuitive. But also, the method for building a project, how to organise it, etc, I really got my head around that fast. I may not be able to produce a professional game yet, but I can clearly see exactly what things I'd need to improve, and I can realistically envisage how it would work.

But with Unity, there is so much to contend with, so much to grasp early on, and a much more complicated language to get your head around, it really hurts!

So, I was sat there, watching a newbie Unity tutorial, barely comprehending what was happening, and I thought, man I miss Gamemaker! I really do. And I thought, what if I flogged some stuff on Ebay, I could buy those damn extras that would enable me to do what I wanted in the first place using the tool that I've taken to so much better.

I feel pretty weak for going down that route. I know Unity is a very powerful tool, and with enough study I could get reasonably proficient at it. I may well one day. I don't know. It was fear of coding that made me try out GameSalad at the start. As I said, I got to Gamemaker and really took to GML, but C# restored all that coding-phobia I'd almost discarded - it was every bit as difficult as I thought it would be, and I know it will not get any easier for months. I reckon it would take me at least a year of graft to get anywhere near doing what I can code in my head in GML right now.

When I make something in GameMaker, even when I get stuck on something, I feel alright because I at least know I will be able to find the solution pretty soon. I typically end a programming session feeling satisfied. I finish a session learning basics on Unity feeling like I've been mentally beaten up! And as for appeasing my son - he was quite impressed with my simple ideas made in Gamemaker when he saw them on my PC. He was totally unimpressed with the 16 hours that went into trying to follow a basic Unity tutorial that resulted in him being able to push a 3D primitive around the screen on the tablet. Phrases like, 'Is that all it does?' or 'how do I shoot missles?' are cutting me like knives! And responses from myself like 'you will be able to, in about 3 years time,' - are met with looks of utter contempt and disdain!

So that's where I am. Maybe I am simply Yoyo Games total target market? I feel like a shoddy coder with not enough time on his hands! I don't know. Maybe I'm the lowest of the low, someone who only works well with a tool that gives near instant gratification? I hope it's simply a case of Gamemaker possibly being the best tool on the market for unlocking the creative ideas of someone who perhaps just hasn't got the time or patience for C#, or the complicated nature of Unity's interface. I guess I'm just going to have to buy those Gamemaker extras I need and actually create something that is truly impressive to make me feel better about myself now!

Just wondering, has anyone else here been mentally scarred by trying to learn Unity? :)
 
A

Aura

Guest
Discussing a product that directly competes with GameMaker is against the forum rules. Both when you're promoting it and when you're criticizing it. The latter doesn't make a difference, it is still being discussed.

To put together the thoughts of GameMaker hobbyists and programmers, we are using GameMaker because we find it easier to use. People who find Unity easier to use have mostly left the community, so the sum total of answers that you'd ever get here is positive towards GameMaker and negative towards any other engine.
 
M

MishMash

Guest
Discussing a product that directly competes with GameMaker is against the forum rules. Both when you're promoting it and when you're criticizing it. The latter doesn't make a difference, it is still being discussed.
"Post topics that could promote any product that directly or indirectly competes with any product by YoYo Games Ltd."

This T&C only appears to concern promoting, not discussion. I believe it's important to discuss the options. Many people may come onto the forums curious to know what to use, and whilst we can be biased towards GM, it is important that we understand how GM may work for certain people. Discussing limitations of software is also important.

I personally find other engines too clunky. Had to use Unity for a number of university projects, hated it ):! Despite it being more "complicated", it also somehow does more for you at the same time, which I dislike as I find using built in physics and whatnot takes away from the "feel" of a game. So many Unity games have this boiler plate feel when script kiddies just pop in, slap down a load of pre-made assets and re-export. (That is not to say you can't do things differently, just the general wealth of games that seem to come out have this typical "unity" feel.)

Anyway, regarding the pricing, the actual mobile exports are designed for people who are actively distributing apps (and probably monetizing them in some way). Regarding mobile testing, this is available in the Pro edition which is currently $74.99 (On Sale, and $149.99 normally.) In my opinion, this is not unreasonable at all, considering its a one-off payment and that you don't actually have to shell out for the full export module until you know your game works.
 
M

mysticjim

Guest
Discussing a product that directly competes with GameMaker is against the forum rules. Both when you're promoting it and when you're criticizing it. The latter doesn't make a difference, it is still being discussed.

To put together the thoughts of GameMaker hobbyists and programmers, we are using GameMaker because we find it easier to use. People who find Unity easier to use have mostly left the community, so the sum total of answers that you'd ever get here is positive towards GameMaker and negative towards any other engine.
Hi, certainly wasn't looking to actively promote or dis said other product, was more talking about my experience, and if anything, I keep coming back favourably to Gamemaker, which as I've said, I do love it!

And MishMash, I genuinely didn't notice mobile testing was built into Pro. How far does it let you go on Android? Does it let create an unsigned apk that can run in a debug mode on Android, or can you actually create a signed apk, but just not officially release it without the Android add in?
 
H

Heat4Life

Guest
GameMaker: Studio = King of 2D Game Making, Unity3D = King of 3D Making
 

Mike

nobody important
GMC Elder
You can discuss other engines within reason, if there is a feature product "X" has that you think GameMaker should have; explaining the feature, its benefits and so on. What's not allowed is linking to other engines sites, telling folk to go get this or that engine, or that engine "X" is so much better blah blah.

If (as this case) your simply listing other products to say you tried and didn't like - or even if you did, then that's fine. There are lots of good engines out there - we know this. Just don't go linking to things, or trying to get folk to ditch GameMaker for "X" because if...bleh... and you'll be fine.

As for the rest.... Unity is a 3D tool, and if your doing anything particularly large in 3D, it's a fine tool but with a mean learning curve. But it does have issues elsewhere. We hear a lot about versioning issues, and the engine is pretty bloated. Until we get basic model and animation into Studio, it'll always win on 3D.

For 2D.... I don't think anyone else comes close. We're so much simpler to use, a lot more lightweight, and require a lot less powerful devices.


EDIT: BTW, this isn't to say you can't do 3D in Studio. I do a lot of procedural stuff in GameMaker - it's just you have to know what your doing.
 

TehPilot

Member
GM/Unity dual user speaking. Unity undoubtedly has a sharp learning curve, and I see it all the time with students in game design classes. The programs I've helped out with choose it as their environment of choice, and you get students who struggle and students who fly far ahead of the curve.

It helps a lot to have a programming background going into C#. I pretty much learned it on the fly when I took up a teaching assistant temp position last summer; the difficulty came from learning the editor and the individual quirks of Unity. Then again, not everybody is a computer science major.

The fast turnaround time and ease of use GM provides is awesome. Definitely my tool of choice for 2D games and game jam entries. Combined with the multiplatform export and one-time purchasing cost, it's good for more serious endeavors as well. I'm excited to see what future versions of the program will bring to the table.
 

Alvare

Member
(That is not to say you can't do things differently, just the general wealth of games that seem to come out have this typical "unity" feel.)

It's not Unity's fault people don't try beyond the presets and templates.
 

Morseton

Member
I've been using Unity for some months now, and I must say it's awesome. Just takes some time to get used to all the therminology but it's really worth after you get used to it.

and for people that master the game maker language, c# should be not problem...
 

Mert

Member
I've used Unity for a while, then I went back to GM:S(honestly, I never left it)

It's just, I find Game Maker more useful.
 
Z

zircher

Guest
Used both (and many others), my son uses GMS so I tend to do so as. It helps when he needs help or we're platform testing.
 
A

Andy

Guest
I gave Unity a shot, but I like GMS more. Unity is more complex, and I am a bit slow. :p
 
C

ConsolCWBY

Guest
I looked at unity... 9+ Gigs... 9+ GIGS?!! Since I do not have dedicated internet at my house (a long story, that) I have never tried it. Besides, Game Maker has the best books and tutes, and I am lazy. And I agree unity has a more 'united feel' between games. I've programmed in C# before so that aspect doesn't bother me. The insane download does! (I mean, just sell it on disk already, sheesh!)
 

XanthorXIII

Member
I'm still pretty die hard for GMS as it does a lot really great. I'm just concerned that we're being passed up for other engines and that they are catching up. That's where I am hoping that GMS 2.0 will really put the miles ahead on 2D
 

Coded Games

Member
I actually took an online class with my college that taught us the basics of Unity. For some reason I just have no interest in making 3D games so there really isn't any point to switch from GameMaker.
 
G

GhostlyFeline

Guest
I used Unity for some of my college courses. I like it okay. It's a pretty decent 3D engine, but I agree with what a few people have said, in that it's hard to make a game that doesn't feel like a Unity game. Also, it just takes longer to get something up and running. Wouldn't want to use it for a 2D game.

The main reasons I use GameMaker are because I'm more fond of working in 2D, I like how fast I can get results, and I can run it on my outdated laptop. And it doesn't hurt that I've been using GM for like 10+ years.
 
M

mysticjim

Guest
Am I mistaken, has the price GM Studio Pro and the Android Export option gone up since I started this thread?!!!
 
M

mysticjim

Guest
Ah. (enter assorted swearwords here...)

How often to they run promotions?
 
D

Diptoman

Guest
I use Unity mostly nowadays, but that's mainly because of the 3D parts. There are some 2D things which I think Unity does better as well, like layering (and lighting) for starters, but there are so many things that are also a pain for 2D (particularly for pixel art games) - that I don't think I will be using Unity for 2D anytime soon. Also GM:S is simply much more lightweight and faster to get a prototype running. However, with Unity you can have object oriented programming (even if people mostly use components), which you can't really have in GM:S - and that's a pretty big plus for it.

Both have pros and cons, you should not feel weak or bad for choosing one over the other.
 
I have dabbled in Unity every now and then, and yes I have been beat by it many times. I mostly enjoy Unity for the editor, but I am having trouble figuring out C#. I'm sure I'll figure it out eventually.
 
T

TonyChan

Guest
I spent the whole time to write "UIManager, ResManager, GameManager, SoundManager , etc" with Unity. When I used GM, all I need to do is making games.
 
M

mysticjim

Guest
Out of interest, being that we know GM is great for 2D games, despite some of the shortfalls - 3D. What are the limits of it with the current system? I mean, if you were to compare it, rather than to a contemporary development system, such as that other one we've been talking about (beginning with U!), but to say, the 3D games of a certain era or gaming platform, what are we talking? I'm assuming it's got better capabilities than, say the standard we saw at the tale-end of 16Bit computers - your Amiga and Atari ST, so are we looking PS1? Haven't seen any GM 3D games that compared favourably with PS2/XBOX era graphics (unless someone can point some out) - exactly what are the limits of what it's capable of? I've not even gone near 3D in GM, but no-one has a good word to say about it, is it more of a case that the graphics aren't that bad, but the tools to manipulate them sufficiently into a decent, responsive game are not there?

Personally, I'm actually expecting, should the current trends of all things retro in gaming continue, that some people will probably start hankering for retro 3D games fairly soon. If the GM way of working with 2D, i.e. incredibly straightforward to get going with basic ideas and prototypes, then a sensible, steady and logical learning curve, could be translated to 3D then that would be awesome. Cinematic photo-realism is all very well, but the opportunities for more stripped back 3D gaming, especially on mobile devices where the loss of detail could be negated against being able to create flowing, fast moving, enjoyable games, could be absolutely brilliant.
 
O

orange451

Guest
Out of interest, being that we know GM is great for 2D games, despite some of the shortfalls - 3D. What are the limits of it with the current system?
The problem, with Game Maker's 3d, @mysticjim, isn't very complex. In fact, it would take VERY little effort to make the engine as capable as any other 3d engine on the market.

Your graphics card does all of the work for 3d graphics. Literally, all of it. You just have to send it data. However, your engine has to leave certain things exposed in order to manipulate the complex types of data. Game Maker already does this, but it hard-codes a lot of things that its users should be exposed to.

For example, if you want to have a 3d deferred Renderer with shiny specular lighting, you need a high-precision buffer to render all the data to. In game maker, your buffers ( surfaces ) are limited to 8-bits od data per channel. You can create the effect, but you've now limited yourself, because your Specular lighting will have bands caused by the low-precision color depth of the buffer. How would you fix this? In OpenGL, it'd be simple, you'd change a GL_RGBA8 to a GL_RGBA16. Done. Literally changing one constant that is internally defined in the engine would fix it.

Here's another example. Do you want mipmapped textures? Your graphics card does it for you. Want to know how to turn them on? It's easy. Using OpenGL, you could do something as simple as:
Code:
glTexParameteri( target, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
glTexParameteri( target, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR );
Done. You now have mipmapping.

Picture of mipmapping:


The same thing can be applied to anisotropic filtering ( which every modern graphics card can do ):


However, you can't have this in Game Maker, as the devs refuse to open any hooks to those two lines of code! Luckily, MishMash created a nice DLL on the YYG marketplace to solve this. But, we run into another roadblock. External textures.

External textures in Game Maker are quite annoying. When you load a texture, you have to tell the graphics card to generate mipmaps. Internal textures do this when your game starts up, however for whatever retarded reason, external textures don't. So you literally cannot have mipmapped external textures unless you replace the entire Game Maker renderer. It takes one function call to tell the graphics card to generate these mipmaps. And they hardly take up any VRAM.

These things are not hidden away for a good reason. These things, if added, would not hinder any performance of currently existing projects. Allowing users to have access to this stuff would advance what Game Maker is capable of doing at no cost to the dev team.

I'm not saying that YYG should go all out and write 3d tech for us to use; that would be our job. I'm saying they need to give us more access to the DirectX pipeline. If they did, we could recreate (given the proper art) any beautiful 3d game you see out on the market today.
 
Last edited:
M

mysticjim

Guest
@orange451 - interesting and informative post, thanks for that.

Do you really think those things you've documented would be the 3D 'magic bullet' for Gamemaker and the potential it needs to produce games akin to the visual standard of U...(the aforementioned 'other' 3D engine!)?

I'm hazarding a guess that they're saving this functionality to give another selling/upgrade point to whenever GameMaker Studio 2 eventually gets unleashed?
 
O

orange451

Guest
@orange451 - interesting and informative post, thanks for that.
Do you really think those things you've documented would be the 3D 'magic bullet' for Gamemaker and the potential it needs to produce games akin to the visual standard of U...(the aforementioned 'other' 3D engine!)?
They're the main things, in my opinion, that prevent game maker from being able to create state-of-the-art 3d graphics. We have shaders, so any 3d effects that other games have can be created. But can you name a modern 3d game without mipmapping? I can't.
 

Mike

nobody important
GMC Elder
@orange451 that's not quite true.... you're forgetting the cross platform nature of the engine. While certainly not complex, it would take a fair bit of time to add all the different texture formats for all platforms, and all the missing sections needed for a full blown 3D engine. On top of the work of adding these cross platform, we also have to support and fix any issues that occur, and while this might be easy on PC, it gets harder and more complex on mobile and HTML5. So it's not quite as simple a process as you think - we currently have about 8 different renderers that we'd have to change and maintain, and that's time consuming.

We do plan - one day, to add texture formats, and index buffers (which we REALLY want/need), but we've other things that are more important right now I'm afraid....one day....one day...,,,,
 

Alvare

Member
Cross platform support was implemented way later. Gamemaker had lots of opportunities to get improved back then. To be honest, it is not competing with any other game development software as of now.
 
O

orange451

Guest
@orange451 that's not quite true.... you're forgetting the cross platform nature of the engine. While certainly not complex, it would take a fair bit of time to add all the different texture formats for all platforms, and all the missing sections needed for a full blown 3D engine. On top of the work of adding these cross platform, we also have to support and fix any issues that occur, and while this might be easy on PC, it gets harder and more complex on mobile and HTML5. So it's not quite as simple a process as you think - we currently have about 8 different renderers that we'd have to change and maintain, and that's time consuming.
It's absolutely, without-a-doubt, certainly, true.
I have written enough engines and I have examined enough libraries to draw this conclusion. EVERY graphics card on ANY device that can RENDER 3d graphics, can do the things I mentioned.

On mobile you have near full access to OpenGL ES. To say there is compatibility issues WITH TEXTURE FORMATS is a lie.

I can understand the issues with your HTML renderer, but let's be completely honest, Game Maker has never been fully cross-compatible with HTML vs PC in the first place.


We do plan - one day, to add texture formats, and index buffers (which we REALLY want/need), but we've other things that are more important right now I'm afraid....one day....one day...,,,,
I'll hold you to it.
 
M

mysticjim

Guest
Interesting debate, people, thanks for your input. I do find it encouraging that while evidently it's a cause of much frustration that the true potential of the software may not be quite being realised yet, that there is commitment to it for the future. Would be fascinating to know roughly what sort of features are currently under development, though :)

And getting back to my earlier point, regardless of what could/should be implemented in the future - what about what is possible right now with the 3D features as they stand? Can anyone point me towards a few GM made games that utilise 3D so I can get an idea? Not just in terms of the visual aspect, but playability as well? Of course I'd expect the learning curve on using the existing 3D functionality to be higher than using the 2D functionality, but as I said, if it is possible to make retro looking 3D games, especially if that functionality, no matter how crude it might look compared to other contemporary game development engines, was still pretty much cross platform, I'd probably be interested in working with it.
 
E

eltantillo

Guest
And these last few days I've been thinking, when I used to get a game idea - without even going near the computer, I'd be able to plan roughly how I'd go about making it in GameMaker. In Unity, not a clue.
This happens to me also with GameMaker. I can build out of my head just about anything with GameMaker but to make something decent in any other coding languages I can't just sit down and code, I need to first make some diagrams in order to turn my idea into a proper piece of software.

And getting back to my earlier point, regardless of what could/should be implemented in the future - what about what is possible right now with the 3D features as they stand? Can anyone point me towards a few GM made games that utilise 3D so I can get an idea? Not just in terms of the visual aspect, but playability as well? Of course I'd expect the learning curve on using the existing 3D functionality to be higher than using the 2D functionality, but as I said, if it is possible to make retro looking 3D games, especially if that functionality, no matter how crude it might look compared to other contemporary game development engines, was still pretty much cross platform, I'd probably be interested in working with it.
http://sakis25games.blogspot.mx/2009/05/my-pc-games.html
 
Last edited by a moderator:
M

mysticjim

Guest
Very interesting, although I think certainly the newer 3D games, especially the ones on Android are made with a more modern 3D engine than GM, but definitely most of the PC only offerings are GM 3D confirmed. I think my initial thoughts were correct - a lot of them are reminiscent of PS1 era 3D.

I'm very intrigued about the current 3D possibilities. Out of interest, working in 3D on GM, I'm assuming it's much more code/maths heavy than purely working in 3D? And how is it with things like collision detection? I'm currently vowing to actually finish my current (2D) GM project and not get distracted, but I think when that's done I will check out some of the beginner 3D tutorials to see what it's all about.
 
M

mysticjim

Guest
And - @eltantillo - liking the look of Beyond Human a lot. That's being done with GM? It looks very smooth, certainly gives me something to aspire to! :)
 
O

orange451

Guest
I think my initial thoughts were correct - a lot of them are reminiscent of PS1 era 3D
A lot of them were made nearly 10 years ago when 3d was first introduced to Game Maker.
I wouldn't take sakis25's games as what game maker is capable of. It was a good representation maybe 6 years ago, but his games are graphically far out-of-date.

Here are some more accurate representations:
Demonstration of modern rendering pipeline
Demonstration of Screen-Space Ambient Occlusion
Demonstration of 3d level editor

I'm assuming it's much more code/maths heavy than purely working in 3D?
What do you mean by purely working on 3d? That's far too ambiguous.

And how is it with things like collision detection?
The easiest thing is to use a library. There's p3dc or bullet; both are acceptable. Bullet, though primarily used for physics, can be used to create player physics as well. I am using it in my current Java project. It's a great library.

I will check out some of the beginner 3D tutorials
You should!
 

Mike

nobody important
GMC Elder
It's absolutely, without-a-doubt, certainly, true.
I have written enough engines and I have examined enough libraries to draw this conclusion. EVERY graphics card on ANY device that can RENDER 3d graphics, can do the things I mentioned.
On mobile you have near full access to OpenGL ES. To say there is compatibility issues WITH TEXTURE FORMATS is a lie.
I can understand the issues with your HTML renderer, but let's be completely honest, Game Maker has never been fully cross-compatible with HTML vs PC in the first place.
Okay.... please don't say I'm lying - I'm not. At no point did I say it wasn't possible, or that there were compatibility issues with texture formats. Go back and read my response.... I'll wait here.....


This is what I said, and this is absolutely true.
....on PC, it gets harder and more complex on mobile and HTML5.
If you had taken the response as a whole, especially the fact we have 8 different renderers, you would have realised I was talking about the time taken to write, test and support changes to the graphics engine. In fact, I even said that....
....and that's time consuming.
Every format you put in and support means you have to test them - properly. And that means not only writing the code in the engine to do it - across the many different renderers, but also supporting test apps to make sure they all work as expected (and to show developers how to use them), equally, across all different platforms. This is, by no means a 2 line addition. There are LOTS of different texture formats - a huge number in fact, and while not every platform supports every format you will get a lot of them being shared. But even the ones that aren't available cross platform, you should really support if you can and allow failure to be detected and dealt with by the app.

For example, android devices vary massively and so it's not unreasonable to think that some formats will be on some devices (like high end ones), but not on others - like crappy low end ones. So you have to fail gracefully. All this has to be dealt with not only in the engine code, but in all the test apps to make sure it's possible and works.

Your "2 line fix", is weeks (if not months) of actual work, and more when you include support for any bugs that may come in due to the cross platform nature - or just because there was some obscure usage case we hadn't thought of, so didn't test. So while you might be just want at one platform, we don't. In adding a feature we have to take into account all of them, and the time it would take to test and support. Ironically, low level engine changes are actually the most complex and slowest to add, because there are lots of knock-ons and many renderers to change. Higher level features that use the renderer usually "just work", and although you do have to write native and HTML5 versions that's not too bad. But when you go below the internal graphics API into the low level stuff, it gets very time consuming work.

However, I do stand by the "we really do want to add it, and will at some point". But please bear in mind, almost always more to any feature than just adding a couple of lines of code.

Lastly...HTML5. While it's certainly a harder target since there is no GML virtual machine on there - we use JS directly for speed reasons, if you write things cleanly enough, your game does cross compile - even with 3D. I did that GTA engine thing a couple of years ago that was a full 3D version, and it ran in both a browser and native. Its harder yes, but you can do it.
 
O

orange451

Guest
I will say this. The graphics card handles texture-formats for you. Your graphics libraries, OpenGL and DirectX, bridge this along with your drivers to create compatibility on different systems.
  • Mobile devices use OpenGL ES.
  • Mac uses OpenGL.
  • Linux uses OpenGL.
  • Windows uses DirectX.
  • PSVita uses OpenGL.
  • Xbox uses DirectX.
  • PS4 uses OpenGL.
  • Tizen uses OpenGL ES.
  • Amazon Fire uses OpenGL ES.

Texture formats on OpenGL ES (both 4 bytes per channel and 8 bytes):
  • R
  • G
  • B
  • RGB
  • RGBA

Texture formats on OpenGL (has far too many options, but contains all formats OpenGL ES contains. Making OpenGL ES a perfect subset of OpenGL):
  • R
  • G
  • B
  • RG
  • RB
  • RGB
  • RGBA
  • SRGB

Texture formats on DirectX 9:
https://msdn.microsoft.com/en-us/library/windows/desktop/bb172558(v=vs.85).aspx
Contains every texture format that OpenGL ES contains.

Therefore, all you need to do is support texture-formats from OpenGL ES, and find the corresponding texture formats on OpenGL and DirectX, and you will not run into any compatibility issues on any platforms.

I will admit I misread your original statement. You are not a liar Mike, but I just want what a lot of other users want, a better Game Maker. I've been asking for these things for years, and you say they will take months to implement, which I don't believe is the case. It's not like you're writing your own graphics libraries. All of the exports use one of the three libraries above. There should be absolutely no problem supporting other texture formats.

I do not think it's relevant to bring up all the information about having 8 renderers though. The renderers hook into the graphics library. The graphics library handles texture formats.

For Android, since Game Maker uses OpenGL ES 2.0, all you have to do is adhere to the texture-formats listed on an OpenGL ES 2.0 specs list. There's no way the device can fail, because if it supports OpenGL ES 2.0, then it supports ALL of OpenGL ES 2.0. You can't support only part of it; that would be mad. Perhaps just support OpenGL ES 2.0 texture formats for all platforms?

I do want to thank you for your replies though, I want to have this discussion.
 
Last edited:

Mike

nobody important
GMC Elder
  • Mobile devices use OpenGL ES.
  • Mac uses OpenGL.
  • Linux uses OpenGL.
  • Windows uses DirectX.
  • PSVita uses OpenGL.
  • Xbox uses DirectX.
  • PS4 uses OpenGL.
  • Tizen uses OpenGL ES.
  • Amazon Fire uses OpenGL ES.
Okay, this discussion is going no where. Looking at the list above, it's clear you don't actually know as much as you think you do. I can't tell you much about the consoles due to NDAs except to say, you're wrong. There are also WAY more texture formats than you've listed, and just because one is available to OpenGL ES, doesn't mean the hardware will support it.

I do not think it's relevant to bring up all the information about having 8 renderers though. The renderers hook into the graphics library. The graphics library handles texture formats.
This again clearly shows you don't understand the effort required to write cross platform graphics engines. Even if we just say we had 2 - OpenGL and DirectX, there is more to it than just adding in 2 lines of code to each, and being dismissive of this fact is a bit of a slap in the teeth to the yoyo devs who work hard to make these runners so compatible. I will just emphasis the time and work to not only implement these changes on ALL the different platforms, and to write and test them across all said platforms. Whether you believe it or not, this is totally true.

However, you clearly believe you're in the right here, and there is apparently no way I can persuade you otherwise, so we'll just agree to disagree.
 
O

orange451

Guest
Oh course I didn't list all of the texture formats; I was just giving an example.

If I write a platform that supports OpenGL ES 2.0, then my platform supports OpenGL ES 2.0. Not part of it. But all of it. There's a reason specifications exist, so when driver software is written, it can support it all.

I do know what I am talking about because I've dedicated the past 3 years of my programming career to exclusively learning modern graphics programming.

Which is also why I suggested using the texture formats available to OpenGL ES 2.0 for all platforms. Because there isn't a single texture format (under OpenGL ES 2.0) that is unsupported on any of the devices that Game Maker can export to. Name one, please.

Even if there is say some 💩💩💩💩ty 2004 Android device that can't even run a blank room on the Game Maker runner at above 2 fps, it doesn't matter because that device, although technically "cross-compatible", isn't able to run a real Game Maker game anyways.
 
Last edited:

Mike

nobody important
GMC Elder
Wow....3 whole years eh? I guess after my 30+ years of graphics programming I should just give up, as I clearly don't know what the hell I'm doing. :D

Joking aside....as I said....you're missing the point, so lets just drop it shall we?
 
O

orange451

Guest
See I knew you were going to bring that up Mike, the second I wrote it.
But to be completely honest, most of the graphics programming styles learned up until the mid 2000s are useless with todays shader model. The current modern graphics programming techniques that all devices use, aren't even 10 years old (and even younger when you look at when they became popularized).

I would argue that three years of exclusively learning modern graphics programming compared to 30 years of out-of-date graphics programming isn't something to mock.

I'm not saying you know nothing of the field, obviously you do. However, think back to three years ago, I doubt many people at the YYG office, yourself included, knew as much as you do now in the field of modern Graphics Programming with the shader model. You guys all came from a time where you wrote it all yourself.
 
Last edited:

Mike

nobody important
GMC Elder
See I knew you were going to bring that up Mike, the second I wrote it.
:D I know, but couldn't resist - sorry :D

But to be completely honest, most of the graphics programming styles learned up until the mid 2000s are useless with today's shader model. The current modern graphics programming techniques that all devices use, aren't even 10 years old.
(this is a totally separate discussion mind, but one that's really interesting BTW!)
Believe it or not, that's not actually true .... In fact, I'd argue that much of the very early graphics coding (when you drew crap yourself), means you have a much better understanding of "data" as it flows through the pipe. Many modern day coders still tend to look at graphics as vertex and textures, but it's not. What your actually pumping through the pipe is data, and that's down to the "bits" level. knowing and understanding this means you can pass much more through, and make much better use of the shaders. I've done this several times - have a read of my emulator blogs (spectrum one was great fun: http://www.yoyogames.com/blog/89 )

"Data" is data, and things like software rendering are actually used a lot in pixels shaders to help traverse voxels or do ray tracing. Experience counts for a lot, don't fixate on "graphics", but think of textures...shaders...constants...as "data", and you'll be amazed at the things you can do with it. :)

EDIT: Actually... just a quick addition. I also got an article in "Game Programming Gems 8" which I got from playing with "old tech". Limited machines (like retro ones) still give a lot in terms of finding faster ways of doing things (because they are so limited), so never assume it's old, so not relevant.
 
Last edited:
O

orange451

Guest
Common Mike :eek:

Or at least a graphics programming section, where users can post about shaders/advanced rendering related stuff.

It's the only reason I came to the previous GMC :(
 
Status
Not open for further replies.
Top