Pages: « 1 2 3 4 »
  Print  
Author Topic: New Beginnings  (Read 4921 times)
Offline (Male) Rusky
Reply #15 Posted on: May 31, 2014, 03:14:32 PM

Resident Troll
Joined: Feb 2008
Posts: 955
MSN Messenger - rpjohnst@gmail.com
View Profile WWW Email
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.
Logged
Offline (Male) Goombert
Reply #16 Posted on: May 31, 2014, 03:31:16 PM

Developer
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 3107

View Profile
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.

Offline (Unknown gender) egofree
Reply #17 Posted on: May 31, 2014, 03:38:58 PM
Contributor
Joined: Jun 2013
Posts: 603

View Profile Email
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
Offline (Male) Rusky
Reply #18 Posted on: May 31, 2014, 04:10:09 PM

Resident Troll
Joined: Feb 2008
Posts: 955
MSN Messenger - rpjohnst@gmail.com
View Profile WWW Email
Yes, most of the time you can get away with something like .NET without noticing the performance cost. I don't think that usually makes it worth it, though- consider Twitter. They started with Ruby on Rails, which has terrible performance on top of a language with terrible performance, but which is much friendlier than Scala, which they switched to because Rails couldn't scale.

In our case, there's no reason we wouldn't want to scale to more complex 3D games. Why wouldn't we compete with UE or Unity? I know I would enjoy using an open source engine with this kind of interface design to build a game like that. I do agree C++ as the only user-facing language would be painful, but C# probably isn't the best choice either. Unity is now hitting growing pains with their choice of C# as the user-facing language.
Logged
Offline (Male) Goombert
Reply #19 Posted on: May 31, 2014, 04:34:21 PM

Developer
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 3107

View Profile
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.

Offline (Unknown gender) The 11th plague of Egypt
Reply #20 Posted on: May 31, 2014, 05:21:49 PM
Member
Joined: Dec 2009
Posts: 276

View Profile
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
Offline (Male) Goombert
Reply #21 Posted on: May 31, 2014, 05:30:45 PM

Developer
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 3107

View Profile
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.

Offline (Male) Rusky
Reply #22 Posted on: May 31, 2014, 05:47:12 PM

Resident Troll
Joined: Feb 2008
Posts: 955
MSN Messenger - rpjohnst@gmail.com
View Profile WWW Email
Dropping the parser would necessitate using another one- either another compiled language (unlikely to be one suitable), or another scripting language (Lua?), or a non-parsed language (i.e. graphical).
Logged
Offline (Male) Goombert
Reply #23 Posted on: May 31, 2014, 05:59:16 PM

Developer
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 3107

View Profile
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.

Offline (Male) edsquare
Reply #24 Posted on: May 31, 2014, 06:09:47 PM

Member
Location: The throne of ringworld
Joined: Apr 2014
Posts: 402

View Profile
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
Offline (Male) edsquare
Reply #25 Posted on: May 31, 2014, 07:49:01 PM

Member
Location: The throne of ringworld
Joined: Apr 2014
Posts: 402

View Profile
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
Offline (Unknown gender) Darkstar2
Reply #26 Posted on: May 31, 2014, 09:18:31 PM
Member
Joined: Jan 2014
Posts: 1244

View Profile Email
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.

Quote
Since, of course, I am not an asshat like Dailly

:D

Quote
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.  :P  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
Offline (Male) Rusky
Reply #27 Posted on: May 31, 2014, 09:29:03 PM

Resident Troll
Joined: Feb 2008
Posts: 955
MSN Messenger - rpjohnst@gmail.com
View Profile WWW Email
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.
Logged
Offline (Unknown gender) Darkstar2
Reply #28 Posted on: May 31, 2014, 09:31:15 PM
Member
Joined: Jan 2014
Posts: 1244

View Profile Email
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
Offline (Unknown gender) Darkstar2
Reply #29 Posted on: May 31, 2014, 09:40:28 PM
Member
Joined: Jan 2014
Posts: 1244

View Profile Email
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
Pages: « 1 2 3 4 »
  Print