Show Posts

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.

Messages - Goombert

Proposals / Re: Vertex color
« on: July 29, 2013, 07:03:27 PM »
Actually son of a bitch, I never thought about this, yeah I know what you mean now Harri, I was wondering the same thing for multiple texture coordinates with my OpenGL3 mesh class, because we also need to expand on the base model API from game maker to support multitexturing and material surfaces anyway. Now another thing, with Studio adding shaders they are also adding vertex specification functions that allow you to define a custom spec and send it to the shader, idk much about it yet, but its on their technical blog, we need to read up on that some as well.

And Harri, halp me with DX ~ :)

Well not only that forthevin but we have already had people here whose hardware supports DirectX10 and 11 but not OpenGL 1, you know how Micro$hit likes to be. This will definitely increase the compatibility of our engine, its just a matter of hardware is all. And though you can forget about the likely possibility of Xbox port, this does make ENIGMA much more portable if we were to do so for various Windows platforms, including Windows Phone. There is also a difference between the API's let us not forget Game Maker was designed with Direct3D for most of its rendering, and OpenGL has been causing visual anomalies in some games just due to the difference in their function specifications. Also with DirectX you can switch between software and vertex processing at runtime, there is no such thing as an immediate mode in DX which makes the code much more durable.

Anyway, I have implemented some projection, color, lighting, fog, and transform functions, please merge.
My primary focus is to get sprites, backgrounds, and models/primitives working and hopefully we can set it as the default Graphics System for Win32. When this occurs I will set up a Direct3D 10 and 11 graphics system, most of the code should just be copy and paste work.

After trying this several times with DirectX 10 and failing, I decided to give DX one more chance to be a part of our game engine, and it finally worked with DX9. The headers and libraries are distributed with MingW for DX9 so no need to install the Windows or DirectX SDK, if you are on Windows you will simply be able to switch it under API settings and use it. Now of course not all functions have been implemented, the implementation status is listed below. This will increase the compatibility of ENIGMA on native Windows platforms and for those people Micro$hit likes to screw over with bad OpenGL support.

So we are now looking particularly for Windows users to help implement the graphics functions for DirectX. There's a lot of functions to be done, varying in difficulty so people from all skill-levels should be able to help. I am going to be writing a ton of the code as well, your help is going to be appreciated.

Currently Implemented:
 Sprites: Full support
 Backgrounds: Full support
 Models: Full support
 Primitives: Full support
 Tiles: No Support
 Fog: Experimental Support
 Transformations: Almost full support
 Projections: Full support
 Views: Experimental Support
 Curves: No support
 Standard Draw: Almost full support
 Lighting: Experimental Support
 Shaders: Limited or Buggy support
 Text and Font: Full support
 Particle Effects: No support
 Surfaces: Almost full support
 Texture: Limited or Buggy support
 Blend Modes and Color: Full support
 Vertex Formats: No support

Issues Help Desk / Re: Compile failed at C++ level.
« on: July 28, 2013, 01:21:49 PM »
Harri, SFML was picked by cheeseboy and then I wrote most of the class abstraction for him, he wanted it because OpenAL wouldn't cross compile correctly. To use SFML, just download, compile, and install it, or install a common Windows package if one exists for it, or else just find the dll and place it under SHELL/Additional I think is the folder on Windows.

Edit: I have just committed the OpenAL fix, it was simply a misplaced define when I merged common headers, please redownload and install ENIGMA or simply do a git update. Then audio should be working.

General ENIGMA / Re: Scalar Types
« on: July 28, 2013, 01:19:41 PM »
Immediate mode functions only take float because they are obsolete, VBO's do take GLdouble, and it is less optimal because your model becomes 2x as much being sent to the GPU. Again, even if rendering on a planetary scale, and using double, I still think your doing something wrong.

General ENIGMA / Doxygen Commenting Removed
« on: July 27, 2013, 07:07:07 PM »
This was the stupidest idea I had since I have been here. The original intention was to provide quicktips from an auto completion window in a new IDE and make our code more "friendly". In reality is just bloated the repository and made a mess of the source code, the Wiki is more thoroughly documented, can be run through an xml document processor for quicktips in an IDE, and also much better organized and where I want people focusing their attention.

General ENIGMA / Re: Scalar Types
« on: July 27, 2013, 06:27:50 PM »
Scalar types have been mostly implemented to major systems. I have written a Wiki article explaining the new scalar parameters.

Collision systems, paths, and instance system should utilize cs_scalar or the collision system scalar.
Graphics systems, particles, and other rendering should utilize gs_scalar or the graphics system scalar.
Audio systems with sound positioning should utilize as_scalar or audio system scalar.

These make it very easy to switch the entire engine between double and floating point precision, increasing the portability of our code and reducing unnecessary casts. Everyone please do your best to implement them where necessary. We may also add a math_radii and graphics_radii for controling radius precision, but for angles we will stick to double because that is the C and C++ standard for functions of a circle.

General ENIGMA / Half Pixel Alignment
« on: July 27, 2013, 06:16:10 PM »
If any of you have ever worked with SVG or other vector graphics then you know you need to do half pixel alignment. OpenGL and DirectX work the same way. If nobody noticed, there was a bug where drawing an outlined rectangle wouldn't fill the pixel in each of its 4 corners, that was due to half pixel alignment.

I resolved this by changing the orthographic projection code to offset by half pixels instead of full pixels.
Code: [Select]
glOrtho(x-1,x + width,y-1,y + height,0,1);
Should have been...
Code: [Select]
glOrtho(x-0.5,x + width,y-0.5,y + height,0,1);

Anyway I am committing the fix soon and 2D stuff will no longer be misaligned or have edge artifacts. This was just a friendly reminder to everyone. Also be aware that DirectX9 eclusively has a half texel bug regarding sampling which must be resolved in a shader.

Teamwork / Re: Looking for well rounded programmer
« on: July 27, 2013, 03:28:25 PM »
AsherOS, it runs GML almost exactly the same, there are a few anomalies and bugs with the current compiler, we are waiting on Josh to finish template standardization and write a pretty printer, which won't be much longer, then we will have 100% GML compatibility and C++ compatibility, EDL is a hybrid language. We will also at that time begin working on Android and HTML5/JavaScript and other export targets.

General ENIGMA / Re: Scalar Types
« on: July 27, 2013, 01:40:58 PM »
Coordinate space, x, y, z, for graphics and audio functions don't use the collision system scalar.

General ENIGMA / Re: 3D Particle Effects
« on: July 26, 2013, 04:16:34 PM »
Okee dokee forthevin, I have much to do as well including implementing scalar types for double and floating point precision.

General ENIGMA / Re: Scalar Types
« on: July 26, 2013, 03:34:38 PM »
That is what I am planning Harri, cs_scalar, gs_scalar, but the question I am pondering on is whether to make a generic scalar and then a separate one purely for coordinate space.

General ENIGMA / 3D Particle Effects
« on: July 26, 2013, 03:21:37 PM »
Yes hello, hai, this is something I have definitely been planning on adding the particle effects extension. It should be relatively easy to abstract into handling 3D particles without much changing. I do not know how Game Makers particles exactly work however as I never used them before because I tend to make 3D games. Forthevin, I don't know if you maybe want to take a crack at it, if so let me know, otherwise I am going to eventually do it myself. :P

Off-Topic / YoYoGames Compiler for 300$
« on: July 26, 2013, 02:40:04 PM »
Well they had everyone fooled thinking it was going to be the 1.2 update, but apparantly you have to pay 300$ to get it as a module, but if you have already paid more than 499$ then you get it for free, or in other words if you have Master.
This is commercial suicide for them....

General ENIGMA / Scalar Types
« on: July 26, 2013, 02:13:24 PM »
Well I was doing some thinking after converting graphics systems to use float precision. Now Box2D has a built in scalar type that can be used to switch the precision at runtime between double and float. I was wondering if it would make sense for us to do this for graphics and collision systems by providing a built in scalar type for ENIGMA. Josh, forthevin, Harri, what you guys think?