ENIGMA Forums

General fluff => Announcements => Topic started by: Josh @ Dreamland on March 21, 2011, 10:55:20 am

Title: Recent Events
Post by: Josh @ Dreamland on March 21, 2011, 10:55:20 am
Though I didn't intend to post any announcements on the matter, since some of our contributors don't tread on the IRC, I think it's better to say what's been going on, with all that is ENIGMA related.

- IsmAvatar is still working on the options panel. We think. The options panel will be what allows users to compile for different platform.
- I added a set of functions to ENIGMA's interface that allow LateralGM to retrieve function lists, so now even new functions will have some parameter list to fall back on, though it is apparent that we will need our own function manual to reference first (some of the parameter lists are ugly and unhelpful).
- IsmAvatar added those parameter lists to the function lists, but only one overload of them. She'll probably do something else with them later.
- Ism and I started LGM's own text editor, since we can't seem to find a competent Java editor that's self-contained. You can see more about that in other threads across the forum.
- A lot of bugs have been fixed from the tracker, and a lot more have been posted. Most of the new ones are trivial and make my head hurt.
- A List of Little Things that Need Done (http://enigma-dev.org/docs/Wiki/Little_things) has been created on the Wiki. If you want to help, that's a good place to start.
- ENIGMA now exports font info to the game, but not glyph metrics, which will be appended later. Fonts should be completely done before this thread has five posts.
- I have begun work on a new coercer for the purposes of array bound (in the [] ) safety (they need casted to int for C++ arrays) and switch statements. The coercer is necessary for switch() because I need to spawn a temp variable for iterative comparison, and am not prepared to use C++0x for 'auto' in one place.
- Ism has made some 4200 bugfixes in LGM as Polygone continued to point them out.
- TGMG got ENIGMA a little closer to working on Mac out of the box. He and I are both waiting on Ism to finish the options panel.
- Ism removed the forced 'Metal' theme in LateralGM; now users can enjoy the native theme or customize it as has been done by Java-acquainted people here in the past. It hasn't been compiled and rolled into ENIGMA yet, but will in the near future.
- TGMG has been working diligently to make ENIGMA compile the GM6 examples. They're mostly done, but a couple of things are still missing, which I may start to fill in randomly.

Bugfixes include the following:
- Segfault when reading more than one path or timeline (LGM wrote structures of the wrong length, causing misalignment)
- Compile error for var mod var, var = long... some others. All operators should work now (except 2.5 % 2; use 2.5 mod 2)
- Collision event behaves more like GM (thanks, TGMG)
- DND problems are mostly resolved

Some modifications to the site have been made.
- 30 spam accounts have been deleted. If some of them actually weren't spam, I apologize.
- Members without posts can't do anything until they post. Meaning, no spam.
- I've reimplemented the Regex verification that was destroyed last SMF update. Also, "Remember me" works again, in case you didn't notice.
- ALL contributors can now post news.

In the bigger scope of things, ENIGMA now has the collision functions implemented with bbox checking. Since r9k disappeared, we don't have polygon-based collisions (or any of his code for them), but we may have a surprise in store on the matter, when testing week's over.
And as I mentioned, thanks to TGMG, ENIGMA can very nearly compile the GM6 standard examples.

As far as where I want to see this project go next, we need to corner something that GM still hasn't. I look at these magnificent games manufactured in GM, and I just think of one dedicated soul, waiting for minutes as Game Maker compresses all 46,000 sprites so he can test again. ...It's kind of frightening. As such, I want a format that allows saving only modified resources, as I've mentioned elsewhere in the forum. That format will likely be zip.

So. I'm going to finish fonts, then the coercer for [] and switch(), and then I'm going to finish ENIGMA's widget functions, and reactivate R3's super cow powers.
Ism's going to procrastinate the options panels some more.

Peace.
Title: Re: Recent Events
Post by: MrGriggs on March 21, 2011, 11:20:45 am
this
Quote
- I have begun work on a new coercer for the purposes of array bound (in the [] ) safety (they need casted to int for C++ arrays) and switch statements. The coercer is necessary for switch() because I need to spawn a temp variable for iterative comparison, and am not prepared to use C++0x for 'auto' in one place.
and this
Quote
As far as where I want to see this project go next, we need to corner something that GM still hasn't. I look at these magnificent games manufactured in GM, and I just think of one dedicated soul, waiting for minutes as Game Maker compresses all 46,000 sprites so he can test again. ...It's kind of frightening. As such, I want a format that allows saving only modified resources, as I've mentioned elsewhere in the forum. That format will likely be zip.
got me very excited/******* me

Quote
Some Understanding of C++
If you can poke your way around a typical C++ project, you can probably do these.

Replace #include directives from API folders (such as Graphics_Systems/OpenGL/*.h) in SHELLmain.cpp with one big header, include.h. So, instead of including fifty things from Graphics_Systems/OpenGL/, it includes ONLY Graphics_Systems/OpenGL/include.h. Then put all the #include "*/*/include.h" in one header next to SHELLmain, apis.h.

I may attempt to do this grunt work for you.

When I've done this how will I submit such work your way?
Title: Re: Recent Events
Post by: Josh @ Dreamland on March 21, 2011, 11:51:30 am
Possibly with a Diff patch; maybe I'll just give you commit privileges for it.
Title: Re: Recent Events
Post by: MrGriggs on March 21, 2011, 12:01:20 pm
Probably best not, in-case I eff anything up, I'll try to catch you on the IRC using a competent client, rather than using the web based one, I heard (word on the streets) dem bad boys can do file transactions.
Title: Re: Recent Events
Post by: IsmAvatar on March 21, 2011, 02:16:44 pm
IRC transactions are annoying, to say the least. Consider DropBox, or some other upload thing. Heck, if it's just a diff (read: text), consider a pastebin.
Title: Re: Recent Events
Post by: MrGriggs on March 21, 2011, 02:34:44 pm
Would you like each to be kept seperate in a relative parent directory? for example;

Code: [Select]
#include "Graphics_Systems/graphics_mandatory.h"
#include "Platforms/platforms_mandatory.h"
#if ENIGMA_GS_OPENGL
    #include "Graphics_Systems/OpenGL/OPENGLStd.h"
    #include "Graphics_Systems/OpenGL/GSsprite.h"
    #include "Graphics_Systems/OpenGL/GSbackground.h"

    #include "Graphics_Systems/OpenGL/GSfont.h"
    #include "Graphics_Systems/OpenGL/GScurves.h"
#elif ENIGMA_GS_OPENGLES
    #include "Graphics_Systems/OpenGLES/OPENGLStd.h"
    #include "Graphics_Systems/OpenGLES/GSsprite.h"
#endif

under GraphicsHandle.h


or even
Code: [Select]
#include "Graphics_Systems/graphics_mandatory.h"
#include "Platforms/platforms_mandatory.h"

under GraphicsHandle.h

then another header for

Code: [Select]
OpenGlHead.h
DirectX.h
blabla.h

so on and so forth.

with ifdefs to use the neccessary API under what situation.

Mod Edit: Lrn2code tag
Title: Re: Recent Events
Post by: MrGriggs on March 21, 2011, 02:51:38 pm
I'm more of a fan of the first as it'll be easier to compare differences when using new APIs upon the condition that you do, so i'll go ahead with the first for now, but if you want the other done, say so and i'll get to it

eek appolagies for my laziness Ism, on my Girlfriend's laptop and I get lazy when on a laptop :(
Title: Re: Recent Events
Post by: Josh @ Dreamland on March 22, 2011, 12:52:34 am
Nah, just take
Code: [Select]
    #include "Graphics_Systems/OpenGL/OPENGLStd.h"
    #include "Graphics_Systems/OpenGL/GSsprite.h"
    #include "Graphics_Systems/OpenGL/GSbackground.h"
   
    #include "Graphics_Systems/OpenGL/GSfont.h"
    #include "Graphics_Systems/OpenGL/GScurves.h"
and jam it all into "Graphics_Systems/OpenGL/include.h", then do the same for OpenGLES (Graphics_Systems/OpenGLES/include.h).

If you like, you can then place the
Code: [Select]
#if ENIGMA_GS_OPENGL
    #include "Graphics_Systems/OpenGL/include.h"
#elif ENIGMA_GS_OPENGLES
    #include "Graphics_Systems/OpenGLES/include.h"
#endif

Into its own header, "Preprocessor_Environment_Editable/apis.h". ENIGMA will eventually generate that file, sans the #ifs.
Title: Re: Recent Events
Post by: Fede-lasse on March 22, 2011, 05:55:45 am
(http://img852.imageshack.us/img852/6650/screenshot11s.jpg)

-----

Good to hear some news nonetheless.
Title: Re: Recent Events
Post by: MrGriggs on March 22, 2011, 06:24:11 am
I wish I knew Javas ins and outs, I would really like to help Ism.
Title: Re: Recent Events
Post by: freezway on March 22, 2011, 02:06:53 pm
[offtopic] fede- your post is the only one that appears without subpixel smoothing on my screen... WTF? [/offtopic]
But yeah, this is great news indeed!
Title: Re: Recent Events
Post by: TheExDeus on March 22, 2011, 02:52:33 pm
Quote
fede- your post is the only one that appears without subpixel smoothing on my screen... WTF?
Thats the power of images.
Title: Re: Recent Events
Post by: IsmAvatar on March 22, 2011, 10:07:22 pm
I've built LGM r486, so it will get rolled out with my next commit. This includes several bugfixes:
* r480: Script editor handled some functions weirdly due to erroneus spaces in the function list file.
* r481: L&F no longer forced into Metal, so you can now specify your own. The default is still Metal.
* r482: Fixed GM7 saving always corrupting the file. Note that any file corrupted by this method can still be loaded by GM, so to uncorrupt it, simply load and resave in LGM r482 or later.
* r483: Fixed saving events in reverse order (causing End Step to appear before Begin Step).
* r484-485: Backgrounds not defined as tilesets now use full image as tile, emulating GM behavior.
* r486: Running ENIGMA now causes DND actions to commit their changes, like every other resource.
Title: Re: Recent Events
Post by: RetroX on March 23, 2011, 05:47:34 pm
(http://img852.imageshack.us/img852/6650/screenshot11s.jpg)
Would you like to try your hand at it?
Title: Re: Recent Events
Post by: MrGriggs on March 24, 2011, 08:20:59 am
(http://img852.imageshack.us/img852/6650/screenshot11s.jpg)

-----

Good to hear some news nonetheless.

I cannot speak for her, but gathering information post speaking to her, she's definately not procrastinating anything.
Title: Re: Recent Events
Post by: Fede-lasse on March 24, 2011, 08:22:12 am
Take a joke.
Title: Re: Recent Events
Post by: MrGriggs on March 24, 2011, 08:40:53 am
What do you mean?

Are you a high strung person?
Title: Re: Recent Events
Post by: Krisando on March 24, 2011, 05:48:11 pm
Holy cow, Enigma has native support for PThreads!!

Btw, Yoyogames has increased GM "Pro" pricing to $40us. Making Enigma ever more so seductive. [+
Title: Re: Recent Events
Post by: RetroX on March 24, 2011, 07:12:27 pm
Holy cow, Enigma has native support for PThreads!!
I don't think that the engine itself uses them.  By default, the G++ will have support, though.
Title: Re: Recent Events
Post by: MrGriggs on March 25, 2011, 06:31:54 am
I don't think that the engine itself uses them.  By default, the G++ will have support, though.

I suppose because it's open source you could just edit the ENIGMA engine to utilize pThreads how you want...
Title: Re: Recent Events
Post by: Fede-lasse on March 25, 2011, 08:15:49 am
@Griggs and Retro
Nah, I just meant the Ism edit as a joke, and it didn't seem like you took it that way, but nevermind.
Title: Re: Recent Events
Post by: MrGriggs on March 25, 2011, 08:26:55 am
Sorry, I must seem like a douche now.

Have you done any more functions for ENIGMA recently?
Title: Re: Recent Events
Post by: Fede-lasse on March 25, 2011, 01:22:02 pm
Not in one thousand years!
Title: Re: Recent Events
Post by: IsmAvatar on March 25, 2011, 07:16:49 pm
I've commited r678, which includes all the LGM bugfixes I mentioned, plus the new TargetHandler system I've been working on which will hopefully mean that the Options Panel shit is done now.
Title: Re: Recent Events
Post by: MrGriggs on March 26, 2011, 04:52:27 am
Does the Android option in ENIGMA actually build for android out of the box currently?

As far as I'm aware Linux never used executables in the same way that Windows does...
Title: Re: Recent Events
Post by: luiscubal on March 26, 2011, 07:12:12 am
Quote
As far as I'm aware Linux never used executables in the same way that Windows does...
Define the "way that Windows does". Linux has ELF(among other formats) and Windows has PE.
What feature of EXE/PE missing in ELF is so important to prevent ENIGMA from working on Linux/Android?
Title: Re: Recent Events
Post by: RetroX on March 26, 2011, 09:57:24 am
Does the Android option in ENIGMA actually build for android out of the box currently?

As far as I'm aware Linux never used executables in the same way that Windows does...
They are identical formats; it's just how they are packaged.  ELF is designed so that an executable will be placed in a predefined "binaries" directory and run as a command, where needed "DLLs" (SOs) are placed in other directories, and everything is installed as a set of dependencies (only install what you need, and if two programs need the same thing, only get one copy).  All of the software is sorted into the proper places in the system and set up in a way so that the user can't easily modify them and neither can any remote user.

For example, under Linux, I simply run "firefox" in a terminal to open Firefox.  When I create a "launcher," (known as a shortcut in Windows), it just runs the command when I click it.  The system knows where to find Firefox as a program, and Firefox knows where to find its needed files because they are all in preset places in the system.


Windows EXEs, on the other hand, are designed to be self-contained in individual directories where each user can run them by just double-clicking them.  Windows EXEs can be run by command-line, but most of them are designed to just run out of where they were installed.  This means, however, that Windows EXEs often repeat their contents - all media players that use, for example, a DLL that loads MP3, will have their own copy, rather than having a single copy somewhere in the system that they both use.  This guarantees that they will work with the version that they have without requiring updates for new DLL versions.

Under Windows, I go to Firefox's installation directory and run firefox.exe from there.  When I create a shortcut, it just links to this one file, and clicking it opens the file (which will open Firefox).  Firefox knows where all of its stuff is because it's all included in its directory.


ELFs can be run just like Windows EXEs, however, they are not set up this way by default, and it's often discouraged.  However, for smaller-scale games, this is an easier way to do things.

In addition, Windows EXEs can be run like ELFs to an extent - PATH will pull DLLs from places other than the running directory if they are not found there.
Title: Re: Recent Events
Post by: MrGriggs on March 29, 2011, 07:42:33 am
So would you be able to direct me to find out how to get my helloworld.exe running on an android phone (samsung galaxy s) or on my android virtual device, please.
Title: Re: Recent Events
Post by: RetroX on March 29, 2011, 02:25:53 pm
So would you be able to direct me to find out how to get my helloworld.exe running on an android phone (samsung galaxy s) or on my android virtual device, please.
For starters, there is no extension for ELF.  "helloworld.exe" under Linux would be just "helloworld."  Secondly, ask TGMG, because the Android is completely different on its own.
Title: Re: Recent Events
Post by: TGMG on March 29, 2011, 04:06:40 pm
http://enigma-dev.org/docs/Wiki/Android

Although it won't completely work, it requires the enigma compiler to write the resources to a specific file rather than at the end of the exe so I have to wait for option pane and stuff like that to complete it.
Title: Re: Recent Events
Post by: MrGriggs on April 07, 2011, 07:16:06 am
Ok, thanks for the information; so what's the happy happs with ENIGMA currently?  :ohdear:
Title: Re: Recent Events
Post by: Josh @ Dreamland on April 07, 2011, 09:38:31 am
Essentially nothing, though Ism's planning a find function for LGM. I've been engulfed in schoolwork (I'm taking 24 credit hours of classes, soon to be 15), so I haven't had much time to work on ENIGMA. I've not forgotten about your switch(), though.

I've been hoping TGMG would notice that Ism finished that options panel (so she says). Perhaps I'll have to deal with that myself, but for now, I have school things to do and am barely keeping up with things here.

It'll be over by next weekend.
Title: Re: Recent Events
Post by: MrGriggs on April 08, 2011, 05:18:43 am
Any ideas when the vsync issue will be sorted?

I made an array of balls buzz around last night that share colour + size, and it inspired me to have a crack at using ENIGMA to make a pew pew pew side scroller space ship game.

I do have my ATI card to ALWAYS have vsync turned off...
Title: Re: Recent Events
Post by: MrGriggs on April 12, 2011, 04:33:28 pm
Essentially nothing, though Ism's planning a find function for LGM. I've been engulfed in schoolwork (I'm taking 24 credit hours of classes, soon to be 15), so I haven't had much time to work on ENIGMA. I've not forgotten about your switch(), though.

I've been hoping TGMG would notice that Ism finished that options panel (so she says). Perhaps I'll have to deal with that myself, but for now, I have school things to do and am barely keeping up with things here.

It'll be over by next weekend.

Thanks for fixing the vsynch issue :)

A MASSIVE thank you ^_^
Title: Re: Recent Events
Post by: TheExDeus on April 12, 2011, 05:37:31 pm
Quote
Thanks for fixing the vsynch issue :)
He has?
Title: Re: Recent Events
Post by: Josh @ Dreamland on April 12, 2011, 07:22:14 pm
Nah, he probably rebooted after disabling it in his card properties.
But don't ruin his fun.
Title: Re: Recent Events
Post by: MrGriggs on April 13, 2011, 03:32:06 am
What is this I don't even?

But as of recent it hasn't been locked to particular numbers, prior to the update it was so I assumed.

I changed my Vsync to always be off a long long time ago O_o

I did update my ATI drivers recently though, so...

Embarrassing
Title: Re: Recent Events
Post by: MrGriggs on April 18, 2011, 05:27:20 am
Ver 701 when opening ENIGMA.exe

Code: [Select]
Checking configuration
Scouring for Java
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) Client VM (build 19.1-b02, mixed mode, sharing)
Calling `java -jar l*.jar`

Java Version: 10600 (1.6.0_24)
Loading lib files in C:\ENIGMA\lgm16b4.jar
01_move.lgl 02_main1.lgl 03_main2.lgl 04_control.lgl
 05_score.lgl 06_extra.lgl 07_draw.lgl
Auto-update disabled: SvnKit missing, corrupted, or unusable. Please download to
 plugins/shared/svnkit.jar in order to enable auto-update.
Calling `C:\MinGW\bin\mingw32-make.exe eTCpath="\MinGW\bin\;\MinGW\msys\1.0\bin\
;"`
> cd CompilerSource && C:/MinGW/bin/mingw32-make
> mingw32-make[1]: Entering directory `c:/ENIGMA/CompilerSource'
> mkdir .eobjs
> mkdir: cannot create directory `.eobjs': File exists
> mingw32-make[1]: [mkeobjs] Error 1 (ignored)
> g++ -shared -static-libstdc++ -static-libgcc  .eobjs/*.o -o ../compileEGMf.dll

> mingw32-make[1]: Leaving directory `c:/ENIGMA/CompilerSource'
0
Initializing Enigma:
Linking up to IDERead key `defines` as `\MinGW\bin\cpp -dM -x c++ -E $blank`
Parsed `\MinGW\bin\cpp` `-dM -x c++ -E blank.txt`: redirect=yes


********* EXECUTE:
\MinGW\bin\cpp -dM -x c++ -E blank.txt

Call succeeded
Read key `searchdirs` as `\MinGW\bin\gcc -E -x c++ -v $blank`
Parsed `\MinGW\bin\gcc` `-E -x c++ -v blank.txt`: redirect=yes


********* EXECUTE:
\MinGW\bin\gcc -E -x c++ -v blank.txt

Call succeeded
Searching for directories between "#include <...> search starts here:" and "End
of search list."
Toolchain returned 6 search directories:
 =>  "c:\mingw\bin\../lib/gcc/mingw32/4.5.2/include/c++/"
 =>  "c:\mingw\bin\../lib/gcc/mingw32/4.5.2/include/c++/mingw32/"
 =>  "c:\mingw\bin\../lib/gcc/mingw32/4.5.2/include/c++/backward/"
 =>  "c:\mingw\bin\../lib/gcc/mingw32/4.5.2/../../../../include/"
 =>  "c:\mingw\bin\../lib/gcc/mingw32/4.5.2/include/"
 =>  "c:\mingw\bin\../lib/gcc/mingw32/4.5.2/include-fixed/"

Parsing settings...





Opened ENIGMAsystem/SHELL/Graphics_Systems/OpenGL/Config/win32.ey









Could not open ENIGMAsystem/SHELL/Widget_Systems/None/Config/win32.ey.





Opened ENIGMAsystem/SHELL/Audio_Systems/OpenAL/Config/win32.ey




Clearing IDE editables... Rewriting API switchboard header... This could hurt co
mpile time.
Clearance checked.
Creating swap.
Initializing global scope.
Undefining _GLIBCXX_EXPORT_TEMPLATE
Dumping whiteSpace definitions...Opening ENIGMA for parse...
Ignoring error in specialization expression at position 19: Expected operator at
 this point

Ignoring error in specialization expression at position 19: Expected operator at
 this point

ERROR in parsing engine file: this is the worst thing that could have happened w
ithin the first few seconds of compile.
             /
            |    |
             \    \
      |       |    |
       \     /    /     \
    \   |   |    |      |
     | /     /\   \    /
    / |     /# \   |  |
   |   \   *    `      \
    \    /   =  # `     |
     |  | #     ___/   /
    /   _`---^^^   `. |
   |  .*     #  =    | \
     |  =   #      __/
    .\____-------^^  `.
   /      #         #  \
  |   =          =     |
  \___    #     #___--^
      ^^^^^^^^^^^

In file included from ./ENIGMAsystem/SHELL/API_Switchboard.h: Line 31, position
37: Failed to include Platforms/Win32/include.h from c:\mingw\bin\../lib/gcc/min
gw32/4.5.2/include-fixed/: File not found...
code snippet: which one.

#include "Platforms/Win32/include.h"<<>>
#include "Graphics_Systems/OpenGL/include.h"
#i
------------------------------------------------
Title: Re: Recent Events
Post by: RetroX on April 18, 2011, 08:27:01 am
Just try the zip (http://dl.dropbox.com/u/6125077/enigma/ENIGMA-R4-win.zip) instead.  It'll auto-update with the SVN but it'll handle the compiler correctly.

(DISCLAIMER: link subject to change; please do not complain if it magically disappears, but complain if it's not correct in the download topic either)