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.
76
General ENIGMA / EDC Partially Fixed
« on: May 12, 2014, 12:02:24 am »
Since Josh won't make a post I will, after enough complaining from all of us and then me mocking him for a period of time he finally somewhat fixed the EDC. The download buttons now work again without a million errors showing up, however submitting games is still broke. I would appreciate if you would all continue to bitch and complain about it until he gets it fully finished.
Posting blogs should still be working just fine and dandy as well.
http://enigma-dev.org/edc/
Posting blogs should still be working just fine and dandy as well.
http://enigma-dev.org/edc/
77
Works in Progress / God of Man
« on: May 10, 2014, 10:51:56 pm »
Here is a small isometric game I had started working on when I was getting bored with Project Mario from a long time ago. Not much functionality as I had just started the game, but it was a remake of Age of Man which was a really awesome game made with GM6 that I once reviewed for Markup Magazine, only I planned to make the game more advanced and add an isometric view.
Download: https://www.dropbox.com/s/kauaugtvl6ceeko/godofman.gm81
Size: 2MB's
It works best under OGL1, but it runs faster under Direct3D9, only thing is D3D and OGL3 speed up and slow down constantly.
Download: https://www.dropbox.com/s/kauaugtvl6ceeko/godofman.gm81
Size: 2MB's
It works best under OGL1, but it runs faster under Direct3D9, only thing is D3D and OGL3 speed up and slow down constantly.
78
General ENIGMA / Debug Scoping and Other Fixes
« on: April 29, 2014, 08:59:56 pm »
I have made a round of fixes which you can see in this pull request.
https://github.com/enigma-dev/enigma-dev/pull/710
One of the main ones I have added is scoping for debug mode, it uses a stack and will print a full backtrace.
So now you will know where errors occur, it does not yet however tell you the name of an uninitialized variable, but it will in the future.
You can either git pull from master or download the new Portable ZIP.
http://enigma-dev.org/docs/Wiki/Install:Windows
https://github.com/enigma-dev/enigma-dev/pull/710
One of the main ones I have added is scoping for debug mode, it uses a stack and will print a full backtrace.
So now you will know where errors occur, it does not yet however tell you the name of an uninitialized variable, but it will in the future.
You can either git pull from master or download the new Portable ZIP.
http://enigma-dev.org/docs/Wiki/Install:Windows
79
General ENIGMA / Inheritance Fixes
« on: April 26, 2014, 04:55:02 am »
So I have finally got around to fixing the remaining inheritance issues, mainly event_inherited now works inside all events including alarms, collisions, et all, I also fixed the No More Health event from firing more than once, it behaves as GM8.1 and Studio now. I also fixed the debug warnings in an empty game. I did these changes with the help of Josh, and he approves them as well. I have tested several individual cases to ensure that the fixes work, that none of the old behavior has broken, and that no new issues have arisen. I also tested on several EDC games and some of your individual games that you all have sent me over a period of some time.
To test these changes you can pull from master, or simply download the new Portable ZIP. If you encounter any issues as a result of these changes please notify me immediately and I will fix them right away.
http://enigma-dev.org/docs/Wiki/Install:Windows
I will also take time to respond to the rest of your bug reports later today.
To test these changes you can pull from master, or simply download the new Portable ZIP. If you encounter any issues as a result of these changes please notify me immediately and I will fix them right away.
http://enigma-dev.org/docs/Wiki/Install:Windows
I will also take time to respond to the rest of your bug reports later today.
80
Developing ENIGMA / Inheritance
« on: April 24, 2014, 03:46:45 am »
* This post is for Josh, stay the fag out of it.
I have a couple of questions I need you to answer, I wrote everything the way you told me to, but there are a couple of things you did not consider. Please answer these questions so that I may continue working tomorrow and have most of it done by the time you get home.
1) How do I rewrite events.res?
2) I had to make the non-stackable event base sub check methods virtual for event_parent since that is what the iterator is cast to in ENIGMA_events.
3) I had to write the grouped event bases like event_perform for now, are you alright with this?
I have a couple of questions I need you to answer, I wrote everything the way you told me to, but there are a couple of things you did not consider. Please answer these questions so that I may continue working tomorrow and have most of it done by the time you get home.
1) How do I rewrite events.res?
Code: (yaml) [Select]
alarm: 2
Group: Alarm
Name: Alarm %1
Mode: Stacked
Sub Check: {alarm[%1] = (int)alarm[%1]; if ((alarm[%1] == -1) or (alarm[%1]--)) return 0; }
I rewrote that subcheck to look like this.Code: (yaml) [Select]
Sub Check: { alarm[%1] = (int)alarm[%1]; return !((alarm[%1] == -1) or (alarm[%1]--)); }
Also how should the following be rewritten.Code: (yaml) [Select]
keypress: 9
Group: Key Press
Name: Press <%1>
Type: Key
Mode: Stacked
Super Check: keyboard_check_pressed(%1)
2) I had to make the non-stackable event base sub check methods virtual for event_parent since that is what the iterator is cast to in ENIGMA_events.
Code: (cpp) [Select]
for (instance_event_iterator = event_nomorehealth->next; instance_event_iterator != NULL; instance_event_iterator = instance_event_iterator->next) {
if (((enigma::event_parent*)(instance_event_iterator->inst))->myevent_nomorehealth_subcheck()) {
((enigma::event_parent*)(instance_event_iterator->inst))->myevent_nomorehealth();
}
if (enigma::room_switching_id != -1) goto after_events;
}
enigma::update_globals();
This is what the virtual subchecks look like in event_parent, and yes I know inline virtuals are redundant, see the next question.Code: (cpp) [Select]
inline virtual bool myevent_draw_subcheck() { return false; }
Also, why do we bother duplicating the subcheck code for every instance when it has to go through this many steps? Why not just write all the subcheck code that's needed for every instance to event_parent?3) I had to write the grouped event bases like event_perform for now, are you alright with this?
Code: (cpp) [Select]
// Grouped event bases
void myevent_alarm()
{
if (myevent_alarm_0_subcheck()) {
myevent_alarm_0();
}
if (myevent_alarm_1_subcheck()) {
myevent_alarm_1();
}
}
81
Off-Topic / Environment Variables are Windows Only
« on: April 23, 2014, 03:40:25 am »
Well I was recently fixing the environment_get_variable function for SuperRiderTH the old version was really messed up. But anyway, I just wanted to check Studio's manual for lols, and well...
Apparently YYG doesn't know that Unix invented environment variables, and is pretty much one of the biggest reasons Windows has them.
https://en.wikipedia.org/wiki/Environment_variable
I think this is the epitome of why their logic is so flawed.
Quote from: YoYoGames
NOTE: This is a Windows only function.http://docs.yoyogames.com/source/dadiospice/002_reference/miscellaneous/environment_get_variable.html
Apparently YYG doesn't know that Unix invented environment variables, and is pretty much one of the biggest reasons Windows has them.
https://en.wikipedia.org/wiki/Environment_variable
Quote from: Wikipedia
They were introduced in their modern form in 1979 with Version 7 Unix, so are included in all Unix operating system flavors and variants from that point onward including Linux and OS X. From PC DOS 2.0 in 1982, all succeeding Microsoft operating systems including Microsoft Windows, and OS/2 also have included them as a feature, although with somewhat different syntax, usage and standard variable names.
I think this is the epitome of why their logic is so flawed.
82
Developing ENIGMA / Mega-textures and Atlasing
« on: April 22, 2014, 04:20:43 pm »
We've discussed this before, but basically ENGIMA needs texture paging/atlasing/s for mobile platforms that can't handle texture binding but have good video RAM.
We also currently do not have mega-textures for fonts, so you are limited to around a MAXIMUM of 500 characters, Harri just ran into this after testing the new Unicode font support because he set a really huge range for all his characters and didn't optimize it. The picture below shows how it could not fit all 555 characters he had set.
Studio also has the "used for 3D" option for textures and sprites which makes them their own texture, which is good for multi-texturing as well. Not much to discuss really, we just need to do it.
There is also an issue for this filed on the tracker.
https://github.com/enigma-dev/enigma-dev/issues/653
We also currently do not have mega-textures for fonts, so you are limited to around a MAXIMUM of 500 characters, Harri just ran into this after testing the new Unicode font support because he set a really huge range for all his characters and didn't optimize it. The picture below shows how it could not fit all 555 characters he had set.
Studio also has the "used for 3D" option for textures and sprites which makes them their own texture, which is good for multi-texturing as well. Not much to discuss really, we just need to do it.
There is also an issue for this filed on the tracker.
https://github.com/enigma-dev/enigma-dev/issues/653
83
General ENIGMA / LateralGM 1.8.5
« on: April 15, 2014, 11:25:34 pm »NOTICE! You are advised to upgrade to the latest Java version, it will have the best performance and fix many security holes in many old Java versions. We would also like to start utilizing JavaFX features.
To try it out, simply update the following files from the extra packages page.
enigma-dev/lateralgm.jar
enigma-dev/plugins/enigma.jar
Download: http://enigma-dev.org/docs/Wiki/Install:Extra_Packages
Then update from ENIGMA's master branch. You may also simply download the new Portable ZIP for Windows.
http://enigma-dev.org/docs/Wiki/Install:Windows
If you only want to test LateralGM out without the ability to compile games then you can just download the lateralgm.jar and open it and play with it. I highly advise you back up your projects in case anything goes wrong.
If you encounter any issues or bugs I would appreciate it if you could file them on the LateralGM GitHub Issue tracker, you may file them here on the site but I would prefer they be posted on LGM's tracker, but it doesn't matter. Please don't be afraid to report issues, if I do not know what they are I can not fix them. NOTE: Please see information about the new exception dialog below.
https://github.com/IsmAvatar/LateralGM/issues?state=open
Change Log
* EGM format is now UTF-8 encoded. WARNING! Experimental, please back up your projects!
* Fixes GMX UTF-8 encoding for scripts and shaders, all other resources already had it.
* Fixes issues with the font editor so that it can support all Unicode characters and generate ranges properly.
* Patched exceptions in JoshEdit, Enter can now be used to safely complete the auto-completion window.
* New exception handling dialog, this will appear 99% of the time LGM encounters an exception and allows you to easily submit bug reports to the correct tracker, so if you submit a bug report it will automatically take you to the correct GitHub tracker where it should be posted. A picture of it is below.
* Implemented the find resource option in the main file menu, it is case sensitive and behaves the same as GM's
* Implemented the "Sort by Name" option to the resource tree.
* Fixed various inconsistent keyboard shortcuts. Shift+Delete now works on the resource tree again.
* Fixed multiple-selection and deletion, it broke when I fixed the behavior of the context menu for the resource tree, tested and it should all be good again.
* Adds multiple-selection and drag for the resource tree.
* Fixes the enter, delete, and insert key events, they now properly map the events and will save properly to all formats and work properly in ENIGMA.
* Fixes Progress Dialog exception when EGM is the first format saved.
* Fixed a typo in the GMX reader causing the object that a view is following not to be saved, it now writes and reads properly.
* Fixed delete event key in object frame, before if there was no events and you hit it an exception would occur because LGM was trying to delete the root node.
* Fixes exceptions relating to negative model selections in the resource tree.
* When saving a new GMX, LGM will now automatically create you a folder for your project.
* Other exceptions have been fixed and other improvements have been made as well.
84
General ENIGMA / Unicode Fonts
« on: April 09, 2014, 08:31:44 pm »
Well, as Harri pointed out to me, GM's Unicode font support is limited. How you ask? They use Windows only fonts such Arial Baltic because their IDE is written in Delphi and only for Windows, this is true even for Studio.
http://en.wikipedia.org/wiki/Arial#Code_page_variants
As many of you may have already noticed, LGM does not have these fonts available. Why? Well that's simple, again, GM's IDE relies on native Windows shit for fonts. Java applications and all non-Windows software, provide full Unicode support.
LGM and ENIGMA are capable of getting around this limitation imposed by GM and allowing you full access to all 2,147,483,647 (arbitrary limit imposed by Java int max value) characters supported by the Java/Unicode standard as depicted in the above screenshot. You will however be limited to no more than 1000 characters per sequence, meaning if you want 10,000 sequential unicode characters you will need at minimum 10 character ranges to achieve it with LateralGM, this is to stop the font editor from lagging with excessive ranges. This will require that you set the character ranges yourself, you can do this simply by entering the translated text and hitting preview which will auotmagically calculate the character ranges you have used.
The reason I am posting this topic is both to be informative and to ask everyones opinion. First of all, what do you think of this solution? It is more powerful than GM that limits you to 255 characters. They will also most likely remove the 255 character limit and go this route as well in the future when they do their new IDE. Thoughts, feedback, criticism is again always welcome I would appreciate feedback.
Edit: Studio v1.3 does in fact make this change, but does not yet remove Arial Baltic and such fonts!
http://en.wikipedia.org/wiki/Arial#Code_page_variants
As many of you may have already noticed, LGM does not have these fonts available. Why? Well that's simple, again, GM's IDE relies on native Windows shit for fonts. Java applications and all non-Windows software, provide full Unicode support.
LGM and ENIGMA are capable of getting around this limitation imposed by GM and allowing you full access to all 2,147,483,647 (arbitrary limit imposed by Java int max value) characters supported by the Java/Unicode standard as depicted in the above screenshot. You will however be limited to no more than 1000 characters per sequence, meaning if you want 10,000 sequential unicode characters you will need at minimum 10 character ranges to achieve it with LateralGM, this is to stop the font editor from lagging with excessive ranges. This will require that you set the character ranges yourself, you can do this simply by entering the translated text and hitting preview which will auotmagically calculate the character ranges you have used.
The reason I am posting this topic is both to be informative and to ask everyones opinion. First of all, what do you think of this solution? It is more powerful than GM that limits you to 255 characters. They will also most likely remove the 255 character limit and go this route as well in the future when they do their new IDE. Thoughts, feedback, criticism is again always welcome I would appreciate feedback.
Edit: Studio v1.3 does in fact make this change, but does not yet remove Arial Baltic and such fonts!
85
Developing ENIGMA / Game End Return Value
« on: April 05, 2014, 11:51:37 pm »
Just curious, why did game_end() never get a parameter? In most programming languages, ie. Java has System.Exit(return);
We should overload it to accept variant or some shit for ENIGMA.
We should overload it to accept variant or some shit for ENIGMA.
86
Off-Topic / execute_string is not a bad coding practice!
« on: April 01, 2014, 01:24:49 am »
In fact, it's very standard in many many professional games. Some of them you may have heard of.
1) Grand Theft Auto ("invented" by none other than Mike Dailly himself): a low-level interpreted scripting language is used for mission coding (Main.SCM) see link for details.
https://www.google.com/#q=main.scm
2) Command and Conquer: scenario scripting
3) Sudden Strike: scenario scripting like other RTS games
4) Rise of Nations: scenario scripting...
5) 0 A.D. : scenario scripting.......................
6) Jak and Daxter: one of my all-time favorites
https://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp
7) A lot of RTS engines also implement lua or python scripting such as SpringRTS.
http://springrts.com/wiki/Lua_Scripting
https://en.wikipedia.org/wiki/Lua_%28programming_language%29
It has many upsides, such as properly abstracting game code from engine code. Most of the processing intense work can be done in the lower level engine, such as mesh loading and terrain deformation, while easy tasks such as creating goals, spawn points, can be easily coded in an interpreted language, since the cost of functions implemented at this level are usually inexpensive.
Sorry for the rant, just sick of YYG's contempt, especially because of aforementioned Dailly.
1) Grand Theft Auto ("invented" by none other than Mike Dailly himself): a low-level interpreted scripting language is used for mission coding (Main.SCM) see link for details.
https://www.google.com/#q=main.scm
2) Command and Conquer: scenario scripting
3) Sudden Strike: scenario scripting like other RTS games
4) Rise of Nations: scenario scripting...
5) 0 A.D. : scenario scripting.......................
6) Jak and Daxter: one of my all-time favorites
https://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp
7) A lot of RTS engines also implement lua or python scripting such as SpringRTS.
http://springrts.com/wiki/Lua_Scripting
https://en.wikipedia.org/wiki/Lua_%28programming_language%29
It has many upsides, such as properly abstracting game code from engine code. Most of the processing intense work can be done in the lower level engine, such as mesh loading and terrain deformation, while easy tasks such as creating goals, spawn points, can be easily coded in an interpreted language, since the cost of functions implemented at this level are usually inexpensive.
Sorry for the rant, just sick of YYG's contempt, especially because of aforementioned Dailly.
87
General ENIGMA / Splash Functions
« on: April 01, 2014, 01:02:40 am »
Well, I am at a point now where I could code in the splash functions in my free time, or I could just not do that, ever, at all, and leave them deprecated for ENIGMA. But why would I want to do this? Well for several reasons, but mainly.
1) YoYoGames designs functions very badly, that leave little room for abstraction.
2) The functions are basically just a salad of various API's, meaning it's not possible to build a game that for instance only uses splash_show_image without linking DirectShow, unless I move splash_show_video over into my DirectShow extension which is just messy including the splash settings variables all over the place, especially since some of the code has to go into the main Window handle callbacks
3) I have much better functions/implementations planned that are truly abstract, for instance, my already implemented video functions, and in future releases...
Which we can also get running in OpenGL and on Linux, and *gasp* maybe even mobile! *crosses fingers*
Point is, I want to make a better, more powerful, and easy to learn and use design for video playback, HTML and webkit content, that I can not otherwise do by emulating YYG's shit. I don't even think many games used splash functions, because they were only existent in a single release of GM. Anyway, I want to hear you guys opinions on this.
1) YoYoGames designs functions very badly, that leave little room for abstraction.
2) The functions are basically just a salad of various API's, meaning it's not possible to build a game that for instance only uses splash_show_image without linking DirectShow, unless I move splash_show_video over into my DirectShow extension which is just messy including the splash settings variables all over the place, especially since some of the code has to go into the main Window handle callbacks
3) I have much better functions/implementations planned that are truly abstract, for instance, my already implemented video functions, and in future releases...
Code: (EDL) [Select]
surface_set_target(mysurface);
video_draw_frame(myvideo);
surface_reset_target();
Which we can also get running in OpenGL and on Linux, and *gasp* maybe even mobile! *crosses fingers*
Point is, I want to make a better, more powerful, and easy to learn and use design for video playback, HTML and webkit content, that I can not otherwise do by emulating YYG's shit. I don't even think many games used splash functions, because they were only existent in a single release of GM. Anyway, I want to hear you guys opinions on this.
88
Programming Help / Find the Memory Leak
« on: March 30, 2014, 05:43:26 pm »
I am doing some debugging on object inheritance and noticed a memory leak in Mark Overmars original FPS example, this is only 1 of 3 bugs left in this game. The memory leak does not occur if you delete the collision event of obj_monster_basic. I am posting this here so maybe Josh or TheExDeus can spot the bug.
The obj_monster1 code parses out to this.
http://pastie.org/8981241
The obj_monster_basic code parses out to this.
http://pastie.org/8981237
This is the IDE_EDIT_objectfunctionality.h requested by Harri.
http://pastie.org/8984313
The obj_monster1 code parses out to this.
http://pastie.org/8981241
The obj_monster_basic code parses out to this.
http://pastie.org/8981237
This is the IDE_EDIT_objectfunctionality.h requested by Harri.
http://pastie.org/8984313
89
Developing ENIGMA / Game Information Implemented
« on: March 26, 2014, 03:40:40 pm »I have finally managed to program in the Global Game Information to work pretty damn good.
This is the pull request which implemented the Game Information.
https://github.com/enigma-dev/enigma-dev/pull/675
There are still a few anomalies which are minor and need to be fixed.
https://github.com/enigma-dev/enigma-dev/issues/676
You can update via git and then download the new plugin, or you can simply download the new Portable ZIP.
http://enigma-dev.org/download.htm
Documentation for the relevant functions is available on the Wiki.
http://enigma-dev.org/docs/Wiki/Show_info
http://enigma-dev.org/docs/Wiki/Load_info
This commit also adds some other functions as well.
http://enigma-dev.org/docs/Wiki/Get_directory
http://enigma-dev.org/docs/Wiki/Get_directory_alt
http://enigma-dev.org/docs/Wiki/Show_message_ext
90
Off-Topic / Microsoft using Linux?
« on: March 17, 2014, 10:46:06 pm »
http://news.netcraft.com/archives/2003/08/17/wwwmicrosoftcom_runs_linux_up_to_a_point_.html
Honestly just the greatest.
Honestly just the greatest.