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 - Josh @ Dreamland

Announcements / R3 Information
« on: May 17, 2008, 03:28:21 pm »


I'm doing more things to the third alpha to make it more like Mark Overmars' program Game Maker.
Syntax check
This new release will indeed have a syntax check--which I am currently working on--for its off-brand language.
Behind-the-scenes processing
R3 will also have some nifty things as far as 'apply a direction and speed, and watch game work' goes. That will take like five minutes to do; the hard part is making hspeed and vspeed change with direction and speed, and vice versa. Nevertheless, it will get done, and it will get done right.
I have implemented a basic draw_text(), and it is functional. I'll leave it to anyone who wants to work on it after R3, and I say this with high hopes for a potential new ENIGMA Team member X-Tra Fear, from the GMC. He is, from what I have seen of him, a GL expert. Which will certainly not hurt ENIGMA's speed and functionality.
More callback related functions
In R3 you will find the keyboard callback of R2, as well as complete mouse button callback (all events and functions) for all three buttons, and the mouse wheel.


I'll let the rest of the cat out of the bag here. Ludamad from 64Digits has been working on a large collision system to power enigma, which from what I've seen has more than twice the features Game Maker offers. I do not have any data on speed for either Game Maker or ENIGMA to share with the public, but I am confident it will be fine. Luda has spent time optimizing the code to work with bits instead of chars, as many professionals do in similar systems. I can assure you it is memory efficient and assume it is speed efficient as well.


I have a release of GCC for Mac, but I lack a Mac to install it on. I may be able to gain access to it on the Macs at school, in which case ENIGMA R3 will support OS X development. I still haven't decided on and installed a version of Linux, so please be patient, Linux fans. This is also an invitation for anyone who has Linux or Mac to do me a favor and work on the callback for all that good stuff. It should be a two hour job to port ENIGMA to either of the consoles for anyone who knows what they are doing with the respective API, as all ENIGMA's draw functions and behind the scenes operations such as var, data structures, FPS measurement, etc. are all completely cross platform. The job meerly entails using the API to keep track of button status for all keys and mouse buttons in a small array, and to create a game window of the proper size with GL enabled.
Thanks for reading, I'll be syntaxing.

General ENIGMA / Re: We need a standard graphical API
« on: May 11, 2008, 11:44:26 am »
The thing about using GM's function names is that when you go to compile on a different platform, I can just include different definitions for the same functions. So no matter how different something may be, if I can make it achieve an effect at a certain function call, well, we're in good shape for any kind of cross platforming.

However, a good thing about being a compiled language is that if you want to, you can include libraries for GTK and for other kinds of APIs. I need to use winapi to be able to achieve the things GM can. So dumping that is completely out of the question. However, when you go to compile for mac, I will include a different library with different calls, all made under the same function names.

This could probably be done for other things outside of Game Maker if all the platforms have a function in common. We'll see.

But I don't want to include a bunch of different things to bloat the exe like a certain entity of competition has done.

Announcements / Progress report, again
« on: May 08, 2008, 04:27:58 pm »
Just for regular visitors' info:

ENIGMA R3 is ready. This is labeled as the official "alpha" release, and is what I would have liked for you guys to have seen in the very alpha releases one and two.

However, I figure I may as well chalk it with some last minute goodies and general goodness. I have some giant surprises in store for release 3, assuming I can depend on the work and words of three or four individuals.

So get ready. R3 is looking stable, and on the way.

Teamwork / Re: Dev Team
« on: May 08, 2008, 02:44:36 pm »
I'll program the behind-the-scenes high level functions to make C++ behave like GML. I can prolly get a parser working to make GML-like code into C++...

Function Peer Review / Re: GML?
« on: May 08, 2008, 02:43:06 pm »
It isn't actually called GML, as that'd be copyright infringement.

It is unofficially EDL, but has no official name.

Announcements / Update
« on: May 05, 2008, 05:12:34 am »
Just trying to keep you people informed for now.

Progress is slowly kicking back in as I get deeper into some of the hidden problems. I had to rewrite var in its entirety to remove the segfault on cleanup.... That is no small task. Rest assured, however. I've learned a lot between writing it the first time and rewriting it now.

The old var boasted 5x faster than GM... This one boasts 10. I'm sure you're wondering how ENIGMA could get much faster. Or maybe you're not. But yeah, it just did. It's also more stable... Old var didn't like being a member of a struct that was dynamically allocated. I don't think this one really cares.

So yes... Enigma isn't canceled just because I can't show you progress like before, so no need to go from forum to forum talking about its imminent failure again.

I'll be working on object's cleanup next. This'll be even more difficult than var, I'm afraid...

Off-Topic / Re: Postponement
« on: May 02, 2008, 02:28:33 pm »
Sure are. ENIGMA is definitely not canceled.

I need to talk to Luda about his... project.

But the instance problem is being remedied now that I'm making my own map.

Announcements / Postponement
« on: April 23, 2008, 07:01:16 pm »
A few of you were probably looking for the release last weekend, which was *scheduled* for Sunday night release. However, I detected a segfault in instance_destroy(). And I'm not releasing R3 until I fix it.

Rest assured. R3 is even more special now, and I have a very nice treat in store for you guys, courtesy of ludamad.

R3 will have some organizational issues fixed, making the code more friendly to help.  It's only managed to further cripple GDB so far, but whatever. That program was pretty useless anyway.

Anyway. Point is.

Release three is everything you wish you saw in Release 1, but didn't because beta isn't until Release 4 anyway.

I'll be working.

Announcements / ENIGMA Release 2a
« on: April 14, 2008, 04:46:37 pm »
That's right! ENIGMA is now on release two, faithful fans. And as was intended, the alpha revealed all I needed to know about it, and now according to my testers, it is all working.

So to the really faithful fans who were here the first minute to download the new release, I'd like to apologize. The new release has been uploaded as ENIGMA-r2a. However, don't think you have to download all 20MB again. For those who downloaded the flawed alpha version, here is a patch:

ENIGMA Patch 2a

The patch is all of two lines that need replaced.
Thanks a ton to Chiken, who I sent some ten versions of the same exe until I knew where the error was and fixed it. (If I had the error, I would not have distributed)

As for the rest of you, all you have to do is download it from the downloads page.

Unfortunately, you will have to download the entirety of the new release, as the version of GCC that came with the first release is prone to failure. Just delete the old directory entirely, please.

What's new in Release 2a?

Basically all the bugs from Release one are corrected.
  • LGM can communicate with ENIGMA now.
  • The code editor only displays functions that are implemented.
  • Lengthdir now accepts integers as arguments without rounding.
  • The default draw color is black.
  • Division works like GM's.
  • There is no parse iteration error.
  • Withs are corrected, as far as I can see.
I have also added some things since Release one.
  • Both sprite_add and in-game sprites work from what I can tell. (They are still primitive, so try not to overdo it yet.)
  • A keyword "localv" has been added. It will tell ENIGMA that you are declaring the variable, but it is meant to be instance-local, not codepiece-local.
  • The keyword "new" has been added to the parser. It is for C++ experts only.
Note: localv and new were not yet added to the syntax highlighting.

Also, for the time being, all ENIGMA games need to be under the GNU General Public license. IE, open source. This was an accident, which will be corrected in Version 1.0. However, for this series of alpha releases, it is actually a safety precaution as well.

Do not worry though. Just include the GM6 of the thing in the folder and we'll let everything else slide. I will be very lenient about this, especially as it is temporary. But it IS a safety precaution and WILL be treated as such if necessary. Keep that in mind, those who this concerns.

Thanks for reading guys, and enjoy the new release. Please report any and all bugs or suggestions in the enigma bug forum in the community. I will deal with them as rapidly as possible.

This release was about a week after Release 1. I do intend to keep a nice quick pace like that.

-Josh @ Dreamland

One more note concerning ENIGMA and LGM.
I refer to ENIGMA as an `IDE' simply because it is not a `compiler.' It actually just reads your game and intelligently decides how to code it. (More intelligently in the future though, I hope.)

The code it generates is passed to GCC (the MinGW distribution), a freeware compiler available here.

The IDE itself, that is, the interface you use to write code and put together files for ENIGMA to compile, is LateralGM. It is a project by an independent team, whose progress you can follow around their forums here.
Note that the version of LGM that comes with Enigma is a special build made specifically to accomodate Enigma, and not an official build, although it does give you a small sneak peak of the upcoming LGM version, 1.6.

Issues Help Desk / Re: Alternates to these functions?
« on: April 13, 2008, 09:25:20 am »
window_set_caption should work... I've had no problem with it.

General ENIGMA / Re: GM+
« on: April 12, 2008, 03:58:00 pm »

Announcements / Release 1
« on: April 06, 2008, 03:34:58 pm »
That's right. I decided to make the release today since a lot of you have been waiting to see what it's made of.

NOTE: This is Alpha. 'Pre-beta.' Almost-not-functional.

Only meant for testing the code features. 10% of all scripting is done, and rising. String functions are under development. Try not to abuse those. In fact, avoid using them.

Sprites were planned in this release... but I have some bad news.

LGM and ENIGMA have some communication errors at the moment. You will have to manually activate the ENIGMA exe, then the game exe, which is always game.exe. This will be fixed in the next release, which is also soon.
>>To clarify on that, you must hit "compile with enigma" in LGM. Then open its directory, and double click
>>"compileEGMf.exe". This will do the rest for you and produce "game.exe".

Version one will be a totally operable Game Maker replacement, we hope.

To be on the safe side, save all the LGM things before hitting compile. This was all done very quickly to get a demo out.

So for now, no sprites, unless sprite_add still works.

All the DND stuff is just for show. Scripts, Objects, and Rooms are it. Explore a bit, but don't expect it to compile an entire game just yet.

For those who don't like to read a lot:
Basically, do as follows.
  • Open LateralGM.jar.
  • Add scripts, objects, and/or rooms with whatever code.
  • Save it and close out of all the resources.
  • Hit compile with Enigma.
  • Close LGM.
  • Open its directory.
  • Double click CompileEGMf.exe.
    • It should export Game.exe if you didn't use unimplemented functions.
    • Run game.exe, it's yours.
    If your game does not compile:
    Make sure you aren't using functions that are not yet implemented.

    IE, draw_sprite without calling sprite_add. The current LGM -> Game sprite loader is broke. Sorry.
    Show_message is dispstr(string,string or real), or MessageBox(0,Text,Caption,0) if that works for you.

    If your game does not draw:
    •   Tip: draw_set_color() is your friend. All colors default to white.
    •   Sprites are not loaded from exe yet.

    And I know there are lots of errors. Please compile them in this topic post them in the bug report section and they will be dealt with on a Can-This-Be-Corrected-Without-Disrupting-Anything basis.


    General ENIGMA / Re: Shiny header
    « on: April 06, 2008, 06:49:03 am »
    Shiny makes the world go round. Like me finding this last undefined reference and releasing enigma.

    General ENIGMA / Re: This program is everything I could ever want
    « on: April 05, 2008, 09:16:25 pm »
    I'll add a tag to the parser to return immediately, effectively enabling C++.

    Done. Start your code with
    Code: [Select]
    And it'll leave it raw. Note I have no syntax checking yet. So use wisely.

    General ENIGMA / Re: Speed improvements.
    « on: April 05, 2008, 09:11:15 pm »
    When it finally functions together as a system, yes.

    The improvements are about 5x immediate improvement for variables. 2x for most graphics or more.

    With custom optimization, you can increase variables 250x, and graphics more than 10x, depending.