Pages: [1]
  Print  
Author Topic: String Physics  (Read 1184 times)
Offline (Unknown gender) Justme
Posted on: January 09, 2011, 05:42:52 PM
Member
Joined: May 2010
Posts: 4

View Profile
Today i compiled ENIGMA R4 (Dev Trunk Settings) to test a speed comparison between ENIGMA and Game Maker 8. I used a cloth physics example by ekgame (original topic: http://gmc.yoyogames.com/index.php?showtopic=469256) to test. The speeds of the two different compiled .exe are very different, ENIGMA being the faster. Here are the two compiled .exe in a .rar file if you want to test them on your machine (http://www.mediafire.com/?n43mbye72cscws2)


Side Note: I couldn't get ENIGMA to compile and save the example but i could get it to compile and run. To save it i ran the example in ENIGMA and went to windows temp folder and copied the .tmp file and changed the extension to .exe
Logged
Offline (Unknown gender) TheExDeus
Reply #1 Posted on: January 09, 2011, 06:53:14 PM

Developer
Joined: Apr 2008
Posts: 1919

View Profile
Cool. I would actually want to see full blown physics engine in Enigma. I guess it should be a module just like the collision system thou.
And I don't think that is in any way a surprise that Enigma is faster. :)

Quote
I couldn't get ENIGMA to compile and save the example but i could get it to compile and run. To save it i ran the example in ENIGMA and went to windows temp folder and copied the .tmp file and changed the extension to .exe
That's normal. Compile button doesn't actually do anything (as far as I know), so copying from temp directory is how we all do it right now.
Logged
Offline (Unknown gender) r9k
Reply #2 Posted on: January 09, 2011, 08:50:56 PM
Member
Joined: Aug 2010
Posts: 25

View Profile
The game can probably be optimised more if you use c++ types and pointers.  (Y)
Logged
Offline (Unknown gender) freezway
Reply #3 Posted on: January 09, 2011, 11:17:02 PM

Member
Joined: Dec 2009
Posts: 220

View Profile
Cool, I'm gunna work on a 2d raytracing shadow engine. Could do it better if enigma had surfaces but w/e
Logged
if you drop a cat with buttered toast strapped to its back, which side lands down?
joshdreamland: our languages are based on the idea that it's going to end up FUBAR
/kick retep998
Offline (Unknown gender) TheExDeus
Reply #4 Posted on: January 10, 2011, 06:31:17 AM

Developer
Joined: Apr 2008
Posts: 1919

View Profile
Quote
Cool, I'm gunna work on a 2d raytracing shadow engine. Could do it better if enigma had surfaces but w/e
Yeah I am waiting for surfaces for quite some time too. I am trying to implement them myself but I hate C++ and its header files. Just useless piece of shit design that language has. I am doing everything properly as far as I know, but I just can't get it work. I have:
Code: (C) [Select]
#include <GL/glext.h>Inside of OpenGLHeaders.h and that file glext.h which is in MinGW/Include/GL directory has declarations for glGenFramebuffersEXT, GL_FRAMEBUFFER_BINDING_EXT etc., but when I try to compile I always get:
Quote
GSsurface.cpp:98:30: error: 'glGenFramebuffersEXT' was not declared in this scope
GSsurface.cpp:106:16: error: 'GL_FRAMEBUFFER_BINDING_EXT' was not declared in this scope
GSsurface.cpp:107:23: error: 'GL_FRAMEBUFFER_EXT' was not declared in this scope
And so forth. Josh said that I need to run the makefile .sh but I can't do that on win. And I actually don't get why I would need to do that, as that would just generate Makefile inside the Graphics_Systems\OpenGL directory and that file has this:
Quote
.eobjs_$(MODE)/GSsurface.o: GSsurface.cpp OpenGLHeaders.h ../../API_Switchboard.h
   $(CXX) -c GSsurface.cpp      -o .eobjs_$(MODE)/GSsurface.o $(FLAGS)
Which seems all I need.... I always had problems with this in C++ and so I always made my small projects in one .cpp file.  :raise:
Logged
Offline (Male) Josh @ Dreamland
Reply #5 Posted on: January 10, 2011, 06:39:32 AM

Prince of all Goldfish
Developer
Location: Ohio, United States
Joined: Feb 2008
Posts: 2950

View Profile Email
HaRRi:
I didn't mean to imply that including a GL extensions library was all you had to do. You actually have to declare the function yourself and fetch a pointer to it.

Code: (C) [Select]
void glGenFramebuffersEXT(GLsizei n, GLuint* ids) { show_error("Surfaces not supported by card."); }
void (*glGenFramebuffersEXT)(GLsizei n, GLuint* ids) = &error_function_glsize_gluint;

//...

if (WHATEVER_YOURE_USING_SUPPORTS("GL_FRAMEBUFFER_EXT"))
    glGenFramebuffersEXT = WHATEVER_YOURE_USING_LOAD("GL_FRAMEBUFFER_EXT", "GL_GEN_FRAMEBUFFERS_EXT");

Or something like that.
Logged
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble
"I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
Pages: [1]
  Print