|
Goombert
|
|
Reply #16 Posted on: May 31, 2014, 03:31:16 pm |
|
|
Location: Cappuccino, CA Joined: Jan 2013
Posts: 2993
|
Thanks ego, and I hope you will give my engine a try as well. You know I will be very helpful to users and developers if it comes to fruition.
Also, yes I would continue the engine in C++ as well, it's the only way I could bring all of my ideas to fruition to do it in C# and Java is a complete rewrite of the code base.
|
|
|
Logged
|
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.
|
|
|
egofree
|
|
Reply #17 Posted on: May 31, 2014, 03:38:58 pm |
|
|
Joined: Jun 2013
Posts: 601
|
There are more performance problems with .NET than just JIT. It's garbage collected, its object in-memory layout is terrible, calling non .NET code has all kinds of performance loss converting objects, etc. It is a little better than Java, at least in what's possible to express.
I've used .Net application only for business applications, not for games, and of course it's not the same. But i guess, except if you want to make very complex 3D games, it's not so important. As i see it, we are talking here about making a game engine for simple games, not making competitors to Unreal engine 4 or Unity !
|
|
|
Logged
|
|
|
|
|
Goombert
|
|
Reply #19 Posted on: May 31, 2014, 04:34:21 pm |
|
|
Location: Cappuccino, CA Joined: Jan 2013
Posts: 2993
|
Anybody else got any good suggestions? Don't be afraid to mention them, if there was anything you could change about GM or revamp let's hear it.
|
|
|
Logged
|
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.
|
|
|
The 11th plague of Egypt
|
|
Reply #20 Posted on: May 31, 2014, 05:21:49 pm |
|
|
Joined: Dec 2009
Posts: 274
|
I love Java, even though I think some of its standard library could use an improvement.
If you want to use C++ to do away with the parser that has been slowing this project down forever, that's fine for me. GML is not garbage collected, after all, just like C++, but similarities stop there. GML is much more similar to C than to C++. There's very little structure and no generics in GML.
C++ is freaking huge, and it has pointers and scary things in that hugeness. If you allow all of C++ then this would for sure drive away most of the GML crowd as quickly as you can dereference a pointer. Yet, it would drag in others, so, a mixed bag indeed.
My only strong suggestion? If you can do away with the parser, don't get your self lost coding a new IDE. There are plenty of good IDEs for C++ out there you could make use of. Pick one, write a custom plugin and be done with it.
|
|
|
Logged
|
|
|
|
Goombert
|
|
Reply #21 Posted on: May 31, 2014, 05:30:45 pm |
|
|
Location: Cappuccino, CA Joined: Jan 2013
Posts: 2993
|
I don't anticipate scaring away GML users, I hope to provide my engine as a stepping stone from ENIGMA, which is itself a stepping stone from GM.
The IDE will be a fork of LGM for the time being.
|
|
|
Logged
|
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.
|
|
|
|
Goombert
|
|
Reply #23 Posted on: May 31, 2014, 05:59:16 pm |
|
|
Location: Cappuccino, CA Joined: Jan 2013
Posts: 2993
|
Oh, that's the other thing I was going to mention, I was thinking about maybe LLVM since it has reflection.
|
|
|
Logged
|
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.
|
|
|
edsquare
|
|
Reply #24 Posted on: May 31, 2014, 06:09:47 pm |
|
|
Location: The throne of ringworld Joined: Apr 2014
Posts: 402
|
As long as this does not herald the demise of ENIGMA I'm all for it. And since Robert already said he would keep working in both projects...
As and offtopic : How come there's not a croudfunding campaign for ENIGMA? You could hire developers to squish out the bugs and/or to add functionality.
|
|
|
Logged
|
A child of five would understand this. Send someone to fetch a child of five. Groucho Marx
|
|
|
edsquare
|
|
Reply #25 Posted on: May 31, 2014, 07:49:01 pm |
|
|
Location: The throne of ringworld Joined: Apr 2014
Posts: 402
|
Rob, I am all for it and am more than happy to help with the project Wish I could help but I don't know C++ As and offtopic : How come there's not a croudfunding campaign for ENIGMA?
I have wondered the same thing in recent times.
I guess the answer would partially be 'commitment'. Once you successfully crowd-fund you are committed to the task. Most how the devs have voiced that they do this as a learning project and/or a hobby.
When you have people all over the world paying for this to be done it is a whole new ball game.
You may be on to something there...
|
|
« Last Edit: May 31, 2014, 07:50:43 pm by edsquare »
|
Logged
|
A child of five would understand this. Send someone to fetch a child of five. Groucho Marx
|
|
|
Darkstar2
|
|
Reply #26 Posted on: May 31, 2014, 09:18:31 pm |
|
|
Joined: Jan 2014
Posts: 1238
|
Ah, yah no, in fact, my engine would probably handle that in one line.
gui_create_label((room_height/2),(room_width/2),"Hello World");
Actually there would have to be 2 lines. Remember this would be centered providing the x/y alignments are ALIGNED. Example, if in ENIGMA you do alone: draw_text((room_height/2),(room_width/2),"Hello World"); Text would not be quite centered, you'd have to compensate by using string height/width, whereas if you use draw_set_halign(fa_center) and draw_set_valign(fa_center) the X/Y origin becomes center of the text instead of 0,0, so you can use the room_height/width /2 and nothing more and it will be centered. Don't forget that some people might want to use left or right text alignment (fa_right, fa_left). Your 1 line example would work providing the default X/Y alignment is center. Since, of course, I am not an asshat like Dailly
That said if you can't recognize this, and you don't like C++, then my engine is not for you, stick with ENIGMA/GM or w/e you're comfortable with.
Could you give more examples of how you would replace the GML functions ? Collision, movement, etc. Certain things would be unchanged I guess such as an object's X/Y position (x=whatever y=whatever), the if/for/while/with, etc. What about sprite_add, sound_add, background_add, place_free, place_meeting, and the rest of the GML functions ? give some examples. If it means the same one line functions, I'm all for it, but if it means that we are required to do many C++ lines to do what could be done with 1 GML line, then it is ridiculous, and yes I will stick to GM, and many people will feel that way except advanced C++ users. I am not talking in terms of structure etc, I am already familiar with it, but what scares most people including me is going from few lines of code to hundreds, as you referred to strict C++. Also would steer clear and not use anything around the .NET framework or requiring a dependency on a person running my game. That was the whole idea behind GM to begin with, D&D for people who don't want to code and GML, an easy scripting for people who want to do more advanced stuff without having to write millions lines of code or learning C++, etc. Basically taking this all away and telling people, if you are not an advanced C++ user, you can't use our application.
|
|
« Last Edit: May 31, 2014, 09:22:05 pm by Darkstar2 »
|
Logged
|
|
|
|
|
Darkstar2
|
|
Reply #28 Posted on: May 31, 2014, 09:31:15 pm |
|
|
Joined: Jan 2014
Posts: 1238
|
know that you could explain to users that the only difference between GML and C++ is only the semi-colon at the end, but i doubt they would listen to you !
Unless perhaps he means things would not change for most people, there would be 1 line functions still and they would already be defined by the C++ engine, such as this 1 line function d3d_set_projection_ortho(...) refers to whatever code is within void d3d_set_projection(gs_scalar xfrom, gs_scalar yfrom, gs_scalar zfrom, gs_scalar xto, gs_scalar yto, gs_scalar zto, gs_scalar xup, gs_scalar yup, gs_scalar zup) So basically all the hard work is already done for you by the C++ engine, you are just passing values back to it using C++ but without realising you are...... Right ? Wrong ? Then I guess for people already using ENIGMA might not feel a difference, but people completely new to coding might thing they would have to actually code the entire process in C++ to do for example drawing of text when only 1 line of code would be needed. Sorry about the confusion, I kinda see what Robert means, at least I hope so and all for it, so long as the process of creating a game is not complicated and requiring more time. If it only means a structure change that's another story, it's all a matter of learning new keywords to do the same thing you did with a GML exclusive function.
|
|
|
Logged
|
|
|
|
Darkstar2
|
|
Reply #29 Posted on: May 31, 2014, 09:40:28 pm |
|
|
Joined: Jan 2014
Posts: 1238
|
The entire GML library can be implemented 1:1 as a C++ library. Even things that specify object names can just use macros or, if you're willing to move around some arguments, templates.
The hard part is with(), the more lenient syntax, specifying objects (which could be done in an IDE with a code generator rather than a parser), etc.
The reason you think C++ takes a lot of code to do simple things is that it doesn't provide those things by default. If you put them in a library, which is most of what ENIGMA does, it's pretty much the same as GML.
Yes sorry about the confusion indeed, you would not need to know C++ from the grounds up as all the difficult task is handled by the engine / libraries, you are simply passing along info to C++ libraries. So yes technically you could have the same GML functions or equivalents, but still requiring the same number of lines or less. So basically his new engine would not need to parse and convert / generate C++ code, right ?
|
|
|
Logged
|
|
|
|
|