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.
106
Developing ENIGMA / Asynchronous Dialogs/Win32 Threads Implemented
« on: January 29, 2014, 08:13:54 pm »
I have implemented the Win32 thread functions to allow threading of scripts, this completely does away with the need for Asynchronous events allowing users to properly use cross-platform threading.
This is the pull request I have made.
https://github.com/enigma-dev/enigma-dev/pull/634
Interim documentation is available on this page.
http://enigma-dev.org/docs/Wiki/Game_State_Functions
A basic example is the following.
1) Create a new script called "scr_asynch_message" and add the following code.
5) Run the game
As you can see an asynchronous message dialog will appear while the game continues to randomly draw circles in the background.
This is the pull request I have made.
https://github.com/enigma-dev/enigma-dev/pull/634
Interim documentation is available on this page.
http://enigma-dev.org/docs/Wiki/Game_State_Functions
A basic example is the following.
1) Create a new script called "scr_asynch_message" and add the following code.
Code: (EDL) [Select]
show_message("Hello, world!");
2) Create a new object and in the create event add the following code.Code: (EDL) [Select]
script_thread(scr_asynch_message);
3) In the draw event add the following code.Code: (EDL) [Select]
draw_set_color(c_red);
repeat (50) {
draw_circle(random(room_width), random(room_height), 5, false);
}
4) Create a new room and place a single instance of this object5) Run the game
As you can see an asynchronous message dialog will appear while the game continues to randomly draw circles in the background.
107
Developing ENIGMA / Make Directory
« on: January 27, 2014, 06:24:12 pm »I recently started making some changes to update YAML settings, you can read about that in the following topic.
http://enigma-dev.org/forums/index.php?topic=1736.0
Along the way I made several bugfixes to the plugin, and also made the ability to set the make directory per-project. This way each game can have a /build/ folder next to its project file, kind of like you see in Visual Studio or Qt Creator where you are asked where you want binaries outputted to. This however holds two problems, 1 the compiler should output its binaries to one single directory, and then link them from wherever your game/preprocessor is written to, the theoretical "build" folder. This does however mean we could do away with use of temporary files, and write the executable directly inside the build folder, and this would stop the creation of many many temporary files that need cleaned up.
This was the ENIGMA commit.
https://github.com/enigma-dev/enigma-dev/pull/628
This was the plugin commit with other fixes, including escaping the ENIGMA Settings YAML since it holds the spec header and is subject to it.
https://github.com/enigma-dev/lgmplugin/commit/d21f29c3867ccbb072cb9b24214edf9291d7ea29
This means you will all need to update the plugin next time you update from the repository.
http://enigma-dev.org/docs/Wiki/Install:Extra_Packages
The portable ZIP has not been updated yet.
108
Developing ENIGMA / YAML Settings Update
« on: January 26, 2014, 10:14:13 pm »
While implementing a new ENIGMA setting I also added the ability to set platform specific defaults to the compiler settings frame. It works as Default-TargetOS where TargetOS is the name of the operating system returned by TargetHandler.GetOS(), an example follows for the Make Directory setting.
If the platform specific default is not found, the generic default is used.
I implemented this to the plugin in the following commit.
https://github.com/enigma-dev/lgmplugin/commit/1f6071e1cf91c70a5c31a115cea60a397ef369f5
The settings were implemented to ENIGMA's repo in the following pull request.
https://github.com/enigma-dev/enigma-dev/pull/628
When this is merged to the repository I will immediately upload a new version of the Plugin and LateralGM as well as the Portable ZIP that you will need to download the next time you update from the repository.
If the platform specific default is not found, the generic default is used.
Code: (yaml) [Select]
-Build Options:
Layout: Grid
Columns: 2
-make-directory:
Type: Textfield
Label: Make Directory
Default-Windows: "%PROGRAMDATA%/ENIGMA/"
Default-Linux: "%HOME%/ENIGMA/"
Default-MacOSX: "./ENIGMA"
Default: "./ENIGMA"
-inherit-objects:
Type: Checkbox
Label: Object Inheritance
Default: true
I implemented this to the plugin in the following commit.
https://github.com/enigma-dev/lgmplugin/commit/1f6071e1cf91c70a5c31a115cea60a397ef369f5
The settings were implemented to ENIGMA's repo in the following pull request.
https://github.com/enigma-dev/enigma-dev/pull/628
When this is merged to the repository I will immediately upload a new version of the Plugin and LateralGM as well as the Portable ZIP that you will need to download the next time you update from the repository.
109
Graphics and Video / converticon.com issues
« on: January 26, 2014, 03:50:27 am »
Thanks to sorlok this is resolved and is included in LGM 1.8.6
https://github.com/IsmAvatar/LateralGM/pull/146
You can now use converticon icons.
* IGNORE THIS POST IT HAS BEEN FIXED *
I just want to write this post up explaining why converticon.com should not be used to convert large icons and images to and from the ICO format.
Upon discovering TKG's icon woes in the following topic, I discovered that the website does not adhere to the ICO file specification.
http://enigma-dev.org/forums/index.php?topic=1700.msg16563#new
The ICO file specification states that the 7th byte will be the width of the image when the format is BMP, if the format is PNG the next part is simply the PNG header.
http://en.wikipedia.org/wiki/ICO_%28file_format%29
When I investigated I found out that every ICO file with a size layer larger than 192x192 exported from converticon.com will be essentially broken.
The following is a screenshot of me viewing a 192x192 ICO file from converticon.com which does match the ICO specification and the width is reported correctly.
The following is a screenshot of me viewing a 512x512 ICO file from converticon.com which does NOT match the ICO specification and the width is reported as 0.
The following shows what a 256x256 ICO file using PNG looks like. The 7th byte is 0 but that is because that portion starts the PNG header. This header clearly does not match the corrupted converticon.com version. So that rules out the possibility that LGM couldn't load as a result of the icon using the PNG format, because LGM loads this one fine.
I do not care if Windows and Studio can work with these corrupted ICO files or not. LateralGM will not support them, because they do not follow the specification and there is no way to tell exactly how to read them. Please do not use this site to convert large icon files, there are standards in computing for a reason.
For proof that LGM loads 512x512 ICO files when they are in the correct format, try to use the following icon and it should work fine.
https://www.dropbox.com/s/4y9ygbm7mqai6fy/DeathStar512.ico
A good image editing software is Paint.NET it is freeware and has a lot of plugins.
http://www.getpaint.net/
There is also GIMP.
http://www.getgimp.com/
Both of these tools can be used to export ICO files properly.
https://github.com/IsmAvatar/LateralGM/pull/146
You can now use converticon icons.
* IGNORE THIS POST IT HAS BEEN FIXED *
I just want to write this post up explaining why converticon.com should not be used to convert large icons and images to and from the ICO format.
Upon discovering TKG's icon woes in the following topic, I discovered that the website does not adhere to the ICO file specification.
http://enigma-dev.org/forums/index.php?topic=1700.msg16563#new
The ICO file specification states that the 7th byte will be the width of the image when the format is BMP, if the format is PNG the next part is simply the PNG header.
http://en.wikipedia.org/wiki/ICO_%28file_format%29
When I investigated I found out that every ICO file with a size layer larger than 192x192 exported from converticon.com will be essentially broken.
The following is a screenshot of me viewing a 192x192 ICO file from converticon.com which does match the ICO specification and the width is reported correctly.
The following is a screenshot of me viewing a 512x512 ICO file from converticon.com which does NOT match the ICO specification and the width is reported as 0.
The following shows what a 256x256 ICO file using PNG looks like. The 7th byte is 0 but that is because that portion starts the PNG header. This header clearly does not match the corrupted converticon.com version. So that rules out the possibility that LGM couldn't load as a result of the icon using the PNG format, because LGM loads this one fine.
I do not care if Windows and Studio can work with these corrupted ICO files or not. LateralGM will not support them, because they do not follow the specification and there is no way to tell exactly how to read them. Please do not use this site to convert large icon files, there are standards in computing for a reason.
For proof that LGM loads 512x512 ICO files when they are in the correct format, try to use the following icon and it should work fine.
https://www.dropbox.com/s/4y9ygbm7mqai6fy/DeathStar512.ico
A good image editing software is Paint.NET it is freeware and has a lot of plugins.
http://www.getpaint.net/
There is also GIMP.
http://www.getgimp.com/
Both of these tools can be used to export ICO files properly.
110
General ENIGMA / ANGLE Project
« on: January 25, 2014, 06:29:14 pm »
So I recently discovered that Studio is using ANGLE for shaders. More information can be found on Google code.
http://code.google.com/p/angleproject/
ANGLE basically lets you use GLSL/GLES shaders in Direct3D. It is used in Google Chrome and Firefox.
As you can see Studio is using it.
Now I was originally spouting nonsense about CG which is even more proprietary than HLSL and just as bad. This may actually be one of the few things YoYoGames did correctly. However it is important to note that this project is BSD licensed and I am not sure if we could make it optional if implemented.
I also discovered that Studio does not mention them in the licenses tab of the launch section like they do Box2D and other things. This either means they made a mistake and are inadvertently or purposefully infringing the copyright, or they have some sort of deal with Google.
However I am still missing something fundamental here I think, because the following page suggests that ANGLE also abstracts vertex/index buffers.
http://code.google.com/p/angleproject/wiki/BufferImplementation
This could explain why Studio does not allow you to choose the graphics system because it only has 1 graphics system, in theory, but I have no evidence.
http://code.google.com/p/angleproject/
ANGLE basically lets you use GLSL/GLES shaders in Direct3D. It is used in Google Chrome and Firefox.
As you can see Studio is using it.
Now I was originally spouting nonsense about CG which is even more proprietary than HLSL and just as bad. This may actually be one of the few things YoYoGames did correctly. However it is important to note that this project is BSD licensed and I am not sure if we could make it optional if implemented.
I also discovered that Studio does not mention them in the licenses tab of the launch section like they do Box2D and other things. This either means they made a mistake and are inadvertently or purposefully infringing the copyright, or they have some sort of deal with Google.
However I am still missing something fundamental here I think, because the following page suggests that ANGLE also abstracts vertex/index buffers.
http://code.google.com/p/angleproject/wiki/BufferImplementation
This could explain why Studio does not allow you to choose the graphics system because it only has 1 graphics system, in theory, but I have no evidence.
111
General ENIGMA / Action Library Reader
« on: January 21, 2014, 12:34:26 am »
Well, it came time for someone to port the Java LGM Action Library code over to C++, so Josh asked me to do so, and I did. I have created this repository it the hopes that it will be useful, but the main reason is to help NGM out and anyone who wants to make an IDE.
The lib is licensed GPL, you can find out information including further license details in its repository.
https://github.com/enigma-dev/ActionLibraryReader
It has not been tested yet, but the LGL format has an issue at the moment with being able to load and split the subimages for the actions, but LIB format is completed.
The lib is licensed GPL, you can find out information including further license details in its repository.
https://github.com/enigma-dev/ActionLibraryReader
It has not been tested yet, but the LGL format has an issue at the moment with being able to load and split the subimages for the actions, but LIB format is completed.
112
Tips, Tutorials, Examples / Retro Tile Engine Example
« on: January 12, 2014, 08:46:00 pm »I built this engine to handle a very large tile map for a retro game I am making. The example works in GameMaker: Studio as well and should work in older GM versions. The idea here is to only re-render the tile map when any tiles change or at the end of the month or when the camera moves. It can handle a very large number of tiles the demonstration runs 250x250=62500 tiles at a pretty solid framerate, slower in Studio of course.
Download: https://www.dropbox.com/s/c93v5pcur2ougwf/tilemap.gm81
Size: 14.39 KB
Enjoy!
113
General ENIGMA / Mike Dailly Blog Stuffs
« on: January 11, 2014, 04:27:24 pm »
I recently found Dailly is updating his blog again.
http://dailly.blogspot.com/
The most recent post is rather intriguing because it contains a lot of details about how he did Studio's graphics. And well basically, it is pretty much the same as I did, an underlying system for drawing primitives and batching them into a triangle list and then firing a flush on state changes. The only difference here is that ours still out performs his without even using full hardware acceleration, we don't even handle T&L on the GPU yet.
There are some other things that are interestingly different.
There is also some good information there about how Game Maker is a Virtual Machine now, much like ohhhh somebody else we know the JVM a.k.a. the Java Virtual Machine.
http://dailly.blogspot.com/
The most recent post is rather intriguing because it contains a lot of details about how he did Studio's graphics. And well basically, it is pretty much the same as I did, an underlying system for drawing primitives and batching them into a triangle list and then firing a flush on state changes. The only difference here is that ours still out performs his without even using full hardware acceleration, we don't even handle T&L on the GPU yet.
There are some other things that are interestingly different.
Quote
you'll be left with a single vertex buffer (or multiple depending on lines and points),My mesh class does not do that, it converts the lines and point primitives into the exact same vertex buffer, so there is only ever 1 vertex buffer MAXIMUM for a model in ENIGMA.
Quote
It'll also handle more extreme cases, where you set blends several times, then set a different one, and then set more blends several times. The engine will also recognise this, and will only submit 3 batches - or however many blend state batches are actually needed. This is incredibly powerful, and a major playing in rendering performance.I don't believe that, because in theory that sounds like a great idea, but in practice it would screw up depth ordering.
There is also some good information there about how Game Maker is a Virtual Machine now, much like ohhhh somebody else we know the JVM a.k.a. the Java Virtual Machine.
114
Off-Topic / Linux Breaking User Share Records
« on: January 04, 2014, 05:17:13 am »
Now at 1.73% as of December and officially labeled on the pie chart now at Net Market Share.
http://www.netmarketshare.com/report.aspx?qprid=11&qpaf=&qpcustom=Linux&qpcustomb=0
It is at the highest market share in two years by their records since January of 2012.
Chromebooks also hold the #1 and #2 selling spot for tablets on Amazon.
http://www.extremetech.com/computing/173691-chromebooks-pick-up-10-of-the-computer-market-in-2013-capitalizing-on-windows-8s-failure
I am so happy about all this, not to mention Valve pumping tons of resources into SteamOS, which is definitely going to increase the quality of Linux graphics drivers. The Qt framework will be integrated in the next Ubuntu release as well, making it like the .NET of Linux, only that it is much more abstract and better designed. Microsoft was already losing ground with the mobile stuff and now Chromebook came up out of nowhere. When the Linux desktop does finally take off, it is going for the fucking moon.
http://www.netmarketshare.com/report.aspx?qprid=11&qpaf=&qpcustom=Linux&qpcustomb=0
It is at the highest market share in two years by their records since January of 2012.
Chromebooks also hold the #1 and #2 selling spot for tablets on Amazon.
http://www.extremetech.com/computing/173691-chromebooks-pick-up-10-of-the-computer-market-in-2013-capitalizing-on-windows-8s-failure
I am so happy about all this, not to mention Valve pumping tons of resources into SteamOS, which is definitely going to increase the quality of Linux graphics drivers. The Qt framework will be integrated in the next Ubuntu release as well, making it like the .NET of Linux, only that it is much more abstract and better designed. Microsoft was already losing ground with the mobile stuff and now Chromebook came up out of nowhere. When the Linux desktop does finally take off, it is going for the fucking moon.
115
Works in Progress / Project Chaos
« on: January 01, 2014, 05:49:12 pm »
This was a Sonic game I had started work on but did not have the time to finish. I may come back and work on it again at some time, but right now it has the basic intro a ton of ripped Sonic sprites. The game is a Chao Pet emulator.
Download: https://www.dropbox.com/s/cie3c45yhm6biu1/projectchaos.gm81
Size: 12.54 MB
Download: https://www.dropbox.com/s/cie3c45yhm6biu1/projectchaos.gm81
Size: 12.54 MB
116
Ideas and Design / Include Files
« on: January 01, 2014, 05:33:38 pm »
I recently had the idea that for include files instead of attaching each little file to the executable separately, we should stick them all inside a single ZIP, and attach that to the end of the executable, in which case it will also be compressed leading to even smaller executable sizes compared to GM. This is pretty much up to Josh as I am unaware of what he was planning with include files.
117
General ENIGMA / Wiki Project and Function Documentation
« on: January 01, 2014, 02:20:00 am »
Well I recently got all of the particle functions and some other ones documented on the Wiki.
http://enigma-dev.org/docs/Wiki/Particle_Functions
I noticed we have finally reached the point that most of the GM functions are documented. About 80% to 90% of the basic standard GM functions are now documented, the two left columns on the following Wiki page.
http://enigma-dev.org/docs/Wiki/Function_Documentation
Drag and Drop Actions have also been entirely documented for some time.
http://enigma-dev.org/docs/Wiki/Action
These are documented with information about their parameters, return types, data types, and even provide example code. This was a lot of work, but in no way is the Wiki done, it needs to be maintained and there are still new Studio functions to add and document. The Wiki is also generating between 20 and 100 visits to the website each day, these are most likely coming from Google hits as the result of people searching for GM functions, see the following.
https://www.google.com/#q=d3d_model_create
You can see the ENIGMA docs linked right below the GM Studio doc pages. This however is also just the main page, and does not indicate the hits being generated by the sub pages of the Wiki which could also make it much higher.
I want to take the opportunity to thank some people.
Harri - For a lot of the original function docs I used to convert into the new format.
X - He started out with the file functions and documented a bunch more and also converted some tutorials
Josh/Ism - Pretty much all of the documentation on ENIGMA's internals
Polygone - For making sure links stay up to date and doing some docs
Others - People who I might be forgetting and that came before me here.
At any rate, we are now the largest online and offline source of libre/free documentation for Game Maker. Their Wiki has been taken down, see for yourself, it redirects to the knowledge base now.
http://wiki.yoyogames.com
http://enigma-dev.org/docs/Wiki/Particle_Functions
I noticed we have finally reached the point that most of the GM functions are documented. About 80% to 90% of the basic standard GM functions are now documented, the two left columns on the following Wiki page.
http://enigma-dev.org/docs/Wiki/Function_Documentation
Drag and Drop Actions have also been entirely documented for some time.
http://enigma-dev.org/docs/Wiki/Action
These are documented with information about their parameters, return types, data types, and even provide example code. This was a lot of work, but in no way is the Wiki done, it needs to be maintained and there are still new Studio functions to add and document. The Wiki is also generating between 20 and 100 visits to the website each day, these are most likely coming from Google hits as the result of people searching for GM functions, see the following.
https://www.google.com/#q=d3d_model_create
You can see the ENIGMA docs linked right below the GM Studio doc pages. This however is also just the main page, and does not indicate the hits being generated by the sub pages of the Wiki which could also make it much higher.
I want to take the opportunity to thank some people.
Harri - For a lot of the original function docs I used to convert into the new format.
X - He started out with the file functions and documented a bunch more and also converted some tutorials
Josh/Ism - Pretty much all of the documentation on ENIGMA's internals
Polygone - For making sure links stay up to date and doing some docs
Others - People who I might be forgetting and that came before me here.
At any rate, we are now the largest online and offline source of libre/free documentation for Game Maker. Their Wiki has been taken down, see for yourself, it redirects to the knowledge base now.
http://wiki.yoyogames.com
118
Off-Topic / YoYoLabs ripping off Rockstar Games?
« on: December 29, 2013, 02:39:59 am »
So this recently caught my eye while doing some GTA stuff. Rockstar is releasing some behind the scenes stuff of their ports of the III Trilogy to Android/iOS and the development that went into the original games in the 3D universe. The series is also titled "The Lab"
http://www.rockstargames.com/newswire/article/47321/behind-the-scenes-in-grand-theft-auto-vice-citys-the-lab-part-1-.html
YYG so coyishly named their GTA 2D experiment project and other projects under "YoYoLabs"
http://www.yoyogames.com/developers/yoyolabs
http://www.rockstargames.com/newswire/article/47321/behind-the-scenes-in-grand-theft-auto-vice-citys-the-lab-part-1-.html
YYG so coyishly named their GTA 2D experiment project and other projects under "YoYoLabs"
http://www.yoyogames.com/developers/yoyolabs
119
Third Party / App Game Kit
« on: December 21, 2013, 06:08:03 pm »
Well I not that long ago posted about the new Monkey X which is the future of BlitzBasic and how awesomesauce I thought their Qt IDE and everything was for such a good price. Well I recently found out The Game Creator's (I really hate these bastards, worse than YYG) have come up with the App Game Kit to compete with Monkey X. And what did they decide to do for an IDE? They forked Code::Blocks and added plugins to make it hook up to their compiler and support the project formats.
This is the official website.
http://www.appgamekit.com/
I have to say I am really rather intrigued by this, and a few us were discussing a GMK/GMX plugin for the Code::Blocks project before as well. Starting to think it might be a lot more plausible than previously presumed. After all, Unity game engine does use MonoDevelop.
PS: For the record, I do not condone purchases of any TGC software.
This is the official website.
http://www.appgamekit.com/
I have to say I am really rather intrigued by this, and a few us were discussing a GMK/GMX plugin for the Code::Blocks project before as well. Starting to think it might be a lot more plausible than previously presumed. After all, Unity game engine does use MonoDevelop.
PS: For the record, I do not condone purchases of any TGC software.
120
I recently stumbled upon Haxe which is cross-platform programming language with a syntax style similar to JavaScript.
http://haxe.org/
http://haxe.org/
Quote
Multiplatform
Haxe can be compiled to all popular programming platforms with its fast compiler – JavaScript, Flash, NekoVM, PHP, C++, C# and Java – which means your apps will support all popular mobile devices, such as iOS, Android, BlackBerry and more.
Quote
Open Source
Haxe is open source and free to use. It has the right formula to become the next industry standard and is already garnering many adopters in the coding community whom we’d like to fondly call, the Haxers!