ENIGMA Forums

General fluff => Announcements => Topic started by: Josh @ Dreamland on June 30, 2010, 04:37:53 PM

Title: COmputers SUck
Post by: Josh @ Dreamland on June 30, 2010, 04:37:53 PM
It's been a long journey, ENIGMA has. I've picked up a lot of tricks on the road, trying to complete it. The events and workings that transpired while working on R4 were extensive, not that I think most will notice. I've finished my replacements now. Instance System 2, Var4, and Reflex2 are all implemented. With little left to correct. But there are still some problems that I have personally and that ENIGMA has in general. The list is large and foreboding.

1) On Windows Vista, video memory is cleared every time the user presses control-alt-delete. ENIGMA loses its drawing context in the fire, and GM6 loses its surfaces. Yes, GM6 doesn't run on Vista, but I can't speak for 7 and 8 because I can only imagine Mark has corrected that in the meantime. So yes, every time the user presses control-alt-delete, ENIGMA loses the ability to display things. I'm not yet sure how to correct this, but I imagine I can test if it's happened and just ask for a new one.

2) On Linux, input is awful. In fact, much of Linux is glued together where it should be loosely tied with strings. I can't tell you how many times I'll be reading something huge, and will, without thinking, use the middle mouse button to gesture vertical scroll, only to wait for ten minutes for Firefox to finish this conversation with X:
Quote
Oh, you want me to scroll up? One minute.
*Scrolls some three pixels*
Gee, thanks Firefox.
Hey, Firefox, the mouse moved. And that button's pressed.
Oh, so you want me to scroll up? One minute.
*Scrolls some three pixels*
Gee, thanks Firefox.
Hey, Firefox, the mouse moved. And that button's pressed.
Oh, so you want me to scroll up? One minute.
This continues until either
A) No more mouse move events in the queue. This takes approximately enough time for Earth's amoebas to evolve, gain sentience, become this universe's greatest minds, construct their own universe in parallel with our own, live there for some hundred thousand millennia, populate the entirety of it and then begin a siege on ours for more living space.
B) FireFox reaches the end of the page, which causes the conversation to look more like this:
Quote
Hey, Firefo--/Yeah, I know, I'm out of scroll space./Ah, okay./Hey, Firefo--/Yeah, I know, I'm out of scroll space./Ah, okay./Hey, Firefo--/Yeah, I know, I'm out of scroll space./Ah, okay./Hey, Firefo--/Yeah, I know, I'm out of scroll space./Ah, okay.
Causing for near instant completion.
During that time, though, while X is chatting with Firefox, it's too busy to, say, LET ME SWITCH FUCKING WINDOWS. So I've no access to anything to kill Firefox. Gnome-panel is dead, so I can't switch that way or use force quit, and alt-tab/control-alt-delete are non-responsive. Control-alt-f2 also does something very unsavory. I can't remember what.

So, you may be wondering, why the bitchfest on the ENIGMA forum? Well, because ENIGMA inherits all those fun problems. If an input problem surfaces, I never know if it's my fault for screwing up ENIGMA or if it's my cry-blood-inducing, woefully inadequate input drivers.

And speaking of drivers, here on home, sweet 127.0.0.1, my graphics drivers are also parsecs ahead of the latest and greatest human technology. </sarcasm> So basically, it takes ENIGMA (and old Game Maker games that still work with WINE) approximately 11.25 microseconds to draw a single pixel of sprite (A single 128*139 sprite draws at 5fps). No other computer I've tested on has this problem, and GM does it to, so I know it's not my fault directly. The question is, how is Firefox blitting out images at decent framerates? Hell, there's a huge wallpaper rendering on my desktop, and it's not going 0.2 fps. What does it take? I'm not sure. I'll probably need to look into hardware acceleration.

(For the record, draw_rectangle with fantastic gradients works at amazing speeds; it's only sprites that are slow.)


Either way, I imagine those problems will get worked out eventually. Like I said, the instance system, new var, and new reflex (speed, direction, hspeed, vspeed, room, etc) are done. Here's what's coming up to do:

1) Test heredity. This should already work in cases such as instance_nearest, just by nature of the design of my new instance system.
2) Implement depth. This actually isn't all that hard, but may be annoying. Essentially, a new reflexive type will be created for depth. On assign, it moves the instance around in a map of draw events to iterate. In the constructor of each object, depth = <compiler inserts default depth here>; is executed. Or perhaps a separate constructor to avoid checks.
3) Go back over the syntax check and format parse, adding the remaining features.
4) Implement backgrounds. It's about time that got done. Then implement tiles, and add them to the draw depth map by way of instantiating a custom object_basic that does nothing but draw tiles at a given depth.

After that, I'll be content to start adding DND functions. These will be implemented like any other function, by the GM tile name, i.e., action_set_speed(). ENIGMA is healthy enough now that I would recommend and appreciate help implementing those.
Title: Re: COmputers SUck
Post by: freezway on June 30, 2010, 06:51:47 PM
uh i also get insanly high fps, but the variable fps reads 0
Title: Re: COmputers SUck
Post by: Josh @ Dreamland on June 30, 2010, 07:57:39 PM
Oh, fuck timing. I'll deal with both of those things, now.
Title: Re: COmputers SUck
Post by: The 11th plague of Egypt on July 01, 2010, 12:41:39 AM
On the bright side, you don't have to worry about the Mac, yet :pseudo:

Hell, you are making a retro-compatible, cross-platform, high performance game construction set, it ain't easy!
Title: Re: COmputers SUck
Post by: retep998 on July 01, 2010, 05:15:43 PM
On the bright side, you don't have to worry about the Mac, yet :pseudo:

Hell, you are making a retro-compatible, cross-platform, high performance game construction set, it ain't easy!
you have to make a compiled language as flexible as an interpreted language, it isn't easy.
By the way, you used "ain't" wrong. "Ain't" is a contraction for "am not", not "is not".
Title: Re: COmputers SUck
Post by: RetroX on July 02, 2010, 12:27:23 PM
retro-compatible
:-X
Title: Re: COmputers SUck
Post by: Josh @ Dreamland on July 02, 2010, 03:09:34 PM
Clearly it's only slightly retro-compatible <_<"
Title: Re: COmputers SUck
Post by: freezway on July 02, 2010, 06:25:01 PM
almost got it... the fps reads ~16% than the roomspeed.... eg. roomspeed is 30, fps is 35
Title: Re: COmputers SUck
Post by: Josh @ Dreamland on July 02, 2010, 06:51:03 PM
This is retarded. >=\

Somebody else do the goddamn timing function. Clearly THIS, of all things, is just above my ability. <_<"
I assumed it was my vsync screwing it up. I'll look into fixing that...

I've not implemented the Windows counter yet, though.
Title: Re: COmputers SUck
Post by: MahFreenAmeh on July 03, 2010, 03:50:05 PM
On the bright side, you don't have to worry about the Mac, yet :pseudo:

Hell, you are making a retro-compatible, cross-platform, high performance game construction set, it ain't easy!
you have to make a compiled language as flexible as an interpreted language, it isn't easy.
By the way, you used "ain't" wrong. "Ain't" is a contraction for "I am", not "is not".

evidently you don't live in the south or are not aware of southern dialects.
suffice to say, ain't is acceptable as a replacement for "is not" in the south, and as such, via extrapolation, many people would expect it to mean is not.
just my two cents.
also, cocks.
Title: Re: COmputers SUck
Post by: luiscubal on July 03, 2010, 04:05:47 PM
If you are using SDL, SDL gfx might help:
http://www.ferzkopp.net/Software/SDL_gfx-2.0/Docs/html/_s_d_l__framerate_8h.html
Title: Re: COmputers SUck
Post by: Josh @ Dreamland on July 03, 2010, 09:34:30 PM
I never liked SDL. Then I found out it had proprietary segments, and now I hate its guts as well as those of all involved with it, in any way. SDL can go fuck itself.

...Still, thanks for the suggestion. :P