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.

Topics - Josh @ Dreamland

Pages: [1]
Announcements / Quick Update
« on: April 18, 2011, 11:15:47 PM »
I don't write many newsposts anymore, but I have some news for a few of those involved in the project who don't frequent the IRC. The rest of you who are interested can thank them for not showing up, because otherwise I'd have no reason to post this. These are our standings:

In the last three revisions, I have drastically changed a couple of the systems behind the compilation process of ENIGMA, largely for the sake of TGMG (though also for freezway, who wanted access to the widget functions before they are finished). These include the following:
In the Compilers/ eYAML files, the following are now honored by ENIGMA:
  • resources: Where to write the resources. $exe = The executable module. I might change this to $game. Maybe.
  • Build-Extension: The extension of the output file; this is recognized but not really used yet.
  • Run-Program: What program to invoke to run the game. $game is the game file.
  • Run-Params: What to pass to the above. $game is the game file.
It is up to IsmAvatar to implement this one:
  • Run-output: Where the game is built for the Run function. "$tempfile" will let LGM pick.

Furthermore, ENIGMA now passes a "Compile Path" to the makefile. What this comprises is the current platform name, and the target platform name, separated by a slash. For instance, Linux/Linux, Windows/Windows, MacOSX/iPhone. This can be accessed as $(COMPILEPATH) from the main makefile. It will be up to TGMG to use this to include a makefile from SHELL/Makefiles. They will be largely redundant, yes, but this will allow him to get complete control over the make process for iPhone and Android.

Unfortunately, I am quite sure the latest changes have broken Windows. I'll be on Windows myself in a minute to assess and fix it. In the revisions before this, however (around r698 or so), fonts were implemented. You no longer need to use font_add_sprite(). I mention this because I know HaRRiKiRi wanted to do something with them after the font resource worked.

Other than that, I know Polygone has been doing a good job keeping up with the Wiki. I don't think I've missed anything in documenting this new Compilers/*/*.ey and About.ey eYAML layout, but it could probably use touching up by a second person. New help with documentation always welcome.

So I'll be on Windows, then I'll see about getting back to my coercer.

Edit: All right, I've fixed Windows, as far as I can tell. If you update to the latest revision yourself (or via LGM), you must do the following:
  • Copy the new ENIGMA.exe from CompilerSource/Stupidity-buffer/.
  • Delete gcc.ey from Windows/
  • Rerun ENIGMA.exe
Alternatively, you can edit gcc.ey yourself according to the new specification file in Autoconf/wingcc_template.eyt (You'll see the two are so similar you can almost copy and paste. In fact, you pretty much can copy-paste the bottom half, just skip the part with the %s stuff).

And of course, in either case, delete the DLL from the main directory so LGM rebuilds it.

Proposals / Object grouping
« on: April 12, 2011, 11:18:13 AM »
With documentation of a new format started, however incoherently, here, it's time I put to writing my plan for large games made with ENIGMA.

One of Game Maker's biggest downfalls is the sheer length of time it takes to save and load games, both in GMK format and in the EXE format. People with large projects suffer incredible wait times between pressing "Run" and seeing their game working, until they finally just keep all resources external. How can we fix this?

Most people with large projects, if not every single one of them (where "large" implies having lots of resources, not a stolen tutorial and 6 massive WAV-format music files) keep their resources well-organized within the tree. I was looking over the sources (acquired in multiple ways) of successful GM-made Metroid clones. Sprites were divided by player and by land, then by enemy... it was, as a trend, very well organized.

Cutting to the chase, my proposal is sprite_load_group("Crateria");.

Basically, when our new format is implemented, "compiling" large games will be as simple as unpacking resources from the zip. Or, as we're likely to add, compiling the standalone, duplicating the game zip, stripping the script directory, object directory, and manifest files (anything that would no longer be of use in a compiled game), and adding the EXE to that.

ENIGMA games would then, when the user calls sprite_load_group(group), just recursively add all sprites found in ./Sprites/group/.
Likewise, it would recursively unload them when the user calls sprite_unload_group().

This will require minimal modification to the original system, and will save many users an assload of hassle, which when you think about it, is the point of the ENIGMA project, anyway. Built-in support for massive amounts of resources, and keeping them external, is fundamental if ENIGMA is to offer something that Game Maker just fucking doesn't.

I mean, until one of those sodding idiots stumbles upon this thread and puts their programmers to work implementing it.

Announcements / Recent Events
« 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 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.


Off-Topic / Broken forums
« on: January 12, 2011, 10:50:13 AM »
We've recently upgraded to SMF RC3. This cost us all custom modifications to the SMF forum system. This is what's broken, that we are currently aware:

1) Registration. I implemented a regexp captcha to the SMF engine because its original system was too poor to handle multiple answers. My system allowed them to be set as (answer1|answer2), or however else is legal in the regexp standard. As such, any question with more than one answer is impossible to answer correctly.
2) Unix names. Gary just implemented a system that allows users to give themselves a unix name. It wasn't implemented in the Wiki completely yet, but it's gone now.
3) Code highlighting. The system had a problem with generating previews (the page had to be refreshed to see any modifications), and it didn't distinguish between GML and C++, but it's gone now.

Any other problems, report them here.

Pages: [1]