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

2116
Developing ENIGMA / Why is GameMaker: Studio so slow?
« on: November 28, 2013, 09:57:27 AM »


So while working on the global batchers to get the context managers finished for OGL3 and D3D so I can add the new matrix functions for Harri, I decided to do a little test.
I ran into a particular issue with an auto-magic global batching system, and that is when you are constantly changing the stride or primitive type of a global batcher. I was disappointed in how much slower it caused my Box2D physics example to run as it draws a lot circles and rectangles with outlines, so I decided to test if Studio also has this issue. Sure enough it does, you can run the two examples below by simply making an empty project with 1 object whose draw event is the code below, sticking that object in a room and hitting run in either ENIGMA or Studio.

The first example demonstrates the batching problem that no batching system can really resolve, this also ran at 183fps in Game Maker 8.1 because it just drew the primitives instantly without any overhead.
minFPS, maxFPS, avgFPS
41, 52, 48
Code: (EDL) [Select]
    room_speed = 1000;
    draw_text(0, 0, "FPS: " + string(fps));
     
    repeat (500) {
        var xx, yy;
        xx = random(room_width);
        yy = 50 + random(room_height);
        draw_set_color(c_blue);
        draw_circle(xx, yy, 10, false);
        draw_set_color(c_red);
        draw_circle(xx, yy, 10, true);
    }

This demonstration shows that global batching does help when not constantly switching stride and primitive type as this example ran 3 times slower 8.1
minFPS, maxFPS, avgFPS
60, 583, 524
Code: (EDL) [Select]
    room_speed = 1000;
    draw_text(0, 0, "FPS: " + string(fps));
     
    repeat (500) {
        var xx, yy;
        xx = random(room_width);
        yy = 50 + random(room_height);
        draw_set_color(c_blue);
        draw_text(xx, yy, "wtf");
    }

I am really at a loss for what to do here as I am historically in favor of users learning to do the batching themselves so they can fine tune it to perfection, I do not like trying to auto-magically make games faster. But then again I suppose it is not that big of an issue since I can always add the ability to disable global batching later on anyway, and well OpenGL 1.1 we had no plans of ever adding global batching to, so it's perfect. But anyway, moving forward, ENIGMA will have this same issue with drawing shape outlines in Direct3D and OpenGL 3 and I will later add an option if there is a lot of need for it, and OpenGL 1.1 will never have this issue, since it expects you to do shit yourself.

2117
Nah it's my fault, I was trying to make DirectX default on Windows but I don't have the time to maintain the systems, I have reverted it to OpenGL1.1 and OpenAL being the default systems in my latest commit yet to be pulled.

Quote
I've had issues with events disappearing from an object, too - related
Nope that would be completely the IDE, sounds like a new issue. You can report the issue to LGM's tracker below and it will be resolved when someone gets a chance.
https://github.com/IsmAvatar/LateralGM/issues?state=open

Our plugin is what the IDE uses to communicate with ENIGMA, you can use LGM on its own without ENIGMA since it is the only program which can edit GMK/GMX for Linux and Mac.


At any rate, that output log offered me nothing useful, nothing went wrong in that, look for the file output_log.txt and http://www.pastebin.com that for me.

2118
Well you don't need the INI extension under Windows, as Win32 has ini functions by default, just by virtue of it being a default feature of the operating system.

Quote
What would be nice, if it isn't, is if there could be support to disable selective modules (like this one, or the MCI CD commands) under OSes that don't need (or support) such extensions.
There already is, but I don't limit any of them to a specific OS because a lot of users are on Linux and they use a cross compiler patch to build for Win32 and test the games in WINE, so they don't like having the stuff hidden from them, and it really don't hurt anything anyway.

But yes, that is actually odd that 1.1 works but not 3, as I am currently working on stuff for 3 and d3d, but please paste the output log of OpenGL 1.1

2119
Off-Topic / Re: Don't get Scroogled!
« on: November 27, 2013, 04:58:24 PM »
Yeah that is really the only reason I can't make Linux my main desktop, bad drivers and the GUI.

But I would like a separate computer to make into a Linux distro for development, as Linux is veryyyyy friendly to developers.

2120
Off-Topic / Re: Don't get Scroogled!
« on: November 27, 2013, 03:37:08 PM »
I like things about both operating systems, Windows for its user interface and friendliness and Linux for its comprehensive development environment and package systems.

I also think the RT Surface is really neat, with its nice trim keyboard and all, good luck typing word documents on an iPad :\

2121
Issues Help Desk / Re: Compiled exes not responding
« on: November 27, 2013, 01:26:18 PM »
No problem.  (Y)

2122
Issues Help Desk / Re: Compiled exes not responding
« on: November 27, 2013, 12:29:27 PM »
Build->Settings and select the "API" tab

Try again with OpenGL1.1 and OpenAL for graphics/audio.

Also be sure you are launching ENIGMA with administrative privileges, it needs to access AppData to store temporary files.

2123
Issues Help Desk / Re: Compiled exes not responding
« on: November 27, 2013, 10:20:57 AM »
http://www.pastebin.org

Can you please send me a link of the file contents of output_log.txt, thank you.

2124
Issues Help Desk / Re: Compiler error: "Draw_Particle defined but not used"
« on: November 27, 2013, 05:46:27 AM »
No problem  (Y)

2125
Issues Help Desk / Re: Compiled exes not responding
« on: November 27, 2013, 05:46:02 AM »
You mean the button to make a single executable on the desktop? Try the green run button instead, the compile button may be broke at the moment because of cheeseboy stripping the executable. But please tell me if the game runs with the green run button.

2126
Off-Topic / Don't get Scroogled!
« on: November 26, 2013, 05:06:59 PM »
http://www.scroogled.com/chromebook

This is the worst advertising campaign ever, Microsoft is reallllyyy shallow.

2127
General ENIGMA / Re: SVG Graphics
« on: November 26, 2013, 05:05:53 PM »
Oh we are definitely going to GameMaker is adding now so we have to for compatibility.  (Y)

2128
Issues Help Desk / Re: Compiler error: "Draw_Particle defined but not used"
« on: November 26, 2013, 12:56:35 PM »
No, the particles was simply a warning, the error was in the parsing of your code.

Quote
Preprocessor_Environment_Editable/IDE_EDIT_objectfunctionality.h: In member function 'virtual variant enigma::OBJ_Options::myevent_beginstep()':
Preprocessor_Environment_Editable/IDE_EDIT_objectfunctionality.h:649:10: error: break statement not within loop or switch
     else break;
          ^
Fix that line in obj_Options begin step event, and it should work.

2129
Tips, Tutorials, Examples / Re: GML Equivalent Commands for GUI Actions
« on: November 24, 2013, 02:32:00 PM »
Not you two, that was a for instance, a random number table is more to do with artificial intelligence in strategy games for when the A.I. bots control the other armies/empires/civilizations. It basically weighs the different decisions against each other, at any rate, I was talking in terms of relevance to such statistics.

2130
Tips, Tutorials, Examples / Re: GML Equivalent Commands for GUI Actions
« on: November 24, 2013, 08:35:35 AM »
Not just that though harri it is rather useful and saves you a lot of code from having to generate a random number table