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

256
Off-Topic / Re: Enigma as only Enigma
« on: July 15, 2014, 05:35:26 PM »
Thinking of ENIGMA in terms of GM is not useful. The goal of ENIGMA is to be a decent game engine first, and compatible with Game Maker second. If you can produce a good argument as to why the latter is bad for ENIGMA, then I am happy to hear it, but I believe you'll find that the cases you present are exactly the cases where we drop compatibility. There are many compatibility requests on the tracker marked as "Will not fix" for such reasons.

We maintain compatibility with Game Maker for a few key reasons.
  • First and foremost, Game Maker is a proven product. It's not the greatest, but it works, and we can learn from its successes as well as its failures. There are high counts of both, I promise.
  • Further, it's incredibly simple for children to learn. Developers here know this firsthand. I learned to write games in Game Maker 5 when I was around 12 years old. This goes for many others, here. There's just astoundingly little barrier to entry.
  • The API is virtually self-documenting. I know this isn't saying much when Robert has gone and documented all the functions on the Wiki, but did you really need to look up what draw_sprite(spr, subimg, x, y) does if you actually know what a sprite is? It's profoundly obvious.
  • One of the most critical selling points of ENIGMA is also one of the least relevant to ENIGMA; I'm speaking of the way in which resources are presented visually. This behavior is where the bulk of functional similarity with GM originates, and it has nothing to do with ENIGMA. The only reason no one has coded an alternative is that no one here has the time required to dedicate to a new interface on top of the engine.
  • Lastly, Game Maker has a large following. By keeping compatibility where possible, we enable those users to not only switch over easily, but to contribute easily. We're an obvious choice for an upgrade.

That's all I really have to say on the matter. You could argue that conforming to GM's library is holding us back, but it isn't. We are free to add as many functions as we like on top of its own, and we do with some frequency. I could say more on that, but it's better to let people discover new limits on their own. Though... there technically aren't any.

257
Developing ENIGMA / Re: Command Line Interface
« on: July 15, 2014, 05:23:11 PM »
He is developing it on Windows, bgordebak.

258
Developing ENIGMA / Re: EnigmaFileFunctions repo
« on: July 13, 2014, 09:51:09 AM »
Don't use carrier pigeons; use bricks.

Anyway, the problem here is, Linux offers shitloads of libraries. I can run apt-get install libzip-dev and, voila, I can now use libzip in my code. On OSX, libzip just comes with XCode, because, well, why wouldn't it? On Windows, there is NOTHING I can distribute to you that will enable you to install a compiler complete with libzip. I am going to have to build libzip into this mess just so Robert can use it on Windows. I hope it actually builds there. If not, we're all hosed.

My best course of action at this point is to modify the makefile so that make <target> libzip builds a local copy of libzip along with the program. Otherwise, it's hopeless.

259
I know Robert talks like an 8yrld gangsta wannabe, but it doesn't mean you need to do it too.


260
Off-Topic / Re: animated gif avatars
« on: July 12, 2014, 04:12:45 PM »
Are you using Internet Explorer, or something? It renders fine in all of my browsers.

261
Yeah, tiles have not been optimized for quick searching, and are unlikely to be.

This makes me wonder how useful it would be if users could create collision meshes in the room editor.

262
Off-Topic / Re: animated gif avatars
« on: July 12, 2014, 04:08:57 PM »
I set it to a correctly-scaled version of the GIF you posted.

263
Off-Topic / Re: animated gif avatars
« on: July 12, 2014, 04:02:37 PM »
That's quite large, bytewise, for an avatar. I'll make an exception while the community is small, I suppose. I am able to shrink it to just over 600KiB by fitting it to the correct size, anyway. I'm also able to shrink it to 900KiB simply by encoding it with a non-shitty, non-Windows GIF encoder. But that's another story.

264
Developing ENIGMA / Re: EnigmaFileFunctions repo
« on: July 12, 2014, 02:49:15 PM »
The more I think about it, the more I realize that maintaining our own package manager will not help us. The missing element is collaboration on the part of individual projects. When ENIGMA "grows up" a little more, we'll end up maintaining our own packages for Debian, Arch, and RedHat. Thus, people on Linux will be able to obtain ENIGMA through their package manager if they add our PPA. This is a form of standardization that just isn't present on Windows. Microsoft offers MSI, but MSI doesn't let you say "you need to have MinGW installed first" and cannot, in fact, tell you where to get MinGW. What we need is a standard, and we have twelve different people competing to be that standard, including Cygwin. Cygwin is terrible; it is an incomplete, broken implementation of a standard Linux distribution, and it has next to zero community support. Sound familiar? We can't offer our own packages any better than they can. What we need is a call for standardization, not another competing package manager.

265
Tips, Tutorials, Examples / Re: Multitextured Terrain Example
« on: July 10, 2014, 09:24:00 PM »
Good lord. The sand is now beautiful, but that texture repetition is horrible. Can you write a custom sample function that computes perlin values per-point? Your grass looks like MS-paint spray art, and there's no reason not to just have it be procedural. :P

Forgive the harshish criticism; this could just be improved massively with one simple tweak.

266
Developing ENIGMA / Re: Iji on ENIGMA
« on: July 10, 2014, 09:20:00 PM »
Sounds good. Please keep us apprised of any more of these hacks that arise; it's good to have them in mind when designing backend components.

267
Off-Topic / Re: animated gif avatars
« on: July 10, 2014, 09:15:29 PM »
As a security mechanism, the server re-encodes all uploaded avatars itself. It prevents such feats as the attachment of non-image data to images. Unfortunately, this causes only the first frame of animations to be rendered. This is a known bug in the forum software we use. I am able to disable that security feature, but am generally inclined not to do so. Are you able to specify a link to an animated avatar?

268
Developing ENIGMA / Re: Iji on ENIGMA
« on: July 08, 2014, 11:20:43 PM »
Ah, so band-aid stuff. Though, as far as I know, image_single was implemented; I'm not sure when that changed. Probably when polygone decided to redo my subimage handling when he moved it. It's not difficult to support image_single; you just check if it isn't -1 before you add image_speed to the current subimage.

I am hoping that a new instance system will fix your second and third points. That's way down the road.

No comment on your fourth point.

Your final point, TGMG addressed in a regex replacer a while back. Good luck tracking it down, though. In the future, I intend to allow special handling of that in the EDL lexer. It's extremely easy, in fact; all you'll do is duplicate the default lexer and set keywords["try"] = TT_INVALID, then in the handler below, return token_t(TT_IDENTIFIER, "$try", filename, line, pos - lpos);. A quicker (uglier) quick fix is just to use an ENIGMA-side #define. I.e, in definitions, put something like this:

Code: (C++) [Select]
#ifdef JUST_DEFINE_IT_RUN // To be interpreted only by ENIGMA
#define try try_
#define catch catch_
#define time time_
#endif

269
Developing ENIGMA / Re: Iji on ENIGMA
« on: July 07, 2014, 07:50:51 PM »
Looking good; the tearing's a little disturbing, but you've made some great progress, it seems.

Could you enumerate the changes you don't want to push to ENIGMA? I'm aware of the "backslashes in paths" hack, but I believe proper macros will nip that issue in the bud down the road. I'm interested in knowing what else you changed, because I want to get macros, metaprogramming, and plugin scripting to be powerful enough for you to be able to enact those changes as part of the game file. I can't make any promises without knowing them, obviously, but having some time to think about them will certainly help.

270
Developing ENIGMA / EnigmaFileFunctions repo
« on: July 05, 2014, 02:07:37 PM »
I realize that Robert has been trying to implement a CLI, but this has been on my plate for a while. In fact, when I heard of his intentions, I published a repository I'd started to GitHub for reading files and general file processing groundwork. This includes a UTF8 implementation of std::string (still in progress) and a class for iterating files. Right now, the file iteration class supports zip iteration and filesystem iteration, but it has only been implemented on Linux. The zip iteration should work directly on Windows, provided someone can install libzip in MinGW. Today I coded what should resemble the Windows implementation. I have left it commented since it is not tested.

I meant this procedure to be for Robert, but he seemed generally uninterested in the prospect. I would appreciate it if a Windows developer would do the following:
  • Check out the EnigmaFileFunctions repository
  • Open gdir.cpp and seek to the unimplemented functions.
  • Uncomment my implementation and fix any issues, or write your own implementation. Just get it to build.
  • Run the tests I wrote.
    • In Code::Blocks, this is as simple as switching to the "Test" target and running
    • If you have GNU make, you can run make test to test
  • If the tests don't pass, tweak the code and rerun them.
  • Once all tests pass, drop me a pull request.
That's the contribution model ENIGMA should arguably be on, and it's the contribution model I'll be sticking to. If no one can deal with that, I suppose I'll continue development at my own pace.

All tests currently pass on Linux. If any tests other than the directory test you're working on/looking at fail on Windows, please let me know.