This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
151
General ENIGMA / 3D Particle Effects
« on: October 30, 2013, 12:37:53 am »
I am thinking of revamping our particle system to support this popular extension from the GMC.
http://gmc.yoyogames.com/index.php?showtopic=422338
Except, it won't be used via dll, I basically mean to extend our particle functions to include the ones it has basically rewriting it but having the same function names.
What do you guys think? I figure well I wanted 3D particles, and this was already a well established and popular API for Game Maker, so why not make our functions the same?
Edit: Heh, he even mentions LGM in the topic...
http://gmc.yoyogames.com/index.php?showtopic=422338
Except, it won't be used via dll, I basically mean to extend our particle functions to include the ones it has basically rewriting it but having the same function names.
What do you guys think? I figure well I wanted 3D particles, and this was already a well established and popular API for Game Maker, so why not make our functions the same?
Edit: Heh, he even mentions LGM in the topic...
Quote
**NOTE, Change the room in the GMK to see the right demo (Default is now the Spore Like Galaxy)
400k. (Because of sprites) GM7... You can convert it to gm6 with LGM. GM6er's Notes
152
General ENIGMA / Community Facebook
« on: October 29, 2013, 06:19:16 am »
Polygone, Harri, everyone, I'd like to know how you guys think this should be handled. Take for instance the following post left on our Facebook.

Now, I am inclined to agree with him, the issue is do we want to allow this sort of language on a page that represents our product, or should I pull a YoYoGames? Again, my personal preference is to allow people to speak their minds, and like I said I agree with him. But again, this is not only my project, so I'd like some input from the rest of you.

Now, I am inclined to agree with him, the issue is do we want to allow this sort of language on a page that represents our product, or should I pull a YoYoGames? Again, my personal preference is to allow people to speak their minds, and like I said I agree with him. But again, this is not only my project, so I'd like some input from the rest of you.
153
General ENIGMA / draw_set_color
« on: October 29, 2013, 03:18:02 am »
Yah just a heads up everybody, Studio removed the draw_set_color function, well, the way it used to be anyway. I recently readded it the Game Maker 8.1 way with Direct3D where you can call it to change the color of a model or the alpha, but listen here is the funny thing. YoYoGames decided to store current color for every vertice, making their code redundant one would assume, and making it run slower and also making it less flexible to use, eg. drawing transparent models, when they simply could have replaced the blend operation in the FFP with HLSL. But never the less ENIGMA will continue the old expected draw_set_color behavior because it is rather useful to draw transparent models and the likes.
Also, this means that stupid cubes demo of their's won't work right out of the box. And listen how dumb this is, here is why...
They put draw_set_color(c_red); directly before drawing the cubes. Which doesn't even change anything in Studio since set color was stored in the model but yet it does work in ENIGMA. Which makes me wonder why the fuck that code is even their in there demo, if they were just testing it or testing if it was removed or what. But at any rate, ENIGMA will keep the easy to use expected behavior and sprite batching will render on the state change since it is simply a blend op.
Code: [Select]
void draw_set_color(int col)
{
enigma::currentcolor[0] = __GETR(col);
enigma::currentcolor[1] = __GETG(col);
enigma::currentcolor[2] = __GETB(col);
D3DCOLOR D3DColor = D3DCOLOR_RGBA(__GETR(col), __GETG(col), __GETB(col), 155);
d3ddev->SetRenderState(D3DRS_BLENDOP, D3DBLENDOP_ADD);
d3ddev->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_BLENDFACTOR);
d3ddev->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
d3ddev->SetRenderState(D3DRS_BLENDFACTOR, D3DColor);
d3ddev->SetRenderState(D3DRS_TEXTUREFACTOR, D3DCOLOR_RGBA(155, 155, 155, 155));
}
Also, this means that stupid cubes demo of their's won't work right out of the box. And listen how dumb this is, here is why...
Code: [Select]
draw_set_color(c_red);
d3d_set_lighting(true);
d3d_light_define_direction(0, 0.5,0,1, c_white);
d3d_light_enable(0,true);
d3d_transform_set_rotation_z( d3d.x );
d3d_transform_add_rotation_y( d3d.x/2 );
if( global.cube>=0 ) d3d_model_draw(global.cube, 0,0,0, -1);
d3d_set_lighting(false);
d3d_model_draw(global.wirecube, 0,0,0, -1 );
They put draw_set_color(c_red); directly before drawing the cubes. Which doesn't even change anything in Studio since set color was stored in the model but yet it does work in ENIGMA. Which makes me wonder why the fuck that code is even their in there demo, if they were just testing it or testing if it was removed or what. But at any rate, ENIGMA will keep the easy to use expected behavior and sprite batching will render on the state change since it is simply a blend op.
154
General ENIGMA / GLbinding
« on: October 27, 2013, 09:26:16 pm »
Yes I deleted it Harri, I am writing a device manager similar to Direct3D, you can't draw the global VBO just when the texture changes there are other state changes as well that need handled. This is why I am creating a central interface for the ffp in all 3 graphics systems.
155
Announcements / Object Inheritance Implemented
« on: October 23, 2013, 07:58:02 pm »

Because of inheritance I was able to get the following Studio tutorial working, with a slight modification to two for statements because none of them know how to program.
That is right I have implemented full object inheritance and polymorphism to the compiler, even the event_inherited() function and the corresponding drag and drop tile. There is a setting now added to Build->Settings where you can completely disable inheritance if you, for instance, like cheeseboy, you only want inheritance for collisions and nothing else.
You can also see settings there for my angular unit and scalar types, the options don't do anything quite yet they are implemented in the engine the setting is just hidden away I have to do something else first before I make the options work.
Compatibility should improve a lot now. You must update LateralGM and the plugin if you update from git or vice versa because a modification was made to allow the YAML settings layout to parse checkboxes. At any rate, enjoy!
157
General ENIGMA / ENIGMA Settings and OpenGL Graphics System Merge
« on: October 23, 2013, 05:15:54 am »
I just want to prod everyones thoughts on merging OpenGL 1.1 and OpenGL 3 together into one graphics system. This can be done simply by implementing compatibility mode settings such as software vertex processing that can easily be toggled by simply switching off to vertex arrays which I can do rather easily and would eliminate having duplicate code but make our graphics system backwards compatible.

When the FFP is rewritten to GLSL/HLSL I can simply add another option to set the shader model compatibility level. What does everyone think about this?
Also, I am thinking of changing a few things around and making this ENIGMA settings a little more complete such as better layouts because right now the frames eyaml file makes it look like shit, and also adding maybe like tab support or something, because really there will be other graphics, collision, and audio settings and I think these 3 systems should each get their own tab.

When the FFP is rewritten to GLSL/HLSL I can simply add another option to set the shader model compatibility level. What does everyone think about this?
Also, I am thinking of changing a few things around and making this ENIGMA settings a little more complete such as better layouts because right now the frames eyaml file makes it look like shit, and also adding maybe like tab support or something, because really there will be other graphics, collision, and audio settings and I think these 3 systems should each get their own tab.
158
General ENIGMA / ISO C99 Scalar Boolean Casting
« on: October 23, 2013, 04:28:24 am »
Well it appears we need to get on this. Basically I don't why Josh, you think that negative numbers are not boolean true, according to C99 ISO any integer value that does not equate to 0 is boolean true when cast.
http://stackoverflow.com/questions/4254318/are-negative-boolean-values-defined
So my question is basically this, what is wrong with our compiler that it is not working for collision functions that return -4 (noone)
Also, Studio does continue this behavior from the earlier versions of Game Maker as I have tested the following code which does show a message box with -4 in it.
I only began questioning this after looking at the following code from a tutorial game that comes with Stupido I got running now that I added event inheritance.
Here is a picture of the game...

I just ran this same test in ENIGMA and I get the expected results. So what exactly is the issue with the collision functions again and why they don't behavior properly as the result of negative values?
http://stackoverflow.com/questions/4254318/are-negative-boolean-values-defined
Quote
ยง 6.3.1.2
When any scalar value is converted to _Bool, the result is 0 if the value compares equal to 0; otherwise, the result is 1.
So my question is basically this, what is wrong with our compiler that it is not working for collision functions that return -4 (noone)

Also, Studio does continue this behavior from the earlier versions of Game Maker as I have tested the following code which does show a message box with -4 in it.
Code: (edl) [Select]
if (noone) {
show_message(string(noone));
}
I only began questioning this after looking at the following code from a tutorial game that comes with Stupido I got running now that I added event inheritance.
Code: (edl) [Select]
first_instance = collision_line(x, y, xx, yy, obj_Col_Parent, true, true);
if first_instance != noone
{
dx = xx - x;
dy = yy - y;
while (abs(dx) >= 1 || abs(dy) >= 1)
{
dx /= 2;
dy /= 2;
instance = collision_line(x, y, xx - dx, yy - dy, obj_Col_Parent, true, true);
if (instance != noone)
I only got curious because for some reason they took the extra precaution with the result of the collision functions. I am really failing to see something here.Here is a picture of the game...

I just ran this same test in ENIGMA and I get the expected results. So what exactly is the issue with the collision functions again and why they don't behavior properly as the result of negative values?
159
General ENIGMA / Angular Unit Functions
« on: October 12, 2013, 01:30:23 pm »
I have made a further attempt at eliminating casting. Most of the API's we use internally use radians, not degrees, so I decided to implement a macro to the universal system scalars that can be easily changed and used to switch entire systems between degrees and radians. Please use these functions, as I have added them to Box2D extensions already, anywhere in the engine that a function takes degrees or any sort of degree/radian conversion occurs.
The angular unity macros can be found in this file.
https://github.com/enigma-dev/enigma-dev/blob/master/ENIGMAsystem/SHELL/Universal_System/scalar.h
The angular unity macros can be found in this file.
https://github.com/enigma-dev/enigma-dev/blob/master/ENIGMAsystem/SHELL/Universal_System/scalar.h
160
General ENIGMA / Basic Shape Normals
« on: October 06, 2013, 11:12:15 pm »

Just wanted to update you all, I have added normals to all basic shapes in all graphics systems, and yes ellipsoids, they are now all efficiently batched and rendered.
The following pull request contains my changes, simply wait for it to be merged before updating.
https://github.com/enigma-dev/enigma-dev/pull/423
I am still working on the icosahedron function. An icosahedron is used in computer graphics to perfectly texture map a sphere and for representation of planetary scale maps.
_illustrated.png)

161
I don't know if many of you have seen this or not but it is basically a free and open source remake of the original Age of Empires, except with modern HD graphics and very big largely detailed maps. I have already had a chance to play it while it was early in development and it was already really stable and fun then, but the game is now nearing completion and I have once again picked it up for another play through.


I definitely recommend you guys head over to their site and try it out, they did an absolutely brilliant fucking job with it.
http://play0ad.com/
Platforms: Windows, Linux, Mac


I definitely recommend you guys head over to their site and try it out, they did an absolutely brilliant fucking job with it.
http://play0ad.com/
Platforms: Windows, Linux, Mac
162
163
Off-Topic / Blitz Monkey
« on: September 21, 2013, 04:52:16 am »
Monkey is a next-generation games programming language that allows you to create apps on multiple platforms with the greatest of ease.
Monkey works by translating Monkey code to one of a different number of languages at compile time - including C++, C#, Java, Javascript and Actionscript.
Monkey games can then be run on potentially hundreds of different devices - including mobile phones, tablets, desktop computers and even videogame consoles.
Monkey saves you time and allows you to target your apps at multiple markets and app stores at once, potentially mutiplying sales several times over.
Exports to:
Features: Monkey, Monk IDE, Mojo for Android + iOS (iPhone, iPad, iPod Touch) + Windows Phone 8 + Windows 8 + GLFW (Windows, Mac, Linux) + XNA (Xbox 360, Windows Phone 7) + Flash + HTML5, documentation, samples
Price: 100$
Recently tried it myself, it is very nice, their IDE is in Qt as well. I would use it over Studio as well, has classes real object orientation, etc. 3d all that shit.
164
Third Party / LibMaker
« on: September 20, 2013, 12:03:10 am »
This is the action library maker for LGM. It is compatible with regular Game Maker action libraries and LGM's LGL format.
More Information: http://enigma-dev.org/docs/Wiki/Library_Maker
Download: http://enigma-dev.org/docs/Wiki/Install:Extra_Packages
To modify the default action libraries you need to obtain the latest version of LateralGM's source code from GitHub, and you will need to rebuild the jar with the Eclipse IDE. If you simply intend to create a new action library, create a folder called "lib" next to "lateralgm.jar" which is in the folder "enigma-dev" on Windows, and put the LGL file there.
More information on the LGL format is available on the Wiki, it has up to a 10x file size reduction over GM's format.
http://enigma-dev.org/docs/Wiki/LGL_format
A GPL v3 licensed C++11 compliant library for reading LGL's and LIB's is available on GitHub.
https://github.com/enigma-dev/LibMaker
165
General ENIGMA / Math Functions
« on: September 18, 2013, 06:21:15 pm »
Game Maker returns floating point precision for dot product functions, ENIGGER returns double precision. Don't know what Josh thinks about this since last time we talked about it he said all the internal C functions use double precision, so idk.